/* ============================================================
   BookDoctor v3 — Directory Stylesheet
   Design system per Section 3 of the Build Brief.
   All colours, fonts, spacing, and component styles are here.
   ============================================================ */

/* ── CSS Variables (Section 3.1) ──────────────────────────── */
:root {
  --bd-ink:       #213A57;
  --bd-text:      #5B6B7F;
  --bd-bg:        #F7FBFD;
  --bd-surface:   #FFFFFF;
  --bd-sky-50:    #F1FBFE;
  --bd-sky-100:   #DFF4FB;
  --bd-sky-200:   #A9DFF3;
  --bd-mint-100:  #DDF7EA;
  --bd-mint-200:  #BEEFD8;
  --bd-leaf:      #75C89A;
  --bd-teal:      #5CC7C7;
  --bd-yellow:    #F6C85A;
  --bd-coral:     #F27D72;
  --bd-border:    #DDECF2;
  --bd-shadow:    0 4px 20px rgba(41,88,120,0.08);
  --bd-peach:     #FFF0EC;
  --bd-peach-200: #FFCFC8;

  /* Spacing/shape tokens (Section 3.3) */
  --bd-radius-card:   20px;
  --bd-radius-btn:    14px;
  --bd-radius-badge:  20px;
  --bd-radius-icon:   12px;
  --bd-card-pad:      16px;
  --bd-gap:           12px;
  --bd-section-gap:   28px;
}

/* ── Reset / Base ────────────────────────────────────────────*/
.bd-wrap *,
.bd-wrap *::before,
.bd-wrap *::after {
  box-sizing: border-box;
}

.bd-wrap {
  font-family: 'Inter', sans-serif;
  color: var(--bd-ink);
  background: var(--bd-bg);
  line-height: 1.65;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

/* ── Typography helpers ──────────────────────────────────────*/
.bd-h1 { font-family: 'Nunito Sans', sans-serif; font-weight: 800; font-size: 34px; letter-spacing: -0.5px; color: var(--bd-ink); margin: 0; }
.bd-h2 { font-family: 'Nunito Sans', sans-serif; font-weight: 700; font-size: 22px; color: var(--bd-ink); margin: 0 0 12px; }
.bd-h3 { font-family: 'Nunito Sans', sans-serif; font-weight: 700; font-size: 18px; color: var(--bd-ink); margin: 0 0 8px; }
.bd-label { font-family: 'Nunito Sans', sans-serif; font-weight: 700; font-size: 13px; color: var(--bd-ink); }
.bd-meta  { font-family: 'Inter', sans-serif; font-weight: 400; font-size: 11px; color: var(--bd-text); }

/* ── Nav Bar (Section 4.1) ───────────────────────────────────*/
.bd-nav {
  background: var(--bd-surface);
  border-bottom: 1px solid var(--bd-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  height: 60px;
  position: sticky;
  top: 0;
  z-index: 100;
}

.bd-nav__logo img {
  height: 30px;
  width: auto;
  display: block;
}

.bd-nav__menu {
  display: flex;
  align-items: center;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bd-nav__menu a {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--bd-text);
  text-decoration: none;
  transition: color .15s;
}

.bd-nav__menu a:hover,
.bd-nav__menu .current-menu-item > a {
  color: var(--bd-ink);
}

.bd-nav__right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.bd-location-pill {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--bd-sky-50);
  border: 1px solid var(--bd-border);
  border-radius: 20px;
  padding: 5px 12px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: var(--bd-ink);
  cursor: pointer;
}

.bd-location-pill .bd-dot {
  width: 7px;
  height: 7px;
  background: var(--bd-teal);
  border-radius: 50%;
}

.bd-signin-btn {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--bd-sky-100);
  border: 1px solid var(--bd-border);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
}

.bd-signin-btn svg { color: var(--bd-ink); }

/* ── Hero (Section 4.2) ──────────────────────────────────────*/
.bd-hero {
  background: var(--bd-sky-50);
  border-bottom: 1px solid var(--bd-border);
  display: flex;
  gap: 28px;
  align-items: center;
  padding: 44px 28px 36px;
}

.bd-hero__text {
  flex: 1;
  min-width: 0;
  max-width: 480px;
}

.bd-hero__tag {
  display: inline-flex;
  align-items: center;
  background: var(--bd-mint-100);
  border: 1px solid var(--bd-leaf);
  border-radius: var(--bd-radius-badge);
  padding: 3px 10px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #1a7a4a;
  margin-bottom: 14px;
}

.bd-hero h1 {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  font-size: 34px;
  letter-spacing: -0.5px;
  color: var(--bd-ink);
  margin: 0 0 10px;
  line-height: 1.2;
}

.bd-hero h1 .bd-teal { color: var(--bd-teal); }

.bd-hero p {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-text);
  max-width: 420px;
  margin: 0 0 20px;
}

.bd-search-box {
  display: flex;
  align-items: center;
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 20px;
  padding: 5px 5px 5px 14px;
  gap: 8px;
}

.bd-search-box input,
.bd-search-box select {
  border: none;
  outline: none;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-ink);
  background: transparent;
  min-width: 0;
  flex: 1;
}

.bd-search-box select {
  padding-right: 8px;
}

.bd-search-divider {
  width: 1px;
  height: 20px;
  background: var(--bd-border);
  flex-shrink: 0;
}

.bd-btn-search {
  background: var(--bd-yellow);
  border: none;
  border-radius: var(--bd-radius-btn);
  padding: 9px 20px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--bd-ink);
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .15s;
}

.bd-btn-search:hover { opacity: .9; }

.bd-hero__image {
  flex: 1;
  min-width: 0;
  max-width: 500px;
}

.bd-hero__image img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  border-radius: 22px;
  display: block;
}

/* ── Section Title (Section 4.3) ─────────────────────────────*/
.bd-section-title {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 16px;
}

.bd-section-title__line {
  flex: 1;
  height: 1px;
  background: var(--bd-border);
}

.bd-section-title__text {
  padding: 0 16px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 18px;
  color: var(--bd-ink);
  white-space: nowrap;
}

/* Featured Physicians header — left title + right link */
.bd-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.bd-section-header__title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  font-size: 18px;
  color: var(--bd-ink);
}

.bd-section-header__link {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-teal);
  text-decoration: none;
}

.bd-section-header__link:hover { text-decoration: underline; }

/* ── Homepage sections ───────────────────────────────────────*/
.bd-section {
  padding-top: var(--bd-section-gap);
}

/* Feature cards (Section 4.4) */
.bd-feature-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--bd-gap);
  margin-top: 24px;
}

.bd-feature-card {
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius-card);
  padding: 18px;
}

.bd-feature-card__icon {
  width: 40px;
  height: 40px;
  border-radius: var(--bd-radius-icon);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.bd-feature-card__icon--sky  { background: var(--bd-sky-100); }
.bd-feature-card__icon--yellow { background: #FFF8E7; }
.bd-feature-card__icon--mint { background: var(--bd-mint-100); }

.bd-feature-card__title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: var(--bd-ink);
  margin: 0 0 4px;
}

.bd-feature-card__body {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  margin: 0 0 12px;
}

.bd-feature-card__cta {
  display: inline-flex;
  align-items: center;
  background: var(--bd-sky-50);
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius-badge);
  padding: 4px 12px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 11px;
  color: var(--bd-ink);
  text-decoration: none;
}

/* ── Doctor Cards (Section 4.5 + 5.3) ──────────────────────*/
/* Homepage featured cards — compact, centered */
.bd-doctor-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--bd-gap);
}

.bd-doctor-card {
  background: var(--bd-surface);
  border: 1.5px solid var(--bd-border);
  border-radius: var(--bd-radius-card);
  padding: var(--bd-card-pad);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-shadow: var(--bd-shadow);
  transition: box-shadow .18s, border-color .18s, transform .18s;
}
.bd-doctor-card:hover {
  box-shadow: 0 8px 28px rgba(41,88,120,0.13);
  border-color: var(--bd-teal);
  transform: translateY(-2px);
}
.bd-doctor-card__actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: auto;
  padding-top: 8px;
}

