/* ==========================================================================
   bmb-bridge.css — Theme layer for the JS renderer's `bmb-*` class hooks
   --------------------------------------------------------------------------
   The renderer (assets/js/renderer.js) emits markup with `bmb-*` classes.
   This file gives those hooks the BookMyBeauty luxury treatment using the
   design tokens from base.css. Bootstrap handles grid/collapse/modal
   mechanics; this file handles brand visuals only.
   Load order: bootstrap -> base -> layout -> components -> home -> pages
               -> responsive -> bmb-bridge.css (this file, last).
   ========================================================================== */

/* ---- Brand Bootstrap overrides (gold buttons, dark cards/forms) -------- */
.btn-primary {
  --bs-btn-bg: var(--gold);
  --bs-btn-border-color: var(--gold);
  --bs-btn-hover-bg: var(--gold-light);
  --bs-btn-hover-border-color: var(--gold-light);
  --bs-btn-active-bg: var(--gold-dark);
  --bs-btn-active-border-color: var(--gold-dark);
  --bs-btn-color: var(--ink);
  --bs-btn-hover-color: var(--ink);
  --bs-btn-active-color: var(--ink);
  --bs-btn-disabled-bg: var(--gold-dark);
  --bs-btn-disabled-border-color: var(--gold-dark);
  font-weight: 600;
  letter-spacing: .06em;
  border-radius: var(--radius-pill);
  padding: .8rem 1.9rem;
  text-transform: uppercase;
  font-size: .85rem;
}
.btn-outline-primary {
  --bs-btn-color: var(--gold-dark);
  --bs-btn-border-color: var(--gold);
  --bs-btn-hover-bg: var(--gold);
  --bs-btn-hover-border-color: var(--gold);
  --bs-btn-hover-color: var(--ink);
  --bs-btn-active-bg: var(--gold);
  --bs-btn-active-border-color: var(--gold);
  --bs-btn-active-color: var(--ink);
  font-weight: 600;
  letter-spacing: .06em;
  border-radius: var(--radius-pill);
  padding: .7rem 1.7rem;
  text-transform: uppercase;
  font-size: .82rem;
}
.btn-outline-light {
  border-radius: var(--radius-pill);
  padding: .8rem 1.9rem;
  text-transform: uppercase;
  font-size: .85rem;
  letter-spacing: .06em;
  font-weight: 600;
}
.card {
  --bs-card-bg: var(--charcoal-2);
  --bs-card-border-color: var(--line-soft);
  --bs-card-color: var(--cream);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.card-title { color: var(--cream); font-family: var(--font-serif); }
.card-text { color: var(--muted); }
.form-control, .form-select {
  background-color: var(--charcoal-3);
  border: 1px solid var(--line-soft);
  color: var(--cream);
  border-radius: var(--radius-sm);
}
.form-control:focus, .form-select:focus {
  background-color: var(--charcoal-3);
  border-color: var(--gold);
  color: var(--cream);
  box-shadow: 0 0 0 .2rem rgba(201, 162, 75, .2);
}
.form-control::placeholder { color: var(--muted-dark); }
.form-label { color: var(--cream-dim); font-size: .78rem; letter-spacing: .12em; }

/* ---- Dark components keep light text via scoped variables.
   Only the header and footer stay dark — every page section is light. ----- */
.bmb-navbar, .bmb-footer {
  --cream: #f4ecdd;
  --cream-dim: #ded2ba;
  --muted: #c9b797;
  --muted-dark: #a08b6d;
  --line-soft: rgba(244, 236, 221, .14);
}

/* ---- Header ------------------------------------------------------------ */
.bmb-navbar {
  /* Brand red (user spec: rgb(179 18 23)); matches the header logo bg exactly
     so the logo blends seamlessly into the bar */
  background: rgb(179, 18, 23);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
  padding: .9rem 0;
  position: sticky;
  top: 0;
  z-index: 1030;
}
.bmb-brand { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; }
.bmb-logo { height: 54px; width: auto; border-radius: 0; display: block; }
.bmb-footer-brand .bmb-logo { height: 64px; }
.bmb-brand-text {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  color: var(--cream);
  letter-spacing: .02em;
}
.bmb-nav-list .nav-link {
  color: var(--cream-dim);
  font-size: .82rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin: 0 .35rem;
  position: relative;
  padding: .5rem .2rem;
}
.bmb-nav-list .nav-link::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--speed) var(--ease);
}
.bmb-nav-list .nav-link:hover, .bmb-nav-list .nav-link.active { color: var(--gold-light); }
.bmb-nav-list .nav-link:hover::after, .bmb-nav-list .nav-link.active::after { transform: scaleX(1); }
.bmb-nav-cta { margin-left: 1rem; white-space: nowrap; }
.bmb-navbar .navbar-toggler { border-color: var(--line); }
.bmb-navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23c9a24b' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
@media (max-width: 991.98px) {
  .bmb-nav-cta { margin: .75rem 0 0; }
  #bmbNavbar {
    background: var(--charcoal-2);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1rem 1.25rem;
    margin-top: .75rem;
  }
}

