/* ────────────────────────────────────────────────────────────
   BtAmehr · Webfonts
   Google Fonts substitutes for the brand's original type.
   Flagged in readme.md → VISUAL FOUNDATIONS · Type.
   · Cormorant Garamond — Latin display serif (matches wordmark)
   · Noto Naskh Arabic  — Persian headings (elegant serif-like naskh)
   · Vazirmatn          — Latin + Persian body sans
   · Gulzar             — Nastaliq, decorative Persian accent only
   ──────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Gulzar&family=Noto+Naskh+Arabic:wght@400;500;600;700&family=Vazirmatn:wght@300;400;500;600;700;800&display=swap');

/* ────────────────────────────────────────────────────────────
   BtAmehr · Color system
   Sampled from the brand mark (#D02E34), the relationships flyer
   (burgundy #69100F, forest #2A412A, gold #CBA382, cream #F7E8DD)
   and the 12-stage "بی تا مهر" journey map (watercolor tints).
   ──────────────────────────────────────────────────────────── */
:root {
  /* ── Brand · Burgundy (primary) ───────────────────────────── */
  --burgundy-950: #2C0707;
  --burgundy-900: #3E0A0A;
  --burgundy-800: #520D0D;
  --burgundy-700: #5E0F10;
  --burgundy-600: #6E1214;   /* PRIMARY — flyer wordmark */
  --burgundy-500: #8A2320;
  --burgundy-400: #A83B36;
  --burgundy-300: #C97C77;
  --burgundy-200: #E3B4B0;
  --burgundy-100: #F2D9D6;
  --burgundy-50:  #FAECEA;

  /* Signal red — the vivid logo mark; use sparingly for spark */
  --red-mark:      #D02E34;
  --red-mark-dark: #B12329;

  /* ── Brand · Forest green (secondary) ─────────────────────── */
  --forest-900: #16301C;
  --forest-800: #1F3A24;
  --forest-700: #2A412A;     /* flyer section-header bars */
  --forest-600: #365438;
  --forest-500: #4A6B4C;
  --forest-400: #6E8D6E;
  --forest-300: #9FB59D;
  --forest-200: #C6D4C4;
  --forest-100: #E2EADF;
  --forest-50:  #F0F4ED;

  /* ── Brand · Gold / bronze (accent, hairlines, frames) ────── */
  --gold-700: #96703F;
  --gold-600: #B08A5A;
  --gold-500: #CBA382;       /* flyer rule lines */
  --gold-400: #DCBB98;
  --gold-300: #E7CEAE;
  --gold-200: #F0E0CB;
  --gold-100: #F7ECDD;

  /* ── Neutral · warm cream + sand ──────────────────────────── */
  --cream-50:  #FCF6EF;
  --cream-100: #F7E8DD;      /* page background — flyer */
  --cream-200: #F1DCCB;
  --sand-300:  #E7D3BE;
  --sand-400:  #D8BFA4;
  --white:     #FFFFFF;

  /* ── Ink · warm near-black text ───────────────────────────── */
  --ink-900: #241C18;
  --ink-800: #362A22;
  --ink-700: #4E4139;
  --ink-500: #756458;
  --ink-400: #9A897B;
  --ink-300: #C2B4A6;

  /* ── Journey · 12 watercolor stage tints (بی → مهر) ───────── */
  --stage-1-awakening:    #DCE4D0;  /* بیداری */
  --stage-2-security:     #F4E4CF;  /* امنیت و دلبستگی */
  --stage-3-mind:         #CFE0DA;  /* ذهن و مغز */
  --stage-4-love:         #F1D9D6;  /* احساس و عشق */
  --stage-5-body:         #D6DCE8;  /* سلامت و جسم */
  --stage-6-suffering:    #DDD4E4;  /* رنج و معنا */
  --stage-7-relationship: #E4D8E6;  /* رابطه */
  --stage-8-creativity:   #EAD6D2;  /* خلاقیت و زیبایی */
  --stage-9-service:      #F3DEC6;  /* کار و خدمت */
  --stage-10-spirit:      #F5E3C4;  /* معنویت */
  --stage-11-return:      #EFDAD0;  /* بازگشت به خود */
  --stage-12-legacy:      #F0E2C8;  /* میراث */

  /* ── Semantic aliases ─────────────────────────────────────── */
  --color-bg:            var(--cream-100);
  --color-bg-elevated:   var(--cream-50);
  --color-surface:       var(--white);
  --color-surface-alt:   var(--cream-200);
  --color-surface-dark:  var(--forest-800);

  --color-primary:          var(--burgundy-600);
  --color-primary-hover:    var(--burgundy-700);
  --color-primary-active:   var(--burgundy-800);
  --color-on-primary:       var(--gold-100);

  --color-secondary:        var(--forest-700);
  --color-secondary-hover:  var(--forest-800);
  --color-on-secondary:     var(--gold-100);

  --color-accent:        var(--gold-500);
  --color-accent-strong: var(--gold-600);

  --text-strong:  var(--ink-900);
  --text-body:    var(--ink-700);
  --text-muted:   var(--ink-500);
  --text-faint:   var(--ink-400);
  --text-on-dark: var(--gold-100);

  --border-subtle:  color-mix(in srgb, var(--gold-500) 38%, transparent);
  --border-default: var(--gold-400);
  --border-strong:  var(--gold-600);
  --divider:        color-mix(in srgb, var(--ink-500) 16%, transparent);

  --link:       var(--burgundy-600);
  --link-hover: var(--red-mark);
  --focus-ring: color-mix(in srgb, var(--burgundy-500) 55%, transparent);

  --overlay-dark: color-mix(in srgb, var(--burgundy-950) 62%, transparent);
}

