/* =========================================================================
 * Brand North — Section-level styles (v0.3 reset)
 * Seven sections, calmer, more expensive, ember-accented.
 * ========================================================================= */

.bn-homepage { background-color: var(--bn-bg); }

/* =========================================================================
 * § 01 HERO — copy-led calm hook
 * Full-bleed ink, spire-line drift behind, live status row below CTAs
 * ========================================================================= */
.bn-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding-block: var(--space-12) var(--space-10);
  isolation: isolate;
  overflow: hidden;
}

.bn-hero__ambient {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
}

/* Warm grain noise — gives the dark a tactile feel */
.bn-hero__ambient::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.9  0 0 0 0 0.87  0 0 0 0 0.78  0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity: 0.55;
  mix-blend-mode: screen;
}

/* Ember atmosphere — soft warm glow at top */
.bn-hero__ambient::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(80% 50% at 50% 0%, rgba(229, 103, 60, 0.22), transparent 70%),
    radial-gradient(50% 60% at 20% 80%, rgba(95, 139, 110, 0.06), transparent 70%);
  pointer-events: none;
}

/* The spire — single vertical light line drifting left → right ------------- */
.bn-hero__spire {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(180deg,
    transparent 0%,
    rgba(229, 103, 60, 0.20) 35%,
    rgba(229, 103, 60, 0.45) 55%,
    rgba(229, 103, 60, 0.20) 75%,
    transparent 100%);
  filter: blur(0.5px);
  animation: bn-spire-drift var(--dur-drift) ease-in-out infinite;
  transform-origin: center;
}

@keyframes bn-spire-drift {
  0%   { left: -2%;  transform: skewX(-2deg) scaleY(1);   opacity: 0; }
  10%  {                                                   opacity: 0.8; }
  50%  { left: 50%;  transform: skewX(0deg)  scaleY(1.1); opacity: 1; }
  90%  {                                                   opacity: 0.6; }
  100% { left: 102%; transform: skewX(2deg)  scaleY(1);   opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .bn-hero__spire { animation: none; left: 60%; opacity: 0.5; }
}

.bn-hero__inner {
  position: relative;
  z-index: 1;
}

.bn-hero__eyebrow {
  font-family: var(--font-mono);
  font-size: var(--fs-mono-label);
  font-weight: var(--fw-medium);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--bn-bone-mute);
  margin-bottom: var(--space-6);
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
}

.bn-hero__eyebrow-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--bn-ember);
  box-shadow: 0 0 12px rgba(229, 103, 60, 0.6);
}

.bn-hero__headline {
  font-size: clamp(40px, 6vw, 80px);
  line-height: 1.06;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight);
  color: var(--bn-bone);
  max-width: 18ch;
  margin-bottom: var(--space-7);
  text-wrap: balance;
}

.bn-hero__headline p { margin-bottom: 0; }
.bn-hero__headline p + p { margin-top: var(--space-4); }

.bn-hero__headline .bn-italic {
  color: var(--bn-ember);
}

.bn-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-bottom: var(--space-8);
}

.bn-hero__status {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 8px 14px;
  background-color: rgba(95, 139, 110, 0.08);
  border: 1px solid rgba(95, 139, 110, 0.24);
  border-radius: var(--radius-pill);
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  font-weight: var(--fw-medium);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--bn-bone-mute);
}

.bn-hero__status-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--bn-sage);
  animation: bn-pulse 2.4s var(--ease-in-out) infinite;
}

.bn-hero__status-time {
  color: var(--bn-bone);
  font-weight: var(--fw-semibold);
}

/* =========================================================================
 * § 02 PROBLEM — visceral, click-to-reveal data pattern
 * ========================================================================= */
.bn-problem {
  padding-block: var(--space-12);
  position: relative;
}

.bn-problem__headline {
  font-size: clamp(32px, 4.5vw, 56px);
  line-height: 1.12;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-snug);
  color: var(--bn-bone);
  max-width: 22ch;
  margin-bottom: var(--space-6);
  text-wrap: balance;
}

.bn-problem__body {
  font-size: var(--fs-body-l);
  line-height: var(--lh-body-l);
  color: var(--bn-text-secondary);
  max-width: 60ch;
  margin-bottom: var(--space-7);
}

