/**
 * BFL Tour Page V2 — Stylesheet
 * Version: 1.22.0
 * Scope: Tours with bfl_v2_template meta = 1
 * Namespace: bfl-v2-* (all classes prefixed to avoid collision)
 */

/* =====================================================
   DESIGN SYSTEM TOKENS
   ===================================================== */
:root {
  --bfl-blue: #2563eb;
  --bfl-blue-dark: #1d4ed8;
  --bfl-blue-soft: #eff6ff;
  --bfl-blue-border: #bfdbfe;
  --bfl-indigo: #6366f1;
  --bfl-green: #059669;
  --bfl-green-soft: #ecfdf5;
  --bfl-green-border: #a7f3d0;
  --bfl-amber: #d97706;
  --bfl-amber-soft: #fffbeb;
  --bfl-coral: #ef4444;

  --bfl-text: #0f172a;
  --bfl-text-2: #475569;
  --bfl-text-3: #94a3b8;
  --bfl-bg: #fafafa;
  --bfl-bg-card: #ffffff;
  --bfl-border: #e2e8f0;
  --bfl-border-soft: #f1f5f9;

  --bfl-r-sm: 10px;
  --bfl-r-md: 14px;
  --bfl-r-lg: 18px;

  --bfl-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.06);
  --bfl-shadow-md: 0 0 0 1px rgba(0,0,0,0.04), 0 4px 12px rgba(15, 23, 42, 0.06), 0 12px 28px rgba(15, 23, 42, 0.06);
  --bfl-shadow-lg: 0 0 0 1px rgba(0,0,0,0.04), 0 8px 24px rgba(15, 23, 42, 0.08), 0 24px 48px rgba(15, 23, 42, 0.08);

  --bfl-tabbar-h: 52px;
  --bfl-mobilebar-h: 76px;
  --content-max: 1200px;
}

/* =====================================================
   V2 PAGE RESET — scope everything under .bfl-v2-page
   ===================================================== */
