/* ── Brooklyn Qi tokens (mirrors src/styles/global.css) ── */
:root {
  --bq-cream: #F5F0E8;
  --bq-cream-dark: #EDE7D9;
  --bq-parchment: #E8DFD0;
  --bq-honey: #C4864A;
  --bq-sienna: #9B5E3C;
  --bq-terracotta: #B5623E;
  --bq-amber: #E8A052;
  --bq-sage: #8A9E8C;
  --bq-sage-dark: #5E7A62;
  --bq-charcoal: #2C2825;
  --bq-charcoal-lt: #4A4540;
  --bq-mist: #D4CEC6;
  --bq-font-display: 'Cormorant Garamond', Georgia, serif;
  --bq-font-body: 'DM Sans', system-ui, sans-serif;
}

body {
  background: var(--bq-cream);
  color: var(--bq-charcoal);
  font-family: var(--bq-font-body);
  -webkit-font-smoothing: antialiased;
}

::selection {
  background-color: var(--bq-amber);
  color: var(--bq-charcoal);
}

/* ── Buttons — element-prefixed (a.) so they beat the kit's
 * `.elementor-kit-72 a` link color (0,1,1) by source order on ties. ── */
a.bq-btn-primary,
button.bq-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--bq-sienna);
  color: var(--bq-cream);
  font-family: var(--bq-font-body);
  font-weight: 500;
  font-size: 0.875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 1rem 2rem;
  border-radius: 9999px;
  border: none;
  transition: all 300ms ease;
}
a.bq-btn-primary:hover,
button.bq-btn-primary:hover {
  background: var(--bq-terracotta);
  color: var(--bq-cream);
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
  transform: translateY(-2px);
}

.bq-eyebrow {
  font-family: var(--bq-font-body);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bq-sage-dark);
}

/* ── Rich-text body (post content rendered inside Elementor templates) ── */
.bq-prose h2 {
  font-family: var(--bq-font-display);
  font-weight: 300;
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  line-height: 1.2;
  margin: 3rem 0 1rem;
  color: var(--bq-charcoal);
}
.bq-prose h3 {
  font-family: var(--bq-font-display);
  font-weight: 300;
  font-size: 1.25rem;
  margin: 2rem 0 0.75rem;
  color: var(--bq-charcoal);
}
.bq-prose p {
  line-height: 1.7;
  margin-bottom: 1.25rem;
  max-width: 68ch;
  color: var(--bq-charcoal-lt);
}
.bq-prose ul { margin-bottom: 1.5rem; }
.bq-prose li { color: var(--bq-charcoal-lt); }
.bq-prose a { color: var(--bq-sienna); }
.bq-prose a:hover { color: var(--bq-terracotta); }

/* ── FAQ accordion (native <details>, matches ServicePage.astro) ──
 * Selectors cover both the legacy [bq_faq] section wrapper and the
 * bq-faq Elementor widget (which renders .bq-faq-list directly). */
.bq-faq details,
.bq-faq-list details {
  background: var(--bq-cream-dark);
  border: 1px solid var(--bq-mist);
  border-radius: 0.75rem;
  transition: all 0.3s ease;
}
.bq-faq summary,
.bq-faq-list summary {
  padding: 1.25rem;
  cursor: pointer;
  font-family: var(--bq-font-display);
  font-size: 1.125rem;
  font-weight: 300;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.bq-faq summary::-webkit-details-marker,
.bq-faq-list summary::-webkit-details-marker { display: none; }
.bq-faq summary::marker,
.bq-faq-list summary::marker { display: none; content: ''; }
.bq-faq summary:hover,
.bq-faq-list summary:hover { color: var(--bq-sienna); }
.bq-faq details[open] summary svg,
.bq-faq-list details[open] summary svg { transform: rotate(180deg); }
.bq-faq details .bq-faq-a,
.bq-faq-list details .bq-faq-a {
  padding: 0 1.25rem 1.25rem;
  color: var(--bq-charcoal-lt);
  line-height: 1.7;
}

/* ── Hero image focal variants (match global.css framing) ── */
.bq-hero-emotional { object-position: center center; }
@media (min-width: 768px) {
  .bq-hero-emotional { object-position: center 65%; }
  .bq-hero-tuina { object-position: center 55%; }
  .bq-hero-pregnancy { object-position: center 65%; }
}
@media (min-width: 1024px) {
  .bq-hero-emotional { object-position: center 75%; }
  .bq-hero-fertility { transform: scale(1.08) translateY(2%); transform-origin: center center; }
  .bq-hero-tuina { object-position: center center; }
  .bq-hero-pregnancy { object-position: center 70%; }
}

/* ── Entrance animation (matches .animate-fade-up) ── */
@keyframes bqFadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
.bq-fade-up { animation: bqFadeUp 0.7s ease-out both; }

/* ── Breadcrumbs ── */
.bq-breadcrumbs { background: var(--bq-cream-dark); border-bottom: 1px solid var(--bq-mist); padding: 0.75rem 1.5rem; }
.bq-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; list-style: none; margin: 0 auto; padding: 0; max-width: 1320px; font-size: 0.75rem; color: rgba(74, 69, 64, 0.6); }
.bq-breadcrumbs a { color: inherit; text-decoration: none; }
.bq-breadcrumbs a:hover { color: var(--bq-sienna); }
.bq-breadcrumbs .bq-sep { opacity: 0.4; }