.bn-reveal-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  background: transparent;
  border: 0;
  padding: 0;
  font-family: var(--font-display);
  font-size: var(--fs-body-l);
  font-weight: var(--fw-medium);
  color: var(--bn-bone);
  cursor: pointer;
  position: relative;
}

.bn-reveal-link::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 1px;
  background-color: var(--bn-ember);
  transform: scaleX(0.6);
  transform-origin: left;
  transition: transform var(--dur-fast) var(--ease-out-quart),
              background-color var(--dur-fast) var(--ease-out-quart);
}

.bn-reveal-link:hover { color: var(--bn-ember); }
.bn-reveal-link:hover::after { transform: scaleX(1); }

.bn-reveal-link[aria-expanded="true"] .bn-reveal-link__caret { transform: rotate(180deg); }

.bn-reveal-link__caret {
  display: inline-block;
  width: 14px;
  height: 14px;
  transition: transform var(--dur-base) var(--ease-out-quart);
}

.bn-reveal-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--dur-medium) var(--ease-out-quart),
              margin-top var(--dur-medium) var(--ease-out-quart);
  margin-top: 0;
}

.bn-reveal-panel[data-bn-open="true"] {
  grid-template-rows: 1fr;
  margin-top: var(--space-7);
}

.bn-reveal-panel > div { overflow: hidden; min-height: 0; }

.bn-fog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

@media (max-width: 768px) {
  .bn-fog-grid { grid-template-columns: 1fr; }
}

.bn-fog-card {
  padding: var(--space-6);
  background-color: var(--bn-bg-elevated);
  border: 1px solid var(--bn-border-subtle);
  border-radius: var(--radius-lg);
}

.bn-fog-card__num {
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--bn-text-mono-label);
  margin-bottom: var(--space-3);
}

.bn-fog-card__value {
  font-family: var(--font-display);
  font-size: clamp(40px, 5vw, 56px);
  line-height: 1;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight);
  color: var(--bn-ember);
  margin-bottom: var(--space-3);
  font-variant-numeric: tabular-nums;
}

.bn-fog-card__body {
  color: var(--bn-text-secondary);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

.bn-fog-card__source {
  display: block;
  margin-top: var(--space-4);
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--bn-text-tertiary);
}

/* =========================================================================
 * § 03 THE SYSTEM — scroll-pinned 5-module diagram
 * ========================================================================= */
.bn-system {
  position: relative;
  background-color: var(--bn-ink);
}

.bn-system__inner {
  padding-block: var(--space-10);
}

.bn-system__header {
  text-align: center;
  margin-bottom: var(--space-8);
  max-width: 720px;
  margin-inline: auto;
}

.bn-system__headline {
  font-size: clamp(40px, 5.5vw, 72px);
  line-height: 1.08;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight);
  color: var(--bn-bone);
  margin-block: var(--space-4) var(--space-5);
  text-wrap: balance;
}

.bn-system__body {
  font-size: var(--fs-body-l);
  line-height: var(--lh-body-l);
  color: var(--bn-text-secondary);
  max-width: 56ch;
  margin-inline: auto;
}

.bn-system__diagram {
  position: relative;
  margin-top: var(--space-9);
  padding: var(--space-7);
  background-color: var(--bn-bg-elevated);
  border: 1px solid var(--bn-border-subtle);
  border-radius: var(--radius-xl);
}

.bn-system__modules {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-7);
}

@media (max-width: 1024px) { .bn-system__modules { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .bn-system__modules { grid-template-columns: 1fr; } }

.bn-system__module {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: var(--space-5);
  background-color: rgba(242, 237, 227, 0.02);
  border: 1px solid var(--bn-border-subtle);
  border-radius: var(--radius-lg);
  transition: border-color var(--dur-base) var(--ease-out-quart),
              background-color var(--dur-base) var(--ease-out-quart);
}

.bn-system__module[data-active="true"] {
  border-color: rgba(229, 103, 60, 0.45);
  background-color: rgba(229, 103, 60, 0.04);
}

.bn-system__module-num {
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--bn-text-mono-label);
  margin-bottom: var(--space-3);
}

.bn-system__module-title {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-snug);
  color: var(--bn-bone);
  margin-bottom: var(--space-2);
}

