/* ==========================================================================
   Brett D. Henderson — GLL Pages styles

   Design register: academic press, not author-marketing. This audience
   (analytic theology readers, and pastors) treats visual salesmanship as a
   signal that the argument is weak. So: bone paper, ink type, one brass
   accent, generous rules and whitespace, no gradients, no drop shadows doing
   decorative work, no stock photography. The book covers are the only imagery.

   Prose measure is deliberately narrow. For this reader, readability IS
   credibility — a wall of full-width text reads as unedited.

   Type is a system stack. No webfont request, so no render-blocking round trip
   and no layout shift; the serif fallbacks are near-identical in metrics.
   ========================================================================== */

:root {
  /* ==========================================================================
     Conformed to agency/reference/high-end-cro-design-system__playbook.md
     on 2026-08-18. Earlier values were off-system; the visible symptoms were a
     24px bezel (Rule 20 requires 80-120px desktop) which made every page read
     as off-centre, and an ink primary button (Rule 23 requires the warm accent).
     ========================================================================== */

  /* --- Colour, mapped to 60-30-10 (Rules 36-41) --------------------------- */
  /* 60% FOUNDATION — page grounds, running text areas */
  --paper: #faf8f4;
  --paper-2: #f3efe7;
  --paper-3: #ebe5d9;

  /* 30% SECONDARY — structure: nav, footer, dark sections, heading type */
  --ink: #16191f;
  --ink-soft: #232833;
  --ink-deep: #10131a;
  --rule: #ddd6c8;
  --rule-soft: #eae4d8;
  --rule-dark: #2e3440;

  /* 10% ACCENT — click targets and focal metrics ONLY (Rule 38, 41).
     Warm by requirement: warm advances, cool recedes (Rule 29). */
  --brass: #96702f;
  --brass-deep: #7a5a23;
  --brass-tint: #f0e6d2;

  /* Text */
  --body: #3b4049;
  --muted: #6c7382;
  --muted-light: #9aa0ac;

  /* --- Typeface pairing (Rule 5): high-contrast serif display + neutral sans body.
     EB Garamond is an old-style academic serif — the register university presses
     and Columbia-adjacent wordmarks use. Inter is the neutral geometric body face
     named in Rule 5. Both clear the Rule 6a readability gate at body size. ---- */
  --font-display: 'EB Garamond', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif;
  --font-body: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-ui: var(--font-body);

  /* --- Spatial system (Rules 16-17): every value a multiple of 8px, in rem --- */
  --s1: 0.5rem;    /*  8px */
  --s2: 1rem;      /* 16px */
  --s3: 1.5rem;    /* 24px */
  --s4: 2rem;      /* 32px */
  --s5: 2.5rem;    /* 40px */
  --s6: 3rem;      /* 48px */
  --s7: 4rem;      /* 64px */
  --s8: 5rem;      /* 80px */
  --s9: 6rem;      /* 96px */
  --s10: 7.5rem;   /* 120px */

  /* --- Type scale (Rules 2-3): Major Third from an 18px base, via clamp() --- */
  --t-xs: 0.75rem;
  --t-sm: 0.875rem;
  /* Rule 1 requires 18-20px body. The Rule 3 example clamp(1rem,1vw,1.25rem)
     resolves to 16px at 1440px, which breaks Rule 1 — so the floor is raised to
     1.125rem. Rule 1 is the constraint; Rule 3 is a pattern for how to express it. */
  --t-base: clamp(1.125rem, 0.4vw + 1rem, 1.25rem);
  --t-lg: 1.25rem;
  --t-xl: 1.5rem;
  --t-h4: clamp(1.25rem, 2.5vw, 1.95rem);
  --t-h3: clamp(1.6rem, 3vw, 2.44rem);
  --t-h2: clamp(2rem, 4vw, 3.05rem);
  --t-h1: clamp(2.5rem, 5vw, 3.8rem);

  /* --- Container & bezel (Rules 20-22) ----------------------------------- */
  --wrap: 1200px;      /* Rule 21: 1140-1440 */
  --bezel: 5rem;       /* Rule 20: 80px desktop */
  --measure: 800px;    /* Rule 22: hard cap for running text */

  --radius: 3px;
  --radius-lg: 6px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.gll-page {
  margin: 0;
  background: var(--paper);
  color: var(--body);
  font-family: var(--font-body);
  font-size: var(--t-base);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--ink);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.012em;
  margin: 0 0 var(--s2);
  text-wrap: balance;
}

p { margin: 0 0 var(--s2); }
p:last-child { margin-bottom: 0; }

a { color: var(--brass-deep); }

img { max-width: 100%; height: auto; display: block; }

em { font-style: italic; }
strong { font-weight: 700; color: var(--ink); }

.bdh-wrap {
  width: 100%;
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 var(--s3);
}

.bdh-sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.bdh-skip {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--ink); color: var(--paper);
  padding: var(--s2) var(--s3); font-family: var(--font-ui);
}
.bdh-skip:focus { left: 0; }

/* --------------------------------------------------------------------------
   Shared type furniture
   -------------------------------------------------------------------------- */

.bdh-eyebrow {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass-deep);
  margin: 0 0 var(--s2);
  display: flex;
  align-items: center;
  gap: 0.5em;
}

.bdh-eyebrow--light { color: var(--brass); }

.bdh-section-head { margin-bottom: var(--s6); max-width: var(--measure); }
.bdh-section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.bdh-section-head--center .bdh-eyebrow { justify-content: center; }

.bdh-section-title {
  font-size: clamp(1.75rem, 3.4vw, var(--t-h2));
  margin-bottom: var(--s2);
}

.bdh-section-lede {
  font-size: var(--t-lg);
  color: var(--muted);
  max-width: var(--measure);
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.bdh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  font-family: var(--font-ui);
  font-size: var(--t-sm);
  font-weight: 600;
  line-height: 1;
  padding: 0.85em 1.4em;
  border-radius: var(--radius);
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}

.bdh-btn--solid { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.bdh-btn--solid:hover { background: var(--brass-deep); border-color: var(--brass-deep); }

.bdh-btn--outline { background: transparent; color: var(--ink); border-color: var(--rule); }
.bdh-btn--outline:hover { border-color: var(--ink); background: var(--paper-2); }

.bdh-btn--ghost { background: transparent; color: var(--brass-deep); padding-left: 0; padding-right: 0; }
.bdh-btn--ghost:hover { color: var(--ink); }

.bdh-btn--onDark { color: var(--brass-tint); }
.bdh-btn--onDark:hover { color: #fff; }

.bdh-btn--sm { font-size: var(--t-xs); padding: 0.7em 1.1em; }
.bdh-btn--full { width: 100%; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.bdh-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(250, 248, 244, 0.92);
  backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid var(--rule-soft);
}

.bdh-header-inner {
  display: flex;
  align-items: center;
  gap: var(--s4);
  min-height: 76px;
}

.bdh-wordmark { text-decoration: none; display: block; margin-right: auto; }

.bdh-wordmark-name {
  display: block;
  font-family: var(--font-display);
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ink);
  line-height: 1.2;
}

.bdh-wordmark-line {
  display: block;
  font-family: var(--font-ui);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted-light);
  margin-top: 2px;
}

.bdh-nav { display: flex; gap: var(--s4); }

.bdh-nav-link {
  font-family: var(--font-ui);
  font-size: var(--t-sm);
  color: var(--body);
  text-decoration: none;
  padding: 4px 0;
  border-bottom: 1px solid transparent;
}
.bdh-nav-link:hover,
.bdh-nav-link.is-active { color: var(--ink); border-bottom-color: var(--brass); }

.bdh-nav-toggle {
  display: none;
  background: none; border: 1px solid var(--rule);
  border-radius: var(--radius); padding: 8px;
  color: var(--ink); cursor: pointer;
}

.bdh-mobile-nav {
  display: none;
  flex-direction: column;
  gap: var(--s2);
  padding: var(--s3);
  border-top: 1px solid var(--rule-soft);
  background: var(--paper);
}
.bdh-mobile-nav[hidden] { display: none; }
.bdh-mobile-nav a {
  font-family: var(--font-ui);
  font-size: var(--t-base);
  color: var(--ink);
  text-decoration: none;
}

/* --------------------------------------------------------------------------
   Hero — claim left, capture right
   -------------------------------------------------------------------------- */

.bdh-hero {
  padding: var(--s8) 0 var(--s7);
  border-bottom: 1px solid var(--rule-soft);
  background:
    radial-gradient(1100px 420px at 12% -8%, var(--paper-2) 0%, transparent 68%),
    var(--paper);
}

.bdh-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.85fr);
  gap: var(--s7);
  align-items: start;
}

.bdh-hero-title {
  font-size: clamp(2.1rem, 4.8vw, var(--t-h1));
  line-height: 1.06;
  letter-spacing: -0.022em;
  margin-bottom: var(--s3);
}