.bd-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 2.5px solid currentColor;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  font-size: 17px;
  margin-bottom: 10px;
  flex-shrink: 0;
}

/* Avatar colour rotation: sky, mint, peach, yellow */
.bd-avatar--sky    { background: var(--bd-sky-100);  color: #1a5276; border-color: var(--bd-sky-200); }
.bd-avatar--mint   { background: var(--bd-mint-100); color: #1a7a4a; border-color: var(--bd-mint-200); }
.bd-avatar--peach  { background: var(--bd-peach);    color: #7A2A1A; border-color: var(--bd-peach-200); }
.bd-avatar--yellow { background: #FFF8E7;            color: #7A4F00; border-color: #FFE09A; }

.bd-doctor-card__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--bd-ink);
  margin: 0 0 3px;
}

.bd-doctor-card__meta {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--bd-text);
  margin: 0 0 8px;
}

.bd-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  justify-content: center;
  margin-bottom: 10px;
}

.bd-badge {
  display: inline-flex;
  align-items: center;
  border-radius: var(--bd-radius-badge);
  border: 1px solid;
  padding: 2px 8px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 10px;
  white-space: nowrap;
}

.bd-badge--accepting { background: var(--bd-mint-100); color: #1a7a4a;  border-color: var(--bd-mint-200); }
.bd-badge--platform  { background: var(--bd-sky-100);  color: #1a5276;  border-color: var(--bd-sky-200); }
.bd-badge--unknown   { background: #F5F5F5;            color: #334A62;  border-color: #C9D6DE; }
.bd-badge--focus     { background: var(--bd-mint-100); color: #1a5f3a;  border-color: var(--bd-mint-200); }
.bd-badge--fht       { background: var(--bd-mint-100); color: #1a7a4a;  border-color: var(--bd-mint-200); }
.bd-badge--walkin    { background: #FFF8E7;            color: #7A4F00;  border-color: #FFE09A; }
.bd-badge--virtual   { background: var(--bd-sky-100);  color: #1a5276;  border-color: var(--bd-sky-200); }
.bd-badge--trauma    { background: var(--bd-peach);    color: #7A2A1A;  border-color: var(--bd-peach-200); }
.bd-badge--coral     { background: #FFF0F0;            color: #7A2A1A;  border-color: var(--bd-peach-200); }
.bd-badge--mri       { background: var(--bd-sky-100);  color: #1a5276;  border-color: var(--bd-sky-200); }
.bd-badge--referral  { background: var(--bd-peach);    color: #7A2A1A;  border-color: var(--bd-peach-200); }
.bd-badge--verified  { background: var(--bd-mint-100); color: #1a7a4a;  border-color: var(--bd-mint-200); }
.bd-badge--unverified{ background: #FFF8E7;            color: #7A4F00;  border-color: #FFE09A; }
.bd-badge--review    { background: var(--bd-peach);    color: #7A2A1A;  border-color: var(--bd-peach-200); }

/* CTA buttons on cards */
.bd-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--bd-radius-btn);
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  padding: 7px 14px;
  text-decoration: none;
  cursor: pointer;
  transition: opacity .15s;
  border: none;
}

.bd-btn:hover { opacity: .88; }

.bd-btn--yellow   { background: var(--bd-yellow);    color: var(--bd-ink); }
.bd-btn--ghost    { background: var(--bd-surface);   color: var(--bd-ink); border: 1px solid var(--bd-border); }
.bd-btn--leaf     { background: var(--bd-leaf);      color: #fff; }
.bd-btn--sky      { background: var(--bd-sky-100);   color: #1a5276; border: 1px solid var(--bd-sky-200); }
.bd-btn--full     { width: 100%; }

/* ── Hospital Cards (Section 4.6) ───────────────────────────*/
.bd-hospital-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.bd-hospital-card {
  background: var(--bd-surface);
  border: 1.5px solid var(--bd-border);
  border-radius: var(--bd-radius-card);
  box-shadow: var(--bd-shadow);
  display: flex;
  align-items: stretch;
  overflow: hidden;
  transition: box-shadow .18s ease, border-color .18s ease, transform .18s ease;
  cursor: pointer;
}

.bd-hospital-card:hover {
  box-shadow: 0 8px 32px rgba(41,88,120,0.14);
  border-color: var(--bd-teal);
  transform: translateY(-2px);
}

.bd-hospital-card--emergency {
  border-left: 3px solid var(--bd-coral);
}

.bd-hospital-card__icon-col {
  width: 58px;
  flex-shrink: 0;
  background: linear-gradient(160deg, var(--bd-sky-50) 0%, var(--bd-sky-100) 100%);
  border-right: 1px solid var(--bd-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1a5276;
}

.bd-hospital-card--emergency .bd-hospital-card__icon-col {
  background: linear-gradient(160deg, #FFF5F5 0%, var(--bd-peach) 100%);
  color: #7A2A1A;
  border-right-color: var(--bd-peach-200);
}

.bd-hospital-card__body {
  flex: 1;
  min-width: 0;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.bd-hospital-card__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: var(--bd-ink);
  line-height: 1.3;
  margin: 0;
}

.bd-hospital-card__location {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  margin: 0;
}

.bd-hospital-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.bd-hospital-card__actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 2px;
}

.bd-btn--sm {
  padding: 5px 12px !important;
  font-size: 11px !important;
  border-radius: 10px !important;
}

/* ── Clinic Cards (Section 4.7) ─────────────────────────────*/
.bd-clinic-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--bd-gap);
}

.bd-clinic-card {
  background: var(--bd-surface);
  border: 1.5px solid var(--bd-border);
  border-radius: var(--bd-radius-card);
  padding: 14px 16px;
  box-shadow: var(--bd-shadow);
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: box-shadow .18s, border-color .18s, transform .18s;
  overflow: hidden;
}
.bd-clinic-card:hover {
  box-shadow: 0 8px 28px rgba(41,88,120,0.13);
  border-color: var(--bd-teal);
  transform: translateY(-2px);
}

.bd-clinic-card__top {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.bd-clinic-card__heading { flex: 1; min-width: 0; }

.bd-clinic-card__icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid rgba(0,0,0,.06);
}

.bd-clinic-card__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: var(--bd-ink);
  margin: 0 0 3px;
  line-height: 1.3;
}

.bd-clinic-card__city {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  margin: 0;
}

.bd-clinic-card__actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 2px;
}

/* ── Facility Cards (Section 4.8) ───────────────────────────*/
.bd-facility-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--bd-gap);
}

.bd-facility-card {
  background: var(--bd-surface);
  border: 1.5px solid var(--bd-border);
  border-radius: var(--bd-radius-card);
  padding: 14px 16px;
  box-shadow: var(--bd-shadow);
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: box-shadow .18s, border-color .18s, transform .18s;
  overflow: hidden;
}
.bd-facility-card:hover {
  box-shadow: 0 8px 28px rgba(41,88,120,0.13);
  border-color: var(--bd-coral);
  transform: translateY(-2px);
}

.bd-facility-card__top {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.bd-facility-card__heading { flex: 1; min-width: 0; }

.bd-facility-card__icon {
  width: 42px;
  height: 42px;
  background: #FFF0F0;
  border: 1px solid var(--bd-peach-200);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #7A2A1A;
}

.bd-facility-card__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: var(--bd-ink);
  margin: 0 0 3px;
  line-height: 1.3;
}

.bd-facility-card__city {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  margin: 0;
}

.bd-facility-card__actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 2px;
}

/* ── Search Page Layout (Section 5.1) ───────────────────────*/
.bd-search-page {
  display: flex;
  flex-direction: column;
}

.bd-search-hero {
  background: var(--bd-sky-50);
  border-bottom: 1px solid var(--bd-border);
  padding: 32px 28px 24px;
}

.bd-search-hero h2 {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 24px;
  color: var(--bd-ink);
  margin: 0 0 16px;
}

.bd-breadcrumb {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  margin-top: 10px;
}

.bd-breadcrumb a { color: var(--bd-teal); text-decoration: none; }

.bd-search-body {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  padding: 24px 0;
  align-items: start;
}

/* ── Sidebar (Section 5.2) ───────────────────────────────────*/
.bd-sidebar {
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 16px;
  padding: 16px;
  position: sticky;
  top: 76px;
  max-height: calc(100vh - 100px);
  overflow-y: auto;
}

.bd-sidebar__heading {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: var(--bd-ink);
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 14px;
  cursor: pointer;
}

.bd-sidebar__group {
  border-top: 1px solid var(--bd-border);
  padding: 12px 0;
}

.bd-sidebar__group-title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--bd-ink);
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  margin: 0 0 8px;
}

.bd-sidebar__group-title svg { transition: transform .2s; }
.bd-sidebar__group.is-open .bd-sidebar__group-title svg { transform: rotate(180deg); }

.bd-sidebar__group-body { display: none; }
.bd-sidebar__group.is-open .bd-sidebar__group-body { display: block; }

.bd-check-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-text);
  padding: 3px 6px;
  border-radius: 6px;
  cursor: pointer;
  margin-bottom: 2px;
}

.bd-check-label:hover { background: var(--bd-sky-50); }
.bd-check-label.is-active { background: var(--bd-mint-100); }
.bd-check-label input { margin: 0; }

.bd-location-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--bd-sky-100);
  border: 1px solid var(--bd-sky-200);
  border-radius: var(--bd-radius-badge);
  padding: 3px 10px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: var(--bd-ink);
  margin-bottom: 8px;
}

.bd-location-chip__remove {
  cursor: pointer;
  color: var(--bd-text);
  font-size: 14px;
  line-height: 1;
}

.bd-clear-filters {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: var(--bd-teal);
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px 0;
  margin-top: 8px;
  display: block;
}

/* ── Tabs (Section 5.4) ──────────────────────────────────────*/
.bd-tabs {
  display: flex;
  gap: 2px;
  border-bottom: 2px solid var(--bd-border);
  margin-bottom: 20px;
}

.bd-tab {
  padding: 10px 18px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: var(--bd-text);
  cursor: pointer;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color .15s;
}

.bd-tab.is-active {
  color: var(--bd-ink);
  border-bottom-color: var(--bd-ink);
}

.bd-tab-panel { display: none; }
.bd-tab-panel.is-active { display: block; }

/* ── Results count (Section 5.5) ─────────────────────────────*/
.bd-results-header {
  margin-bottom: 16px;
}

.bd-results-header__count {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: var(--bd-ink);
  margin: 0;
}

.bd-results-header__showing {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  margin: 2px 0 0;
}

/* ── Search result cards — horizontal doctor (Section 5.3) ──*/
.bd-result-card {
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 18px;
  padding: 18px 20px;
  box-shadow: var(--bd-shadow);
  display: flex;
  gap: 14px;
  align-items: flex-start;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .15s;
  margin-bottom: 12px;
}

.bd-result-card:hover { box-shadow: 0 6px 28px rgba(41,88,120,0.13); }

.bd-result-card .bd-avatar {
  width: 64px;
  height: 64px;
  font-size: 21px;
  flex-shrink: 0;
  margin-bottom: 0;
}

.bd-result-card__info { flex: 1; min-width: 0; }

.bd-result-card__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: var(--bd-ink);
  margin: 0 0 2px;
}

.bd-result-card__specialty {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-text);
  margin: 0 0 6px;
}