/* ── Hero (service / hub / page) ── */
.bq-hero { position: relative; min-height: 400px; height: 50vh; display: flex; align-items: flex-end; overflow: hidden; }
.bq-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Above (0,2,1): beats Elementor's `.elementor img{height:auto}` (0,1,1),
 * which otherwise wins ties and collapses cover-fit to aspect ratio. */
.bq-hero img.bq-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bq-hero-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(44, 40, 37, 0.85), rgba(44, 40, 37, 0.3), transparent); }
.bq-hero-inner { position: relative; z-index: 1; width: 100%; max-width: 1320px; margin: 0 auto; padding: 0 1.5rem 3rem; }
.bq-hero-eyebrow { color: rgba(232, 160, 82, 0.8); margin-bottom: 0.75rem; }
h1.bq-hero-title { font-family: var(--bq-font-display); font-weight: 300; font-size: clamp(2.2rem, 5vw, 4.5rem); line-height: 1; letter-spacing: -0.02em; color: var(--bq-cream); margin: 0 0 0.75rem; max-width: 48rem; text-wrap: balance; }
.bq-hero-sub { color: rgba(245, 240, 232, 0.7); font-size: 1.125rem; max-width: 42rem; line-height: 1.6; margin: 0; }

/* ── Band hero (pages without image) ── */
.bq-band-hero { background: var(--bq-cream-dark); border-bottom: 1px solid var(--bq-mist); padding: 4rem 1.5rem 5rem; }
.bq-band-inner { max-width: 1320px; margin: 0 auto; }
.bq-band-inner h1 { font-family: var(--bq-font-display); font-weight: 300; font-size: clamp(2.2rem, 5vw, 4.5rem); line-height: 1; color: var(--bq-charcoal); margin: 0 0 0.75rem; max-width: 48rem; }
.bq-band-inner p { color: var(--bq-charcoal-lt); font-size: 1.125rem; max-width: 42rem; margin: 0; }

/* ── Sidebar cards ── */
.bq-side-card { border-radius: 1rem; padding: 1.5rem; border: 1px solid var(--bq-mist); margin-bottom: 2rem; }
.bq-liz-card { background: var(--bq-parchment); }
.bq-liz-top { display: flex; gap: 1rem; margin-bottom: 1rem; align-items: flex-start; }
.bq-liz-top img { width: 3.5rem; height: 3.5rem; border-radius: 9999px; object-fit: cover; object-position: top; flex-shrink: 0; }
.bq-liz-name { font-family: var(--bq-font-display); font-size: 1.125rem; font-weight: 300; color: var(--bq-charcoal); margin: 0; }
.bq-liz-sub { font-size: 0.75rem; color: rgba(74, 69, 64, 0.6); margin: 0; }
.bq-liz-card p { font-size: 0.875rem; color: var(--bq-charcoal-lt); line-height: 1.6; }
.bq-liz-card a { font-size: 0.875rem; color: var(--bq-sienna); font-weight: 500; text-decoration: none; }
.bq-liz-card a:hover { color: var(--bq-terracotta); }
.bq-book-card { background: var(--bq-sienna); color: var(--bq-cream); border-color: transparent; }
.bq-book-title { font-family: var(--bq-font-display); font-size: 1.25rem; font-weight: 300; color: var(--bq-cream); margin: 0 0 0.5rem; }
.bq-book-sub { color: rgba(245, 240, 232, 0.7); font-size: 0.875rem; line-height: 1.6; margin: 0 0 1.25rem; }
.bq-book-card .bq-btn-primary { display: block; text-align: center; background: var(--bq-cream); color: var(--bq-sienna); text-decoration: none; }
.bq-book-card a.bq-btn-primary:hover { background: var(--bq-amber); color: var(--bq-charcoal); }
.bq-book-meta { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(245, 240, 232, 0.2); font-size: 0.75rem; }
.bq-book-meta p { margin: 0 0 0.25rem; }
.bq-book-meta span { color: rgba(245, 240, 232, 0.7); }
.bq-book-meta a { color: var(--bq-cream); text-decoration: none; }