.bdh-hero-lede {
  font-size: var(--t-xl);
  line-height: 1.55;
  color: var(--body);
  max-width: 60ch;
  margin-bottom: var(--s4);
}

.bdh-hero-points {
  list-style: none;
  margin: 0 0 var(--s4);
  padding: 0;
  border-top: 1px solid var(--rule-soft);
}

.bdh-hero-points li {
  display: flex;
  gap: 0.75em;
  align-items: flex-start;
  padding: var(--s2) 0;
  border-bottom: 1px solid var(--rule-soft);
  font-size: var(--t-base);
  color: var(--body);
}

.bdh-hero-points .gll-icon { color: var(--brass); margin-top: 0.35em; }

.bdh-hero-actions { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }

/* Capture card */

.bdh-card {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  padding: var(--s4);
}

.bdh-card--primer {
  border-top: 3px solid var(--brass);
  position: sticky;
  top: 104px;
}

.bdh-primer-eyebrow {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass-deep);
  display: flex; align-items: center; gap: 0.5em;
  margin: 0 0 var(--s2);
}

/* Cover beside the title, so the offer reads as a book rather than a download. */
.bdh-offer-head {
  display: flex;
  gap: var(--s3);
  align-items: flex-start;
  margin-bottom: var(--s3);
}

.bdh-offer-cover {
  width: 84px;
  flex-shrink: 0;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 3px 3px 0 -1px var(--paper-3);
}

.bdh-offer-subtitle {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted-light);
  margin: 0.35em 0 0;
}

.bdh-primer-title { font-size: var(--t-h3); margin-bottom: var(--s1); line-height: 1.2; }

.bdh-primer-body {
  font-size: var(--t-sm);
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: var(--s3);
}

.bdh-form { display: flex; flex-direction: column; gap: var(--s2); }

.bdh-form input[type="email"] {
  width: 100%;
  font-family: var(--font-ui);
  font-size: var(--t-base);
  padding: 0.85em 1em;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--paper);
  color: var(--ink);
}

.bdh-form input[type="email"]:focus {
  outline: none;
  border-color: var(--brass);
  box-shadow: 0 0 0 3px var(--brass-tint);
}

.bdh-primer-privacy {
  display: flex; align-items: center; gap: 0.5em;
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  color: var(--muted-light);
  margin: var(--s2) 0 0;
}

/* --------------------------------------------------------------------------
   Argument — the citable block
   -------------------------------------------------------------------------- */

.bdh-argument { padding: var(--s8) 0; background: var(--paper-2); border-bottom: 1px solid var(--rule); }

.bdh-argument-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--s7);
  align-items: start;
}

.bdh-axiom {
  display: flex;
  gap: var(--s3);
  padding-bottom: var(--s4);
  margin-bottom: var(--s4);
  border-bottom: 1px solid var(--rule);
}
.bdh-axiom:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }

.bdh-axiom-num {
  font-family: var(--font-display);
  font-size: var(--t-xl);
  font-style: italic;
  color: var(--brass);
  line-height: 1;
  padding-top: 0.15em;
  min-width: 1.5em;
}

.bdh-axiom h3 { font-size: var(--t-lg); margin-bottom: var(--s1); line-height: 1.35; }
.bdh-axiom p { font-size: var(--t-sm); color: var(--muted); }

.bdh-conclusion {
  background: #fff;
  border: 1px solid var(--rule);
  border-left: 3px solid var(--ink);
  border-radius: var(--radius);
  padding: var(--s4);
}

.bdh-conclusion-label {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted-light);
  margin-bottom: var(--s2);
}

.bdh-conclusion-body { font-size: var(--t-lg); line-height: 1.6; color: var(--ink); }

.bdh-fallacy {
  margin-top: var(--s3);
  padding-top: var(--s3);
  border-top: 1px solid var(--rule-soft);
}

.bdh-fallacy-label {
  font-family: var(--font-display);
  font-size: var(--t-base);
  font-weight: 700;
  font-style: italic;
  color: var(--brass-deep);
  margin-bottom: var(--s1);
}

.bdh-fallacy p { font-size: var(--t-sm); color: var(--body); }

.bdh-objection {
  margin-top: var(--s6);
  padding: var(--s4);
  background: #fff;
  border: 1px dashed var(--rule);
  border-radius: var(--radius);
  max-width: 90ch;
}

.bdh-objection-q {
  display: flex; gap: 0.6em; align-items: flex-start;
  font-family: var(--font-display);
  font-size: var(--t-lg);
  font-style: italic;
  color: var(--ink);
  margin-bottom: var(--s2);
}
.bdh-objection-q .gll-icon { color: var(--brass); margin-top: 0.15em; }
.bdh-objection-a { font-size: var(--t-base); color: var(--body); }

/* --------------------------------------------------------------------------
   Book shelf
   -------------------------------------------------------------------------- */

.bdh-books { padding: var(--s8) 0; }

.bdh-book-list { display: flex; flex-direction: column; }

.bdh-book {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: var(--s5);
  padding: var(--s5) 0;
  border-top: 1px solid var(--rule-soft);
  align-items: start;
}
.bdh-book:last-child { border-bottom: 1px solid var(--rule-soft); }

.bdh-book-cover { position: relative; }

.bdh-book-cover img {
  width: 100%;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 1px 0 var(--rule), 6px 6px 0 -1px var(--paper-3);
}

.bdh-book.is-coming .bdh-book-cover img { filter: saturate(0.55) contrast(0.95); opacity: 0.72; }

.bdh-book-plate {
  aspect-ratio: 2 / 3;
  border: 1px solid var(--rule);
  background: var(--paper-2);
  border-radius: 2px;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: var(--s2); padding: var(--s3); text-align: center;
}
.bdh-book-plate-num {
  font-family: var(--font-display); font-style: italic;
  font-size: var(--t-xl); color: var(--brass);
}
.bdh-book-plate-title {
  font-family: var(--font-display); font-size: var(--t-sm);
  color: var(--muted); line-height: 1.35;
}

.bdh-book-flag {
  position: absolute; top: 10px; left: -6px;
  font-family: var(--font-ui);
  font-size: 0.625rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  background: var(--ink); color: var(--paper);
  padding: 5px 9px; border-radius: 2px;
}
.bdh-book.is-coming .bdh-book-flag { background: var(--muted-light); }

.bdh-book-meta {
  display: flex; align-items: center; gap: 0.75em;
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted-light);
  margin-bottom: var(--s2);
}
.bdh-book-dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
.bdh-book-dilemma { color: var(--brass-deep); }

.bdh-book-title { font-size: var(--t-h3); margin-bottom: 0.15em; }

.bdh-book-subtitle {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--t-base);
  color: var(--muted);
  margin-bottom: var(--s2);
}

.bdh-book-blurb { max-width: 62ch; margin-bottom: var(--s3); }

.bdh-book-buy, .bdh-book-coming { display: flex; flex-wrap: wrap; gap: var(--s1); }

/* --------------------------------------------------------------------------
   Shepherd's Path — warmer, outcome-led, visibly a different silo
   -------------------------------------------------------------------------- */

.bdh-shepherd {
  padding: var(--s8) 0;
  background: var(--ink);
  color: #cfd3db;
}