.bd-result-card__ratings {
  display: flex;
  gap: 12px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  margin-bottom: 4px;
}

.bd-result-card__clinic {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--bd-ink);
  margin-bottom: 4px;
}

.bd-result-card__address {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 8px;
}

.bd-result-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

/* ── Pagination (Section 5.5) ────────────────────────────────*/
.bd-pagination {
  display: flex;
  gap: 4px;
  align-items: center;
  justify-content: center;
  margin-top: 24px;
  flex-wrap: wrap;
}

.bd-page-btn {
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border-radius: 8px;
  border: 1px solid var(--bd-border);
  background: var(--bd-surface);
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--bd-ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}

.bd-page-btn.is-active { background: var(--bd-yellow); border-color: var(--bd-yellow); }
.bd-page-btn:disabled  { opacity: .4; cursor: default; }
.bd-page-btn:hover:not(.is-active):not(:disabled) { background: var(--bd-sky-50); }

/* ── Empty state ─────────────────────────────────────────────*/
.bd-empty {
  text-align: center;
  padding: 48px 16px;
}

.bd-empty__icon {
  width: 64px;
  height: 64px;
  background: var(--bd-sky-100);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}

.bd-empty__title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 18px;
  color: var(--bd-ink);
  margin: 0 0 8px;
}

.bd-empty__tip {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-text);
  margin: 0;
}

/* ── Skeleton loading ────────────────────────────────────────*/
@keyframes bd-shimmer {
  0%   { background-position: -600px 0; }
  100% { background-position: 600px 0; }
}

.bd-skeleton {
  background: linear-gradient(90deg, var(--bd-border) 25%, #e8f4f8 50%, var(--bd-border) 75%);
  background-size: 600px 100%;
  animation: bd-shimmer 1.2s infinite linear;
  border-radius: 8px;
  height: 100px;
  margin-bottom: 12px;
  border-radius: 18px;
}

/* ── City dropdown ───────────────────────────────────────────*/
.bd-city-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 12px;
  box-shadow: var(--bd-shadow);
  min-width: 200px;
  max-height: 260px;
  overflow-y: auto;
  z-index: 200;
  display: none;
}

.bd-city-dropdown.is-open { display: block; }

.bd-city-dropdown__item {
  padding: 8px 14px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-ink);
  cursor: pointer;
}

.bd-city-dropdown__item:hover { background: var(--bd-sky-50); }

.bd-location-wrap { position: relative; display: inline-block; }

/* ── Profile page — common ───────────────────────────────────*/
.bd-profile {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px 48px;
  font-family: 'Inter', sans-serif;
}

.bd-profile-hero {
  background: var(--bd-sky-50);
  border-bottom: 1px solid var(--bd-border);
  padding: 36px 28px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

.bd-profile-hero .bd-avatar { width: 120px; height: 120px; font-size: 38px; }

.bd-profile-hero__info { flex: 1; }

.bd-profile-hero__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  font-size: 28px;
  color: var(--bd-ink);
  margin: 0 0 4px;
}

.bd-profile-hero__specialty {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: var(--bd-text);
  margin: 0 0 8px;
}

.bd-profile-hero__clinic-line {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: var(--bd-ink);
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.bd-quick-strip {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 28px;
  border-bottom: 1px solid var(--bd-border);
  background: var(--bd-surface);
}

.bd-quick-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--bd-sky-50);
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius-badge);
  padding: 5px 12px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: var(--bd-ink);
  text-decoration: none;
}

.bd-profile-body {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 24px;
  padding: 24px 28px 0;
}

.bd-profile-section {
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
}

.bd-profile-section__title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 18px;
  color: var(--bd-ink);
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--bd-border);
}

/* 5-column tags block */
.bd-tags-block {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}

.bd-tags-column__title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--bd-text);
  margin: 0 0 6px;
}

/* Booking panel sidebar */
.bd-booking-panel {
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
}

.bd-booking-panel__title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: var(--bd-ink);
  margin: 0 0 14px;
}

.bd-booking-note {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  margin-top: 10px;
  font-style: italic;
}

/* Emergency panel — hospital */
.bd-emergency-panel {
  background: #FFF0F0;
  border: 1px solid var(--bd-peach-200);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
}

.bd-emergency-panel__title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #7A2A1A;
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 12px;
}

.bd-check-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-ink);
  margin-bottom: 6px;
}