.bfl-v2-page {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: var(--bfl-text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.bfl-v2-page *,
.bfl-v2-page *::before,
.bfl-v2-page *::after {
  box-sizing: border-box;
}

/* Override parent theme .traveltour-body { Poppins } and
   .traveltour-body h1..h6 / input / button / select (all 0,1,1).
   body.bfl-v2 gives us 0,1,1 on body itself and 0,1,2 on elements,
   which beats parent theme's 0,1,1 element selectors. */
body.bfl-v2,
body.bfl-v2 h1,
body.bfl-v2 h2,
body.bfl-v2 h3,
body.bfl-v2 h4,
body.bfl-v2 h5,
body.bfl-v2 h6,
body.bfl-v2 p,
body.bfl-v2 span,
body.bfl-v2 div,
body.bfl-v2 a,
body.bfl-v2 li,
body.bfl-v2 input,
body.bfl-v2 textarea,
body.bfl-v2 button,
body.bfl-v2 select {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* V2 PARENT THEME MARGIN RESET — neutralise traveltour-body
   margin-bottom:20px on headings. Margin/padding only; font
   properties left for component rules to declare explicitly.
   Specificity 0,1,1 matches parent; later source-order wins. */
body.bfl-v2 h1,
body.bfl-v2 h2,
body.bfl-v2 h3,
body.bfl-v2 h4,
body.bfl-v2 h5,
body.bfl-v2 h6,
body.bfl-v2 p,
body.bfl-v2 ul,
body.bfl-v2 ol,
body.bfl-v2 figure,
body.bfl-v2 blockquote {
  margin: 0;
  padding: 0;
}

/* Fraunces for editorial / display elements only.
   Specificity 0,2,1 beats the body.bfl-v2 h1/h2 rule (0,1,1) above. */
body.bfl-v2 .bfl-v2-title-h1,
body.bfl-v2 .bfl-v2-h2,
body.bfl-v2 .bfl-v2-itin-bullet,
body.bfl-v2 .bfl-v2-bb-value {
  font-family: 'Fraunces', 'DM Sans', serif;
}

/* Fix position:sticky — parent theme sets overflow:hidden on
   .traveltour-body-outer-wrapper, .traveltour-body-wrapper,
   and body (mobile <999px). Any overflow:hidden ancestor kills
   sticky. Use clip (not visible) on body to keep preventing
   horizontal scroll without creating a scroll container. */
.traveltour-body-outer-wrapper,
.traveltour-body-wrapper {
  overflow: visible !important;
}
body.single-tour {
  overflow-x: clip !important;
}

/* =====================================================
   BREADCRUMB
   ===================================================== */
.bfl-v2-breadcrumb {
  background: #fff;
  padding: 12px 20px;
  border-bottom: 1px solid var(--bfl-border-soft);
  font-size: 13px;
  color: var(--bfl-text-3);
}
.bfl-v2-breadcrumb-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}
.bfl-v2-breadcrumb a {
  color: var(--bfl-text-2);
  text-decoration: none;
  font-weight: 500;
}
.bfl-v2-breadcrumb a:hover { color: var(--bfl-blue); }
.bfl-v2-breadcrumb-sep { color: var(--bfl-text-3); }
.bfl-v2-breadcrumb-current { color: var(--bfl-text); font-weight: 600; }

/* =====================================================
   HERO GALLERY (Phase 1: TourMaster sly-slider)
   ===================================================== */
.bfl-v2-hero {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 16px 20px 0;
  background: #fff;
}
/* Override GoodLayers gallery padding-bottom inside V2 hero */
.bfl-v2-hero .gdlr-core-gallery-item {
  padding-bottom: 0 !important;
}
/* Increase slider height from production 300px to 500px for V2 hero prominence */
.bfl-v2-hero .gdlr-core-sly-slider .gdlr-core-media-image {
  height: 500px;
}
.bfl-v2-hero .gdlr-core-sly-slider .gdlr-core-media-image img {
  width: auto;
  height: 100%;
  object-fit: cover;
}
/* Border radius on the gallery container */
.bfl-v2-hero .gdlr-core-sly-slider {
  border-radius: var(--bfl-r-md);
  overflow: hidden;
}
/* Bullet nav spacing */
.bfl-v2-hero .gdlr-core-sly-slider .gdlr-core-sly-bullet {
  margin-top: 12px;
}

/* =====================================================
   VIDEO HERO — full-bleed carousel (video + photos)
   ===================================================== */
/* Full-bleed: remove container constraints */
.bfl-v2-hero.has-video {
  max-width: none;
  padding: 0;
  margin: 0;
  background: #000;
}
.bfl-v2-video-hero {
  position: relative;
  overflow: hidden;
  background: #000;
}

/* --- Carousel: horizontal scroll-snap --- */
.bfl-v2-carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.bfl-v2-carousel::-webkit-scrollbar {
  display: none;
}
.bfl-v2-hero-slide {
  flex: 0 0 100%;
  width: 100%;
  height: 50vh;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
@media (min-width: 768px) {
  .bfl-v2-hero-slide {
    height: 500px;
  }
}
.bfl-v2-hero-slide video,
.bfl-v2-hero-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Suppress native subtitle rendering — custom overlay used */
.bfl-v2-video-hero video::cue {
  opacity: 0;
  color: transparent;
  background: transparent;
}
.bfl-v2-video-hero video::-webkit-media-text-track-display {
  display: none !important;
}

/* --- Custom subtitle overlay (video slide only) --- */
.bfl-v2-hero-subtitle {
  position: absolute;
  bottom: 44px;
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  max-width: 90%;
  background: rgba(15, 23, 42, 0.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  padding: 8px 18px;
  border-radius: 999px;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 10;
}
.bfl-v2-hero-subtitle.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
/* Hide subtitle when not on video slide */
.bfl-v2-video-hero:not([data-active-slide="0"]) .bfl-v2-hero-subtitle {
  opacity: 0 !important;
  pointer-events: none;
}
@media (min-width: 768px) {
  .bfl-v2-hero-subtitle {
    bottom: 52px;
    font-size: 15px;
    padding: 10px 22px;
  }
}

/* --- Top-right stack: counter + share --- */
.bfl-v2-hero-stack {
  position: absolute;
  top: 14px;
  right: 14px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 30;
}
.bfl-v2-hero-counter {
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  padding: 5px 12px;
  border-radius: 999px;
  letter-spacing: 0.04em;
  line-height: 1;
  white-space: nowrap;
}

/* --- Share button (white circle, high specificity to beat theme) --- */
.bfl-v2-video-hero .bfl-v2-hero-share {
  position: relative;
  top: auto;
  right: auto;
  width: 38px;
  height: 38px;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: none !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #0f172a !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  -webkit-tap-highlight-color: transparent;
  padding: 0 !important;
  min-width: 0;
  min-height: 0;
  line-height: 1;
  font-size: 0;
  outline: none;
}
.bfl-v2-video-hero .bfl-v2-hero-share:hover {
  transform: scale(1.08);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  background: rgba(255, 255, 255, 1) !important;
}
.bfl-v2-video-hero .bfl-v2-hero-share:active {
  transform: scale(0.95);
}
.bfl-v2-video-hero .bfl-v2-hero-share svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* --- Bottom dots --- */
.bfl-v2-hero-dots {
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 5px;
  z-index: 22;
}
.bfl-v2-dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  transition: width 0.2s ease, background 0.2s ease;
}
.bfl-v2-dot.is-active {
  width: 20px;
  background: #fff;
}

/* --- Phase 2 PARKED: custom hero classes preserved for future use ---
.bfl-v2-hero-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  border-radius: var(--bfl-r-md);
  overflow: hidden;
  position: relative;
}
.bfl-v2-hero-main {
  aspect-ratio: 16 / 10;
  position: relative;
  overflow: hidden;
  background: var(--bfl-border-soft);
  border-radius: var(--bfl-r-md);
}
.bfl-v2-hero-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bfl-v2-hero-thumbs {
  display: none;
  gap: 8px;
  grid-template-columns: 1fr 1fr;
}
.bfl-v2-hero-thumb {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--bfl-border-soft);
  border-radius: var(--bfl-r-sm);
}
.bfl-v2-hero-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bfl-v2-hero-thumb-more {
  position: relative;
}
.bfl-v2-hero-thumb-more::after {
  content: attr(data-more);
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  border-radius: var(--bfl-r-sm);
}
.bfl-v2-hero-label {
  position: absolute;
  bottom: 16px;
  left: 16px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: var(--bfl-text);
  letter-spacing: 0.05em;
  z-index: 2;
}

.bfl-v2-hero-photos-btn {
  position: absolute;
  top: 16px;
  right: 16px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  padding: 10px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: var(--bfl-text);
  cursor: pointer;
  border: none;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
}

@media (min-width: 768px) {
  .bfl-v2-hero-gallery {
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 1fr;
  }
  .bfl-v2-hero-main {
    aspect-ratio: auto;
    height: 480px;
    border-radius: var(--bfl-r-md) 0 0 var(--bfl-r-md);
  }
  .bfl-v2-hero-thumbs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    height: 480px;
  }
  .bfl-v2-hero-thumb { aspect-ratio: auto; border-radius: 0; }
  .bfl-v2-hero-thumb:nth-child(2) { border-radius: 0 var(--bfl-r-md) 0 0; }
  .bfl-v2-hero-thumb:nth-child(4) { border-radius: 0 0 var(--bfl-r-md) 0; }
  .bfl-v2-hero-thumb-more::after { border-radius: 0 0 var(--bfl-r-md) 0; }
}
--- end Phase 2 PARKED --- */

/* =====================================================
   TITLE BAND
   ===================================================== */
.bfl-v2-title-band {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 24px 20px 0;
  background: #fff;
}
.bfl-v2-title-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--bfl-blue);
  background: var(--bfl-blue-soft);
  padding: 6px 12px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.bfl-v2-eyebrow-emoji { font-size: 14px; line-height: 1; }
body.bfl-v2 .bfl-v2-title-h1 {
  font-weight: 600;
  font-size: 26px;
  line-height: 1.15 !important;
  letter-spacing: -0.025em;
  color: var(--bfl-text);
  margin: 0 0 10px;
  font-size-adjust: none !important;
}
@media (min-width: 768px) { body.bfl-v2 .bfl-v2-title-h1 { font-size: 42px; } }

.bfl-v2-title-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
  margin-bottom: 8px;
}
.bfl-v2-meta-rating {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-weight: 600;
  font-size: 14px;
}
.bfl-v2-meta-stars { color: #f59e0b; letter-spacing: 1px; }
.bfl-v2-meta-count {
  color: var(--bfl-text-2);
  font-weight: 500;
  cursor: pointer;
}
.bfl-v2-meta-sep {
  display: inline-block;
  font-size: 18px;
  line-height: 1;
  vertical-align: middle;
  color: var(--bfl-text-3);
  margin: 0 2px;
  transform: translateY(-1px);
}
body.bfl-v2 .bfl-v2-meta-bestseller {
  font-size: 11px;
  font-weight: 700;
  color: #92400e;
  background: linear-gradient(135deg, #fde68a 0%, #fcd34d 100%);
  padding: 4px 10px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.2;
}

/* =====================================================
   QUICK FACTS STRIP
   ===================================================== */
.bfl-v2-quickfacts {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 16px 20px;
  background: #fff;
}
.bfl-v2-qf-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  background: var(--bfl-bg);
  border: none;
  border-radius: var(--bfl-r-md);
  padding: 6px;
}
@media (min-width: 768px) {
  .bfl-v2-qf-grid { grid-template-columns: repeat(4, 1fr); }
}
.bfl-v2-qf-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  background: #fff;
  border-radius: 10px;
}
@media (min-width: 768px) {
  .bfl-v2-qf-item { padding: 14px 16px; }
}
.bfl-v2-qf-icon {
  width: 36px;
  height: 36px;
  background: var(--bfl-blue-soft);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--bfl-blue);
}
.bfl-v2-qf-icon svg {
  width: 18px;
  height: 18px;
}
.bfl-v2-qf-label {
  font-size: 10px;
  color: var(--bfl-text-2);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.2;
}
.bfl-v2-qf-value {
  font-size: 13px;
  color: var(--bfl-text);
  font-weight: 600;
  line-height: 1.3;
  margin-top: 2px;
}