/* ────────────────────────────────────────────────────────────
   BtAmehr · Typography
   Latin display = Cormorant Garamond · Persian headings = Noto
   Naskh Arabic · body (bilingual) = Vazirmatn · accent = Gulzar.
   Persian body reads better with looser leading — see --leading-*.
   ──────────────────────────────────────────────────────────── */
:root {
  --font-display:  'Cormorant Garamond', 'Noto Naskh Arabic', Georgia, serif;
  --font-naskh:    'Noto Naskh Arabic', 'Cormorant Garamond', serif; /* Persian headings */
  --font-body:     'Vazirmatn', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-nastaliq: 'Gulzar', 'Noto Naskh Arabic', serif;             /* decorative accent */

  /* Fluid type scale */
  --text-xs:   0.75rem;    /* 12 */
  --text-sm:   0.8125rem;  /* 13 */
  --text-cap:  0.875rem;   /* 14 — Latin caps labels */
  --text-base: 1rem;       /* 16 */
  --text-md:   1.125rem;   /* 18 */
  --text-lg:   1.25rem;    /* 20 */
  --text-xl:   clamp(1.375rem, 2.4vw, 1.75rem);
  --text-2xl:  clamp(1.75rem, 3.6vw, 2.5rem);
  --text-3xl:  clamp(2.25rem, 5vw, 3.5rem);
  --text-4xl:  clamp(2.75rem, 7vw, 5rem);
  --text-display: clamp(3.25rem, 9vw, 6.5rem);

  --weight-light:    300;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;

  --leading-tight:   1.12;
  --leading-snug:    1.3;
  --leading-normal:  1.55;
  --leading-relaxed: 1.9;   /* default for Persian body */

  --tracking-tight:  -0.02em;
  --tracking-normal: 0;
  --tracking-wide:   0.08em;
  --tracking-wider:  0.2em;  /* Latin small-caps eyebrow labels */
}

/* ────────────────────────────────────────────────────────────
   BtAmehr · Spacing & layout
   Base unit 4px. Generous, unhurried rhythm to match the calm
   editorial feel of the brand.
   ──────────────────────────────────────────────────────────── */