.bn-system__module-body {
  font-size: var(--fs-body-s);
  line-height: 1.55;
  color: var(--bn-text-secondary);
}

.bn-system__module-dot {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: rgba(242, 237, 227, 0.12);
  transition: background-color var(--dur-base) var(--ease-out-quart),
              box-shadow var(--dur-base) var(--ease-out-quart);
}

.bn-system__module[data-active="true"] .bn-system__module-dot {
  background-color: var(--bn-ember);
  box-shadow: 0 0 12px rgba(229, 103, 60, 0.6);
}

.bn-system__terminus {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  padding: var(--space-5);
  background-color: rgba(229, 103, 60, 0.04);
  border: 1px solid rgba(229, 103, 60, 0.16);
  border-radius: var(--radius-lg);
  flex-wrap: wrap;
}

.bn-system__terminus-text {
  font-family: var(--font-display);
  font-size: var(--fs-body-l);
  font-weight: var(--fw-medium);
  color: var(--bn-bone);
  max-width: 50ch;
}

.bn-system__terminus-text em { font-family: var(--font-italic); font-style: italic; font-weight: 300; color: var(--bn-ember); }

/* =========================================================================
 * § 04 PROOF — horizontal-scroll case study reel
 * ========================================================================= */
.bn-proof {
  position: relative;
  background-color: var(--bn-bg);
}

.bn-proof__header {
  padding-block: var(--space-9);
  text-align: center;
}

.bn-proof__headline {
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.08;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-snug);
  color: var(--bn-bone);
  margin-block: var(--space-4) var(--space-5);
  max-width: 18ch;
  margin-inline: auto;
}

.bn-proof__body {
  font-size: var(--fs-body-l);
  line-height: var(--lh-body-l);
  color: var(--bn-text-secondary);
  max-width: 52ch;
  margin-inline: auto;
}

.bn-proof__track-wrap {
  position: relative;
  margin-bottom: var(--space-10);
}

.bn-proof__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(min(85vw, 720px), 1fr);
  gap: var(--space-5);
  padding-inline: var(--gutter);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.bn-proof__track::-webkit-scrollbar { display: none; }

.bn-proof__tile {
  position: relative;
  scroll-snap-align: start;
  min-height: 480px;
  padding: var(--space-7);
  border-radius: var(--radius-xl);
  border: 1px solid var(--bn-border-subtle);
  background-color: var(--bn-bg-elevated);
  background-size: cover;
  background-position: center;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.bn-proof__tile::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(14, 14, 16, 0.65) 0%,
    rgba(14, 14, 16, 0.88) 60%,
    rgba(14, 14, 16, 0.96) 100%);
  z-index: -1;
}

.bn-proof__tile::after {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(229, 103, 60, 0.05);
  mix-blend-mode: overlay;
  z-index: -1;
}

.bn-proof__tile-meta {
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--bn-bone-mute);
  margin-bottom: var(--space-5);
}

.bn-proof__tile-title {
  font-family: var(--font-display);
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.12;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-snug);
  color: var(--bn-bone);
  max-width: 22ch;
  margin-bottom: var(--space-5);
  text-wrap: balance;
}

.bn-proof__tile-title em { font-family: var(--font-italic); font-style: italic; font-weight: 300; color: var(--bn-ember); }

.bn-proof__tile-body {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--bn-text-secondary);
  max-width: 48ch;
  margin-bottom: var(--space-6);
}

.bn-proof__tile-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  padding-top: var(--space-5);
  border-top: 1px solid var(--bn-border-subtle);
}

.bn-proof__tile-stat-value {
  font-family: var(--font-display);
  font-size: clamp(24px, 2.4vw, 36px);
  line-height: 1;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight);
  color: var(--bn-ember);
  font-variant-numeric: tabular-nums;
  display: block;
}

.bn-proof__tile-stat-label {
  display: block;
  margin-top: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--bn-bone-mute);
}

.bn-proof__controls {
  display: flex;
  justify-content: center;
  gap: var(--space-3);
  margin-top: var(--space-5);
}

/* =========================================================================
 * § 05 TEAM / WHY US
 * ========================================================================= */
.bn-team {
  padding-block: var(--space-12);
}

.bn-team__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-9);
  align-items: start;
}