.bdh-shepherd .bdh-section-title { color: #fff; }
.bdh-shepherd .bdh-section-lede { color: #a8aeba; }

/* Cover-led grid. Seven cards, four up on desktop — the covers do the selling,
   so they get the space and the copy stays to a caption. */
.bdh-path {
  list-style: none;
  margin: 0 0 var(--s6);
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: var(--s4);
}

.bdh-path-item { display: flex; flex-direction: column; gap: var(--s2); }

.bdh-path-cover-wrap { position: relative; }

.bdh-path-cover {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 2px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

/* Unpublished volumes read back a step so the shipped one is unmistakable. */
.bdh-path-item:not(.is-live) .bdh-path-cover { opacity: 0.62; filter: saturate(0.7); }

.bdh-path-plate {
  aspect-ratio: 2 / 3;
  border: 1px dashed var(--rule-dark);
  border-radius: 2px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-style: italic;
  font-size: var(--t-lg); color: #5a6270;
}

.bdh-path-num {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass);
  margin: 0 0 0.2em;
}

.bdh-path-body h3 { color: #fff; font-size: var(--t-base); line-height: 1.3; margin-bottom: 0.3em; }
.bdh-path-promise { font-size: var(--t-sm); color: #98a0ae; margin-bottom: var(--s2); }
.bdh-path-note { font-size: var(--t-xs); color: var(--brass); font-family: var(--font-ui); margin-bottom: var(--s2); }

.bdh-shepherd .bdh-btn--solid { background: var(--brass); border-color: var(--brass); color: var(--ink-deep); }
.bdh-shepherd .bdh-btn--solid:hover { background: #b98c3d; border-color: #b98c3d; }

.bdh-shepherd-cta { text-align: center; max-width: 60ch; margin: 0 auto; }
.bdh-shepherd-cta p { color: #a8aeba; margin-bottom: var(--s3); }

/* --------------------------------------------------------------------------
   Book detail page
   -------------------------------------------------------------------------- */

.bdh-book-title a { color: inherit; text-decoration: none; }
.bdh-book-title a:hover { color: var(--brass-deep); }

.bdh-book-more {
  display: inline-flex; align-items: center; gap: 0.4em;
  font-family: var(--font-ui); font-size: var(--t-xs); font-weight: 600;
  color: var(--brass-deep); text-decoration: none;
  padding: 0.7em 0.4em;
}
.bdh-book-more:hover { color: var(--ink); }

.bdh-bookpage-hero {
  padding: var(--s7) 0;
  border-bottom: 1px solid var(--rule);
  background:
    radial-gradient(900px 380px at 20% -10%, var(--paper-2) 0%, transparent 70%),
    var(--paper);
}

.bdh-bookpage-grid {
  display: grid;
  grid-template-columns: minmax(200px, 300px) minmax(0, 1fr);
  gap: var(--s7);
  align-items: start;
}

.bdh-bookpage-cover img {
  width: 100%;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 2px 0 var(--rule), 12px 12px 0 -2px var(--paper-3);
}

.bdh-bookpage-title {
  font-size: clamp(2rem, 4.4vw, 3rem);
  line-height: 1.07;
  letter-spacing: -0.02em;
  margin-bottom: var(--s2);
}

.bdh-bookpage-subtitle {
  font-family: var(--font-display); font-style: italic;
  font-size: var(--t-xl); color: var(--muted);
  margin-bottom: var(--s3);
}

.bdh-bookpage-hook { font-size: var(--t-lg); line-height: 1.6; max-width: 60ch; margin-bottom: var(--s4); }

.bdh-bookpage-facts {
  list-style: none; margin: 0 0 var(--s4); padding: 0;
  border-top: 1px solid var(--rule-soft);
  max-width: 62ch;
}
.bdh-bookpage-facts li {
  display: flex; gap: var(--s3); align-items: baseline;
  padding: 0.6em 0; border-bottom: 1px solid var(--rule-soft);
  font-size: var(--t-sm);
}
.bdh-bookpage-facts span {
  font-family: var(--font-ui); font-size: var(--t-xs);
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted-light);
  min-width: 8em;
}
.bdh-bookpage-facts strong { font-weight: 400; color: var(--ink); }

.bdh-bookpage-buy { display: flex; flex-wrap: wrap; gap: var(--s1); margin-bottom: var(--s2); }

.bdh-bookpage-buynote {
  font-family: var(--font-ui); font-size: var(--t-xs);
  color: var(--muted-light); margin: 0;
}

.bdh-bookpage-section { padding: var(--s6) 0; border-bottom: 1px solid var(--rule-soft); }
.bdh-bookpage-body { max-width: 820px; }
.bdh-bookpage-body h2 { font-size: clamp(1.5rem, 2.8vw, 2rem); margin-bottom: var(--s3); }
.bdh-bookpage-note { color: var(--muted); font-size: var(--t-sm); margin-bottom: var(--s4); max-width: var(--measure); }

.bdh-discover { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule-soft); }
.bdh-discover li {
  display: flex; gap: 0.8em; align-items: flex-start;
  padding: var(--s2) 0; border-bottom: 1px solid var(--rule-soft);
  max-width: var(--measure);
}
.bdh-discover .gll-icon { color: var(--brass); margin-top: 0.4em; }

.bdh-bookpage-contents { background: var(--paper-2); }

.bdh-toc-part { margin-bottom: var(--s5); }
.bdh-toc-part h3 {
  font-size: var(--t-h3); margin-bottom: 0.3em;
  padding-bottom: var(--s2); border-bottom: 1px solid var(--rule);
}
.bdh-toc-summary { font-size: var(--t-sm); color: var(--muted); margin: var(--s2) 0 var(--s3); max-width: var(--measure); }

.bdh-toc-list {
  margin: 0; padding: 0; list-style: none;
  counter-reset: none;
  columns: 2; column-gap: var(--s6);
}
.bdh-toc-list li {
  break-inside: avoid;
  padding: 0.45em 0;
  font-size: var(--t-sm);
  color: var(--body);
  border-bottom: 1px dotted var(--rule);
}

.bdh-forwho { margin: 0; }
.bdh-forwho > div { padding: var(--s3) 0; border-top: 1px solid var(--rule-soft); max-width: var(--measure); }
.bdh-forwho dt { font-family: var(--font-display); font-size: var(--t-lg); color: var(--ink); margin-bottom: 0.3em; }
.bdh-forwho dd { margin: 0; font-size: var(--t-sm); color: var(--muted); }

.bdh-notfor {
  margin-top: var(--s4); padding: var(--s3);
  background: var(--paper-2); border: 1px dashed var(--rule); border-radius: var(--radius);
  font-size: var(--t-sm); color: var(--muted); max-width: var(--measure);
}

.bdh-bookpage-close { border-bottom: 0; }
.bdh-bookpage-close p { max-width: var(--measure); margin-bottom: var(--s3); font-size: var(--t-lg); }

/* --------------------------------------------------------------------------
   Standalone titles — a quiet band, deliberately not a third shelf
   -------------------------------------------------------------------------- */

.bdh-standalone { padding: var(--s7) 0; background: var(--paper-2); border-top: 1px solid var(--rule); }

.bdh-standalone-head { margin-bottom: var(--s4); }
.bdh-standalone-title { font-size: clamp(1.4rem, 2.6vw, 1.9rem); }

.bdh-standalone-item {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: var(--s4);
  align-items: start;
  padding-top: var(--s4);
  border-top: 1px solid var(--rule);
}

.bdh-standalone-cover {
  width: 100%;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 5px 5px 0 -1px var(--paper-3);
}

.bdh-standalone-audience {
  display: flex; align-items: center; gap: 0.65em; flex-wrap: wrap;
  font-family: var(--font-ui); font-size: var(--t-xs);
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted-light);
  margin: 0 0 var(--s2);
}

.bdh-standalone-body h3 { font-size: var(--t-h3); margin-bottom: 0.15em; }

.bdh-standalone-subtitle {
  font-family: var(--font-display); font-style: italic;
  font-size: var(--t-base); color: var(--muted); margin-bottom: var(--s2);
}

/* Imprint / series line from the cover. Sits under the subtitle as a quiet
   credential — it is provenance, not a call to action, so it stays muted
   (design-system Rule 39 territory). */
.bdh-standalone-imprint {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted-light);
  margin: calc(var(--s2) * -1 + 0.25rem) 0 var(--s2);
}

.bdh-standalone-blurb { max-width: 62ch; margin-bottom: var(--s3); }

/* Cover-less: drop the empty column rather than leaving a hole. */
.bdh-standalone-item:not(:has(.bdh-standalone-cover)) { grid-template-columns: minmax(0, 1fr); }

/* --------------------------------------------------------------------------
   Podcast band
   -------------------------------------------------------------------------- */

.bdh-podcast {
  padding: var(--s8) 0;
  background: var(--ink-deep);
  color: #c6cad3;
  border-top: 1px solid var(--rule-dark);
}

.bdh-podcast-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
  gap: var(--s7);
  align-items: start;
}

.bdh-podcast .bdh-section-title { color: #fff; }
.bdh-podcast .bdh-section-lede { color: #a2a9b6; }

.bdh-podcast-gets { list-style: none; margin: var(--s4) 0; padding: 0; }
.bdh-podcast-gets li {
  display: flex; gap: 0.75em; align-items: flex-start;
  padding: 0.65em 0; font-size: var(--t-sm); color: #b4bac6;
}
.bdh-podcast-gets .gll-icon { color: var(--brass); margin-top: 0.3em; }

.bdh-podcast-actions { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.bdh-podcast .bdh-btn--solid { background: var(--brass); border-color: var(--brass); color: var(--ink-deep); }
.bdh-podcast .bdh-btn--solid:hover { background: #b98c3d; border-color: #b98c3d; }

.bdh-topics-label {
  font-family: var(--font-ui); font-size: var(--t-xs);
  font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted-light); margin-bottom: var(--s3);
  padding-bottom: var(--s2); border-bottom: 1px solid var(--rule-dark);
}

.bdh-topics-list { list-style: none; margin: 0; padding: 0; counter-reset: topic; }
.bdh-topics-list li {
  counter-increment: topic;
  padding: var(--s3) 0; border-bottom: 1px solid var(--rule-dark);
  position: relative; padding-left: 2.5em;
}
.bdh-topics-list li::before {
  content: counter(topic, decimal-leading-zero);
  position: absolute; left: 0; top: var(--s3);
  font-family: var(--font-ui); font-size: var(--t-xs);
  color: var(--brass); letter-spacing: 0.05em;
}
.bdh-topics-list h3 { color: #fff; font-size: var(--t-base); margin-bottom: 0.3em; line-height: 1.35; }
.bdh-topics-list p { font-size: var(--t-sm); color: #9aa1ae; }

/* --------------------------------------------------------------------------
   About
   -------------------------------------------------------------------------- */

.bdh-about { padding: var(--s8) 0; }

.bdh-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.8fr);
  gap: var(--s7);
  align-items: start;
}

.bdh-about-para { font-size: var(--t-lg); line-height: 1.7; max-width: var(--measure); }

.bdh-about-facts {
  background: var(--paper-2);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: var(--s4);
}

.bdh-facts-label {
  font-family: var(--font-ui); font-size: var(--t-xs);
  font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted-light); margin-bottom: var(--s3);
}

.bdh-about-facts dl { margin: 0; }

.bdh-fact { padding: var(--s2) 0; border-top: 1px solid var(--rule-soft); }
.bdh-fact:first-child { border-top: 0; padding-top: 0; }

.bdh-fact dt {
  font-family: var(--font-ui); font-size: var(--t-xs);
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted-light);
  margin-bottom: 2px;
}
.bdh-fact dd { margin: 0; font-size: var(--t-sm); color: var(--ink); }

/* --------------------------------------------------------------------------
   Closing capture band
   -------------------------------------------------------------------------- */

.bdh-capture {
  padding: var(--s7) 0;
  background: var(--paper-2);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}

.bdh-capture-inner {
  display: grid;
  grid-template-columns: 120px minmax(0, 1.1fr) minmax(300px, 0.9fr);
  gap: var(--s5);
  align-items: center;
}

.bdh-capture-cover {
  width: 100%;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 5px 5px 0 -1px var(--paper-3);
}

.bdh-capture-title { font-size: clamp(1.6rem, 3vw, 2rem); margin-bottom: var(--s2); }
.bdh-capture-body { color: var(--muted); max-width: 52ch; }

.bdh-form--inline { flex-direction: row; }
.bdh-form--inline input[type="email"] { flex: 1 1 auto; }
.bdh-form--inline .bdh-btn { white-space: nowrap; }

.bdh-capture-privacy {
  display: flex; align-items: center; gap: 0.5em;
  font-family: var(--font-ui); font-size: var(--t-xs);
  color: var(--muted-light); margin: var(--s2) 0 0;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.bdh-footer { background: var(--ink-deep); color: #8d94a2; padding: var(--s6) 0 var(--s4); }

.bdh-footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.9fr);
  gap: var(--s5);
  padding-bottom: var(--s4);
  border-bottom: 1px solid var(--rule-dark);
}

.bdh-footer .bdh-wordmark-name { color: #fff; font-size: var(--t-lg); margin-bottom: var(--s2); }

.bdh-footer-canonical {
  font-size: var(--t-sm);
  line-height: 1.7;
  color: #8d94a2;
  max-width: 62ch;
}

.bdh-footer-links { display: flex; flex-direction: column; gap: var(--s2); }
.bdh-footer-links a {
  font-family: var(--font-ui); font-size: var(--t-sm);
  color: #a8aeba; text-decoration: none;
}
.bdh-footer-links a:hover { color: var(--brass); }

.bdh-footer-bottom {
  display: flex; justify-content: space-between; gap: var(--s3); flex-wrap: wrap;
  padding-top: var(--s3);
  font-family: var(--font-ui); font-size: var(--t-xs); color: #6a7180;
}

/* --------------------------------------------------------------------------
   Pillar page — /fict/
   -------------------------------------------------------------------------- */

.bdh-pillar {
  padding: var(--s8) 0 var(--s6);
  border-bottom: 1px solid var(--rule-soft);
  background:
    radial-gradient(900px 380px at 50% -10%, var(--paper-2) 0%, transparent 70%),
    var(--paper);
}

.bdh-pillar-head { max-width: 74ch; margin: 0 auto; text-align: center; }
.bdh-pillar-head .bdh-eyebrow { justify-content: center; }

.bdh-pillar-title {
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  line-height: 1.05;
  letter-spacing: -0.022em;
  margin-bottom: var(--s3);
}

.bdh-pillar-lede { font-size: var(--t-xl); line-height: 1.55; color: var(--muted); }

/* The quotable definition. Deliberately looks like a plate in a printed book —
   it signals "this is the canonical wording" to a human and reads as a clean
   self-contained block to anything parsing the page. */
.bdh-definition {
  max-width: 80ch;
  margin: var(--s6) auto 0;
  padding: var(--s5);
  background: #fff;
  border: 1px solid var(--rule);
  border-top: 3px solid var(--brass);
  border-radius: var(--radius);
  text-align: left;
}

.bdh-definition-term {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass-deep);
  margin-bottom: var(--s2);
}

.bdh-definition-body {
  margin: 0 0 var(--s3);
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.5rem);
  line-height: 1.5;
  color: var(--ink);
}

.bdh-definition-cite {
  font-size: var(--t-sm);
  color: var(--muted-light);
  padding-top: var(--s2);
  border-top: 1px solid var(--rule-soft);
}

.bdh-jump {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s3);
  justify-content: center;
  margin-top: var(--s5);
  font-family: var(--font-ui);
  font-size: var(--t-sm);
}