.bd-check-row--yes::before { content: "✓"; color: #1a7a4a; font-weight: 700; }
.bd-check-row--no::before  { content: "–"; color: var(--bd-text); }

/* Stats row */
.bd-stats-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0;
}

.bd-stat-chip {
  background: var(--bd-sky-100);
  border: 1px solid var(--bd-sky-200);
  border-radius: 12px;
  padding: 12px 14px;
  text-align: center;
}

.bd-stat-chip__value {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--bd-ink);
  display: block;
}

.bd-stat-chip__label {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--bd-text);
}

/* Action buttons row */
.bd-action-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.bd-action-btn {
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 12px;
  padding: 12px 8px;
  text-align: center;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: var(--bd-ink);
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: background .15s;
}

.bd-action-btn:hover { background: var(--bd-sky-50); }

/* Modality table */
.bd-table {
  width: 100%;
  border-collapse: collapse;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
}

.bd-table th {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: var(--bd-text);
  text-transform: uppercase;
  letter-spacing: .4px;
  border-bottom: 1px solid var(--bd-border);
  padding: 8px 10px;
  text-align: left;
}

.bd-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--bd-border);
  color: var(--bd-ink);
}

.bd-table tr:last-child td { border-bottom: none; }

/* Mini doctor card (carousels) */
.bd-mini-card {
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 16px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-shadow: var(--bd-shadow);
}

.bd-mini-card .bd-avatar { width: 56px; height: 56px; font-size: 18px; }

.bd-mini-card__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--bd-ink);
  margin: 6px 0 2px;
}

.bd-mini-card__specialty {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--bd-text);
  margin: 0 0 8px;
}

.bd-carousel {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

/* Profile footer */
.bd-profile-footer {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--bd-text);
  padding: 16px 28px;
  border-top: 1px solid var(--bd-border);
  margin-top: 24px;
}

/* ── Responsive ─────────────────────────────────────────────*/
@media (max-width: 900px) {
  .bd-search-body {
    grid-template-columns: 1fr;
  }

  .bd-sidebar {
    position: static;
    max-height: none;
  }

  .bd-doctor-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bd-hospital-grid { grid-template-columns: 1fr; }
  .bd-clinic-grid   { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bd-facility-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .bd-tags-block { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bd-profile-body { grid-template-columns: 1fr; }
  .bd-carousel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bd-action-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bd-stats-row  { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .bd-hero { flex-direction: column; }
  .bd-hero__image { display: none; }
  .bd-feature-cards { grid-template-columns: 1fr; }
  .bd-doctor-grid   { grid-template-columns: 1fr; }
  .bd-clinic-grid   { grid-template-columns: 1fr; }
  .bd-facility-grid { grid-template-columns: 1fr; }
  .bd-tags-block    { grid-template-columns: 1fr; }
  .bd-carousel      { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bd-result-card   { flex-direction: column; }
  .bd-nav__menu     { display: none; }
}

/* ── Doctor Profile Redesign (doctorpage.png) ────────────────*/

/* Breadcrumb */
.bd-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
  padding: 12px 0 16px;
  flex-wrap: wrap;
}
.bd-breadcrumb a {
  color: var(--bd-teal);
  text-decoration: none;
  font-weight: 600;
}
.bd-breadcrumb a:hover { text-decoration: underline; }
.bd-breadcrumb span[aria-hidden] { color: var(--bd-border); }

/* Hero — override base for profile redesign */
.bd-profile-hero {
  background: linear-gradient(130deg, var(--bd-sky-50) 0%, #e4f6fc 55%, #d9f2fb 100%);
  border-bottom: none;
  border-radius: 20px;
  padding: 40px 36px;
  display: flex;
  gap: 28px;
  align-items: flex-start;
  position: relative;
  overflow: hidden;
  margin-bottom: 2px;
}
.bd-profile-hero::before {
  content: '';
  position: absolute;
  top: -50px;
  right: -50px;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, rgba(92,199,199,.18) 0%, transparent 68%);
  border-radius: 50%;
  pointer-events: none;
}
.bd-profile-hero::after {
  content: '';
  position: absolute;
  bottom: -30px;
  right: 80px;
  width: 140px;
  height: 140px;
  background: radial-gradient(circle, rgba(92,199,199,.10) 0%, transparent 68%);
  border-radius: 50%;
  pointer-events: none;
}

/* XL avatar for profile hero */
.bd-avatar--xl {
  width: 140px !important;
  height: 140px !important;
  font-size: 46px !important;
  border-width: 4px !important;
  margin-bottom: 0 !important;
  flex-shrink: 0;
}

.bd-profile-hero__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  font-size: 32px;
  color: var(--bd-ink);
  margin: 0 0 4px;
  letter-spacing: -.3px;
}

.bd-profile-hero__specialty {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: var(--bd-text);
  margin: 0 0 12px;
}

.bd-profile-hero__clinic-line {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: var(--bd-ink);
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 8px;
}

.bd-profile-hero__location-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.bd-hero-location {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-text);
}

.bd-profile-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}

/* Accepting badge — larger hero variant with Live dot */
.bd-badge--accepting-hero {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--bd-mint-100);
  color: #1a7a4a;
  border: 1px solid var(--bd-mint-200);
  border-radius: var(--bd-radius-badge);
  padding: 6px 14px 6px 10px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
}

/* Pulsing Live dot */
@keyframes bd-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .5; transform: scale(.8); }
}
.bd-live-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #27ae60;
  animation: bd-pulse 1.8s ease-in-out infinite;
  margin-left: 4px;
}
.bd-live-label {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 11px;
  color: #27ae60;
  text-transform: uppercase;
  letter-spacing: .5px;
}

/* Hero Book CTA — larger than card buttons */
.bd-btn--hero {
  padding: 12px 28px;
  font-size: 15px;
  border-radius: 16px;
  gap: 8px;
}

/* Profile body column names */
.bd-profile-main    { min-width: 0; }
.bd-profile-sidebar { min-width: 0; }

/* About text */
.bd-profile-about-text {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--bd-text);
  line-height: 1.75;
}
.bd-profile-about-text p { margin: 0 0 10px; }
.bd-profile-about-text p:last-child { margin-bottom: 0; }

/* Professional details dl */
.bd-profile-details {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 8px 16px;
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}
.bd-profile-details dt {
  font-weight: 600;
  color: var(--bd-ink);
}
.bd-profile-details dd {
  margin: 0;
  color: var(--bd-text);
}

/* Section title with icon */
.bd-profile-section__title {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Clinic location card */
.bd-clinic-location-card {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.bd-clinic-location-card__image {
  width: 120px;
  height: 90px;
  flex-shrink: 0;
  border-radius: 12px;
  overflow: hidden;
  background: var(--bd-sky-50);
  display: flex;
  align-items: center;
  justify-content: center;
}
.bd-clinic-location-card__image svg { width: 100%; height: 100%; }
.bd-clinic-location-card__info { flex: 1; min-width: 0; }
.bd-clinic-location-card__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: var(--bd-ink);
  margin-bottom: 6px;
}
.bd-clinic-location-card__details {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-text);
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.bd-clinic-location-card__details svg { margin-top: 2px; flex-shrink: 0; color: var(--bd-teal); }
.bd-map-link {
  color: var(--bd-teal);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.bd-map-link:hover { text-decoration: underline; }
.bd-clinic-location-card__region {
  display: flex;
  align-items: center;
  gap: 5px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-text);
}
.bd-clinic-location-card__region svg { color: var(--bd-teal); }

/* Booking options list */
.bd-booking-options {
  list-style: none;
  margin: 0 0 4px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bd-booking-options li {
  display: flex;
  align-items: center;
  gap: 9px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--bd-ink);
}
.bd-booking-options__dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.bd-booking-options__dot--green { background: #27ae60; }
.bd-booking-options__dot--blue  { background: var(--bd-teal); }
.bd-booking-options__dot--grey  { background: #bdc3c7; }

/* Sidebar doctor card (horizontal) */
.bd-sidebar-doctor-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--bd-border);
  text-decoration: none;
  transition: background .12s;
}
.bd-sidebar-doctor-card:first-of-type { border-top: none; padding-top: 0; }
.bd-sidebar-doctor-card:hover { opacity: .85; }
.bd-sidebar-doctor-card__body { min-width: 0; }
.bd-sidebar-doctor-card__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--bd-ink);
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bd-sidebar-doctor-card__spec {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--bd-text);
}