:root {
  --space-0:  0;
  --space-1:  0.25rem;   /* 4  */
  --space-2:  0.5rem;    /* 8  */
  --space-3:  0.75rem;   /* 12 */
  --space-4:  1rem;      /* 16 */
  --space-5:  1.5rem;    /* 24 */
  --space-6:  2rem;      /* 32 */
  --space-7:  2.5rem;    /* 40 */
  --space-8:  3rem;      /* 48 */
  --space-9:  4rem;      /* 64 */
  --space-10: 5rem;      /* 80 */
  --space-11: 6.5rem;    /* 104 */
  --space-12: 8rem;      /* 128 */

  --container-narrow: 760px;
  --container-max:    1200px;
  --container-wide:   1360px;
  --gutter:  clamp(1.25rem, 5vw, 4rem);  /* @kind spacing */
  --section-y: clamp(3.5rem, 8vw, 8rem); /* @kind spacing */
}

/* ────────────────────────────────────────────────────────────
   BtAmehr · Radius, borders & shadows
   Soft rounded corners; warm-tinted shadows (never neutral black);
   thin gold hairlines are the brand's signature frame treatment.
   ──────────────────────────────────────────────────────────── */
:root {
  --radius-xs:   4px;
  --radius-sm:   8px;
  --radius-md:   14px;
  --radius-lg:   22px;
  --radius-xl:   32px;
  --radius-card: 20px;
  --radius-pill: 999px;

  --border-hairline: 1px solid var(--border-subtle);
  --border-gold:     1px solid var(--border-default);
  --border-gold-2:   1.5px solid var(--gold-500);

  /* Warm, low, diffuse shadows */
  --shadow-xs:  0 1px 2px rgba(64, 24, 16, 0.06);
  --shadow-sm:  0 2px 10px rgba(64, 24, 16, 0.07);
  --shadow-md:  0 12px 32px -14px rgba(74, 20, 14, 0.20);
  --shadow-lg:  0 28px 64px -22px rgba(74, 20, 14, 0.26);
  --shadow-gold: 0 10px 34px -12px rgba(176, 138, 90, 0.38);
  --ring-focus: 0 0 0 3px var(--focus-ring);
}

/* ────────────────────────────────────────────────────────────
   BtAmehr · Motion
   Gentle, unhurried easing. Fades and soft rises — never bounces
   or springs. Everything should feel like a slow breath.
   ──────────────────────────────────────────────────────────── */
:root {
  --ease-standard:      cubic-bezier(0.4, 0, 0.2, 1);   /* @kind other */
  --ease-out-soft:      cubic-bezier(0.22, 1, 0.36, 1);  /* @kind other */
  --ease-in-out-gentle: cubic-bezier(0.65, 0, 0.35, 1);  /* @kind other */

  --dur-fast:   140ms; /* @kind other */
  --dur-base:   260ms; /* @kind other */
  --dur-slow:   440ms; /* @kind other */
  --dur-slower: 760ms; /* @kind other */
}

/* ────────────────────────────────────────────────────────────
   BtAmehr · Base / element defaults
   Bilingual (fa RTL primary + en LTR). Warm cream canvas, serif
   headings, sans body. Loaded last so it can read every token.
   ──────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--text-body);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Headings — Latin serif by default, Persian naskh in RTL context */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-tight);
  color: var(--text-strong);
  margin: 0 0 0.5em;
  letter-spacing: var(--tracking-tight);
}
[dir="rtl"] h1, [dir="rtl"] h2, [dir="rtl"] h3,
[dir="rtl"] h4, [dir="rtl"] h5, [dir="rtl"] h6,
:lang(fa) h1, :lang(fa) h2, :lang(fa) h3,
:lang(fa) h4, :lang(fa) h5, :lang(fa) h6 {
  font-family: var(--font-naskh);
  letter-spacing: var(--tracking-normal);
}

p { margin: 0 0 1em; text-wrap: pretty; }
[dir="rtl"] p, :lang(fa) p { line-height: var(--leading-relaxed); }

/* Links — always defined so editor-added links never fall back to browser blue */
a {
  color: var(--link);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-standard);
}
a:hover { color: var(--link-hover); }

strong, b { font-weight: var(--weight-semibold); color: var(--text-strong); }
em, i { font-style: italic; }

hr {
  border: none;
  border-top: var(--border-hairline);
  margin: var(--space-6) 0;
}

img, svg, video { max-width: 100%; display: block; }

button { font-family: inherit; }

::selection { background: var(--burgundy-200); color: var(--burgundy-900); }

:focus-visible {
  outline: none;
  box-shadow: var(--ring-focus);
  border-radius: var(--radius-xs);
}