@media (max-width: 960px) {
  .bn-team__grid { grid-template-columns: 1fr; gap: var(--space-7); }
}

.bn-team__copy {
  max-width: 56ch;
}

.bn-team__headline {
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.08;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight);
  color: var(--bn-bone);
  margin-block: var(--space-4) var(--space-5);
}

.bn-team__headline em { font-family: var(--font-italic); font-style: italic; font-weight: 300; color: var(--bn-ember); }

.bn-team__body {
  font-size: var(--fs-body-l);
  line-height: var(--lh-body-l);
  color: var(--bn-text-secondary);
  margin-bottom: var(--space-5);
}

.bn-team__body + .bn-team__body { color: var(--bn-text-tertiary); }

.bn-team__people {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.bn-team__person {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.bn-team__person-portrait {
  aspect-ratio: 1 / 1;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(229, 103, 60, 0.18), rgba(14, 14, 16, 1));
  border: 1px solid var(--bn-border-subtle);
  position: relative;
  overflow: hidden;
  filter: grayscale(0.8) contrast(1.1);
}

.bn-team__person-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Placeholder when no image — abstract silhouette */
.bn-team__person-portrait:empty::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(40% 35% at 50% 38%, rgba(242, 237, 227, 0.22), transparent 65%),
    radial-gradient(60% 40% at 50% 88%, rgba(242, 237, 227, 0.10), transparent 60%);
}

.bn-team__person-name {
  font-family: var(--font-display);
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold);
  color: var(--bn-bone);
}

.bn-team__person-role {
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--bn-text-tertiary);
}

/* =========================================================================
 * § 06 PRICING
 * ========================================================================= */
.bn-pricing-section {
  padding-block: var(--space-12);
  background-color: var(--bn-ink-2);
}

.bn-pricing-section__header {
  text-align: center;
  margin-bottom: var(--space-9);
  max-width: 640px;
  margin-inline: auto;
}

.bn-pricing-section__headline {
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.08;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight);
  color: var(--bn-bone);
  margin-block: var(--space-4) var(--space-5);
}

.bn-pricing-section__headline em { font-family: var(--font-italic); font-style: italic; font-weight: 300; color: var(--bn-ember); }

.bn-pricing-section__body {
  font-size: var(--fs-body-l);
  color: var(--bn-text-secondary);
}

.bn-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: stretch;
}

@media (max-width: 960px) { .bn-pricing-grid { grid-template-columns: 1fr; } }

.bn-pricing__tier {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: var(--space-7);
  background-color: var(--bn-ink);
  border: 1px solid var(--bn-border-subtle);
  border-radius: var(--radius-xl);
}

.bn-pricing__tier--featured {
  border-color: var(--bn-ember);
  background-color: rgba(229, 103, 60, 0.03);
}

.bn-pricing__badge {
  position: absolute;
  inset-block-start: -14px;
  inset-inline-start: var(--space-5);
}

.bn-pricing__name {
  font-family: var(--font-display);
  font-size: var(--fs-h2);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-snug);
  color: var(--bn-bone);
  margin-bottom: var(--space-3);
}

.bn-pricing__tier--featured .bn-pricing__name { color: var(--bn-ember); }

.bn-pricing__fit {
  color: var(--bn-text-secondary);
  font-size: var(--fs-body);
  margin-bottom: var(--space-5);
  min-height: 4.5em;
}

.bn-pricing__price {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  padding-block: var(--space-4);
  border-top: 1px solid var(--bn-border-subtle);
  border-bottom: 1px solid var(--bn-border-subtle);
  margin-bottom: var(--space-5);
}

.bn-pricing__price .bn-mono-micro { color: var(--bn-text-tertiary); margin-right: var(--space-2); }

.bn-pricing__amount {
  font-family: var(--font-display);
  font-size: 44px;
  line-height: 1;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight);
  color: var(--bn-bone);
  font-variant-numeric: tabular-nums;
}

.bn-pricing__period {
  font-family: var(--font-mono);
  font-size: var(--fs-mono-body);
  color: var(--bn-text-tertiary);
}

.bn-pricing__features {
  list-style: none;
  margin: 0;
  padding: 0;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-bottom: var(--space-6);
}