/* ---- Hero -------------------------------------------------------------- */
.bmb-hero {
  position: relative;
  min-height: calc(100vh - 76px);
  display: flex;
  align-items: center;
  padding: 5rem 0;
  background: #faf6ef url("../img/hero/hero-bg.svg") center/cover no-repeat;
  overflow: hidden;
}
.bmb-hero::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(55% 45% at 82% 18%, rgba(201, 162, 75, .12), transparent 70%),
    radial-gradient(45% 40% at 8% 92%, rgba(201, 162, 75, .08), transparent 70%);
}
.bmb-hero .container { position: relative; z-index: 1; }
.bmb-kicker {
  color: var(--gold-dark);
  font-size: .78rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  margin-bottom: 1.1rem;
  font-weight: 600;
}
.bmb-hero-title {
  font-size: clamp(2.2rem, 4.4vw, 4rem);
  line-height: 1.08;
  margin-bottom: 1.25rem;
  color: var(--cream);
}
.bmb-hero-sub { color: var(--cream-dim); font-size: 1.08rem; max-width: 34rem; margin-bottom: 2rem; }
.bmb-hero-ctas { display: flex; gap: 1rem; flex-wrap: wrap; }
.bmb-phone-wrap { position: relative; display: flex; justify-content: center; }
.bmb-promo-badge {
  position: absolute;
  top: -14px; z-index: 2;
  background: linear-gradient(135deg, var(--gold), var(--gold-light));
  color: var(--ink);
  font-size: .75rem; font-weight: 700; letter-spacing: .28em;
  padding: .55rem 1.3rem .55rem 1.55rem;
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-gold);
}
.bmb-phone {
  position: relative;
  width: min(300px, 72vw);
  border-radius: 2.6rem;
  border: 3px solid var(--gold);
  overflow: hidden;
  box-shadow: var(--shadow-lg), 0 0 70px rgba(201,162,75,.22);
  background: #2a0603;
  --cream: #f4ecdd;
  --cream-dim: #ded2ba;
  --muted: #c9b797;
}
.bmb-phone-img { display: block; width: 100%; }
.bmb-phone-ui { padding: 1rem 1.1rem 1.4rem; text-align: center; }
.bmb-phone-tagline { font-family: var(--font-serif); font-style: italic; color: var(--cream); margin-bottom: .2rem; }
.bmb-phone-location { color: var(--muted); font-size: .8rem; margin-bottom: .8rem; }
.bmb-phone-search { border-radius: var(--radius-pill); font-size: .82rem; text-align: center; margin-bottom: .9rem; color: #2f2317; }
.bmb-phone-search::placeholder { color: #8d7d68; }
.bmb-chip-row { list-style: none; padding: 0; margin: 0; display: flex; gap: .5rem; justify-content: center; }
.bmb-chip {
  font-size: .72rem; letter-spacing: .08em;
  color: var(--gold-light);
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  padding: .3rem .8rem;
}
@media (max-width: 991.98px) {
  .bmb-hero { min-height: auto; padding: 4rem 0; text-align: center; }
  .bmb-hero-sub { margin-inline: auto; }
  .bmb-hero-ctas { justify-content: center; }
  .bmb-phone-wrap { display: none; }
}

/* ---- Sections ---------------------------------------------------------- */
.bmb-section { padding: 5.5rem 0; }
.bmb-section:nth-of-type(even) { background: rgba(201, 162, 75, .06); }
.bmb-section-head { text-align: center; max-width: 46rem; margin: 0 auto 3rem; }
.bmb-section-title { font-size: clamp(1.8rem, 3.4vw, 2.7rem); margin-bottom: .8rem; }
.bmb-section-sub { color: var(--muted); font-size: 1.05rem; }
.bmb-section-more { text-align: center; margin-top: 2.5rem; }
.bmb-empty {
  text-align: center;
  border: 1px dashed var(--line);
  border-radius: var(--radius-lg);
  padding: 3rem 1.5rem;
  color: var(--muted);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.15rem;
  background: #ffffff;
}

/* ---- Service cards ----------------------------------------------------- */
.bmb-service-card .card { height: 100%; transition: transform var(--speed) var(--ease), box-shadow var(--speed) var(--ease); }
.bmb-service-card .card:hover { transform: translateY(-6px); box-shadow: var(--shadow); border-color: var(--line); }
.bmb-card-media img { width: 100%; height: 130px; object-fit: cover; }
.bmb-service-card .card-body { padding: .9rem 1rem 1.1rem; }
.bmb-card-badges { display: flex; gap: .45rem; flex-wrap: wrap; margin-bottom: .8rem; }
.bmb-tag, .bmb-cat-badge { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; border-radius: var(--radius-pill); padding: .28rem .75rem; }
.bmb-tag { background: rgba(201,162,75,.16); color: var(--gold-dark); border: 1px solid var(--line); }
.bmb-cat-badge { background: var(--charcoal-3); color: var(--muted); border: 1px solid var(--line-soft); }
.bmb-card-title { font-size: 1.1rem; margin-bottom: .4rem; }
.bmb-card-text { font-size: .88rem; }
.bmb-card-meta { display: flex; align-items: baseline; justify-content: space-between; margin: 1rem 0 1.1rem; padding-top: 1rem; border-top: 1px solid var(--line-soft); }
.bmb-price { font-family: var(--font-serif); font-size: 1.5rem; color: var(--gold-dark); }
.bmb-duration { color: var(--muted); font-size: .82rem; letter-spacing: .06em; }
.bmb-card-cta { width: 100%; }

/* ---- Parent service cards with expandable sub-services ------------------ */
.bmb-service-link { display: block; height: 100%; color: inherit; text-decoration: none; }
.bmb-service-link:hover { color: inherit; }
.bmb-parent-card { transition: box-shadow var(--speed) var(--ease); }
.bmb-parent-card.is-open { box-shadow: var(--shadow); border-color: var(--line); }
.bmb-parent-toggle {
  display: flex; align-items: center; justify-content: space-between;
  gap: .8rem; width: 100%;
  background: none; border: 0; padding: 0;
  text-align: left; cursor: pointer;
}
.bmb-parent-toggle:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: var(--radius-sm); }
.bmb-parent-titles { display: flex; flex-direction: column; gap: .15rem; }
.bmb-parent-heading { margin: 0; }
.bmb-parent-toggle .bmb-card-title { margin: 0; }
.bmb-sub-count {
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold-dark); font-weight: 600;
}
.bmb-chevron {
  flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid var(--line); position: relative;
  transition: transform .25s var(--ease), background .25s;
}
.bmb-chevron::after {
  content: ""; position: absolute; left: 11px; top: 12px;
  width: 10px; height: 10px;
  border-right: 2px solid var(--gold-dark); border-bottom: 2px solid var(--gold-dark);
  transform: rotate(45deg);
}
.bmb-parent-card.is-open .bmb-chevron { transform: rotate(180deg); background: rgba(201, 162, 75, .12); }
.bmb-subservices {
  display: none; list-style: none;
  margin: 1rem 0 0; padding: 1rem 0 0;
  border-top: 1px solid var(--line-soft);
}
.bmb-subservice { padding: .65rem 0; border-bottom: 1px dashed var(--line-soft); display: flex; gap: .8rem; align-items: flex-start; }
.bmb-subservice:last-child { border-bottom: 0; padding-bottom: 0; }
.bmb-subservice-thumb { flex: 0 0 64px; width: 64px; height: 64px; border-radius: var(--radius-sm); overflow: hidden; background: var(--charcoal-3); border: 1px solid var(--line-soft); }
.bmb-subservice-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bmb-subservice-body { flex: 1 1 auto; min-width: 0; }
.bmb-subservice-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.bmb-subservice-head h3 { margin: 0; font-size: .93rem; font-weight: 600; color: var(--cream); }
.bmb-subservice p { margin: .25rem 0 0; font-size: .85rem; color: var(--muted); }
.bmb-gender {
  flex: 0 0 auto; font-size: .64rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  border-radius: var(--radius-pill); padding: .22rem .65rem; white-space: nowrap;
}
.bmb-gender-male { background: rgba(59, 110, 180, .12); color: #3b6eb4; border: 1px solid rgba(59, 110, 180, .35); }
.bmb-gender-female { background: rgba(190, 60, 110, .1); color: #b8476f; border: 1px solid rgba(190, 60, 110, .3); }
.bmb-gender-unisex { background: rgba(201, 162, 75, .14); color: var(--gold-dark); border: 1px solid var(--line); }

/* ---- Heritage ---------------------------------------------------------- */
.bmb-heritage .bmb-section-title { margin-bottom: 1.5rem; }
.bmb-quote {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(1.15rem, 2.2vw, 1.5rem);
  color: var(--cream-dim);
  border: none;
  padding: 0 1rem;
  margin: 0 auto 3.5rem;
  max-width: 52rem;
  position: relative;
}
.bmb-quote::before {
  content: "\201C";
  display: block;
  font-size: 3.5rem;
  color: var(--gold);
  line-height: 1;
  margin-bottom: .5rem;
}
.bmb-feature-row { margin-top: 1rem; }
.bmb-feature {
  text-align: center;
  background: var(--charcoal-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  padding: 2.2rem 1.6rem;
  height: 100%;
  transition: border-color var(--speed) var(--ease), transform var(--speed) var(--ease);
}
.bmb-feature:hover { border-color: var(--line); transform: translateY(-4px); }
.bmb-feature-icon { width: 64px; height: 64px; margin-bottom: 1.1rem; }
.bmb-feature h3 { font-size: 1.3rem; margin-bottom: .6rem; color: var(--gold-dark); }
.bmb-feature p { color: var(--muted); font-size: .95rem; margin: 0; }

/* ---- Offers ------------------------------------------------------------ */
.bmb-offer-card .card-body { padding: 1.4rem; }
.bmb-offer-card h3 { font-size: 1.3rem; }
.bmb-offer-img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius) 0 0 var(--radius); min-height: 150px; }
.bmb-offer-meta { display: flex; align-items: center; gap: .8rem; margin-top: 1rem; flex-wrap: wrap; }
.bmb-offer-code {
  font-weight: 700; letter-spacing: .18em; font-size: .8rem;
  color: var(--ink); background: linear-gradient(135deg, var(--gold), var(--gold-light));
  border-radius: var(--radius-sm); padding: .35rem .8rem;
  border: 2px dashed rgba(42,6,3,.45);
}
.bmb-offer-valid { color: var(--muted); font-size: .8rem; }

/* ---- Testimonials ------------------------------------------------------ */
.bmb-testimonial { border-top: 3px solid var(--gold); }
.bmb-stars { color: var(--gold); letter-spacing: .25em; font-size: 1rem; display: inline-block; margin-bottom: 1rem; }
.bmb-testimonial-quote { font-family: var(--font-serif); font-style: italic; color: var(--cream-dim); font-size: 1.02rem; }
.bmb-testimonial-who { display: flex; align-items: center; gap: .9rem; margin-top: 1.2rem; }
.bmb-avatar { width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--line); }
.bmb-testimonial-who strong { display: block; color: var(--cream); letter-spacing: .08em; font-size: .9rem; }
.bmb-testimonial-who em { display: block; color: var(--muted); font-style: normal; font-size: .8rem; }