/* Latin eyebrow / small-caps label — a recurring brand device */
.eyebrow {
  font-family: var(--font-body);
  font-size: var(--text-cap);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-accent-strong);
}

/* Utility container */
.container { width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--gutter); }

/* ─────────────────────────────────────────────────────────────
   BtAmehr — app styles. Class-based equivalents of the DS
   components + responsive rules + interactive states.
   ───────────────────────────────────────────────────────────── */

@keyframes btFadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes btFade   { from { opacity: 0; } to { opacity: 1; } }
@keyframes btRise   { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

body { margin: 0; }

/* v2 redesign: every heading uses the body font (Vazirmatn),
   only the BtAmehr wordmark keeps the display serif (set inline). */
h1, h2, h3, h4, h5, h6,
[dir="rtl"] h1, [dir="rtl"] h2, [dir="rtl"] h3, [dir="rtl"] h4, [dir="rtl"] h5, [dir="rtl"] h6,
:lang(fa) h1, :lang(fa) h2, :lang(fa) h3, :lang(fa) h4, :lang(fa) h5, :lang(fa) h6 {
  font-family: var(--font-body) !important;
  letter-spacing: normal !important;
}

img, svg, video { max-width: 100%; display: block; }

/* ── Buttons ─────────────────────────────────────────────────── */
.bt-btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-body); font-weight: var(--weight-medium); line-height: 1;
  border-radius: var(--radius-pill); border-style: solid; border-width: 1px;
  cursor: pointer; text-decoration: none; white-space: nowrap;
  transition: background var(--dur-base) var(--ease-standard), color var(--dur-base) var(--ease-standard), transform var(--dur-fast) var(--ease-out-soft), box-shadow var(--dur-base) var(--ease-standard);
  transform: translateY(0);
}
.bt-btn--full { display: flex; width: 100%; }
.bt-btn--sm { font-size: var(--text-sm); padding: 0.5rem 1.15rem; gap: 0.4rem; }
.bt-btn--md { font-size: var(--text-base); padding: 0.72rem 1.6rem; gap: 0.5rem; }
.bt-btn--lg { font-size: var(--text-md); padding: 0.95rem 2.15rem; gap: 0.6rem; }
.bt-btn--primary   { background: var(--color-primary); color: var(--color-on-primary); border-color: var(--color-primary); }
.bt-btn--secondary { background: var(--color-secondary); color: var(--color-on-secondary); border-color: var(--color-secondary); }
.bt-btn--gold      { background: var(--gold-500); color: var(--burgundy-800); border-color: var(--gold-500); }
.bt-btn--outline   { background: transparent; color: var(--color-primary); border-color: var(--border-strong); border-width: 1.5px; }
.bt-btn--ghost     { background: transparent; color: var(--color-primary); border-color: transparent; }
.bt-btn:hover { transform: translateY(-1px); }
.bt-btn--primary:hover   { background: var(--color-primary-hover); box-shadow: var(--shadow-md); }
.bt-btn--secondary:hover { background: var(--color-secondary-hover); box-shadow: var(--shadow-md); }
.bt-btn--gold:hover      { background: var(--gold-600); box-shadow: var(--shadow-md); }
.bt-btn--outline:hover   { background: color-mix(in srgb, var(--gold-500) 14%, transparent); }
.bt-btn--ghost:hover     { background: var(--burgundy-50); }
.bt-btn svg { display: inline-block; }

/* ── Badges ──────────────────────────────────────────────────── */
.bt-badge {
  display: inline-flex; align-items: center; gap: 0.35rem;
  font-family: var(--font-body); font-weight: var(--weight-medium); line-height: 1;
  border-radius: var(--radius-pill); border: 1px solid transparent;
}
.bt-badge--sm { font-size: var(--text-xs); padding: 0.22rem 0.62rem; }
.bt-badge--md { font-size: var(--text-sm); padding: 0.32rem 0.82rem; }
.bt-badge--gold    { background: var(--gold-500); color: var(--burgundy-800); }
.bt-badge--burgundy{ background: var(--burgundy-600); color: var(--gold-100); }
.bt-badge--forest  { background: var(--forest-700); color: var(--gold-100); }
.bt-badge--soft    { background: var(--burgundy-50); color: var(--burgundy-700); }
.bt-badge--outline { background: transparent; color: var(--color-primary); border-color: var(--gold-500); }