/* =====================================================
   STICKY TAB BAR (M4)
   ===================================================== */
.bfl-v2-tabbar {
  position: sticky;
  top: 0;
  z-index: 40;
  height: var(--bfl-tabbar-h);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--bfl-border);
  transition: box-shadow 0.2s ease;
}
.bfl-v2-tabbar.is-stuck {
  box-shadow: var(--bfl-shadow-sm);
}
/* Admin bar offset */
body.admin-bar .bfl-v2-tabbar {
  top: 32px;
}
@media (max-width: 782px) {
  body.admin-bar .bfl-v2-tabbar {
    top: 0; /* WP admin bar is not sticky on mobile */
  }
}

.bfl-v2-tabbar-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 4px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0 14px;
}
.bfl-v2-tabbar-inner::-webkit-scrollbar {
  display: none;
}

.bfl-v2-tab {
  flex-shrink: 0;
  padding: 7px 12px;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #334155;
  text-decoration: none;
  white-space: nowrap;
  border-radius: 8px;
  position: relative;
  transition: color 0.15s ease;
}
.bfl-v2-tab:hover {
  color: var(--bfl-text);
}
.bfl-v2-tab::after {
  content: '';
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: -10px;
  height: 2px;
  background: var(--bfl-blue);
  border-radius: 2px;
  transform: scaleX(0);
  transition: transform 0.2s ease;
}
.bfl-v2-tab.is-active {
  color: var(--bfl-blue);
}
.bfl-v2-tab.is-active::after {
  transform: scaleX(1);
}

/* =====================================================
   BODY GRID: Content + Sidebar (M6)
   ===================================================== */
.bfl-v2-body-grid {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (min-width: 1024px) {
  .bfl-v2-body-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 40px;
  }
}
.bfl-v2-content-col {
  min-width: 0;
  background: #fff;
}

/* =====================================================
   CONTENT SECTIONS — scroll-margin
   ===================================================== */

.bfl-v2-section {
  scroll-margin-top: var(--bfl-tabbar-h);
  min-height: 120px;
}
/* Admin bar: increase scroll-margin */
body.admin-bar .bfl-v2-section {
  scroll-margin-top: calc(var(--bfl-tabbar-h) + 32px);
}
@media (max-width: 782px) {
  body.admin-bar .bfl-v2-section {
    scroll-margin-top: var(--bfl-tabbar-h);
  }
}