.bdh-jump-label {
  font-size: var(--t-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted-light);
}

.bdh-jump a { color: var(--body); text-decoration: none; border-bottom: 1px solid var(--rule); padding-bottom: 2px; }
.bdh-jump a:hover { color: var(--ink); border-bottom-color: var(--brass); }

/* --------------------------------------------------------------------------
   Framework diagram
   -------------------------------------------------------------------------- */

.bdh-diagram { padding: var(--s8) 0; }

.bdh-figure { margin: 0 auto; max-width: 820px; }

.bdh-figure img {
  width: 100%;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
}

.bdh-figure figcaption {
  margin-top: var(--s3);
  font-size: var(--t-sm);
  line-height: 1.65;
  color: var(--muted);
  max-width: var(--measure);
  padding-left: var(--s3);
  border-left: 2px solid var(--brass);
}

/* --------------------------------------------------------------------------
   Dilemma table
   -------------------------------------------------------------------------- */

.bdh-dilemmas { padding: var(--s8) 0; background: var(--paper-2); border-bottom: 1px solid var(--rule); }

/* Wide content scrolls inside its own container so the page body never does. */
.bdh-table-scroll { overflow-x: auto; border: 1px solid var(--rule); border-radius: var(--radius); background: #fff; }

.bdh-table { width: 100%; min-width: 860px; border-collapse: collapse; text-align: left; }

.bdh-table thead th {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted-light);
  padding: var(--s3);
  border-bottom: 1px solid var(--rule);
  background: var(--paper-2);
}

.bdh-table tbody th,
.bdh-table tbody td {
  padding: var(--s3);
  border-bottom: 1px solid var(--rule-soft);
  vertical-align: top;
  font-size: var(--t-sm);
  line-height: 1.6;
}

.bdh-table tbody tr:last-child th,
.bdh-table tbody tr:last-child td { border-bottom: 0; }

.bdh-table tbody th {
  font-family: var(--font-display);
  font-size: var(--t-base);
  font-weight: 600;
  color: var(--ink);
  width: 20%;
}

.bdh-table-rivals { color: var(--muted); font-style: italic; width: 24%; }

.bdh-table-vol {
  font-family: var(--font-display);
  font-style: italic;
  color: var(--brass-deep);
  width: 8%;
  text-align: center;
}

/* --------------------------------------------------------------------------
   Objections / FAQ
   -------------------------------------------------------------------------- */

.bdh-faq { padding: var(--s8) 0; }

.bdh-faq-list { max-width: 88ch; border-top: 1px solid var(--rule); }

.bdh-faq-item { border-bottom: 1px solid var(--rule); }

.bdh-faq-item summary {
  display: flex;
  align-items: flex-start;
  gap: var(--s2);
  padding: var(--s3) 0;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: var(--t-lg);
  color: var(--ink);
  line-height: 1.4;
  list-style: none;
}
.bdh-faq-item summary::-webkit-details-marker { display: none; }

.bdh-faq-item summary::before {
  content: '+';
  font-family: var(--font-ui);
  font-size: var(--t-lg);
  line-height: 1.2;
  color: var(--brass);
  flex-shrink: 0;
}
.bdh-faq-item[open] summary::before { content: '\2212'; }

.bdh-faq-answer { padding: 0 0 var(--s4) 1.8em; max-width: var(--measure); }
.bdh-faq-answer p { color: var(--body); }