/* ── Related + contextual ── */
.bq-related ul { list-style: none; margin: 0; padding: 0; }
.bq-related li a { display: flex; align-items: center; justify-content: space-between; padding: 0.625rem 0.75rem; border-radius: 0.75rem; font-size: 0.875rem; color: var(--bq-charcoal-lt); text-decoration: none; transition: all 150ms ease; }
.bq-related li a:hover { background: var(--bq-parchment); color: var(--bq-sienna); }
.bq-contextual { border-top: 1px solid var(--bq-mist); padding-top: 1.5rem; }
.bq-contextual-intro { font-size: 0.75rem; color: rgba(74, 69, 64, 0.6); line-height: 1.6; }
.bq-contextual ul { list-style: none; margin: 0; padding: 0; }
.bq-contextual li a { font-size: 0.875rem; color: var(--bq-charcoal-lt); text-decoration: none; }
.bq-contextual li a:hover { color: var(--bq-sienna); }

/* ── Bottom CTA band ── */
.bq-cta-band { background: var(--bq-charcoal); color: var(--bq-cream); text-align: center; padding: 5rem 1.5rem; }
.bq-cta-eyebrow { color: var(--bq-sage); margin-bottom: 1rem; }
.bq-cta-band h2 { font-family: var(--bq-font-display); font-weight: 300; font-size: clamp(1.6rem, 3.5vw, 2.8rem); color: var(--bq-cream); margin: 0 0 1.5rem; text-wrap: balance; }
a.bq-btn-light { background: var(--bq-sienna); color: var(--bq-cream); text-decoration: none; }
a.bq-btn-light:hover { background: var(--bq-terracotta); color: var(--bq-cream); }

/* ── Native Elementor accordion, matched to the bq FAQ look ── */
.elementor-widget-accordion .elementor-accordion-item {
  background: var(--bq-cream-dark);
  border: 1px solid var(--bq-mist) !important;
  border-radius: 0.75rem;
  overflow: hidden;
  margin-bottom: 1rem;
}
.elementor-widget-accordion .elementor-tab-title {
  font-family: var(--bq-font-display);
  font-size: 1.125rem;
  font-weight: 300;
  color: var(--bq-charcoal);
  padding: 1.25rem !important;
}
.elementor-widget-accordion .elementor-tab-title:hover { color: var(--bq-sienna); }
.elementor-widget-accordion .elementor-tab-content {
  color: var(--bq-charcoal-lt);
  line-height: 1.7;
  padding: 0 1.25rem 1.25rem !important;
  border-top: none !important;
}
.elementor-widget-accordion .elementor-accordion-title { display: inline; }

/* ── Native Elementor accordion, matched to the bq FAQ look ── */
.elementor-widget-accordion .elementor-accordion-item {
  background: var(--bq-cream-dark);
  border: 1px solid var(--bq-mist) !important;
  border-radius: 0.75rem;
  overflow: hidden;
  margin-bottom: 1rem;
}
.elementor-widget-accordion .elementor-tab-title {
  font-family: var(--bq-font-display);
  font-size: 1.125rem;
  font-weight: 300;
  color: var(--bq-charcoal);
  padding: 1.25rem !important;
}
.elementor-widget-accordion .elementor-tab-title:hover { color: var(--bq-sienna); }
.elementor-widget-accordion .elementor-tab-content {
  color: var(--bq-charcoal-lt);
  line-height: 1.7;
  padding: 0 1.25rem 1.25rem !important;
  border-top: none !important;
}
.elementor-widget-accordion .elementor-accordion-title { display: inline; }