/* =====================================================
   M5: SECTION INNER LAYOUT + TYPOGRAPHY
   ===================================================== */
.bfl-v2-section + .bfl-v2-section {
  border-top: 8px solid #fff;
}
.bfl-v2-section-inner {
  padding: 28px 0;
}

/* Section headings — body-prefixed to beat .traveltour-body h2 (0,1,1).
   !important on line-height + font-size-adjust to override parent theme's
   @media(max-width:576px) .tourmaster-... h2 { line-height:1.3!important;
   font-size-adjust:0.45!important } rule in traveltour-style-custom.css. */
body.bfl-v2 .bfl-v2-h2 {
  font-family: 'Fraunces', 'DM Sans', serif;
  font-weight: 600;
  font-size: 22px;
  line-height: 1.2 !important;
  letter-spacing: -0.015em;
  color: var(--bfl-text);
  margin: 0 0 14px;
  font-size-adjust: none !important;
}
@media (min-width: 768px) {
  body.bfl-v2 .bfl-v2-h2 { font-size: 28px; margin-bottom: 24px; }
}

/* Prose (body text content) */
.bfl-v2-prose {
  font-size: 15px;
  line-height: 1.7;
  color: var(--bfl-text-2);
}
.bfl-v2-prose p {
  margin: 0 0 16px;
}
.bfl-v2-prose p:last-child {
  margin-bottom: 0;
}
.bfl-v2-prose strong {
  color: var(--bfl-text);
  font-weight: 600;
}
body.bfl-v2 .bfl-v2-prose h3 {
  font-family: 'DM Sans', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--bfl-text);
  margin: 28px 0 12px;
}
body.bfl-v2 .bfl-v2-prose h3:first-child {
  margin-top: 0;
}

/* Overview section — match mockup exactly.
   !important on p elements directly — parent theme targets bare "p"
   with line-height:1.3!important and font-size-adjust:0.45!important.
   Putting !important on the wrapper div doesn't help because CSS
   inheritance does NOT carry !important to children. */
body.bfl-v2 #overview .bfl-v2-prose {
  font-size: 15px;
  color: var(--bfl-text);
}
body.bfl-v2 #overview .bfl-v2-prose p {
  margin: 0 0 12px;
  line-height: 1.65 !important;
  font-size-adjust: none !important;
  word-break: normal !important;
}
body.bfl-v2 #overview .bfl-v2-prose p:last-child {
  margin-bottom: 0;
}
body.bfl-v2 #overview .bfl-v2-prose strong {
  font-weight: 700;
}

/* =====================================================
   INCLUDES / EXCLUDES CARDS
   ===================================================== */
.bfl-v2-incl-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (min-width: 700px) {
  .bfl-v2-incl-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    align-items: start;
  }
  .bfl-v2-incl-grid:has(.bfl-v2-incl-card:only-child) {
    grid-template-columns: 1fr;
  }
}
body.bfl-v2 .bfl-v2-incl-card {
  background: var(--bfl-bg);
  border: none;
  border-radius: 12px;
  padding: 16px;
  box-shadow: none;
}
body.bfl-v2 .bfl-v2-incl-card-title {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 10px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 14px !important;
  line-height: 1.3 !important;
  word-break: normal !important;
  font-size-adjust: none !important;
}
body.bfl-v2 .is-included .bfl-v2-incl-card-title { color: var(--bfl-green); }
body.bfl-v2 .is-excluded .bfl-v2-incl-card-title { color: var(--bfl-text-2); }
/* Title-level check icon (Included card only; Excluded has no icon) */
body.bfl-v2 .bfl-v2-incl-title-check {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--bfl-green);
}
.bfl-v2-incl-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
body.bfl-v2 .bfl-v2-incl-list li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13.5px;
  line-height: 1.5 !important;
  color: var(--bfl-text);
  word-break: normal !important;
  font-size-adjust: none !important;
}
body.bfl-v2 .bfl-v2-incl-item-icon {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}
body.bfl-v2 .bfl-v2-incl-item-icon svg {
  width: 10px;
  height: 10px;
}
body.bfl-v2 .bfl-v2-incl-yes {
  background: var(--bfl-green);
  color: #fff;
}
body.bfl-v2 .bfl-v2-incl-no {
  background: #cbd5e1;
  color: #fff;
}
.bfl-v2-incl-item-text {
  flex: 1 1 auto;
  min-width: 0;
}
.is-excluded .bfl-v2-incl-list li {
  color: var(--bfl-text-2);
}

/* ============================================================
   V2 Pricing — Soft Card refinement (no blue header band)
   ============================================================ */
body.bfl-v2 .bfl-v2-pricing-lead {
  font-size: 15px;
  line-height: 1.65 !important;
  color: var(--bfl-text);
  margin: 0 0 18px;
  word-break: normal !important;
  font-size-adjust: none !important;
}
body.bfl-v2 .bfl-v2-pricing-lead strong {
  font-weight: 700 !important;
  font-size-adjust: none !important;
}

/* Phase 7.8 — structured-list lead. Lead may now contain <p>, <ul>, <li>
   markup saved as wp_kses_post-allowed HTML. Wrapper changed from <p>
   to <div> at the renderer to permit nested block elements. */
body.bfl-v2 .bfl-v2-pricing-lead p {
  margin: 0 0 12px !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--bfl-text) !important;
}
body.bfl-v2 .bfl-v2-pricing-lead p:last-child {
  margin-bottom: 0 !important;
}
body.bfl-v2 .bfl-v2-pricing-lead ul {
  list-style: none !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  background: var(--bfl-bg) !important;
  border: 1px solid var(--bfl-border) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}