/* Tags section full-width */
.bd-tags-section { margin-top: 8px; }

.bd-tags-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 16px;
}

.bd-tags-col { display: flex; flex-direction: column; gap: 6px; }

.bd-tags-col__heading {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: var(--bd-text);
  margin-bottom: 2px;
}

/* Tag chip */
.bd-tag-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--bd-sky-50);
  border: 1px solid var(--bd-border);
  border-radius: 8px;
  padding: 4px 9px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--bd-ink);
  width: fit-content;
}
.bd-tag-chip--sky    { background: var(--bd-sky-100);  color: #1a5276; border-color: var(--bd-sky-200); }
.bd-tag-chip--mint   { background: var(--bd-mint-100); color: #1a7a4a; border-color: var(--bd-mint-200); }
.bd-tag-chip--yellow { background: #FFF8E7;            color: #7A4F00; border-color: #FFE09A; }
.bd-tag-chip--muted  { background: #F5F5F5;            color: #aaa;    border-color: #E8E8E8; }

/* Source attribution */
.bd-source-attr {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--bd-text);
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid var(--bd-border);
}
.bd-source-attr a { color: var(--bd-teal); text-decoration: none; font-weight: 600; }
.bd-source-attr a:hover { text-decoration: underline; }

/* Responsive overrides for doctor profile */
@media (max-width: 900px) {
  .bd-tags-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bd-profile-hero { padding: 28px 20px; gap: 20px; }
  .bd-profile-body { padding: 16px 0 0; }
}
@media (max-width: 600px) {
  .bd-profile-hero { flex-direction: column; align-items: center; text-align: center; padding: 24px 16px; }
  .bd-profile-hero__location-row { justify-content: center; }
  .bd-profile-hero__badges { justify-content: center; }
  .bd-clinic-location-card { flex-direction: column; }
  .bd-clinic-location-card__image { width: 100%; height: 120px; }
  .bd-tags-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bd-quick-strip { padding: 10px 16px; }
}

/* ═══════════════════════════════════════════════════════════
   Hospital Profile Page
   ═══════════════════════════════════════════════════════════ */

/* Hero */
.bd-hosp-profile { max-width: 1080px; margin: 0 auto; padding: 0 0 48px; font-family: 'Inter', sans-serif; }

.bd-hosp-breadcrumb {
  font-size: 12px;
  color: var(--bd-text);
  padding: 14px 28px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.bd-hosp-breadcrumb a { color: var(--bd-teal); text-decoration: none; }
.bd-hosp-breadcrumb a:hover { text-decoration: underline; }
.bd-hosp-breadcrumb__sep { color: var(--bd-border); }

.bd-hosp-hero {
  background: linear-gradient(135deg, #0d2d44 0%, #1a3f5c 40%, #1e5a7a 100%);
  padding: 40px 36px 36px;
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 32px;
  align-items: start;
  position: relative;
  overflow: hidden;
}
.bd-hosp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 55% 70% at 85% 60%, rgba(92,199,199,.14) 0%, transparent 65%),
    radial-gradient(ellipse 40% 50% at 10% 80%, rgba(42,111,138,.3) 0%, transparent 60%);
  pointer-events: none;
}
.bd-hosp-hero__building {
  position: absolute;
  bottom: 0;
  right: 320px;
  opacity: .35;
  pointer-events: none;
  user-select: none;
}

.bd-hosp-hero__content { position: relative; z-index: 1; }

.bd-hosp-hero__eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--bd-teal);
  text-transform: uppercase;
  margin-bottom: 8px;
}

.bd-hosp-hero__name {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 30px;
  font-weight: 800;
  color: #fff;
  margin: 0 0 12px;
  line-height: 1.2;
}

.bd-hosp-hero__badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }

.bd-hosp-hero__summary {
  font-size: 14px;
  color: rgba(255,255,255,.82);
  line-height: 1.7;
  margin: 0 0 20px;
  max-width: 600px;
}

.bd-hosp-hero__ctas { display: flex; gap: 10px; flex-wrap: wrap; }

.bd-hosp-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--bd-yellow);
  color: #5A3B00;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  padding: 10px 20px;
  border-radius: 8px;
  text-decoration: none;
  transition: filter .18s;
}
.bd-hosp-btn-primary:hover { filter: brightness(1.08); }

.bd-hosp-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(255,255,255,.1);
  color: #fff;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 600;
  font-size: 14px;
  padding: 10px 20px;
  border-radius: 8px;
  border: 1.5px solid rgba(255,255,255,.25);
  text-decoration: none;
  transition: background .18s;
}
.bd-hosp-btn-ghost:hover { background: rgba(255,255,255,.18); }

/* Hero right panel: emergency access */
.bd-hosp-emergency-panel {
  background: rgba(255,255,255,.1);
  border: 1.5px solid rgba(255,255,255,.2);
  border-radius: 14px;
  padding: 20px;
  position: relative;
  z-index: 1;
}
.bd-hosp-emergency-panel__title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.bd-hosp-check-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: rgba(255,255,255,.9);
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.bd-hosp-check-item:last-child { border-bottom: none; }
.bd-hosp-check-item__icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  flex-shrink: 0;
}
.bd-hosp-check-item__icon--yes { background: rgba(92,199,199,.3); color: var(--bd-teal); }
.bd-hosp-check-item__icon--no  { background: rgba(255,255,255,.1); color: rgba(255,255,255,.4); }

/* Action bar */
.bd-hosp-action-bar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--bd-border);
}
.bd-hosp-action-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 22px 16px;
  text-decoration: none;
  color: var(--bd-ink);
  border-right: 1px solid var(--bd-border);
  transition: background .15s;
}
.bd-hosp-action-card:last-child { border-right: none; }
.bd-hosp-action-card:hover { background: var(--bd-sky-50); }
.bd-hosp-action-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}
.bd-hosp-action-card__icon--directions { background: #EEF7FF; color: #1a5276; }
.bd-hosp-action-card__icon--phone      { background: #F0FBF7; color: #1a7a4a; }
.bd-hosp-action-card__icon--web        { background: #FFFDE7; color: #7A4F00; }
.bd-hosp-action-card__icon--emergency  { background: #FFF0F0; color: #7A2A1A; }
.bd-hosp-action-card__label {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: var(--bd-ink);
  text-align: center;
}
.bd-hosp-action-card__sub {
  font-size: 11px;
  color: var(--bd-text);
  text-align: center;
}

/* Info strip */
.bd-hosp-info-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: var(--bd-sky-50);
  border-bottom: 1px solid var(--bd-border);
}
.bd-hosp-info-item {
  padding: 16px 20px;
  border-right: 1px solid var(--bd-border);
}
.bd-hosp-info-item:last-child { border-right: none; }
.bd-hosp-info-item__label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--bd-text);
  margin-bottom: 4px;
}
.bd-hosp-info-item__value {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--bd-ink);
}

/* Body layout */
.bd-hosp-body {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 28px;
  padding: 28px 28px 0;
}

.bd-hosp-section {
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 12px;
  padding: 20px 22px;
  margin-bottom: 20px;
}
.bd-hosp-section__title {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: var(--bd-ink);
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 1.5px solid var(--bd-border);
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Stats row */
.bd-hosp-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 0;
}
.bd-hosp-stat {
  background: var(--bd-sky-50);
  border: 1px solid var(--bd-border);
  border-radius: 10px;
  padding: 14px 12px;
  text-align: center;
}
.bd-hosp-stat__value {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: var(--bd-ink);
  display: block;
}
.bd-hosp-stat__label {
  font-size: 11px;
  color: var(--bd-text);
  margin-top: 2px;
  display: block;
}