/* --------------------------------------------------------------------------
   Media / one-sheet page
   -------------------------------------------------------------------------- */

.bdh-onesheet {
  padding: var(--s8) 0 var(--s6);
  border-bottom: 1px solid var(--rule-soft);
  background:
    radial-gradient(1000px 400px at 15% -10%, var(--paper-2) 0%, transparent 70%),
    var(--paper);
}

.bdh-onesheet-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.8fr);
  gap: var(--s7);
  align-items: start;
}

.bdh-onesheet-title {
  font-size: clamp(2rem, 4.4vw, 3rem);
  line-height: 1.07;
  letter-spacing: -0.02em;
  margin-bottom: var(--s3);
}

.bdh-onesheet-lede { font-size: var(--t-xl); line-height: 1.55; max-width: 58ch; margin-bottom: var(--s4); }

.bdh-onesheet-actions { display: flex; gap: var(--s2); flex-wrap: wrap; }

.bdh-onesheet-facts {
  background: #fff;
  border: 1px solid var(--rule);
  border-top: 3px solid var(--brass);
  border-radius: var(--radius);
  padding: var(--s4);
}

.bdh-questions { padding: var(--s8) 0; }

.bdh-questions-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.8fr);
  gap: var(--s7);
  align-items: start;
}

.bdh-question-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule-soft); }

.bdh-question-list li {
  display: flex;
  gap: 0.75em;
  align-items: flex-start;
  padding: var(--s3) 0;
  border-bottom: 1px solid var(--rule-soft);
  font-family: var(--font-display);
  font-size: var(--t-lg);
  color: var(--ink);
  line-height: 1.45;
}

.bdh-question-list .gll-icon { color: var(--brass); margin-top: 0.3em; }

.bdh-booking .bdh-card { border-top: 3px solid var(--brass); position: sticky; top: 104px; }

.bdh-booking-body { font-size: var(--t-sm); color: var(--muted); margin-bottom: var(--s3); }

.bdh-booking-pending {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  color: var(--muted);
  background: var(--paper-2);
  border: 1px dashed var(--rule);
  border-radius: var(--radius);
  padding: var(--s2);
}
.bdh-booking-pending code { font-size: 0.95em; color: var(--brass-deep); }

.bdh-booking-assets { list-style: none; margin: var(--s3) 0 0; padding: var(--s3) 0 0; border-top: 1px solid var(--rule-soft); }
.bdh-booking-assets li {
  display: flex; gap: 0.6em; align-items: flex-start;
  font-family: var(--font-ui); font-size: var(--t-xs);
  color: var(--muted); padding: 0.35em 0;
}
.bdh-booking-assets .gll-icon { color: var(--brass); margin-top: 0.25em; }

/* --------------------------------------------------------------------------
   Essay index
   -------------------------------------------------------------------------- */

.bdh-essays { padding: var(--s7) 0 var(--s8); }
.bdh-essays-title { font-size: clamp(2rem, 4vw, 2.75rem); }

.bdh-preview-note {
  font-family: var(--font-ui); font-size: var(--t-xs);
  color: var(--muted-light); border: 1px dashed var(--rule);
  border-radius: var(--radius); padding: var(--s2); margin-bottom: var(--s4);
}

.bdh-essay-meta {
  display: flex; align-items: center; gap: 0.65em; flex-wrap: wrap;
  font-family: var(--font-ui); font-size: var(--t-xs);
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--muted-light);
  margin: 0 0 var(--s2);
}

.bdh-essay-track { color: var(--brass-deep); font-weight: 600; }
.bdh-essay-dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; }

/* The lead piece. Given real weight so the index has a clear entry point
   rather than reading as an undifferentiated wall of equal cards. */
.bdh-essay-lead {
  padding: var(--s5) 0;
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid var(--rule);
  margin-bottom: var(--s5);
}

.bdh-essay-lead-thumb { display: block; margin-bottom: var(--s3); }
.bdh-essay-lead-thumb img { width: 100%; border-radius: var(--radius); border: 1px solid var(--rule); }

.bdh-essay-lead-body { max-width: 78ch; }

.bdh-essay-lead-title {
  font-size: clamp(1.6rem, 3.2vw, 2.35rem);
  line-height: 1.12;
  margin-bottom: var(--s2);
  max-width: 34ch;
}
.bdh-essay-lead-title a { color: var(--ink); text-decoration: none; }
.bdh-essay-lead-title a:hover { color: var(--brass-deep); }

.bdh-essay-lead-excerpt {
  font-size: var(--t-lg);
  color: var(--body);
  max-width: var(--measure);
  margin-bottom: var(--s3);
}

.bdh-essay-more {
  display: inline-flex; align-items: center; gap: 0.5em;
  font-family: var(--font-ui); font-size: var(--t-sm); font-weight: 600;
  color: var(--brass-deep); text-decoration: none;
}
.bdh-essay-more:hover { color: var(--ink); }

/* Card grid. Rules rather than boxes — consistent with the rest of the site,
   and it keeps a long index from looking like a dashboard. */
.bdh-essay-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--s5) var(--s6);
}

.bdh-essay-card { padding-top: var(--s3); border-top: 1px solid var(--rule); }

.bdh-essay-card-title {
  font-size: var(--t-h3);
  line-height: 1.2;
  margin-bottom: var(--s2);
}
.bdh-essay-card-title a { color: var(--ink); text-decoration: none; }
.bdh-essay-card-title a:hover { color: var(--brass-deep); }

.bdh-essay-card-excerpt { font-size: var(--t-sm); color: var(--muted); margin-bottom: var(--s2); }

.bdh-essay-card-foot {
  font-family: var(--font-ui); font-size: var(--t-xs);
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted-light);
  margin: 0;
}

.bdh-essay-empty { color: var(--muted); font-size: var(--t-lg); }

.bdh-pagination {
  display: flex; flex-wrap: wrap; gap: var(--s1);
  margin-top: var(--s6); padding-top: var(--s4);
  border-top: 1px solid var(--rule);
  font-family: var(--font-ui); font-size: var(--t-sm);
}
.bdh-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; padding: 0.6em 0.8em;
  border: 1px solid var(--rule); border-radius: var(--radius);
  color: var(--body); text-decoration: none;
}
.bdh-pagination .page-numbers:hover { border-color: var(--ink); color: var(--ink); }
.bdh-pagination .page-numbers.current { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.bdh-pagination .page-numbers.dots { border-color: transparent; }

/* --------------------------------------------------------------------------
   Single post — shared gll-* markup, styled to this theme
   -------------------------------------------------------------------------- */

.bdh-post .gll-post-section { padding: var(--s7) 0 var(--s6); }

.bdh-post .gll-post-content {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  padding: 0 var(--s3);
}

.bdh-post .gll-post-header {
  margin-bottom: var(--s5);
  padding-bottom: var(--s4);
  border-bottom: 1px solid var(--rule);
}

.bdh-post .gll-post-title {
  font-size: clamp(2rem, 4.4vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin-bottom: var(--s3);
}

.bdh-post .gll-post-meta {
  display: flex; align-items: center; gap: 0.65em; flex-wrap: wrap;
  font-family: var(--font-ui); font-size: var(--t-xs);
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted-light);
  margin: 0;
}
.bdh-post .gll-post-meta-sep { color: var(--rule); }

/* Featured image, when a post has one. */
.bdh-post .gll-post-featured { max-width: 900px; margin: 0 auto var(--s5); padding: 0 var(--s3); }
.bdh-post .gll-post-featured img { width: 100%; border: 1px solid var(--rule); border-radius: var(--radius); }

/* Long-form prose. The measure is the point: these run to thousands of words
   and this reader will not forgive a full-width paragraph. */
.bdh-post .gll-prose { font-size: 1.1875rem; line-height: 1.75; color: var(--body); }

.bdh-post .gll-prose p { margin: 0 0 1.3em; }

.bdh-post .gll-prose h2 {
  font-size: clamp(1.5rem, 2.6vw, 1.9rem);
  margin: 2em 0 0.6em;
  padding-top: 0.6em;
  border-top: 1px solid var(--rule-soft);
}
.bdh-post .gll-prose h3 { font-size: var(--t-h3); margin: 1.6em 0 0.5em; }

.bdh-post .gll-prose blockquote {
  margin: 1.6em 0;
  padding: 0 0 0 var(--s3);
  border-left: 2px solid var(--brass);
  font-style: italic;
  color: var(--ink);
}

.bdh-post .gll-prose a { color: var(--brass-deep); text-decoration: underline; text-underline-offset: 2px; }
.bdh-post .gll-prose a:hover { color: var(--ink); }

.bdh-post .gll-prose ul,
.bdh-post .gll-prose ol { margin: 0 0 1.3em; padding-left: 1.4em; }
.bdh-post .gll-prose li { margin-bottom: 0.5em; }

.bdh-post .gll-prose img { border-radius: var(--radius); border: 1px solid var(--rule); margin: 1.6em 0; }

.bdh-post .gll-prose code {
  font-size: 0.9em;
  background: var(--paper-2);
  padding: 0.15em 0.4em;
  border-radius: 3px;
}

/* Table of contents, generated in PHP from the post's own headings. */
.bdh-post .gll-post-toc {
  background: var(--paper-2);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--brass);
  border-radius: var(--radius);
  padding: var(--s3) var(--s4);
  margin: 0 0 var(--s5);
  font-family: var(--font-ui);
  font-size: var(--t-sm);
}
.bdh-post .gll-post-toc ol,
.bdh-post .gll-post-toc ul { margin: 0; padding-left: 1.2em; }
.bdh-post .gll-post-toc li { margin-bottom: 0.4em; }
.bdh-post .gll-post-toc a { color: var(--body); text-decoration: none; }
.bdh-post .gll-post-toc a:hover { color: var(--brass-deep); }