body.bfl-v2 .bfl-v2-pricing-lead ul li {
  display: flex !important;
  align-items: baseline !important;
  gap: 12px !important;
  padding: 10px 16px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  color: var(--bfl-text) !important;
  border-top: 1px solid var(--bfl-border) !important;
  list-style: none !important;
  margin: 0 !important;
}
body.bfl-v2 .bfl-v2-pricing-lead ul li:first-child {
  border-top: 0 !important;
}
body.bfl-v2 .bfl-v2-pricing-lead ul li strong {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--bfl-text) !important;
  letter-spacing: -0.01em !important;
  min-width: 50px !important;
  flex-shrink: 0 !important;
}
body.bfl-v2 .bfl-v2-pricing-lead p strong {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 600 !important;
  color: var(--bfl-text) !important;
  letter-spacing: -0.01em !important;
}

body.bfl-v2 .bfl-v2-pricing-card {
  background: #fff;
  border: 1px solid var(--bfl-border);
  border-radius: var(--bfl-r-md);
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(15,23,42,0.06);
  margin-bottom: 14px;
}

body.bfl-v2 .bfl-v2-pricing-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-family: 'DM Sans', sans-serif;
  background: transparent;
  margin: 0 !important;
}
body.bfl-v2 .bfl-v2-pricing-table thead th {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #64748b;
  padding: 14px 16px 10px;
  text-align: left;
  background: #fff;
  border-bottom: 1px solid var(--bfl-border);
  line-height: 1.3 !important;
  font-size-adjust: none !important;
  word-break: normal !important;
}
body.bfl-v2 .bfl-v2-pricing-table thead th:last-child {
  text-align: right;
}

/* Override parent theme style-custom.css:378-380 which applies
   table tr:nth-child(odd/even) { background-color: #f9f9f9/#f3f3f3 }
   to ALL tables site-wide. Force white on pricing rows. */
body.bfl-v2 .bfl-v2-pricing-table tbody tr,
body.bfl-v2 .bfl-v2-pricing-table tbody tr:nth-child(odd),
body.bfl-v2 .bfl-v2-pricing-table tbody tr:nth-child(even) {
  background-color: #fff !important;
}

body.bfl-v2 .bfl-v2-pricing-table tbody td {
  padding: 13px 16px !important;
  border-bottom: 1px solid var(--bfl-border-soft);
  vertical-align: middle;
  line-height: 1.4 !important;
  font-size-adjust: none !important;
  word-break: normal !important;
}
body.bfl-v2 .bfl-v2-pricing-table tbody tr:last-child td {
  border-bottom: none;
}

body.bfl-v2 .bfl-v2-pricing-table .col-traveller {
  font-size: 14.5px !important;
  font-weight: 700 !important;
  color: var(--bfl-text);
  text-align: left !important;
}
body.bfl-v2 .bfl-v2-pricing-table .col-age {
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--bfl-text-3);
  text-align: left !important;
}
body.bfl-v2 .bfl-v2-pricing-table .col-price,
body.bfl-v2 .bfl-v2-pricing-table .col-price .bfl-v2-pricing-price,
body.bfl-v2 .bfl-v2-pricing-table .col-price .bfl-v2-pricing-free {
  font-family: 'Fraunces', serif !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  color: var(--bfl-text);
  letter-spacing: -0.01em;
  line-height: 1 !important;
  white-space: nowrap;
  font-size-adjust: none !important;
  word-break: normal !important;
}
body.bfl-v2 .bfl-v2-pricing-table .col-price {
  text-align: right !important;
}
body.bfl-v2 .bfl-v2-pricing-table tr.is-free .col-price,
body.bfl-v2 .bfl-v2-pricing-table tr.is-free .col-price .bfl-v2-pricing-free {
  color: var(--bfl-green) !important;
  font-style: italic !important;
}

body.bfl-v2 .bfl-v2-pricing-notes {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: var(--bfl-amber-soft);
  border-top: 1px solid #d97706;
  font-size: 12.5px !important;
  line-height: 1.5 !important;
  color: #92400e;
  margin: 0 !important;
  font-size-adjust: none !important;
  word-break: normal !important;
}
body.bfl-v2 .bfl-v2-pricing-notes-icon {
  flex: 0 0 auto;
  font-family: 'Fraunces', serif;
  font-size: 14px;
  font-weight: 700;
  font-style: italic;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fcd34d;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: #92400e;
}
body.bfl-v2 .bfl-v2-pricing-notes strong {
  font-weight: 700;
}

/* ============================================================
   V2 Trust strip — passive footer recap below Reviews
   Mockup: compact 2×2 grid in soft blue card with white emoji circles
   ============================================================ */