/* Modalities/imaging grid */
.bd-hosp-modality-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.bd-hosp-modality-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #FFF0F0;
  border: 1px solid var(--bd-peach-200);
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  color: #7A2A1A;
}

/* Services grid */
.bd-hosp-services-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.bd-hosp-service-item {
  background: var(--bd-sky-50);
  border: 1px solid var(--bd-border);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 13px;
  color: var(--bd-ink);
}

/* Doctors at hospital carousel */
.bd-hosp-doctor-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bd-hosp-doctor-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: var(--bd-sky-50);
  border: 1px solid var(--bd-border);
  border-radius: 10px;
  text-decoration: none;
  color: var(--bd-ink);
  transition: background .15s, border-color .15s;
}
.bd-hosp-doctor-item:hover { background: #EEF7FF; border-color: var(--bd-teal); }
.bd-hosp-doctor-item__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid currentColor;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  font-size: 14px;
  flex-shrink: 0;
}
.bd-hosp-doctor-item__name {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  margin-bottom: 2px;
}
.bd-hosp-doctor-item__meta {
  font-size: 11px;
  color: var(--bd-text);
}

/* Bottom 3-column section */
.bd-hosp-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 20px;
  padding: 0 28px 28px;
  margin-top: 8px;
}

/* Map block */
.bd-hosp-map-block {
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  border-radius: 12px;
  overflow: hidden;
}
.bd-hosp-map-placeholder {
  background: linear-gradient(135deg, #d4e8f7 0%, #c6dff0 100%);
  height: 160px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 36px;
}
.bd-hosp-map-footer {
  padding: 12px 16px;
}
.bd-hosp-map-footer__address {
  font-size: 12px;
  color: var(--bd-text);
  margin-bottom: 8px;
}
.bd-hosp-map-link {
  font-size: 12px;
  font-weight: 600;
  color: var(--bd-teal);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 4px;
}
.bd-hosp-map-link:hover { text-decoration: underline; }

/* Profile details list */
.bd-hosp-detail-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 8px 0;
  border-bottom: 1px solid var(--bd-border);
  font-size: 13px;
  gap: 10px;
}
.bd-hosp-detail-row:last-child { border-bottom: none; }
.bd-hosp-detail-row__key {
  color: var(--bd-text);
  font-size: 12px;
  flex-shrink: 0;
}
.bd-hosp-detail-row__val {
  color: var(--bd-ink);
  font-weight: 600;
  text-align: right;
}