/* ── Cards ───────────────────────────────────────────────────── */
.bt-card {
  border-radius: var(--radius-card); background: var(--color-surface); color: var(--text-body);
  border: 1px solid var(--border-subtle); box-shadow: var(--shadow-sm);
  padding: clamp(1.25rem, 3vw, 2rem);
  transition: box-shadow var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-out-soft);
  text-decoration: none;
}
.bt-card--cream    { background: var(--cream-50); }
.bt-card--sand     { background: var(--cream-200); }
.bt-card--forest   { background: var(--forest-800); color: var(--text-on-dark); border-color: color-mix(in srgb, var(--gold-500) 30%, transparent); }
.bt-card--burgundy { background: var(--burgundy-700); color: var(--text-on-dark); border-color: color-mix(in srgb, var(--gold-500) 30%, transparent); }
.bt-card--flush    { padding: 0; }
.bt-card--noborder { border: none; }
.bt-card--flat     { box-shadow: none; }
.bt-card--interactive { cursor: pointer; }
.bt-card--interactive:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }

/* ── Inputs ──────────────────────────────────────────────────── */
.bt-input {
  width: 100%; font-family: var(--font-body); font-size: var(--text-base); color: var(--text-strong);
  background: var(--color-surface); border: 1px solid var(--border-default); border-radius: var(--radius-md);
  padding: 0.72rem 1rem; outline: none;
  transition: border-color var(--dur-base) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard);
}
.bt-textarea { resize: vertical; line-height: var(--leading-normal); }
.bt-input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--focus-ring); }

/* ── Selector chips (booking / contact forms) ────────────────── */
.bt-chip {
  border: 1px solid var(--border-default); background: transparent; color: var(--text-body);
  border-radius: var(--radius-pill); padding: 7px 14px; cursor: pointer;
  font-size: var(--text-sm); font-weight: 400; font-family: inherit;
}
[data-chipset="channel"] .bt-chip { display: inline-flex; align-items: center; gap: 7px; }
[data-chipset="service"] .bt-chip.is-active { border-color: var(--burgundy-500); background: var(--burgundy-50); color: var(--burgundy-700); font-weight: 600; }
[data-chipset="channel"] .bt-chip.is-active { border-color: var(--forest-500); background: var(--forest-50); color: var(--forest-700); font-weight: 600; }

/* ── Header ──────────────────────────────────────────────────── */
.bt-header.scrolled, .bt-header.menu-open {
  background: rgba(255, 255, 255, 0.9) !important;
  backdrop-filter: saturate(1.2) blur(12px); -webkit-backdrop-filter: saturate(1.2) blur(12px);
  border-bottom: 1px solid var(--border-subtle) !important; box-shadow: var(--shadow-sm);
}
.bt-navlink:hover { color: var(--burgundy-500); }
.bt-langbtn:hover { background: #ffffff; }
.bt-footlink:hover { color: var(--gold-300); }
.bt-foot-head {
  font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: var(--tracking-wider);
  text-transform: uppercase; color: var(--gold-400); margin-bottom: 16px;
}
.bt-serviceicon:hover { opacity: 0.75; }
.bt-scrolldown:hover { background: var(--forest-800); }
.bt-back:hover { color: var(--red-mark); }
.bt-pager:hover { opacity: 0.7; }

.bt-nav-desktop { display: flex; }
.bt-actions-desktop { display: flex; }
.bt-actions-mobile { display: none; }
.bt-mobile-dropdown { display: none; }
.bt-header.menu-open .bt-mobile-dropdown { display: flex; }
.bt-header.menu-open .bt-icon-menu { display: none; }
.bt-header.menu-open .bt-icon-close { display: inline !important; }

@media (max-width: 900px) {
  .bt-nav-desktop, .bt-actions-desktop { display: none; }
  .bt-actions-mobile { display: flex; }
}
@media (min-width: 901px) {
  .bt-mobile-dropdown { display: none !important; }
}

/* ── Layout grids ────────────────────────────────────────────── */
.bt-hero-grid { display: grid; grid-template-columns: 1fr 1.25fr 0.85fr; gap: clamp(1.25rem, 3vw, 3rem); align-items: center; }
.bt-campus-grid { display: grid; grid-template-columns: 1fr minmax(230px, 320px) 1fr; gap: clamp(1rem, 2.5vw, 2.25rem); align-items: center; }
.bt-campus-rings { position: absolute; inset: 0; }
.bt-stage-art { display: flex; }

@media (max-width: 900px) {
  .bt-hero-grid { display: flex; flex-direction: column; gap: var(--space-6); align-items: center; text-align: center; }
  .bt-hero-btns { justify-content: center; }
  .bt-campus-grid { display: flex; flex-direction: column; gap: var(--space-5); }
  .bt-campus-rings { display: none; }
}
@media (max-width: 680px) {
  .bt-stage-art { display: none !important; }
  .bt-rail { display: none !important; }
}
@media (max-width: 600px) {
  .bt-service-card { grid-template-columns: auto 1fr; }
  .bt-service-card > *:last-child { grid-column: 1 / -1; flex-direction: row !important; flex-wrap: wrap; }
}

/* ── Booking modal ───────────────────────────────────────────── */
.bt-modal[hidden] { display: none !important; }
.bt-modal { animation: btFade var(--dur-base) var(--ease-standard); }
.bt-modal-panel { animation: btRise var(--dur-slow) var(--ease-out-soft); }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}