/* ── FAQ spacing (legacy details accordion) ── */
.bq-faq { margin-top: 4rem; margin-bottom: 3rem; }
.bq-faq > h2 { font-family: var(--bq-font-display); font-weight: 300; font-size: clamp(1.2rem, 2.5vw, 1.8rem); margin: 0 0 1.5rem; }
.bq-faq-list { display: flex; flex-direction: column; gap: 1rem; }
.bq-faq-chevron { flex-shrink: 0; transition: transform 200ms ease; }

/* Theme Builder shells are full-bleed sections — no gaps between them. */
.elementor-location-single > .e-con,
.elementor-location-archive > .e-con,
.elementor-location-single > .elementor-element.e-parent,
.elementor-location-archive > .elementor-element.e-parent {
  --gap: 0;
  gap: 0;
}

/* ── Main content grid (mirrors ServicePage.astro) ── */
.bq-main { max-width: 1320px; margin: 0 auto; padding: 4rem 1.5rem 6rem; }
@media (min-width: 1024px) { .bq-main { padding-top: 6rem; padding-bottom: 6rem; } }
.bq-main-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 1024px) { .bq-main-grid { grid-template-columns: repeat(12, 1fr); gap: 4rem; } .bq-article { grid-column: span 8; } .bq-sidebar { grid-column: span 4; } }
.bq-article { min-width: 0; }
.bq-sidebar > :last-child { margin-bottom: 0; }

/* ── Site header ──
 * Sticky lives on Elementor's location wrapper: the inner header is a
 * stretched flex item of the template container, leaving sticky no room
 * to travel if applied there. */
.elementor-location-header { position: sticky; top: 0; z-index: 60; }
.bq-site-header { background: var(--bq-cream); transition: box-shadow 200ms ease, background 200ms ease; }
.bq-site-header.is-scrolled { background: rgba(245, 240, 232, 0.95); backdrop-filter: blur(4px); box-shadow: 0 1px 4px rgba(44, 40, 37, 0.08); border-bottom: 1px solid var(--bq-mist); }
.bq-header-inner { max-width: 1320px; margin: 0 auto; padding: 0 1.5rem; min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
@media (min-width: 1024px) { .bq-header-inner { padding: 0 2.5rem; min-height: 80px; } }
a.bq-logo { font-family: var(--bq-font-display); font-size: 1.5rem; font-weight: 400; letter-spacing: 0.025em; color: var(--bq-charcoal); text-decoration: none; line-height: 1.1; white-space: nowrap; }
.bq-logo small { display: block; font-family: var(--bq-font-body); font-size: 0.625rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--bq-sage-dark); }
a.bq-logo:hover { color: var(--bq-sienna); }
.bq-header-cta { display: none; }
@media (min-width: 1024px) { .bq-header-cta { display: inline-flex; } }

/* ── Desktop nav ── */
.bq-nav { display: none; }
@media (min-width: 1024px) { .bq-nav { display: block; } }
.bq-nav-top { display: flex; align-items: center; gap: 2rem; list-style: none; margin: 0; padding: 0; }
.bq-nav-item { position: relative; }
a.bq-nav-link { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.5rem 0.125rem; font-size: 0.875rem; font-weight: 500; letter-spacing: 0.04em; color: var(--bq-charcoal-lt); text-decoration: none; white-space: nowrap; }
a.bq-nav-link:hover { color: var(--bq-sienna); }
.bq-nav-link svg { transition: transform 200ms ease; opacity: 0.5; }
.bq-nav-item:hover .bq-nav-link svg { transform: rotate(180deg); opacity: 1; }
.bq-nav-drop { position: absolute; top: 100%; left: 50%; transform: translate(-50%, 4px); padding-top: 0.5rem; opacity: 0; visibility: hidden; transition: all 200ms ease; }
.bq-nav-item:hover .bq-nav-drop, .bq-nav-item:focus-within .bq-nav-drop { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.bq-nav-drop-inner { background: var(--bq-cream); border: 1px solid var(--bq-mist); border-radius: 1rem; box-shadow: 0 20px 40px -12px rgba(44, 40, 37, 0.25); padding: 0.75rem; min-width: 220px; }
.bq-nav-drop-inner a { display: block; padding: 0.625rem 1.25rem; font-size: 0.875rem; color: var(--bq-charcoal-lt); text-decoration: none; border-radius: 0.5rem; white-space: nowrap; }
.bq-nav-drop-inner a:hover { color: var(--bq-sienna); background: var(--bq-cream-dark); }

/* ── Mobile nav ── */
.bq-menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; background: none; border: none; cursor: pointer; }
button.bq-menu-toggle { color: var(--bq-charcoal); }
button.bq-menu-toggle:hover { color: var(--bq-sienna); }
@media (min-width: 1024px) { .bq-menu-toggle { display: none; } }
.bq-mobile-wrap { display: none; border-top: 1px solid var(--bq-mist); background: var(--bq-cream); max-height: 70vh; overflow-y: auto; }
.bq-mobile-wrap.open { display: block; }
@media (min-width: 1024px) { .bq-mobile-wrap.open { display: none; } }
.bq-mobile-nav { padding: 0.5rem 1.5rem 1.5rem; }
.bq-mobile-group { border-bottom: 1px solid rgba(212, 206, 198, 0.5); }
a.bq-mobile-top { display: block; padding: 0.75rem 0; font-family: var(--bq-font-display); font-size: 1.125rem; font-weight: 300; color: var(--bq-charcoal); text-decoration: none; }
.bq-mobile-kids { padding: 0 0 0.5rem 1rem; }
.bq-mobile-kids a { display: block; padding: 0.5rem 0; font-size: 0.875rem; color: var(--bq-charcoal-lt); text-decoration: none; }
.bq-mobile-kids a:hover { color: var(--bq-sienna); }