body.bfl-v2 .bfl-v2-trust-strip{
  background:linear-gradient(135deg, var(--bfl-blue-soft) 0%, #fff 100%);
  border:1px solid var(--bfl-blue-border);
  border-radius:12px;
  padding:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
body.bfl-v2 .bfl-v2-trust-item{
  display:flex;
  align-items:center;
  gap:8px;
}
body.bfl-v2 .bfl-v2-trust-emoji{
  width:28px;
  height:28px;
  border-radius:50%;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px !important;
  line-height:1 !important;
  box-shadow:0 1px 3px rgba(0,0,0,0.08);
  flex-shrink:0;
  /* Force consistent emoji rendering */
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif !important;
  font-size-adjust:none !important;
}
body.bfl-v2 .bfl-v2-trust-text{
  line-height:1.2 !important;
  font-size-adjust:none !important;
  word-break:normal !important;
}
body.bfl-v2 .bfl-v2-trust-text strong{
  display:block;
  font-family:'DM Sans',sans-serif !important;
  font-size:12px !important;
  font-weight:700 !important;
  color:var(--bfl-text);
  line-height:1.3 !important;
  margin:0 0 1px;
}
body.bfl-v2 .bfl-v2-trust-text span{
  display:block;
  font-family:'DM Sans',sans-serif !important;
  font-size:10px !important;
  font-weight:400 !important;
  color:var(--bfl-text-2);
  line-height:1.3 !important;
}

/* Desktop expands to 4 across — preserve existing site behavior */
@media (min-width: 768px) {
  body.bfl-v2 .bfl-v2-trust-strip {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* =====================================================
   M5: REVIEWS WRAPPER
   ===================================================== */
.bfl-v2-reviews-wrap {
  /* BFL review section renders its own layout */
}
/* Remove duplicate heading if review-section has its own */
.bfl-v2-reviews-wrap .reviews-section {
  margin: 0;
}

/* =====================================================
   M5: FAQ — native <details>/<summary>
   ===================================================== */
.bfl-v2-faq-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bfl-v2-faq-item {
  background: #fff;
  border: 1px solid var(--bfl-border);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s ease;
}
.bfl-v2-faq-item[open] {
  border-color: var(--bfl-blue-border);
}
.bfl-v2-faq-q {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--bfl-text);
  text-transform: none;
  letter-spacing: normal;
  background: transparent;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.bfl-v2-faq-q::-webkit-details-marker { display: none; }
.bfl-v2-faq-q::marker { content: ''; }
.bfl-v2-faq-q:hover {
  color: var(--bfl-blue);
}
.bfl-v2-faq-q-text {
  flex: 1 1 auto;
  min-width: 0;
}
.bfl-v2-faq-chevron {
  flex-shrink: 0;
  color: var(--bfl-text-3);
  transition: transform 0.25s ease, color 0.15s ease;
}
.bfl-v2-faq-item[open] .bfl-v2-faq-chevron {
  transform: rotate(180deg);
  color: var(--bfl-blue);
}
.bfl-v2-faq-a {
  padding: 0 20px 18px;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.55;
  color: var(--bfl-text-2);
}
.bfl-v2-faq-a p {
  margin: 0 0 10px;
}
.bfl-v2-faq-a p:last-child {
  margin-bottom: 0;
}

/* =====================================================
   M6: SIDEBAR (Booking Widget)
   ===================================================== */
.bfl-v2-sidebar {
  scroll-margin-top: var(--bfl-tabbar-h);
}
@media (min-width: 1024px) {
  .bfl-v2-sidebar {
    position: sticky;
    top: calc(var(--bfl-tabbar-h) + 20px);
    align-self: start;
    max-height: calc(100vh - var(--bfl-tabbar-h) - 40px);
    overflow-y: auto;
    scrollbar-width: thin;
  }
  body.admin-bar .bfl-v2-sidebar {
    top: calc(var(--bfl-tabbar-h) + 52px);
    max-height: calc(100vh - var(--bfl-tabbar-h) - 72px);
  }
}
@media (max-width: 1023px) {
  .bfl-v2-sidebar {
    margin-top: 40px;
    padding-bottom: 100px; /* space for bottom bar */
  }
}

.bfl-v2-sidebar-inner {
  background: var(--bfl-bg-card);
  border: 1px solid var(--bfl-border);
  border-radius: var(--bfl-r-lg);
  padding: 20px;
  box-shadow: var(--bfl-shadow-md);
}

/* Suppress TourMaster widget chrome inside V2 sidebar */
.bfl-v2-sidebar-inner #bfl-v2-booking-wrap {
  padding: 0;
  margin: 0;
  background: transparent;
  box-shadow: none;
  border: none;
}
.bfl-v2-sidebar-inner .tourmaster-tour-booking-bar-outer {
  padding: 0;
}
.bfl-v2-sidebar-inner .tourmaster-tour-booking-bar-inner {
  padding: 0;
}
.bfl-v2-sidebar-inner .tourmaster-header-price {
  padding: 0 0 16px;
  margin: 0 0 16px;
  border-bottom: 1px solid var(--bfl-border-soft);
}
.bfl-v2-sidebar-inner .tourmaster-tour-booking-bar-widget {
  display: none; /* hide sidebar widget area if present */
}

/* =====================================================
   M6: BOOK TAB (mobile only)
   ===================================================== */
.bfl-v2-tab.is-mobile-only {
  display: none;
}
@media (max-width: 1023px) {
  .bfl-v2-tab.is-mobile-only {
    display: flex;
  }
}

/* =====================================================
   M6: STICKY MOBILE BOTTOM BAR
   ===================================================== */
.bfl-v2-bottom-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: var(--bfl-mobilebar-h);
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid var(--bfl-border);
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  z-index: 50;
  box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.06);
  transform: translateY(110%);
  transition: transform 0.3s ease-out;
}
.bfl-v2-bottom-bar.is-visible {
  transform: translateY(0);
}
@media (min-width: 1024px) {
  .bfl-v2-bottom-bar {
    display: none !important;
  }
}

.bfl-v2-bb-price {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.bfl-v2-bb-from {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--bfl-text-3);
  line-height: 1;
}
.bfl-v2-bb-amount {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-top: 2px;
}
.bfl-v2-bb-value {
  font-family: 'DM Sans', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--bfl-text);
  line-height: 1.2;
}
.bfl-v2-bb-unit {
  font-size: 14px;
  color: var(--bfl-text-2);
  font-weight: 500;
}
.bfl-v2-bb-trust {
  font-size: 11px;
  color: var(--bfl-green);
  font-weight: 600;
  margin-top: 2px;
}