/* ── Single-page-app additions ─────────────────────────────── */
html { height: 100%; }
body { margin: 0; min-height: 100%; }
.bt-body { background: #ffffff; font-family: var(--font-body); color: var(--text-body); }
.bt-mount { height: 100vh; display: block; }
.bt-mount > .bt-app { height: 100%; }
template { display: none !important; }
.bt-screen[hidden] { display: none !important; }
.bt-header .bt-navlink > span { transform: scaleX(0) !important; }
.bt-header .bt-navlink.is-current > span { transform: scaleX(1) !important; }
.bt-navlink.is-current { color: var(--burgundy-600) !important; font-weight: var(--weight-semibold); }
.bt-mobile-dropdown a.is-current { color: var(--burgundy-600) !important; font-weight: var(--weight-semibold); }

/* ── Standalone content pages (page / single / archive / search / 404) ── */
.bt-prose h2 { font-size: var(--text-2xl); color: var(--burgundy-700); margin: 1.6em 0 0.5em; }
.bt-prose h3 { font-size: var(--text-xl); color: var(--text-strong); margin: 1.4em 0 0.4em; }
.bt-prose h4 { font-size: var(--text-lg); color: var(--text-strong); margin: 1.2em 0 0.4em; }
.bt-prose p { margin: 0 0 1.1em; }
.bt-prose a { color: var(--burgundy-600); text-decoration: underline; }
.bt-prose a:hover { color: var(--red-mark); }
.bt-prose ul, .bt-prose ol { margin: 0 0 1.1em; padding-inline-start: 1.4em; }
.bt-prose li { margin: 0.3em 0; }
.bt-prose img { max-width: 100%; height: auto; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); margin: 1em 0; }
.bt-prose blockquote { border-inline-start: 3px solid var(--gold-500); background: var(--cream-50); margin: 1.2em 0; padding: 1em 1.2em; border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.bt-prose hr { border: none; border-top: 1px solid var(--border-subtle); margin: 2em 0; }
.bt-postcard:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
@media (max-width: 900px) { .bt-site-header .bt-nav-desktop, .bt-site-header .bt-actions-desktop { display: none; } .bt-site-header .bt-actions-mobile { display: flex; } }
.bt-site-header.menu-open .bt-mobile-dropdown { display: flex; }

/* ── Multi-page: the /journey/ snap-scroll container ── */
.bt-journey-scroll {
  height: calc(100dvh - 78px);
  overflow-y: auto;
  scroll-snap-type: y mandatory;
  position: relative;
}
@media (prefers-reduced-motion: reduce) {
  .bt-journey-scroll { scroll-snap-type: none; }
}