/* ── Footer ── */
.bq-footer { background: var(--bq-charcoal); color: var(--bq-cream); }
.bq-footer-inner { max-width: 1320px; margin: 0 auto; padding: 4rem 1.5rem 2rem; }
.bq-footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
@media (min-width: 1024px) { .bq-footer-grid { grid-template-columns: 1.4fr repeat(5, 1fr) 1fr; } }
.bq-nap p { font-size: 0.875rem; color: rgba(245, 240, 232, 0.5); line-height: 1.6; margin: 0 0 0.5rem; }
.bq-nap a { color: rgba(245, 240, 232, 0.7); text-decoration: none; }
.bq-nap a:hover { color: var(--bq-cream); }
.bq-nap-brand { font-family: var(--bq-font-display); font-size: 1.25rem; font-weight: 300; color: var(--bq-cream) !important; }
.bq-foot-col > p { font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--bq-sage); margin: 0 0 1rem; }
a.bq-foot-head { display: block; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--bq-sage); text-decoration: none; margin: 0 0 1rem; }
a.bq-foot-head:hover { color: var(--bq-amber); }
.bq-foot-list a { display: block; font-size: 0.875rem; color: rgba(245, 240, 232, 0.5); text-decoration: none; padding: 0.25rem 0; }
.bq-foot-list a:hover { color: var(--bq-cream); }
.bq-footer-base { border-top: 1px solid rgba(245, 240, 232, 0.15); margin-top: 3rem; padding-top: 1.5rem; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; font-size: 0.75rem; color: rgba(245, 240, 232, 0.4); }
.bq-footer-base a { color: rgba(245, 240, 232, 0.6); text-decoration: none; }
.bq-footer-base a:hover { color: var(--bq-cream); }