.bfl-v2-bb-cta {
  flex: 0 1 auto;
  max-width: 320px;
  padding: 14px 20px;
  background: var(--bfl-blue);
  color: #fff;
  border: none;
  border-radius: 12px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
  transition: background 0.15s ease;
}
.bfl-v2-bb-cta:hover {
  background: var(--bfl-blue-dark);
}
.bfl-v2-bb-cta:active {
  transform: scale(0.98);
}

/* Mobile: last section needs extra bottom padding for bottom bar */
@media (max-width: 1023px) {
  .bfl-v2-content-col .bfl-v2-section:last-of-type .bfl-v2-section-inner {
    padding-bottom: 60px;
  }
}

/* WhatsApp FAB: reposition above bottom bar on V2 pages (mobile) */
@media (max-width: 1023px) {
  .bfl-v2-page .ht-ctc {
    bottom: 96px !important;
    transition: bottom 0.3s ease;
  }
}

/* =====================================================
   HIGHLIGHTS CARDS
   ===================================================== */
.bfl-v2-highlights {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bfl-v2-hl-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #fafafa;
  border: none;
  border-radius: 12px;
  padding: 14px;
}
.bfl-v2-hl-icon {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #eff6ff 0%, #e0ecff 100%);
  border-radius: 10px;
  font-size: 18px;
  line-height: 1;
}
body.bfl-v2 .bfl-v2-hl-text {
  flex: 1 1 auto;
  font-size: 13.5px;
  line-height: 1.5 !important;
  font-weight: 500;
  color: var(--bfl-text);
  padding-top: 7px;
  word-break: normal !important;
  font-size-adjust: none !important;
}
body.bfl-v2 .bfl-v2-hl-text strong {
  font-weight: 700;
}
@media (min-width: 1024px) {
  .bfl-v2-highlights {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
}

/* =====================================================
   ITINERARY TIMELINE
   ===================================================== */
.bfl-v2-itin-timeline {
  list-style: none;
  padding: 0;
  margin: 0;
}
.bfl-v2-itin-stop {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding-bottom: 22px;
  position: relative;
}
.bfl-v2-itin-stop.is-last {
  padding-bottom: 0;
}
.bfl-v2-itin-marker {
  flex-shrink: 0;
  position: relative;
  width: 36px;
  align-self: stretch;
}
.bfl-v2-itin-bullet {
  position: relative;
  z-index: 2;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--bfl-blue);
  color: var(--bfl-blue);
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bfl-v2-itin-stop:not(.is-last) .bfl-v2-itin-marker::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 36px;
  transform: translateX(-50%);
  width: 2px;
  bottom: -22px;
  background: linear-gradient(180deg, var(--bfl-blue) 0%, var(--bfl-blue-border) 100%);
  z-index: 1;
}
.bfl-v2-itin-content {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: 6px;
}
body.bfl-v2 .bfl-v2-itin-time {
  font-size: 11px;
  font-weight: 700;
  color: var(--bfl-text-3);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 3px;
  line-height: 1 !important;
  word-break: normal !important;
  font-size-adjust: none !important;
}
body.bfl-v2 .bfl-v2-itin-title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: var(--bfl-text);
  margin: 0 0 4px;
  line-height: 1.3 !important;
  word-break: normal !important;
  font-size-adjust: none !important;
}
body.bfl-v2 .bfl-v2-itin-body {
  font-size: 13.5px;
  line-height: 1.55 !important;
  color: var(--bfl-text-2);
  word-break: normal !important;
  font-size-adjust: none !important;
}
body.bfl-v2 .bfl-v2-itin-body p {
  margin: 0 0 8px;
  line-height: 1.55 !important;
  font-size-adjust: none !important;
  word-break: normal !important;
}
body.bfl-v2 .bfl-v2-itin-body p:last-child {
  margin-bottom: 0;
}
body.bfl-v2 .bfl-v2-itin-body strong {
  font-weight: 700;
}