/* Author box and comments inherit the reading column's width. Class names here
   follow the shared post parts (gll-post-author-card, not -bio). */
.bdh-post .gll-post-author-section,
.bdh-post .gll-post-comments-section { padding: 0 var(--s3); }

.bdh-post .gll-post-author-card {
  display: flex;
  gap: var(--s3);
  align-items: flex-start;
  max-width: 720px;
  margin: 0 auto;
  padding: var(--s4) 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}

.bdh-post .gll-post-author-avatar img {
  width: 72px; height: 72px;
  border-radius: 50%;
  border: 1px solid var(--rule);
}

.bdh-post .gll-post-author-eyebrow {
  font-family: var(--font-ui); font-size: var(--t-xs);
  font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted-light); margin: 0 0 0.3em;
}

.bdh-post .gll-post-author-name { font-size: var(--t-h3); margin-bottom: 0.4em; }
.bdh-post .gll-post-author-bio { font-size: var(--t-sm); color: var(--muted); margin-bottom: var(--s2); }

.bdh-post .gll-post-author-link {
  font-family: var(--font-ui); font-size: var(--t-xs); font-weight: 600;
  color: var(--brass-deep); text-decoration: none;
}
.bdh-post .gll-post-author-link:hover { color: var(--ink); }

.bdh-post .gll-post-comments { max-width: 720px; margin: 0 auto; padding: var(--s5) 0; }

.bdh-post .gll-post-toc-label {
  font-family: var(--font-ui); font-size: var(--t-xs);
  font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted-light); margin: 0 0 var(--s2);
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1020px) {
  .bdh-hero-grid,
  .bdh-argument-grid,
  .bdh-podcast-grid,
  .bdh-about-grid,
  .bdh-capture-inner,
  .bdh-onesheet-grid,
  .bdh-questions-grid,
  .bdh-bookpage-grid,
  .bdh-footer-top {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--s5);
  }

  /* Cover stops being a column and becomes a plate above the copy. */
  .bdh-bookpage-cover { max-width: 240px; }

  .bdh-card--primer,
  .bdh-booking .bdh-card { position: static; }

  .bdh-path-item.is-live { grid-column: span 1; }
}

@media (max-width: 840px) {
  .bdh-nav, .bdh-header-cta { display: none; }
  .bdh-nav-toggle { display: inline-flex; }
  .bdh-mobile-nav:not([hidden]) { display: flex; }

  .bdh-hero { padding: var(--s6) 0 var(--s5); }
  .bdh-argument, .bdh-books, .bdh-shepherd, .bdh-podcast, .bdh-about { padding: var(--s6) 0; }

  .bdh-book { grid-template-columns: 120px minmax(0, 1fr); gap: var(--s3); }

  /* A two-column chapter list does not fit a phone — it was the one thing on the
     site forcing horizontal scroll. One column, full width. */
  .bdh-toc-list { columns: 1; }

  .bdh-standalone-item { grid-template-columns: minmax(0, 1fr); }
  .bdh-standalone-cover { max-width: 160px; }

  /* Touch targets. Buttons sized for a mouse are too small for a thumb —
     44px is the accessibility floor, and the small variant sat at 31px. */
  .bdh-btn { min-height: 44px; }
  .bdh-btn--sm { min-height: 44px; padding: 0.8em 1.1em; font-size: var(--t-sm); }
  .bdh-btn--ghost { min-height: 44px; }

  /* Inline text links in lists get vertical padding so they are separable by thumb. */
  .bdh-book-more,
  .bdh-essay-more { padding-top: 0.8em; padding-bottom: 0.8em; }

  .bdh-nav-toggle { min-width: 44px; min-height: 44px; }
  .bdh-mobile-nav a { padding: 0.6em 0; }
}