/* ── Home ── */
.bq-home-hero { position: relative; min-height: 92vh; display: flex; align-items: center; overflow: hidden; }
.bq-home-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.bq-home-hero-shade { position: absolute; inset: 0; background: linear-gradient(to right, rgba(245, 240, 232, 0.97), rgba(245, 240, 232, 0.9), rgba(245, 240, 232, 0.2)); }
.bq-home-hero-inner { position: relative; z-index: 1; width: 100%; max-width: 1320px; margin: 0 auto; padding: 6rem 1.5rem; }
.bq-home-hero-inner h1 { font-family: var(--bq-font-display); font-weight: 300; font-size: clamp(3rem, 7vw, 6.5rem); line-height: 0.95; letter-spacing: -0.02em; color: var(--bq-charcoal); max-width: 42rem; margin: 0 0 1.5rem; text-wrap: balance; }
.bq-home-speakable { font-family: var(--bq-font-display); font-weight: 300; font-size: clamp(1.2rem, 2.5vw, 1.8rem); font-style: italic; color: var(--bq-sienna); margin: 0 0 1rem; }
.bq-home-sub { font-size: 1.125rem; color: var(--bq-charcoal-lt); max-width: 32rem; line-height: 1.6; margin: 0 0 2.5rem; }
.bq-home-btns { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0; }
.bq-home-btns .bq-btn-primary { text-decoration: none; }
.bq-home-section { padding: 6rem 1.5rem; }
@media (min-width: 1024px) { .bq-home-section { padding: 9rem 3rem; } }
.bq-home-section > * { max-width: 1320px; margin-left: auto; margin-right: auto; }
.bq-home-tint { background: var(--bq-cream-dark); }
.bq-home-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 1024px) { .bq-home-grid { grid-template-columns: repeat(12, 1fr); gap: 5rem; } .bq-home-grid > :first-child { grid-column: span 5; } .bq-home-grid > :last-child { grid-column: span 7; } }
.bq-home-section h2, .bq-book-wrap h2 { font-family: var(--bq-font-display); font-weight: 300; font-size: clamp(1.6rem, 3.5vw, 2.8rem); line-height: 1.1; color: var(--bq-charcoal); margin: 0; text-wrap: balance; }
.bq-home-cols p, .bq-home-pract p { color: var(--bq-charcoal-lt); line-height: 1.7; }
.bq-map { margin-top: 1.5rem; overflow: hidden; border-radius: 0.75rem; border: 1px solid var(--bq-mist); position: relative; }
.bq-map a { display: block; }
.bq-map img { display: block; width: 100%; height: auto; aspect-ratio: 2/1; object-fit: cover; object-position: center; transition: transform 400ms ease; }
.bq-map a:hover img { transform: scale(1.02); }
.bq-map-cta { position: absolute; right: 0.75rem; bottom: 0.75rem; background: rgba(245, 240, 232, 0.95); color: var(--bq-sienna); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.04em; padding: 0.5rem 0.875rem; border-radius: 9999px; border: 1px solid var(--bq-mist); }
.bq-home-cards { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-top: 2.5rem; }
@media (min-width: 768px) { .bq-home-cards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .bq-home-cards { grid-template-columns: repeat(6, 1fr); } .bq-home-card { grid-column: span 2; } .bq-home-card-offset { grid-column: 2 / span 2; } }
a.bq-home-card { background: var(--bq-cream); border: 1px solid var(--bq-mist); border-radius: 1rem; padding: 2rem; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; text-decoration: none; transition: transform 300ms ease, box-shadow 300ms ease; }
a.bq-home-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -16px rgba(44, 40, 37, 0.25); }
.bq-home-card h3 { font-family: var(--bq-font-display); font-weight: 300; font-size: 1.5rem; color: var(--bq-charcoal); margin: 0.75rem 0; }
.bq-home-card p { font-size: 0.875rem; color: var(--bq-charcoal-lt); line-height: 1.6; margin: 0; }
.bq-home-card-link { font-size: 0.875rem; font-weight: 500; color: var(--bq-sienna); }
.bq-home-pract { display: grid; grid-template-columns: 1fr; gap: 4rem; align-items: center; }
@media (min-width: 1024px) { .bq-home-pract { grid-template-columns: 1fr 1fr; gap: 6rem; } }
.bq-home-photo { position: relative; }
.bq-home-photo > img { width: 100%; aspect-ratio: 3/4; object-fit: cover; object-position: top; border-radius: 1.5rem; background: var(--bq-parchment); box-shadow: 0 25px 50px -12px rgba(44, 40, 37, 0.25); }
.bq-home-badge { position: absolute; bottom: -1.5rem; right: -0.5rem; background: var(--bq-cream); border-radius: 1rem; box-shadow: 0 10px 25px -5px rgba(44, 40, 37, 0.2); padding: 1rem 1.25rem; max-width: 300px; white-space: normal; }
.bq-home-badge span { display: block; }
.bq-home-badge p { font-family: var(--bq-font-display); font-size: 1.875rem; font-weight: 300; color: var(--bq-sienna); margin: 0; }
.bq-home-badge span { font-size: 0.75rem; color: var(--bq-charcoal-lt); line-height: 1.4; }
.bq-home-pract .bq-btn-ghostlink { text-decoration: none; }
.bq-home-diff { background: var(--bq-sienna); padding: 6rem 1.5rem; }
.bq-home-diff-inner { max-width: 1320px; margin: 0 auto; }
.bq-home-diff-eyebrow { color: rgba(232, 160, 82, 0.7); }
.bq-home-diff h2 { font-family: var(--bq-font-display); font-weight: 300; font-size: clamp(1.6rem, 3.5vw, 2.8rem); color: var(--bq-cream); max-width: 36rem; margin: 0 0 3rem; }
.bq-home-diff-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
@media (min-width: 768px) { .bq-home-diff-grid { grid-template-columns: repeat(3, 1fr); } }
.bq-home-diff-grid h3 { font-family: var(--bq-font-display); font-weight: 300; font-size: 1.25rem; color: var(--bq-cream); margin: 1.5rem 0 0.75rem; }
.bq-home-diff-grid h3::before { content: ''; display: block; width: 2.5rem; height: 1px; background: rgba(232, 160, 82, 0.6); margin-bottom: 1.5rem; }
.bq-home-diff-grid p { color: rgba(245, 240, 232, 0.7); font-size: 0.875rem; line-height: 1.6; margin: 0; }
.bq-home-diff-base { margin-top: 3.5rem; padding-top: 3rem; border-top: 1px solid rgba(245, 240, 232, 0.2); display: flex; flex-direction: column; gap: 1.5rem; }
@media (min-width: 768px) { .bq-home-diff-base { flex-direction: row; align-items: center; justify-content: space-between; } }
.bq-home-diff-addr { font-family: var(--bq-font-display); font-size: 1.125rem; font-weight: 300; color: var(--bq-cream); margin: 0 0 0.25rem; }
.bq-home-diff-hours { color: rgba(245, 240, 232, 0.5); font-size: 0.875rem; margin: 0; }
a.bq-btn-cream { background: var(--bq-cream); color: var(--bq-sienna); text-decoration: none; border: none; }
a.bq-btn-cream:hover { background: var(--bq-amber); color: var(--bq-charcoal); }