/* ---- App downloads ----------------------------------------------------- */
.bmb-app-col {
  text-align: center;
  background: var(--charcoal-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  padding: 2.4rem 1.8rem;
  height: 100%;
}
.bmb-app-type { color: var(--gold-dark); letter-spacing: .24em; font-size: 1rem; margin-bottom: 1.6rem; font-family: var(--font-sans); font-weight: 700; }
.bmb-app-links { display: flex; gap: 1.6rem; justify-content: center; flex-wrap: wrap; }
.bmb-app-link { display: flex; flex-direction: column; align-items: center; gap: .6rem; text-decoration: none; }
.bmb-qr { width: 120px; height: 120px; border-radius: var(--radius-sm); background: #fff; padding: 6px; border: 1px solid var(--line); }
.bmb-app-store { color: var(--cream-dim); font-size: .85rem; letter-spacing: .06em; }
.bmb-app-link:hover .bmb-app-store { color: var(--gold-dark); }

/* ---- CTA band ---------------------------------------------------------- */
.bmb-cta-band {
  padding: 5rem 0;
  background: linear-gradient(120deg, #f8efdd 0%, #f3e2bd 50%, #f8efdd 100%);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
}
.bmb-cta-band h2 { font-size: clamp(1.7rem, 3.4vw, 2.6rem); margin-bottom: 1.8rem; }

/* ---- Footer ------------------------------------------------------------ */
.bmb-footer { background: rgb(179, 18, 23); border-top: 1px solid var(--line); padding: 4rem 0 0; }
.bmb-footer-brand { display: flex; align-items: center; gap: .65rem; margin-bottom: 1.1rem; }
.bmb-footer-blurb { color: var(--muted); font-size: .93rem; max-width: 22rem; }
.bmb-social-row { display: flex; gap: .7rem; margin-top: 1.2rem; }
.bmb-social-link {
  width: 42px; height: 42px; border-radius: 50%;
  border: 1px solid var(--line);
  display: inline-flex; align-items: center; justify-content: center;
  transition: border-color var(--speed), transform var(--speed);
}
.bmb-social-link:hover { border-color: var(--gold); transform: translateY(-3px); }
.bmb-social-icon { width: 22px; height: 22px; }
.bmb-footer-heading { font-size: .85rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); margin-bottom: 1.1rem; font-family: var(--font-sans); font-weight: 700; }
.bmb-footer-links { list-style: none; padding: 0; margin: 0; }
.bmb-footer-links li { margin-bottom: .55rem; }
.bmb-footer-links a { color: var(--muted); text-decoration: none; font-size: .93rem; }
.bmb-footer-links a:hover { color: var(--gold-light); }
.bmb-footer-contact { color: var(--muted); font-size: .93rem; }
.bmb-footer-contact a { color: var(--muted); text-decoration: none; }
.bmb-footer-contact a:hover { color: var(--gold-light); }
.bmb-footer-contact .d-block { margin-bottom: .45rem; }
.bmb-footer-bottom { border-top: 1px solid var(--line-soft); margin-top: 3rem; padding: 1.4rem 0; text-align: center; }
.bmb-footer-bottom p { margin: 0; color: var(--muted-dark); font-size: .78rem; letter-spacing: .18em; }

/* ---- Inner pages ------------------------------------------------------- */
.bmb-page { padding: 4.5rem 0 5.5rem; }
.bmb-filter-row { display: flex; gap: .7rem; flex-wrap: wrap; justify-content: center; margin-bottom: 2.8rem; }
.bmb-filter-pill[aria-pressed="true"] {
  --bs-btn-color: var(--ink);
  background: var(--gold);
  border-color: var(--gold);
  color: var(--ink);
}
@media (max-width: 767.98px) {
  .bmb-filter-row { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding-bottom: .5rem; }
  .bmb-filter-pill { flex: 0 0 auto; }
}
.bmb-story h2 { margin-bottom: 1.2rem; }
.bmb-story p { color: var(--muted); }
.bmb-story-img { border-radius: var(--radius-lg); border: 1px solid var(--line); box-shadow: var(--shadow); }
.bmb-stats { margin: 4rem 0; text-align: center; }
.bmb-stat { padding: 1.5rem .5rem; border-left: 1px solid var(--line-soft); }
.bmb-stat:first-child, .bmb-stats .col-4:first-child .bmb-stat { border-left: none; }
.bmb-stat-value { display: block; font-family: var(--font-serif); font-size: clamp(1.8rem, 4vw, 2.8rem); color: var(--gold-dark); }
.bmb-stat-label { display: block; font-size: .72rem; letter-spacing: .24em; color: var(--muted); margin-top: .4rem; }
.bmb-values h2 { margin-bottom: 2.2rem; }
.bmb-value {
  text-align: center; background: var(--charcoal-2);
  border: 1px solid var(--line-soft); border-radius: var(--radius-lg);
  padding: 2.2rem 1.6rem; height: 100%;
}
.bmb-value-icon { width: 60px; height: 60px; margin-bottom: 1rem; }
.bmb-value h3 { color: var(--gold-dark); font-size: 1.3rem; margin-bottom: .6rem; }
.bmb-value p { color: var(--muted); font-size: .94rem; margin: 0; }

/* ---- Contact ----------------------------------------------------------- */
.bmb-contact-card { text-align: center; }
.bmb-contact-card .card-body { padding: 2.4rem 1.8rem; }
.bmb-contact-icon { width: 52px; height: 52px; margin-bottom: 1.1rem; }
.bmb-contact-card h2 { font-size: 1.3rem; margin-bottom: .9rem; color: var(--gold-dark); }
.bmb-contact-card p { color: var(--muted); margin-bottom: .4rem; }
.bmb-contact-card a { color: var(--cream-dim); text-decoration: none; border-bottom: 1px solid var(--line); }
.bmb-contact-card a:hover { color: var(--gold-light); }
.bmb-contact-cta { margin: 3rem 0; }
.bmb-map { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); margin-top: 1rem; }
.bmb-map iframe { border: 0; filter: grayscale(.4) sepia(.18); }

/* ---- Policy pages ------------------------------------------------------ */
.bmb-policy-page .bmb-section-head { margin-bottom: 2.5rem; }
.bmb-policy-section {
  background: var(--charcoal-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 1.8rem 2rem;
  margin-bottom: 1.2rem;
}
.bmb-policy-section h2 { font-size: 1.25rem; margin-bottom: .8rem; display: flex; align-items: baseline; gap: .9rem; }
.bmb-policy-num { color: var(--gold-dark); font-size: 1rem; letter-spacing: .1em; white-space: nowrap; }
.bmb-policy-section p { color: var(--muted); margin-bottom: .6rem; }
.bmb-policy-section ul { color: var(--muted); padding-left: 1.2rem; margin-bottom: 0; }
.bmb-policy-section li { margin-bottom: .4rem; }

/* ---- Loading skeleton / error ------------------------------------------ */
.bmb-loading { padding: 4rem 0; }
.bmb-skel {
  border-radius: var(--radius);
  background: linear-gradient(100deg, var(--charcoal-2) 40%, var(--charcoal-3) 50%, var(--charcoal-2) 60%);
  background-size: 200% 100%;
  animation: bmb-shimmer 1.4s infinite linear;
}
.bmb-skel-hero { height: 340px; margin-bottom: 2rem; }
.bmb-skel-card { height: 260px; }
@keyframes bmb-shimmer { to { background-position: -200% 0; } }
.bmb-error { padding: 5rem 0; }
.bmb-error-msg { font-family: var(--font-serif); font-style: italic; font-size: 1.3rem; color: var(--cream-dim); margin-bottom: 1.5rem; }

/* ---- Enquiry modal (built from data/enquiry.json) ---------------------- */
#enquiryModal .modal-content { background: var(--charcoal-2); border: 1px solid var(--line); border-radius: var(--radius-lg); color: var(--cream); }
#enquiryModal .modal-header { border-bottom: 1px solid var(--line-soft); }
#enquiryModal .modal-title { font-size: 1.4rem; }
#enquiryModal .btn-close { filter: none; opacity: .6; }
.enq-subtitle { color: var(--muted); font-size: .92rem; margin-bottom: 1.4rem; }
.enq-field { margin-bottom: 1.1rem; }
.enq-required { color: var(--gold-dark); margin-left: .25rem; }

/* ---- Service modal (sub-services list for one parent) ------------------ */
#serviceModal .modal-content { background: var(--charcoal-2); border: 1px solid var(--line); border-radius: var(--radius-lg); color: var(--cream); }
#serviceModal .modal-header { border-bottom: 1px solid var(--line-soft); }
#serviceModal .modal-title { font-size: 1.3rem; }
#serviceModal .btn-close { filter: none; opacity: .6; }
.bmb-service-modal-head { display: flex; align-items: center; gap: .9rem; }
.bmb-service-modal-thumb { flex: 0 0 56px; width: 56px; height: 56px; border-radius: var(--radius-sm); overflow: hidden; background: var(--charcoal-3); border: 1px solid var(--line-soft); }
.bmb-service-modal-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bmb-service-modal-titles { flex: 1 1 auto; min-width: 0; }
.bmb-service-modal-desc { color: var(--cream-dim); font-size: .92rem; margin-bottom: 1rem; }
/* The sub-services list is hidden inline on cards (accordion removed);
   inside the modal it is always visible. */
.bmb-subservices.is-visible { display: block; }
.enq-note { color: var(--muted-dark); font-size: .78rem; margin-top: 1rem; }
.enq-submit { margin-top: .6rem; }
.enq-success { text-align: center; padding: 2rem 1rem; }
.enq-success-msg { font-family: var(--font-serif); font-style: italic; font-size: 1.2rem; color: var(--gold-dark); }

/* ---- Toast ------------------------------------------------------------- */
#toast-container .toast { background: var(--charcoal-3); border: 1px solid var(--line); color: var(--cream); }
#toast-container .toast-header { background: transparent; border-bottom: 1px solid var(--line-soft); color: var(--gold-dark); }

/* ---- Small screens ----------------------------------------------------- */
@media (max-width: 575.98px) {
  .bmb-section { padding: 3.8rem 0; }
  .bmb-page { padding: 3rem 0 4rem; }
  .bmb-hero-ctas .btn { width: 100%; }
  .bmb-card-media img { height: 120px; }
  .bmb-stats { margin: 2.5rem 0; }
  .bmb-stat { border-left: none; border-top: 1px solid var(--line-soft); }
  .bmb-stats .col-4:first-child .bmb-stat { border-top: none; }
}