@media (max-width: 560px) {
  :root { --t-h1: 2.25rem; --t-h2: 1.75rem; }

  .bdh-book { grid-template-columns: minmax(0, 1fr); }
  .bdh-book-cover { max-width: 160px; }

  .bdh-form--inline { flex-direction: column; }
  .bdh-hero-actions { flex-direction: column; align-items: stretch; }
  .bdh-hero-actions .bdh-btn { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* --------------------------------------------------------------------------
   Long-form prose blocks
   Depth is the conversion mechanism here, so this has to be genuinely pleasant
   to read at length — narrow measure, generous leading, real hierarchy.
   -------------------------------------------------------------------------- */

.bdh-longform { padding: var(--s8) 0; border-bottom: 1px solid var(--rule-soft); }

.bdh-longform-body { max-width: 760px; }

.bdh-longform-block { padding-top: var(--s5); }
.bdh-longform-block + .bdh-longform-block { border-top: 1px solid var(--rule-soft); margin-top: var(--s5); }

.bdh-longform-block h3 {
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  line-height: 1.2;
  margin-bottom: var(--s3);
}

.bdh-longform-block p {
  font-size: var(--t-lg);
  line-height: 1.75;
  margin-bottom: 1.15em;
}

.bdh-pullquote {
  margin: var(--s4) 0;
  padding: 0 0 0 var(--s4);
  border-left: 3px solid var(--brass);
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-style: italic;
  line-height: 1.45;
  color: var(--ink);
}

.bdh-longform-aside {
  margin: var(--s4) 0 0;
  padding: var(--s3) var(--s4);
  background: var(--paper-2);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
}

.bdh-longform-aside-label {
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass-deep);
  margin-bottom: var(--s1) !important;
}

.bdh-longform-aside p { font-size: var(--t-base) !important; line-height: 1.65 !important; margin-bottom: 0 !important; }


/* ==========================================================================
   DESIGN-SYSTEM CONFORMANCE PASS — 2026-08-18
   Corrections against high-end-cro-design-system__playbook.md. Kept as one
   trailing block so the deltas from the original build are auditable.
   ========================================================================== */

/* Rule 20 — bezel margins. 80px desktop, 40px tablet, 24px mobile.
   The original 24px everywhere is what made the layout read as off-centre:
   content sat almost against the viewport edge with no matting. */
.bdh-wrap {
  max-width: calc(var(--wrap) + (var(--bezel) * 2));
  padding-left: var(--bezel);
  padding-right: var(--bezel);
}

/* Rule 18 — macro section padding 100-160px desktop. */
.bdh-hero, .bdh-argument, .bdh-books, .bdh-shepherd, .bdh-podcast,
.bdh-about, .bdh-longform, .bdh-dilemmas, .bdh-faq, .bdh-diagram,
.bdh-essays, .bdh-standalone, .bdh-pillar, .bdh-onesheet, .bdh-questions {
  padding-top: var(--s10);
  padding-bottom: var(--s10);
}

/* Rules 2-3, 13 — headings on the Major Third scale, tight leading. */
h1, .bdh-hero-title, .bdh-pillar-title, .bdh-bookpage-title, .bdh-onesheet-title {
  font-size: var(--t-h1);
  line-height: 1.1;
  font-weight: 500;          /* Rule 8: large type sits lighter */
}
h2, .bdh-section-title, .bdh-capture-title, .bdh-essays-title { font-size: var(--t-h2); line-height: 1.15; font-weight: 500; }
h3 { font-size: var(--t-h3); line-height: 1.2; font-weight: 600; }

/* Rule 14 — section heads are short; centre them and their lede.
   This was the specific complaint: left-aligned heads inside a centred
   container read as though the whole page had drifted left. */
.bdh-section-head {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  margin-bottom: var(--s8);
}
.bdh-section-head .bdh-eyebrow { justify-content: center; }
.bdh-section-head .bdh-section-lede { margin-left: auto; margin-right: auto; }

/* Running text stays flush left (Rule 14) and inside 800px (Rule 22). */
.bdh-longform-body, .bdh-bookpage-body, .bdh-faq-list, .bdh-essay-lead-body {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

/* Rule 39 — eyebrows are structural identifiers, NOT calls to action.
   They were set in the accent colour, which diluted the CTA signal sitewide. */
.bdh-eyebrow,
.bdh-eyebrow--light,
.bdh-primer-eyebrow,
.bdh-essay-track,
.bdh-facts-label,
.bdh-topics-label,
.bdh-definition-term,
.bdh-longform-aside-label,
.bdh-post .gll-post-toc-label {
  color: var(--muted);
  letter-spacing: 0.1em;      /* Rule 10: uppercase needs tracking */
  font-weight: 600;
}
.bdh-shepherd .bdh-eyebrow, .bdh-podcast .bdh-eyebrow { color: var(--muted-light); }

/* Rules 23, 27, 29 — primary CTA is the WARM ACCENT, 48-56px tall,
   32-48px horizontal padding. It was ink, which is the secondary colour. */
.bdh-btn--solid {
  background: var(--brass);
  border-color: var(--brass);
  color: #fff;
  min-height: 3.5rem;         /* 56px */
  padding: 0 var(--s4);       /* 32px */
  font-weight: 600;
}
.bdh-btn--solid:hover { background: var(--brass-deep); border-color: var(--brass-deep); }

/* Rule 24 — secondary is a ghost button: border only, no fill. */
.bdh-btn--outline {
  background: transparent;
  border-color: var(--rule);
  color: var(--ink);
  min-height: 3.5rem;
  padding: 0 var(--s4);
}
.bdh-btn--outline:hover { border-color: var(--ink); background: transparent; }

/* Rule 25 — tertiary is an underlined text link with a directional arrow. */
.bdh-btn--ghost, .bdh-essay-more, .bdh-book-more {
  text-decoration: underline;
  text-underline-offset: 3px;
  min-height: 2.75rem;        /* Rule 26 floor */
}

.bdh-btn--sm { min-height: 2.75rem; padding: 0 var(--s3); font-size: var(--t-sm); }

/* Dark sections keep the same accent so the CTA signal is constant sitewide. */
.bdh-shepherd .bdh-btn--solid,
.bdh-podcast .bdh-btn--solid { background: var(--brass); border-color: var(--brass); color: #fff; }

/* The framework diagram was rendering enormous on desktop. Cap it and centre it —
   it is a supporting figure, not a hero image. */
.bdh-figure { max-width: 560px; }
.bdh-figure figcaption { max-width: 560px; margin-left: auto; margin-right: auto; padding-left: var(--s3); }

/* Rule 12 — body leading inside long-form prose. */
.bdh-longform-block p { line-height: 1.6; font-size: var(--t-lg); }

/* Rule 19 — component internal padding: 40-64px desktop. */
.bdh-card, .bdh-conclusion, .bdh-objection, .bdh-about-facts,
.bdh-onesheet-facts, .bdh-longform-aside { padding: var(--s5); }

@media (max-width: 1024px) {
  :root { --bezel: 2.5rem; }   /* Rule 20: 40px tablet */
  .bdh-hero, .bdh-argument, .bdh-books, .bdh-shepherd, .bdh-podcast,
  .bdh-about, .bdh-longform, .bdh-dilemmas, .bdh-faq, .bdh-diagram,
  .bdh-essays, .bdh-standalone, .bdh-pillar, .bdh-onesheet, .bdh-questions {
    padding-top: var(--s9);
    padding-bottom: var(--s9);
  }
}

@media (max-width: 768px) {
  :root { --bezel: 1.5rem; }   /* Rule 20: 24px mobile */
  .bdh-hero, .bdh-argument, .bdh-books, .bdh-shepherd, .bdh-podcast,
  .bdh-about, .bdh-longform, .bdh-dilemmas, .bdh-faq, .bdh-diagram,
  .bdh-essays, .bdh-standalone, .bdh-pillar, .bdh-onesheet, .bdh-questions {
    padding-top: var(--s7);    /* Rule 18: 60-80px mobile */
    padding-bottom: var(--s7);
  }
  .bdh-card, .bdh-conclusion, .bdh-objection, .bdh-about-facts,
  .bdh-onesheet-facts, .bdh-longform-aside { padding: var(--s4); }
  .bdh-btn--solid, .bdh-btn--outline { min-height: 2.75rem; }  /* Rule 27: 44px mobile */
}

/* ==========================================================================
   CAPTURE PASS — 2026-08-18
   Four capture points per page (header CTA, inline, closing band, exit modal),
   the naked /free/ landing page, and the press-asset block.

   All values stay on the 8px spatial grid and reuse the design-system tokens
   set at the top of this file; nothing here introduces a new colour or a new
   spacing value. See agency/reference/high-end-cro-design-system__playbook.md.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Inline capture — the mid-page point
   Quiet by design. Two full-bleed bands on one page reads as a squeeze page,
   which is the wrong register for pastors and academics. A ruled block at the
   prose measure sits inside the argument rather than interrupting it.
   -------------------------------------------------------------------------- */

.bdh-inline-capture { padding: var(--s7) 0; }

.bdh-inline-capture-inner {
  max-width: var(--measure);
  margin: 0 auto;
  padding: var(--s5);
  background: var(--paper-2);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--brass);
  border-radius: var(--radius);
}

.bdh-inline-capture-title {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.4vw, 1.75rem);
  line-height: 1.2;
  font-weight: 500;
  color: var(--ink);
  margin: 0 0 var(--s1);
}

.bdh-inline-capture-body {
  color: var(--body);
  margin: 0 0 var(--s3);
  max-width: 60ch;
}

.bdh-inline-capture-form { margin: 0; }

.bdh-inline-capture-privacy {
  display: flex; align-items: center; gap: 0.5em;
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  color: var(--muted-light);
  margin: var(--s2) 0 0;
}

/* Inside a post body the capture is a child of .gll-prose, which sets its own
   measure and vertical rhythm — strip the section padding so it does not open
   a hole in the middle of the article. */
.gll-prose .bdh-inline-capture { padding: var(--s4) 0; }
.gll-prose .bdh-inline-capture .bdh-wrap { padding-left: 0; padding-right: 0; max-width: none; }

/* The capture title is an <h2>, so inside a post body it inherits the article
   heading treatment — a rule line above it and ~60px of top margin. Both are
   correct for a section heading in the argument and wrong for a heading inside
   a card. Reset them; the double-class selector outranks the prose rules. */
.bdh-inline-capture .bdh-inline-capture-inner .bdh-inline-capture-title {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.bdh-inline-capture .bdh-eyebrow { margin-top: 0; margin-bottom: var(--s2); }
.bdh-inline-capture .bdh-inline-capture-body { margin-top: 0; }

/* --------------------------------------------------------------------------
   Landing page — /free/
   No header, no footer nav. Every rule here exists to keep the page to one
   decision: enter an email, or leave.
   -------------------------------------------------------------------------- */

.bdh-landing {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--paper);
}

.bdh-landing-bar {
  padding: var(--s4) var(--bezel);
  border-bottom: 1px solid var(--rule);
}

/* The wordmark is deliberately not a link on this page. */
.bdh-landing-bar .bdh-wordmark { display: block; text-decoration: none; }

.bdh-landing-inner {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--s9);
  align-items: center;
  max-width: calc(var(--wrap) + (var(--bezel) * 2));
  width: 100%;
  margin: 0 auto;
  padding: var(--s9) var(--bezel);
}

.bdh-landing-title {
  font-family: var(--font-display);
  font-size: var(--t-h1);
  line-height: 1.1;
  font-weight: 500;
  color: var(--ink);
  margin: var(--s2) 0 var(--s3);
}

.bdh-landing-lede {
  font-size: var(--t-lg);
  line-height: 1.6;
  color: var(--body);
  max-width: 56ch;
  margin: 0 0 var(--s4);
}

.bdh-landing-points { list-style: none; margin: var(--s5) 0 0; padding: 0; }

.bdh-landing-points li {
  display: flex;
  gap: var(--s2);
  align-items: flex-start;
  margin-bottom: var(--s2);
  color: var(--body);
  max-width: 56ch;
}

.bdh-landing-points svg { flex: 0 0 auto; color: var(--brass); margin-top: 0.25em; }