/* ── Contact ── */
.bq-contact-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; max-width: 1320px; margin: 0 auto; padding: 4rem 1.5rem 5rem; }
@media (min-width: 1024px) { .bq-contact-grid { grid-template-columns: 1fr 1fr; gap: 5rem; } }
.bq-form label { display: block; font-size: 0.875rem; font-weight: 500; color: var(--bq-charcoal); margin-bottom: 1rem; }
.bq-form-row { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px) { .bq-form-row { grid-template-columns: 1fr 1fr; } }
.bq-form input[type="text"], .bq-form input[type="email"], .bq-form input[type="tel"], .bq-form select, .bq-form textarea { display: block; width: 100%; margin-top: 0.375rem; padding: 0.75rem 1rem; border: 1px solid var(--bq-mist); border-radius: 0.75rem; background: #fff; font-family: var(--bq-font-body); font-size: 1rem; color: var(--bq-charcoal); box-sizing: border-box; }
.bq-form input:focus, .bq-form select:focus, .bq-form textarea:focus { outline: 2px solid var(--bq-sienna); outline-offset: 1px; border-color: var(--bq-sienna); }
.bq-book-wrap { max-width: 1320px; margin: 0 auto; text-align: center; }
.bq-book-wrap p { color: var(--bq-charcoal-lt); }
.bq-main-wide { max-width: 1320px; margin: 0 auto; }

/* ── 404 ── */
.bq-404 { min-height: 70vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 4rem 1.5rem; }
.bq-404-code { font-family: var(--bq-font-display); font-weight: 300; font-size: 6rem; color: var(--bq-mist); margin: 0 0 1rem; line-height: 1; }
.bq-404 h1 { font-family: var(--bq-font-display); font-weight: 300; font-size: clamp(1.6rem, 3.5vw, 2.8rem); margin: 0 0 1rem; }
.bq-404 p { color: var(--bq-charcoal-lt); margin: 0 0 2rem; }
.bq-404 p:last-child { margin-bottom: 0; display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; }
.bq-404 .bq-btn-primary { text-decoration: none; }
a.bq-btn-ghostlink { background: transparent; color: var(--bq-sienna); border: 1px solid var(--bq-sienna); }
a.bq-btn-ghostlink:hover { background: var(--bq-sienna); color: var(--bq-cream); }

/* ── Booking launchers live in the Brooklyn Qi Bookings plugin ──
 * (button/overlay styles + #bq-gcal-* rules). The theme only owns the
 * header-CTA visibility helper below. */
@media (max-width: 1023px) {
  .bq-book[data-location="header"] { display: none; }
}

/* ── Migrated-content utility layer ──
 * Bodies migrated from Astro carry Tailwind utilities, but the WP theme
 * has no Tailwind runtime. This scoped subset covers exactly the tokens
 * used in post content (audited), so migrated markup renders as designed.
 * Scoped to .bq-article so theme/Elementor chrome is untouched. */
.bq-article .flex { display: flex; }
.bq-article .grid { display: grid; }
.bq-article .block { display: block; }
.bq-article .hidden { display: none; }
.bq-article .relative { position: relative; }
.bq-article .absolute { position: absolute; }
.bq-article .inset-0 { inset: 0; }
.bq-article .z-10 { z-index: 10; }
.bq-article .container { width: 100%; max-width: 1320px; margin-left: auto; margin-right: auto; }
.bq-article .mx-auto { margin-left: auto; margin-right: auto; }
.bq-article .items-start { align-items: flex-start; }
.bq-article .items-center { align-items: center; }
.bq-article .justify-between { justify-content: space-between; }
.bq-article .shrink-0 { flex-shrink: 0; }
.bq-article .gap-3 { gap: 0.75rem; }
.bq-article .gap-6 { gap: 1.5rem; }
.bq-article .space-y-4 > * + * { margin-top: 1rem; }
.bq-article .p-5 { padding: 1.25rem; }
.bq-article .px-4 { padding-left: 1rem; padding-right: 1rem; }
.bq-article .px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.bq-article .px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.bq-article .py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.bq-article .pb-5 { padding-bottom: 1.25rem; }
.bq-article .mt-0 { margin-top: 0; }
.bq-article .mt-8 { margin-top: 2rem; }
.bq-article .mb-1 { margin-bottom: 0.25rem; }
.bq-article .mb-3 { margin-bottom: 0.75rem; }
.bq-article .mb-6 { margin-bottom: 1.5rem; }
.bq-article .mb-8 { margin-bottom: 2rem; }
@media (min-width: 1024px) { .bq-article .lg\:px-10 { padding-left: 2.5rem; padding-right: 2.5rem; } }
.bq-article .w-5 { width: 1.25rem; }
.bq-article .w-20 { width: 5rem; }
.bq-article .w-32 { width: 8rem; }
.bq-article .w-full { width: 100%; }
.bq-article .h-5 { height: 1.25rem; }
.bq-article .h-32 { height: 8rem; }
.bq-article .text-sm { font-size: 0.875rem; }
.bq-article .text-lg { font-size: 1.125rem; }
.bq-article .text-xl { font-size: 1.25rem; }
.bq-article .text-2xl { font-size: 1.5rem; }
.bq-article .font-light { font-weight: 300; }
.bq-article .font-medium { font-weight: 500; }
.bq-article .font-display { font-family: var(--bq-font-display); }
.bq-article .leading-relaxed { line-height: 1.625; }
.bq-article .list-none { list-style: none; }
.bq-article .text-charcoal { color: var(--bq-charcoal); }
.bq-article .text-charcoal-light { color: var(--bq-charcoal-lt); }
.bq-article .text-charcoal-light\/60 { color: rgba(74, 69, 64, 0.6); }
.bq-article .text-charcoal-light\/70 { color: rgba(74, 69, 64, 0.7); }
.bq-article .text-sienna { color: var(--bq-sienna); }
.bq-article a.text-sienna:hover, .bq-article .hover\:text-sienna:hover { color: var(--bq-terracotta); }
.bq-article .bg-parchment { background-color: var(--bq-parchment); }
.bq-article .bg-cream-dark { background-color: var(--bq-cream-dark); }
.bq-article .border { border-width: 1px; border-style: solid; }
.bq-article .border-mist { border-color: var(--bq-mist); }
.bq-article .rounded-xl { border-radius: 0.75rem; }
.bq-article .rounded-2xl { border-radius: 1rem; }
.bq-article .object-cover { object-fit: cover; }
.bq-article .object-top { object-position: top; }
.bq-article .cursor-pointer { cursor: pointer; }
.bq-article .transition-colors { transition-property: color, background-color, border-color; transition-duration: 150ms; }
.bq-article .transition-transform { transition-property: transform; transition-duration: 150ms; }
.bq-article .duration-200 { transition-duration: 200ms; }
.bq-article .focus\:outline-none:focus { outline: none; }
.bq-article .focus\:ring-2:focus, .bq-article .focus\:ring-sienna\/30:focus { box-shadow: 0 0 0 2px rgba(155, 94, 60, 0.3); }
.bq-article .bg-gradient-to-t { background-image: linear-gradient(to top, rgba(44, 40, 37, 0.85), rgba(44, 40, 37, 0.3), transparent); }