/* Status indicator */
.bd-hosp-status-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 5px;
}
.bd-hosp-status-dot--verified { background: #1a7a4a; }
.bd-hosp-status-dot--pending  { background: #E0A800; }
.bd-hosp-status-dot--unknown  { background: #aaa; }

/* Hospital profile responsive */
@media (max-width: 1024px) {
  .bd-hosp-hero { grid-template-columns: 1fr 240px; }
  .bd-hosp-bottom { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 840px) {
  .bd-hosp-hero { grid-template-columns: 1fr; }
  .bd-hosp-hero__building { display: none; }
  .bd-hosp-emergency-panel { display: none; }
  .bd-hosp-action-bar { grid-template-columns: repeat(2, 1fr); }
  .bd-hosp-info-strip { grid-template-columns: repeat(2, 1fr); }
  .bd-hosp-body { grid-template-columns: 1fr; }
  .bd-hosp-bottom { grid-template-columns: 1fr; }
  .bd-hosp-stats { grid-template-columns: repeat(2, 1fr); }
  .bd-hosp-body { padding: 20px 16px 0; }
  .bd-hosp-bottom { padding: 0 16px 28px; }
}
@media (max-width: 560px) {
  .bd-hosp-hero { padding: 28px 20px 28px; }
  .bd-hosp-hero__name { font-size: 22px; }
  .bd-hosp-action-bar { grid-template-columns: repeat(2, 1fr); }
  .bd-hosp-services-grid { grid-template-columns: 1fr; }
}



/* ── BookDoctor UI polish v3.0.2 ───────────────────────────────────────── */
.bd-section-heading {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  margin: 34px 0 12px;
}
.bd-section-heading span {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--bd-border), transparent);
}
.bd-section-heading h2 {
  margin: 0;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  font-size: clamp(22px, 2vw, 30px);
  color: var(--bd-ink);
  letter-spacing: -0.02em;
  text-align: center;
}
.bd-section-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 18px;
}
.bd-section-topline p {
  margin: 0;
  color: var(--bd-text);
  font-size: 14px;
}
.bd-section-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  font-size: 14px;
  color: var(--bd-ink);
  text-decoration: none;
  border: 1px solid var(--bd-border);
  background: var(--bd-surface);
  border-radius: 999px;
  padding: 8px 12px;
  box-shadow: 0 3px 12px rgba(33, 58, 87, 0.06);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.bd-section-link:hover {
  transform: translateY(-1px);
  border-color: var(--bd-teal);
  box-shadow: 0 8px 22px rgba(33, 58, 87, 0.10);
}
.bd-trust-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 18px auto 26px;
}
.bd-trust-strip span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 7px 11px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--bd-border);
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  font-weight: 800;
  color: var(--bd-ink);
}
.bd-empty-state {
  grid-column: 1 / -1;
  border: 1px dashed var(--bd-border);
  background: rgba(255, 255, 255, 0.74);
  border-radius: var(--bd-radius-card);
  padding: 28px;
  text-align: center;
  color: var(--bd-text);
}
.bd-empty-state__icon { font-size: 30px; margin-bottom: 8px; }
.bd-empty-state h3 {
  margin: 0 0 6px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  color: var(--bd-ink);
}
.bd-empty-state p { margin: 0 auto; max-width: 520px; }
.bd-badge--booking, .bd-badge--verified {
  background: var(--bd-sky-50);
  border-color: var(--bd-sky-200);
}
.bd-source-note, .bd-profile-note {
  font-size: 12px;
  color: var(--bd-text);
}
.bd-source-note {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--bd-border);
}
.bd-coming-soon {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 800;
  font-family: 'Nunito Sans', sans-serif;
  background: var(--bd-sky-50);
  border: 1px solid var(--bd-border);
  color: var(--bd-text);
}
.bd-doctor-card, .bd-clinic-card, .bd-hospital-card, .bd-facility-card,
.bd-profile-section, .bd-booking-panel, .bd-hosp-section {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.bd-doctor-card:hover, .bd-clinic-card:hover, .bd-hospital-card:hover, .bd-facility-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(41, 88, 120, 0.11);
  border-color: var(--bd-sky-200);
}
@media (max-width: 640px) {
  .bd-section-heading { grid-template-columns: 1fr; gap: 8px; }
  .bd-section-heading span { display: none; }
  .bd-section-topline { align-items: stretch; flex-direction: column; }
  .bd-section-link { justify-content: center; }
  .bd-card-actions, .bd-doctor-card__actions, .bd-clinic-card__actions, .bd-facility-card__actions, .bd-result-card__footer > div {
    flex-direction: column;
  }
  .bd-card-actions .bd-btn, .bd-doctor-card__actions .bd-btn, .bd-clinic-card__actions .bd-btn, .bd-facility-card__actions .bd-btn, .bd-result-card__footer .bd-btn {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .bd-doctor-card, .bd-clinic-card, .bd-hospital-card, .bd-facility-card,
  .bd-profile-section, .bd-booking-panel, .bd-hosp-section, .bd-btn, .bd-section-link {
    transition: none !important;
    transform: none !important;
  }
  .bd-skeleton::after { animation: none !important; }
}


/* ── BookDoctor mobile-first/app-readiness v3.0.3 ─────────────────────────
   Goal: make the web directory feel more app-like on phones while preserving
   the desktop v3 layout. Mobile patterns follow large touch targets, drawer
   filters, sticky tools, safe-area spacing, and reduced-motion support.
   ------------------------------------------------------------------------- */

:root {
  --bd-mobile-nav-h: 68px;
  --bd-mobile-sticky-gap: env(safe-area-inset-bottom, 0px);
}

/* Comfortable tap targets across web + future app wrapper */
.bd-wrap a,
.bd-wrap button,
.bd-wrap input,
.bd-wrap select,
.bd-wrap textarea {
  -webkit-tap-highlight-color: rgba(92, 199, 199, 0.18);
}

.bd-btn,
.bd-btn-search,
.bd-tab,
.bd-page-btn,
.bd-clear-filters,
.bd-feature-card__cta,
.bd-section-link,
.bd-hosp-btn-primary,
.bd-hosp-btn-secondary,
.bd-hosp-action-card,
.bd-action-btn,
.bd-quick-pill {
  min-height: 44px;
}

.bd-btn--sm {
  min-height: 38px;
}

.bd-search-form-mobile {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  max-width: 680px;
}

.bd-search-form-mobile .bd-search-box {
  flex: 1;
  min-width: 280px;
}

.bd-search-helper {
  margin: 10px 0 0;
  font-size: 13px;
  color: var(--bd-text);
  max-width: 680px;
}

.bd-results-col {
  min-width: 0;
}

.bd-result-card__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.bd-mobile-search-bar,
.bd-mobile-bottom-nav,
.bd-mobile-filter-close,
.bd-filter-backdrop {
  display: none;
}

/* Horizontal scroll tabs are useful before the full mobile breakpoint too. */
@media (max-width: 900px) {
  .bd-tabs {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    gap: 8px;
    border-bottom: none;
    padding: 2px 4px 8px;
    margin-left: -4px;
    margin-right: -4px;
    scroll-snap-type: x proximity;
  }

  .bd-tabs::-webkit-scrollbar {
    display: none;
  }

  .bd-tab {
    flex: 0 0 auto;
    scroll-snap-align: center;
    border: 1px solid var(--bd-border);
    border-radius: 999px;
    background: var(--bd-surface);
    padding: 10px 16px;
    min-width: max-content;
    margin-bottom: 0;
    box-shadow: 0 4px 14px rgba(41,88,120,0.06);
  }

  .bd-tab.is-active {
    color: var(--bd-ink);
    border-color: var(--bd-teal);
    background: var(--bd-sky-50);
  }
}

@media (max-width: 760px) {
  body.bd-filter-open {
    overflow: hidden;
  }

  .bd-wrap {
    padding-left: 12px;
    padding-right: 12px;
    padding-bottom: calc(var(--bd-mobile-nav-h) + 20px + var(--bd-mobile-sticky-gap));
  }

  .bd-hero {
    padding: 24px 16px 18px;
    border-radius: 0 0 24px 24px;
  }

  .bd-hero__tag {
    font-size: 12px;
  }

  .bd-hero h1,
  .bd-h1 {
    font-size: clamp(30px, 9vw, 42px);
    line-height: 1.05;
  }

  .bd-hero p {
    font-size: 15px;
    line-height: 1.55;
  }

  .bd-search-box {
    width: 100%;
    border-radius: 20px;
    padding: 8px;
    gap: 6px;
    flex-wrap: wrap;  /* stack specialty / city / button on narrow screens */
  }

  .bd-search-box input,
  .bd-search-box select {
    min-height: 48px;
    font-size: 16px; /* avoids iOS zoom */
    flex: 1 1 100%;
    min-width: 0 !important;
    max-width: none !important;
    width: 100%;
    padding: 0 12px;
    border-radius: 14px;
    background: var(--bd-sky-50);
  }

  .bd-search-divider {
    display: none;
  }

  .bd-btn-search {
    width: 100%;
    min-height: 50px;
    border-radius: 16px;
    font-size: 15px;
  }

  .bd-trust-strip {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding: 0 2px 6px;
    -webkit-overflow-scrolling: touch;
  }

  .bd-trust-strip span {
    flex: 0 0 auto;
  }

  .bd-section {
    margin-top: 22px;
  }

  .bd-section-heading {
    margin: 28px 0 12px;
  }

  .bd-section-heading h2 {
    font-size: 22px;
  }

  .bd-section-topline {
    align-items: flex-start;
    gap: 10px;
  }

  .bd-section-topline p {
    font-size: 13px;
  }

  .bd-section-link {
    width: 100%;
    justify-content: center;
    min-height: 44px;
  }

  .bd-doctor-card,
  .bd-clinic-card,
  .bd-facility-card,
  .bd-hospital-card,
  .bd-feature-card,
  .bd-result-card {
    border-radius: 22px;
    padding: 16px;
  }

  .bd-doctor-card__actions,
  .bd-clinic-card__actions,
  .bd-facility-card__actions,
  .bd-hospital-card__actions,
  .bd-card-actions,
  .bd-result-card__actions {
    display: grid !important;
    grid-template-columns: 1fr;
    width: 100%;
    gap: 8px;
  }

  .bd-doctor-card__actions .bd-btn,
  .bd-clinic-card__actions .bd-btn,
  .bd-facility-card__actions .bd-btn,
  .bd-hospital-card__actions .bd-btn,
  .bd-result-card__actions .bd-btn {
    width: 100%;
    min-height: 46px;
  }

  .bd-badges,
  .bd-badge-row {
    gap: 6px;
  }

  .bd-badge {
    min-height: 30px;
    align-items: center;
  }

  .bd-search-hero {
    margin-left: -12px;
    margin-right: -12px;
    padding: 18px 12px 14px;
    border-radius: 0 0 22px 22px;
    position: sticky;
    top: 0;
    z-index: 65;
    box-shadow: 0 8px 24px rgba(41,88,120,0.08);
  }

  .bd-search-form-mobile,
  .bd-search-form-mobile .bd-search-box {
    width: 100%;
    max-width: none;
  }

  .bd-search-helper,
  .bd-breadcrumb {
    display: none;
  }

  .bd-mobile-search-bar {
    display: flex;
    position: sticky;
    top: 118px;
    z-index: 64;
    gap: 8px;
    padding: 8px 0;
    background: linear-gradient(180deg, var(--bd-bg), rgba(247,251,253,0.88));
    backdrop-filter: blur(10px);
  }

  .bd-mobile-filter-btn,
  .bd-mobile-scroll-top {
    min-height: 44px;
    border-radius: 999px;
    border: 1px solid var(--bd-border);
    background: var(--bd-surface);
    color: var(--bd-ink);
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 800;
    padding: 0 14px;
    box-shadow: 0 6px 18px rgba(41,88,120,0.08);
  }

  .bd-mobile-filter-btn {
    flex: 1;
    text-align: left;
  }

  .bd-mobile-filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    margin-left: 6px;
    border-radius: 999px;
    background: var(--bd-yellow);
    color: var(--bd-ink);
    font-size: 12px;
  }

  .bd-mobile-filter-count:empty {
    display: none;
  }

  .bd-filter-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(33,58,87,0.34);
    z-index: 998;
  }

  .bd-filter-backdrop[hidden] {
    display: none;
  }

  .bd-sidebar {
    position: fixed;
    z-index: 999;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    max-height: min(82vh, 680px);
    overflow-y: auto;
    border-radius: 24px 24px 0 0;
    border-left: 0;
    border-right: 0;
    padding: 18px 16px calc(24px + var(--bd-mobile-sticky-gap));
    transform: translateY(108%);
    transition: transform .22s ease;
    box-shadow: 0 -16px 48px rgba(33,58,87,0.24);
  }

  body.bd-filter-open .bd-sidebar {
    transform: translateY(0);
  }

  .bd-mobile-filter-close {
    display: flex;
    position: absolute;
    right: 14px;
    top: 12px;
    width: 44px;
    height: 44px;
    border: 1px solid var(--bd-border);
    border-radius: 999px;
    background: var(--bd-sky-50);
    color: var(--bd-ink);
    align-items: center;
    justify-content: center;
    font-size: 24px;
    line-height: 1;
  }

  .bd-sidebar__heading {
    padding-right: 52px;
    font-size: 18px;
    min-height: 44px;
  }

  .bd-sidebar__group-title {
    min-height: 44px;
    font-size: 15px;
  }

  .bd-check-label {
    min-height: 44px;
    padding: 8px 10px;
    font-size: 15px;
  }

  .bd-check-label input {
    width: 22px;
    height: 22px;
  }

  .bd-clear-filters {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--bd-border);
    border-radius: 14px;
    background: var(--bd-sky-50);
    margin-top: 12px;
  }

  .bd-results-header {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-end;
    margin: 12px 0;
  }

  .bd-results-header__count {
    font-size: 15px;
  }

  .bd-results-header__showing {
    text-align: right;
    font-size: 11px;
  }

  .bd-result-card {
    flex-direction: row;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 12px;
  }

  .bd-result-card .bd-avatar {
    width: 52px !important;
    height: 52px !important;
    font-size: 18px !important;
  }

  .bd-result-card__name {
    font-size: 17px;
    line-height: 1.25;
  }

  .bd-result-card__footer {
    align-items: stretch;
    margin-top: 10px;
  }

  .bd-page-btn {
    min-width: 44px;
    height: 44px;
    border-radius: 12px;
  }

  .bd-mobile-bottom-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: max(10px, env(safe-area-inset-bottom));
    height: var(--bd-mobile-nav-h);
    z-index: 990;
    background: rgba(255,255,255,0.94);
    border: 1px solid var(--bd-border);
    border-radius: 24px;
    box-shadow: 0 12px 34px rgba(33,58,87,0.18);
    backdrop-filter: blur(14px);
    overflow: hidden;
  }

  .bd-mobile-bottom-nav a {
    display: flex;
    min-width: 0;
    min-height: 56px;
    flex-direction: column;
    gap: 3px;
    align-items: center;
    justify-content: center;
    color: var(--bd-text);
    text-decoration: none;
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 800;
    font-size: 11px;
  }

  .bd-mobile-bottom-nav span {
    font-size: 18px;
    line-height: 1;
  }

  .bd-profile,
  .bd-hosp-profile {
    padding-bottom: calc(var(--bd-mobile-nav-h) + 36px + var(--bd-mobile-sticky-gap));
  }

  .bd-profile-hero,
  .bd-hosp-hero {
    border-radius: 0 0 24px 24px;
    padding: 22px 16px;
  }

  .bd-profile-hero {
    flex-direction: column;
  }

  .bd-profile-hero .bd-avatar {
    width: 86px;
    height: 86px;
    font-size: 30px;
  }

  .bd-profile-hero__name,
  .bd-hosp-hero__title {
    font-size: clamp(25px, 7vw, 34px);
    line-height: 1.08;
  }

  .bd-profile-body,
  .bd-hosp-body,
  .bd-hosp-bottom {
    padding-left: 0;
    padding-right: 0;
  }

  .bd-profile-section,
  .bd-booking-panel,
  .bd-hosp-section,
  .bd-emergency-panel {
    border-radius: 20px;
    padding: 16px;
  }

  .bd-quick-strip {
    padding: 10px 0;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }

  .bd-quick-pill {
    flex: 0 0 auto;
    min-height: 40px;
  }

  .bd-tags-grid,
  .bd-tags-block,
  .bd-action-row,
  .bd-stats-row,
  .bd-hosp-action-grid,
  .bd-hosp-info-strip,
  .bd-hosp-bottom {
    grid-template-columns: 1fr !important;
  }

  .bd-hosp-action-card {
    min-height: 70px;
  }

  .bd-profile-note {
    margin-left: 12px;
    margin-right: 12px;
  }

  .bd-mobile-profile-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(var(--bd-mobile-nav-h) + 18px + var(--bd-mobile-sticky-gap));
    z-index: 989;
    padding: 8px;
    background: rgba(255,255,255,0.95);
    border: 1px solid var(--bd-border);
    border-radius: 20px;
    box-shadow: 0 12px 34px rgba(33,58,87,0.16);
    backdrop-filter: blur(14px);
  }

  .bd-mobile-profile-actions a {
    min-height: 46px;
    border-radius: 14px;
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 800;
    font-size: 13px;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .bd-mobile-profile-actions__primary {
    background: var(--bd-yellow);
    color: var(--bd-ink);
    box-shadow: 0 8px 18px rgba(246,200,90,0.26);
  }

  .bd-mobile-profile-actions__secondary {
    background: var(--bd-sky-50);
    border: 1px solid var(--bd-border);
    color: var(--bd-ink);
  }
}