.bdh-landing-form { flex-direction: row; max-width: 520px; }
.bdh-landing-form input[type="email"] { flex: 1 1 auto; background: #fff; }
.bdh-landing-form .bdh-btn { white-space: nowrap; }

.bdh-landing-privacy {
  display: flex; align-items: center; gap: 0.5em;
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  color: var(--muted-light);
  margin: var(--s2) 0 0;
}

.bdh-landing-reassurance {
  font-size: var(--t-sm);
  color: var(--muted);
  max-width: 56ch;
  margin: var(--s4) 0 0;
  padding-top: var(--s3);
  border-top: 1px solid var(--rule-soft);
}

.bdh-landing-visual { text-align: center; }

.bdh-landing-cover {
  width: 100%;
  max-width: 340px;
  height: auto;
  border-radius: var(--radius);
  box-shadow: 0 24px 48px rgba(22, 25, 31, 0.18);
}

.bdh-landing-cover-caption {
  font-family: var(--font-ui);
  font-size: var(--t-sm);
  color: var(--muted);
  margin: var(--s3) 0 0;
}

.bdh-landing-cover-caption strong { color: var(--ink); font-weight: 600; }

.bdh-landing-foot {
  display: flex;
  justify-content: space-between;
  gap: var(--s3);
  flex-wrap: wrap;
  padding: var(--s3) var(--bezel);
  border-top: 1px solid var(--rule);
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  color: var(--muted-light);
}

.bdh-landing-foot a { color: var(--muted); }

/* --------------------------------------------------------------------------
   Exit-intent modal — the fourth capture point
   -------------------------------------------------------------------------- */

.bdh-exit {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--s3);
}

.bdh-exit[hidden] { display: none; }

body.bdh-exit-open { overflow: hidden; }

.bdh-exit-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16, 19, 26, 0.72);
}

.bdh-exit-panel {
  position: relative;
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: var(--s5);
  align-items: center;
  width: 100%;
  max-width: 720px;
  padding: var(--s6);
  background: var(--paper);
  border-radius: var(--radius-lg);
  box-shadow: 0 32px 64px rgba(16, 19, 26, 0.4);
}

.bdh-exit-close {
  position: absolute;
  top: var(--s2);
  right: var(--s2);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;                 /* Rule 26 tap-target floor */
  height: 2.75rem;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}

.bdh-exit-close:hover { color: var(--ink); }

.bdh-exit-cover {
  width: 100%;
  height: auto;
  border-radius: var(--radius);
  box-shadow: 0 12px 28px rgba(22, 25, 31, 0.22);
}

.bdh-exit-title {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3vw, 2rem);
  line-height: 1.15;
  font-weight: 500;
  color: var(--ink);
  margin: 0 0 var(--s2);
}

.bdh-exit-body { color: var(--body); margin: 0 0 var(--s3); }

.bdh-exit-form { flex-direction: row; }
.bdh-exit-form input[type="email"] { flex: 1 1 auto; background: #fff; }
.bdh-exit-form .bdh-btn { white-space: nowrap; }

.bdh-exit-privacy {
  display: flex; align-items: center; gap: 0.5em;
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  color: var(--muted-light);
  margin: var(--s2) 0 0;
}

/* A real dismiss, worded plainly. No guilt link. */
.bdh-exit-dismiss {
  display: inline-block;
  min-height: 2.75rem;
  margin-top: var(--s1);
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--font-ui);
  font-size: var(--t-sm);
  color: var(--muted);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.bdh-exit-dismiss:hover { color: var(--ink); }

/* --------------------------------------------------------------------------
   Press assets
   -------------------------------------------------------------------------- */

.bdh-press { padding: var(--s10) 0; background: var(--paper-2); border-top: 1px solid var(--rule); }

.bdh-press-bios {
  display: grid;
  gap: var(--s3);
  max-width: var(--measure);
  margin: 0 auto var(--s6);
}

.bdh-press-bio {
  padding: var(--s4);
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
}

.bdh-press-bio-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s2);
  margin-bottom: var(--s2);
}

.bdh-press-bio-head .bdh-eyebrow { margin: 0; }

.bdh-press-copy {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  min-height: 2.75rem;
  padding: 0 var(--s2);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: transparent;
  font-family: var(--font-ui);
  font-size: var(--t-sm);
  color: var(--ink);
  cursor: pointer;
}

.bdh-press-copy:hover { border-color: var(--ink); }

.bdh-press-bio-text { margin: 0; color: var(--body); line-height: 1.6; }

.bdh-press-files {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: var(--measure);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s2);
}

.bdh-press-file-inner {
  display: flex;
  align-items: center;
  gap: var(--s2);
  min-height: 3.5rem;
  padding: var(--s2) var(--s3);
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  color: var(--ink);
  text-decoration: none;
}

a.bdh-press-file-inner:hover { border-color: var(--brass); }

.bdh-press-file-inner > span { flex: 1 1 auto; display: block; }
.bdh-press-file-inner strong { display: block; font-family: var(--font-ui); font-size: var(--t-sm); font-weight: 600; }

.bdh-press-file-note {
  display: block;
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  color: var(--muted);
}

.bdh-press-file.is-pending .bdh-press-file-inner { color: var(--muted); border-style: dashed; }

.bdh-press-file-tag {
  flex: 0 0 auto;
  white-space: nowrap;
  font-family: var(--font-ui);
  font-size: var(--t-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted-light);
}

.bdh-press-usage {
  max-width: var(--measure);
  margin: var(--s5) auto 0;
  font-size: var(--t-sm);
  color: var(--muted);
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
  .bdh-landing-inner { grid-template-columns: minmax(0, 1fr); gap: var(--s6); }
  .bdh-landing-visual { order: -1; }
  .bdh-landing-cover { max-width: 240px; }
}

@media (max-width: 768px) {
  .bdh-inline-capture { padding: var(--s5) 0; }
  .bdh-inline-capture-inner { padding: var(--s3); }
  .bdh-inline-capture-form { flex-direction: column; }
  .bdh-inline-capture-form .bdh-btn { width: 100%; }

  .bdh-landing-inner { padding: var(--s6) var(--bezel); }
  .bdh-landing-form { flex-direction: column; max-width: none; }
  .bdh-landing-form .bdh-btn { width: 100%; }
  .bdh-landing-foot { justify-content: center; text-align: center; }

  /* The modal never fires on coarse pointers, but a tablet can switch input
     modes mid-session, so it still has to lay out correctly if it opens. */
  .bdh-exit-panel { grid-template-columns: minmax(0, 1fr); padding: var(--s5) var(--s3) var(--s3); }
  .bdh-exit-cover { display: none; }
  .bdh-exit-form { flex-direction: column; }
  .bdh-exit-form .bdh-btn { width: 100%; }

  .bdh-press { padding: var(--s7) 0; }
  .bdh-press-files { grid-template-columns: minmax(0, 1fr); }
  .bdh-press-bio { padding: var(--s3); }
  .bdh-press-bio-head { flex-direction: column; align-items: flex-start; }
}

/* --------------------------------------------------------------------------
   Problem/solution matrix — book pages
   Pairs a symptom the reader recognises with the chapter that answers it.
   Sits above the contents list so the pain is met before the evidence.
   -------------------------------------------------------------------------- */

.bdh-probsol { background: var(--paper-2); }

.bdh-probsol-head { max-width: var(--measure); margin-bottom: var(--s4); }
.bdh-probsol-lede { font-size: var(--t-lg); line-height: 1.6; color: var(--muted); margin-top: var(--s2); }

.bdh-probsol-list { border-top: 1px solid var(--rule); }

.bdh-probsol-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s4);
  padding: var(--s3) 0;
  border-bottom: 1px solid var(--rule-soft);
  align-items: start;
}

.bdh-probsol-problem h3 {
  font-family: var(--font-display);
  font-size: var(--t-lg);
  color: var(--ink);
  margin: 0 0 0.4em;
}

.bdh-probsol-problem p { margin: 0; font-size: var(--t-sm); color: var(--muted); }

.bdh-probsol-answer p {
  display: flex; gap: 0.7em; align-items: flex-start;
  margin: 0; font-size: var(--t-sm); line-height: 1.6;
}

.bdh-probsol-answer .gll-icon { color: var(--brass); margin-top: 0.35em; flex-shrink: 0; }

.bdh-probsol-ch {
  margin-top: var(--s2) !important;
  font-size: var(--t-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--brass);
}

.bdh-probsol-close {
  margin-top: var(--s4);
  max-width: var(--measure);
  font-size: var(--t-sm);
  color: var(--muted);
}

/* Single column on small screens — the two-column pairing stops reading as a
   pair once the columns are narrow enough to wrap mid-phrase. */
@media (max-width: 700px) {
  .bdh-probsol-row { grid-template-columns: 1fr; gap: var(--s2); }
  .bdh-probsol-answer { padding-left: var(--s2); border-left: 2px solid var(--brass); }
}

/* --------------------------------------------------------------------------
   Risk reversal line — book page hero
   Only rendered where there is genuinely nothing to lose. No guarantee badge,
   no border, no shield iconography: this audience reads that as a sales tell.
   -------------------------------------------------------------------------- */

.bdh-bookpage-risk {
  display: flex; gap: 0.6em; align-items: flex-start;
  margin-top: var(--s2);
  font-size: var(--t-sm);
  color: var(--muted);
  max-width: 52ch;
}

.bdh-bookpage-risk .gll-icon { color: var(--brass); margin-top: 0.3em; flex-shrink: 0; }