.bn-pricing__features li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  font-size: var(--fs-body);
  color: var(--bn-bone);
}

.bn-pricing__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  color: var(--bn-sage);
  margin-top: 4px;
}

.bn-pricing__check svg { width: 100%; height: 100%; }

.bn-pricing-section__footnote {
  text-align: center;
  margin-top: var(--space-7);
  color: var(--bn-text-tertiary);
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
}

.bn-pricing-section__footnote a {
  color: var(--bn-text-secondary);
  text-decoration: underline;
  text-decoration-color: var(--bn-border-subtle);
  text-underline-offset: 4px;
}

.bn-pricing-section__footnote a:hover { color: var(--bn-ember); text-decoration-color: var(--bn-ember); }

/* =========================================================================
 * § 07 BOOKING — closing CTA, guarantee folded in
 * ========================================================================= */
.bn-booking {
  position: relative;
  padding-block: var(--space-12) var(--space-11);
  text-align: center;
  isolation: isolate;
  overflow: hidden;
}

.bn-booking::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(60% 70% at 50% 50%, rgba(229, 103, 60, 0.10), transparent 70%);
}

.bn-booking__headline {
  font-size: clamp(48px, 7vw, 96px);
  line-height: 1.04;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight);
  color: var(--bn-bone);
  margin-block: var(--space-4) var(--space-5);
  max-width: 16ch;
  margin-inline: auto;
}

.bn-booking__headline em { font-family: var(--font-italic); font-style: italic; font-weight: 300; color: var(--bn-ember); }

.bn-booking__body {
  font-size: var(--fs-body-l);
  line-height: var(--lh-body-l);
  color: var(--bn-text-secondary);
  max-width: 52ch;
  margin-inline: auto;
  margin-bottom: var(--space-6);
}

.bn-booking__signal {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 8px 14px;
  background-color: rgba(95, 139, 110, 0.10);
  border: 1px solid rgba(95, 139, 110, 0.28);
  border-radius: var(--radius-pill);
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  font-weight: var(--fw-medium);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--bn-sage);
  margin-bottom: var(--space-7);
}

.bn-booking__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  padding: 22px var(--space-7);
  background-color: var(--bn-ember);
  color: var(--bn-bone);
  border-radius: var(--radius-pill);
  font-family: var(--font-display);
  font-size: var(--fs-body-l);
  font-weight: var(--fw-medium);
  letter-spacing: -0.005em;
  transition: background-color var(--dur-fast) var(--ease-out-quart),
              transform var(--dur-fast) var(--ease-out-quart),
              box-shadow var(--dur-base) var(--ease-out-quart);
  box-shadow: var(--shadow-ember-glow);
}

.bn-booking__cta:hover {
  background-color: var(--bn-ember-hover);
  transform: translateY(-2px);
  box-shadow: var(--shadow-ember-glow), var(--shadow-elevated);
}

.bn-booking__bullets {
  list-style: none;
  padding: 0;
  margin: var(--space-7) 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-5);
  color: var(--bn-text-tertiary);
}

.bn-booking__bullets li {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
}

.bn-booking__bullets li > span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  color: var(--bn-sage);
}

.bn-booking__bullets li > span:first-child svg { width: 100%; height: 100%; }

.bn-booking__footer {
  margin-top: var(--space-7);
  color: var(--bn-text-tertiary);
  font-family: var(--font-mono);
  font-size: var(--fs-mono-micro);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
}

.bn-booking__footer a {
  color: var(--bn-bone-mute);
  text-decoration: underline;
  text-decoration-color: var(--bn-border-subtle);
  text-underline-offset: 3px;
}

.bn-booking__footer a:hover { color: var(--bn-ember); text-decoration-color: var(--bn-ember); }

/* =========================================================================
 * Reveal baseline (kept from prior pass — auto-rescue after 2.5s)
 * ========================================================================= */
@keyframes bn-reveal-fallback {
  to { opacity: 1; transform: translateY(0); }
}

[data-bn-reveal] {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 600ms var(--ease-out-quart),
              transform 600ms var(--ease-out-quart);
  animation: bn-reveal-fallback 600ms var(--ease-out-quart) 2500ms forwards;
}

[data-bn-reveal][data-bn-revealed="true"] {
  animation: none;
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  [data-bn-reveal] {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