@media (min-width: 761px) {
  .bd-mobile-profile-actions {
    display: none;
  }
}

@media (max-width: 380px) {
  .bd-mobile-bottom-nav a {
    font-size: 10px;
  }

  .bd-mobile-bottom-nav span {
    font-size: 16px;
  }

  .bd-result-card {
    flex-direction: column;
  }

  .bd-result-card .bd-avatar {
    width: 58px !important;
    height: 58px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bd-sidebar,
  .bd-tabs,
  .bd-tab,
  .bd-mobile-bottom-nav,
  .bd-mobile-profile-actions {
    transition: none !important;
    scroll-behavior: auto !important;
  }
}


/* ── v3.0.4 Homepage order + caution notices ───────────────────────────── */
.bd-section[hidden],
.bd-section--empty {
  display: none !important;
}

.bd-section-link--priority {
  background: var(--bd-yellow);
  border-color: rgba(33,58,87,0.10);
  box-shadow: 0 8px 20px rgba(246,200,90,0.26);
}

.bd-caution-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid var(--bd-border);
  background: rgba(255,255,255,0.82);
  color: var(--bd-text);
  font-size: 13px;
  line-height: 1.45;
  box-shadow: 0 6px 18px rgba(41,88,120,0.05);
}

.bd-caution-note::before {
  content: "ⓘ";
  flex: 0 0 auto;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  color: var(--bd-ink);
}

.bd-caution-note strong {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 800;
  color: var(--bd-ink);
}

.bd-caution-note--walkin {
  background: linear-gradient(135deg, #FFF8E7, rgba(255,255,255,0.92));
  border-color: rgba(246,200,90,0.45);
}

.bd-caution-note--emergency {
  background: linear-gradient(135deg, var(--bd-peach), rgba(255,255,255,0.92));
  border-color: var(--bd-peach-200);
}

.bd-caution-note--facility {
  background: linear-gradient(135deg, var(--bd-sky-50), rgba(255,255,255,0.92));
  border-color: var(--bd-sky-200);
}

@media (max-width: 640px) {
  .bd-caution-note {
    margin-left: 0;
    margin-right: 0;
    padding: 12px;
    font-size: 12.5px;
    border-radius: 14px;
  }
}

/* ── v3.0.2 accessibility/search refinements ───────────────────────────── */
.bd-search-box input::placeholder,
.bd-search-box textarea::placeholder {
  color: #4D6073;
  opacity: 1;
}

.bd-search-box {
  max-width: 100%;
}

.bd-quick-searches {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.bd-quick-searches a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 13px;
  border-radius: 999px;
  background: var(--bd-surface);
  border: 1px solid var(--bd-border);
  color: var(--bd-ink);
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
}

.bd-quick-searches a:hover {
  background: var(--bd-teal);
  border-color: var(--bd-teal);
  color: #fff;
}

.bd-focus-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

@media (max-width: 600px) {
  .bd-quick-searches { gap: 6px; }
  .bd-quick-searches a { font-size: 13px; padding: 7px 11px; min-height: 38px; }
  .bd-result-card__footer > div { width: 100%; flex-wrap: wrap; }
  .bd-result-card__footer .bd-btn { flex: 1 1 140px; min-height: 42px; }
}