/* =====================================================
   Phase 7.2 — Format B pricing (multi-package)
   Quick-pick grid + native <details> collapsibles.
   Used when tour has 1 date-price × N packages.
   ===================================================== */

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 8px !important;
  margin: 18px 0 16px !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid__item {
  position: relative;
  background: var(--bfl-bg-card) !important;
  border: 1px solid var(--bfl-border) !important;
  border-radius: 10px !important;
  padding: 14px 12px 12px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid__item.is-cheapest {
  border-color: var(--bfl-green) !important;
  background: linear-gradient(135deg, var(--bfl-green-soft) 0%, var(--bfl-bg-card) 75%) !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid__badge {
  position: absolute;
  top: -8px;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 9px !important;
  font-weight: 700 !important;
  padding: 3px 7px !important;
  border-radius: 99px !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.1;
  color: #fff !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid__badge--cheapest {
  left: 8px;
  background: var(--bfl-green) !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid__badge--popular {
  right: 8px;
  background: var(--bfl-amber) !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid__name {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--bfl-text) !important;
  line-height: 1.25 !important;
  margin-bottom: 4px !important;
  /* Clamp to 2 lines so all 4 cards stay visually balanced. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid__price {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  color: var(--bfl-text) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.1 !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid__item.is-cheapest .bfl-v2-pkg-grid__price {
  color: #92400e !important; /* deep amber, palette-consistent with rating accents */
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid__suffix {
  font-size: 10.5px !important;
  color: var(--bfl-text-3) !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
}

/* Collapsible cards */

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin-top: 4px !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg {
  background: var(--bfl-bg) !important;
  border: 1px solid transparent !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  transition: border-color 0.15s ease, background 0.15s ease !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg[open] {
  border-color: var(--bfl-border) !important;
  background: var(--bfl-bg-card) !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__summary {
  display: block !important;
  padding: 14px 16px !important;
  cursor: pointer !important;
  list-style: none !important;
  font-size: 13px !important;
  -webkit-tap-highlight-color: transparent;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__summary::-webkit-details-marker {
  display: none !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__head {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 10px !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__name {
  font-size: 13.5px !important;
  font-weight: 700 !important;
  color: var(--bfl-text) !important;
  line-height: 1.3 !important;
  /* allow truncation if a package name is unusually long */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__from {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--bfl-text) !important;
  letter-spacing: -0.01em !important;
  white-space: nowrap;
  flex-shrink: 0;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__includes {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 12.5px !important;
  color: var(--bfl-text-2) !important;
  line-height: 1.5 !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: 0 !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__includes strong {
  color: var(--bfl-text) !important;
  font-weight: 700 !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__hint {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--bfl-text-3) !important;
  line-height: 1.2 !important;
  margin-top: 2px !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__icon {
  color: var(--bfl-text-3);
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg[open] .bfl-v2-pkg__hint .bfl-v2-pkg__icon {
  transform: rotate(90deg);
  color: var(--bfl-text-2);
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__body {
  padding: 12px 16px 14px !important;
  border-top: 1px solid var(--bfl-border) !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

/* <thead> stays in DOM for AI/SEO semantic parsing — visually hidden. */
body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table thead {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Override parent theme style-custom.css:378-381 site-wide rules:
   table tr:nth-child(odd/even) { background-color: #f9f9f9/#f3f3f3; color: #949494; }
   Same fix the Format A .bfl-v2-pricing-table block applies above. */
body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table tbody tr,
body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table tbody tr:nth-child(odd),
body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table tbody tr:nth-child(even) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table tbody tr + tr td {
  border-top: 1px solid var(--bfl-border) !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table td {
  padding: 8px 0 !important;
  font-size: 13px !important;
  color: var(--bfl-text) !important;
  vertical-align: middle !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table td:nth-child(1) {
  font-weight: 700 !important;
  width: 70px !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table td.bfl-v2-pkg__age {
  color: var(--bfl-text-3) !important;
  font-size: 12px !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table td.bfl-v2-pkg__price {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-align: right !important;
  letter-spacing: -0.01em !important;
  color: var(--bfl-text) !important;
}

body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg__table td.bfl-v2-pkg__price--free {
  color: var(--bfl-green) !important;
}

@media (max-width: 359px) {
  body.bfl-v2 .bfl-v2-pricing--b .bfl-v2-pkg-grid {
    grid-template-columns: 1fr !important;
  }
}

/* =====================================================
   Phase 8.2 — Format C calendar grid (seasonal × tiers)
   12-cell 4×3 grid showing all months with adult price.
   Current month gets amber accent + NOW badge.
   Literal hex used to avoid coupling with --bfl-amber-soft
   (#fffbeb) which is in use elsewhere. Local tokens:
     #fef3c7 — current cell background (amber-50 equivalent)
     #fde68a — current cell border       (amber-200)
     #92400e — current cell label + NOW  (amber-800)
   ===================================================== */
body.bfl-v2 .bfl-v2-pricing--c .bfl-v2-month-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 6px !important;
  margin: 18px 0 !important;
}

body.bfl-v2 .bfl-v2-pricing--c .bfl-v2-month-cell {
  aspect-ratio: 1.1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--bfl-bg) !important;
  border: 1px solid transparent !important;
  border-radius: 10px !important;
  padding: 8px !important;
  text-align: center !important;
  position: relative !important;
}

body.bfl-v2 .bfl-v2-pricing--c .bfl-v2-month-cell.is-current {
  background: #fef3c7 !important;
  border-color: #fde68a !important;
}

body.bfl-v2 .bfl-v2-pricing--c .bfl-v2-month-cell.is-closed {
  opacity: 0.5 !important;
}

body.bfl-v2 .bfl-v2-pricing--c .bfl-v2-month-cell__month {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--bfl-text-3) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.1 !important;
}

body.bfl-v2 .bfl-v2-pricing--c .bfl-v2-month-cell.is-current .bfl-v2-month-cell__month {
  color: #92400e !important;
}

body.bfl-v2 .bfl-v2-pricing--c .bfl-v2-month-cell__price {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--bfl-text) !important;
  letter-spacing: -0.015em !important;
  margin-top: 2px !important;
  line-height: 1 !important;
}

body.bfl-v2 .bfl-v2-pricing--c .bfl-v2-month-cell__closed {
  font-size: 11px !important;
  color: var(--bfl-text-3) !important;
  font-weight: 600 !important;
  margin-top: 2px !important;
}

body.bfl-v2 .bfl-v2-pricing--c .bfl-v2-month-cell__badge {
  position: absolute !important;
  top: -7px !important;
  right: -4px !important;
  background: #92400e !important;
  color: #fff !important;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  padding: 2px 6px !important;
  border-radius: 99px !important;
  line-height: 1.1 !important;
  z-index: 1 !important;
}

/* Placeholder — future CSS sections below */
