/* Bootstrap-independent public-site fallback.
   IMPORTANT: this file is loaded before Bootstrap. Keep fallback layout rules
   scoped to the public landing components so they never override Bootstrap's
   global .container/.row/.col-* system when the CDN is available. */

/* Safe base reset for the public site only. */
.landing-topbar,
.clinic-site,
.landing-footer { box-sizing: border-box; }

.landing-topbar *,
.clinic-site *,
.landing-footer * { box-sizing: border-box; }

/* Bootstrap-compatible public layout fallback.
   Use Flexbox so this remains compatible whether Bootstrap loads or not. */
.clinic-site .container,
.landing-topbar .container,
.landing-footer .container {
  width: min(100% - 2rem, 1140px);
  margin-inline: auto;
}

.clinic-site .row,
.landing-footer .row {
  display: flex;
  flex-wrap: wrap;
  margin-right: 0;
  margin-left: 0;
  gap: 1.5rem;
}

.clinic-site .row > [class*="col-"],
.landing-footer .row > [class*="col-"] {
  min-width: 0;
  box-sizing: border-box;
  flex: 0 0 auto;
}

.clinic-site .col-6 { width: calc((100% - 1.5rem) / 2); }
.clinic-site .col-12 { width: 100%; }
.clinic-site .col-md-6 { width: calc((100% - 1.5rem) / 2); }
.clinic-site .col-md-4 { width: calc((100% - 3rem) / 3); }
.clinic-site .col-lg-3 { width: calc((100% - 4.5rem) / 4); }
.clinic-site .col-lg-4 { width: calc((100% - 3rem) / 3); }
.clinic-site .col-lg-5 { width: calc((100% - 3rem) * .4166667); }
.clinic-site .col-lg-7 { width: calc((100% - 3rem) * .5833333); }

.clinic-site .g-0 { gap: 0; }
.clinic-site .g-2 { gap: .5rem; }
.clinic-site .g-4 { gap: 1.5rem; }
.clinic-site .g-5 { gap: 3rem; }

.clinic-site .d-flex { display: flex !important; }
.clinic-site .flex-wrap { flex-wrap: wrap; }
.clinic-site .justify-content-between { justify-content: space-between; }
.clinic-site .align-items-center { align-items: center; }
.clinic-site .align-items-end { align-items: flex-end; }
.clinic-site .gap-2 { gap: .5rem; }
.clinic-site .gap-3 { gap: 1rem; }
.clinic-site .gap-5 { gap: 3rem; }
.clinic-site .mt-3 { margin-top: 1rem !important; }
.clinic-site .mt-4 { margin-top: 1.5rem !important; }
.clinic-site .py-5 { padding-block: 3rem !important; }
.clinic-site .mb-0 { margin-bottom: 0 !important; }
.clinic-site .small { font-size: .875em; }
.clinic-site .text-muted { color: #6c757d !important; }
.clinic-site .text-white { color: #fff !important; }
.clinic-site .text-white-50 { color: rgba(255,255,255,.5) !important; }
.clinic-site .text-decoration-none { text-decoration: none !important; }

/* Mobile navigation fallback. */
.landing-topbar { width: 100%; }
.landing-topbar .container {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
}
.public-mobile-menu { position: relative; }
.public-mobile-menu .dropdown-menu {
  position: absolute;
  top: calc(100% + .5rem);
  right: 0;
  min-width: 210px;
  margin: 0;
  padding: .5rem;
  background: #fff;
  border: 1px solid #dfeceb;
  border-radius: .75rem;
  box-shadow: 0 14px 35px rgba(0,0,0,.18);
  z-index: 1000;
}
.public-mobile-menu .dropdown-menu.show { display: block; }
.public-mobile-menu .dropdown-item {
  display: block;
  padding: .6rem .75rem;
  border-radius: .5rem;
  color: #173e3a;
  text-decoration: none;
}
.public-mobile-menu .dropdown-item:hover { background: #eef8f6; color: #08756d; }

@media (max-width: 991.98px) {
  .clinic-site .col-lg-3,
  .clinic-site .col-lg-4,
  .clinic-site .col-lg-5,
  .clinic-site .col-lg-7 { width: 100%; }
  .clinic-site .g-5 { gap: 1.5rem; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .clinic-site .col-md-6 { width: calc((100% - 1.5rem) / 2); }
  .clinic-site .col-md-4 { width: calc((100% - 3rem) / 3); }
}

@media (max-width: 767.98px) {
  .clinic-site .container,
  .landing-topbar .container,
  .landing-footer .container {
    width: min(100% - 1.25rem, 720px);
  }

  .clinic-site .row,
  .landing-footer .row { gap: 1rem; }

  .clinic-site .col-6,
  .clinic-site .col-md-6,
  .clinic-site .col-md-4 { width: 100%; }

  .landing-topbar .container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .landing-topbar .container > .d-flex {
    grid-column: 1 / -1;
  }

  .landing-topbar .container > .d-flex .btn { flex: 1; }

  .landing-topbar { padding: .7rem 0; }
  .landing-topbar .brand { min-width: 0; }
  .landing-topbar .brand img {
    max-width: 150px;
    object-fit: contain;
  }
  .landing-topbar .container > .d-flex { gap: .5rem; }
}

@media (min-width: 768px) {
  .clinic-site .d-md-none { display: none !important; }
  .clinic-site .d-md-block { display: block !important; }
}
