/*
 * bst-blocks.css
 * Shared stylesheet for the BST nested block builder.
 * Loaded by: course_section_preview.php (preview endpoint) and the BST WP plugin.
 * All selectors are namespaced under .bst-* to avoid collisions.
 */

/* ── Row / column layout ───────────────────────────────────────────────── */

.bst-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bst-row-gap, 1.5rem);
  align-items: flex-start;
  width: 100%;
  box-sizing: border-box;
}

.bst-row-col {
  flex: 1 1 0;
  min-width: 0;
  box-sizing: border-box;
}

/* Vertical alignment of columns within a row */
.bst-row.valign-top     { align-items: flex-start; }
.bst-row.valign-center  { align-items: center; }
.bst-row.valign-bottom  { align-items: flex-end; }
.bst-row.valign-stretch { align-items: stretch; }

/* Two-column ratio presets */
.bst-row.ratio-50-50 > .bst-row-col:nth-child(1) { flex: 1 1 0; }
.bst-row.ratio-50-50 > .bst-row-col:nth-child(2) { flex: 1 1 0; }

.bst-row.ratio-60-40 > .bst-row-col:nth-child(1) { flex: 6 1 0; }
.bst-row.ratio-60-40 > .bst-row-col:nth-child(2) { flex: 4 1 0; }

.bst-row.ratio-40-60 > .bst-row-col:nth-child(1) { flex: 4 1 0; }
.bst-row.ratio-40-60 > .bst-row-col:nth-child(2) { flex: 6 1 0; }

.bst-row.ratio-70-30 > .bst-row-col:nth-child(1) { flex: 7 1 0; }
.bst-row.ratio-70-30 > .bst-row-col:nth-child(2) { flex: 3 1 0; }

.bst-row.ratio-30-70 > .bst-row-col:nth-child(1) { flex: 3 1 0; }
.bst-row.ratio-30-70 > .bst-row-col:nth-child(2) { flex: 7 1 0; }

/* Three-column row */
.bst-row.layout-three-col > .bst-row-col { flex: 1 1 0; }

@media (max-width: 640px) {
  .bst-row { flex-direction: column; gap: 1rem; }
  .bst-row > .bst-row-col { flex: 1 1 100% !important; }
}

/* ── Row style tokens ──────────────────────────────────────────────────── */

/* Backgrounds */
.bst-row.has-bg-cream   { background: #fdf8f3; }
.bst-row.has-bg-blue    { background: #eef4fb; }
.bst-row.has-bg-green   { background: #eef7f1; }
.bst-row.has-bg-amber   { background: #fdf6e3; }
.bst-row.has-bg-plum    { background: #f5eef8; }
.bst-row.has-bg-neutral { background: #f5f5f5; }

/* Borders */
.bst-row.has-border-left-accent { border-left: 4px solid var(--bst-row-accent-color, #4a90d9); padding-left: 1rem; }
.bst-row.has-border-top         { border-top: 3px solid var(--bst-row-accent-color, #4a90d9); padding-top: 1rem; }
.bst-row.has-border-full        { border: 1px solid #d0d0d0; }

/* Accent colour tokens */
.bst-row.accent-teal   { --bst-row-accent-color: #2b8a6a; }
.bst-row.accent-blue   { --bst-row-accent-color: #2e6eb5; }
.bst-row.accent-green  { --bst-row-accent-color: #3a8f4a; }
.bst-row.accent-gold   { --bst-row-accent-color: #b58c00; }
.bst-row.accent-plum   { --bst-row-accent-color: #7b3f8a; }
.bst-row.accent-amber  { --bst-row-accent-color: #c07a00; }
.bst-row.accent-red    { --bst-row-accent-color: #b53232; }

/* Padding */
.bst-row.pad-compact   { padding: 0.5rem; }
.bst-row.pad-standard  { padding: 1rem; }
.bst-row.pad-spacious  { padding: 1.75rem; }

/* Radius */
.bst-row.radius-soft    { border-radius: 6px; }
.bst-row.radius-rounded { border-radius: 12px; }

/* Shadow */
.bst-row.has-shadow { box-shadow: 0 2px 8px rgba(0,0,0,.10); }

/* ── Atomic content blocks ─────────────────────────────────────────────── */

/* Kicker / label */
.bst-kicker {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--bst-accent, #2b8a6a);
  margin-bottom: 0.35rem;
}


/* Hero banner */
.bst-block-hero {
  border: 1px solid var(--preview-line, #d8d0c8);
  border-top: 5px solid var(--bst-hero-accent, var(--bst-teal, #3a5f72));
  border-radius: 10px;
  background: linear-gradient(135deg, var(--preview-surface, #fffdf9) 0%, #eef4f6 100%);
  padding: clamp(20px, 3vw, 32px);
  margin: 1rem 0;
}

/* Hero banner: background colour overrides */
.bst-block-hero.bg-white  { background: #fff !important; }
.bst-block-hero.bg-teal   { background: #e6f4f1 !important; }
.bst-block-hero.bg-sand   { background: #fef9ec !important; }
.bst-block-hero.bg-blue   { background: #edf3fb !important; }
.bst-block-hero.bg-slate  { background: #f0f2f5 !important; }
.bst-block-hero.bg-rose   { background: #fde8ea !important; }
.bst-block-hero.bg-amber  { background: #fef6e4 !important; }
.bst-block-hero.bg-navy   { background: #e8ecf4 !important; }
.bst-block-hero.bg-indigo { background: #eeeef9 !important; }
.bst-block-hero.bg-forest { background: #ecf7f0 !important; }
.bst-block-hero.bg-purple { background: #f5eefe !important; }

.bst-block-hero-heading {
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.15;
  margin: 0 0 .6rem;
  color: var(--bst-ink, #2a2237);
}

.bst-section-body .bst-block-hero-heading { margin-top: 0; }

.bst-block-hero-image {
  margin: 0 0 1rem;
  border: 1px solid rgba(42,34,55,.10);
  border-radius: 10px;
  overflow: hidden;
  background: rgba(255,255,255,.62);
  box-shadow: 0 12px 26px rgba(42,34,55,.08);
}

.bst-block-hero-image.is-bottom {
  margin-top: 1rem;
  margin-bottom: 0;
}

.bst-block-hero-image img {
  display: block;
  width: 100%;
  max-height: 260px;
  object-fit: cover;
}

.bst-block-hero p {
  color: var(--bst-body, #3a3340);
  line-height: 1.6;
  margin: 0 0 .6rem;
}

.bst-block-hero-quote {
  margin: 1rem 0 0;
  padding: .85rem 1.1rem;
  border-left: 3px solid var(--bst-gold, #c07b2a);
  background: rgba(192, 123, 42, 0.06);
  font-style: italic;
}

.bst-block-hero-quote p { margin: 0 0 .3rem; }
.bst-block-hero-quote cite {
  font-style: normal;
  font-weight: 700;
  color: var(--bst-gold, #c07b2a);
  font-size: .85rem;
}
/* Hero kicker — Option C accent bar with icon */
.bst-block-hero-kicker {
  display: flex;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 1rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.14);
}

.bst-kicker-icon-slot {
  background: var(--bst-kicker-accent, #3a5f72);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .55rem .65rem;
  flex-shrink: 0;
}

.bst-kicker-icon-slot svg {
  width: 24px;
  height: 24px;
  color: #fff;
  display: block;
  flex-shrink: 0;
}

.bst-kicker-label {
  display: flex;
  align-items: center;
  padding: .45rem .85rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--bst-kicker-text, #2b3f52);
  background: var(--bst-kicker-bg, #e4edf3);
  white-space: nowrap;
}

.bst-block-hero.kicker-right .bst-block-hero-kicker {
  margin-left: auto;
}

/* ── Rich-text inline block styles ──────────────────────────────── */
.bst-callout {
  background: #e8f4fd;
  border-left: 4px solid #2980b9;
  border-radius: 0 4px 4px 0;
  padding: .85rem 1.1rem;
  margin: .85rem 0;
  color: #1a5276;
}
.bst-key-point {
  background: #fff9e6;
  border: 2px solid #f39c12;
  border-radius: 5px;
  padding: .85rem 1.1rem;
  margin: .85rem 0;
}
.bst-key-point > p:first-child::before {
  content: 'Key point — ';
  font-weight: 700;
  color: #e67e22;
  font-size: .82em;
}
.bst-scripture {
  background: #f9f4f0;
  border-left: 4px solid #8d6e63;
  border-radius: 0 4px 4px 0;
  font-style: italic;
  padding: .85rem 1.1rem;
  margin: .85rem 0;
  color: #5d4037;
}
.bst-pull-quote {
  font-size: 1.15em;
  font-style: italic;
  color: #2d6a4f;
  border-top: 2px solid #2d6a4f;
  border-bottom: 2px solid #2d6a4f;
  padding: .65rem 0;
  text-align: center;
  margin: 1.25rem 1.5rem;
}
.bst-speech {
  background: #f0f8ff;
  border: 2px solid #3498db;
  border-radius: 16px;
  padding: .85rem 1.1rem;
  margin: 1.1rem 0;
  position: relative;
}
.bst-speech::after {
  content: '';
  position: absolute;
  bottom: -14px;
  left: 28px;
  border: 7px solid transparent;
  border-top-color: #3498db;
}
.bst-highlight {
  background: #fffde7;
  border: 1px solid #ffd54f;
  border-radius: 4px;
  padding: .75rem 1rem;
  margin: .85rem 0;
}
/* Consecutive same-style elements merge visually */
.bst-callout    + .bst-callout,
.bst-key-point  + .bst-key-point,
.bst-scripture  + .bst-scripture,
.bst-pull-quote + .bst-pull-quote,
.bst-speech     + .bst-speech,
.bst-highlight  + .bst-highlight { margin-top: 0; border-top: none; }

/* Tick list */
ul.bst-learning-outcomes {
  list-style: none;
  padding-left: .25rem;
  margin: .75rem 0;
}
ul.bst-learning-outcomes li {
  padding-left: 1.75rem;
  position: relative;
  margin: .35rem 0;
  line-height: 1.5;
}
ul.bst-learning-outcomes li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: #2d6a4f;
  font-weight: 700;
}

/* Heading (h2) */
.bst-block-heading {
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.25;
  margin: 0.2rem 0 0.7rem;
  color: inherit;
}

/* Subheading (h4) */
.bst-subheading {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
  margin: 0.8rem 0 0.4rem;
  color: inherit;
}

/* Paragraph */
.bst-block-paragraph {
  font-size: 1rem;
  line-height: 1.7;
  margin: 0 0 0.75rem;
  color: inherit;
}
.bst-block-paragraph:last-child { margin-bottom: 0; }

/* Scripture quote */
.bst-scripture-block {
  border-left: 3px solid var(--bst-accent, #2b8a6a);
  padding: 0.65rem 1rem;
  margin: 1rem 0;
  background: rgba(43,138,106,.06);
  border-radius: 0 4px 4px 0;
}
.bst-scripture-block .bst-scripture-text {
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.65;
  margin: 0 0 0.35rem;
}
.bst-scripture-block .bst-scripture-ref {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--bst-accent, #2b8a6a);
  letter-spacing: .03em;
}
.bst-scripture-block .bst-scripture-translation {
  font-size: 0.75rem;
  color: #888;
  margin-top: 0.15rem;
}

/* Pull quote */
.bst-pull-quote-block {
  border-left: 4px solid var(--bst-accent, #4a90d9);
  margin: 1.25rem 0;
  padding: 0.75rem 1.1rem;
  background: transparent;
}
.bst-pull-quote-block .bst-pull-quote-text {
  font-size: 1.15rem;
  font-style: italic;
  line-height: 1.55;
  margin: 0 0 0.4rem;
  color: #333;
}
.bst-pull-quote-block .bst-pull-quote-cite {
  font-size: 0.8rem;
  color: #777;
  font-style: normal;
}

/* Key point */
.bst-key-point-block {
  background: #eef7f1;
  border-radius: 6px;
  padding: 0.9rem 1.1rem;
  margin: 0.75rem 0;
}
.bst-key-point-block .bst-key-point-heading {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #2b8a6a;
  margin: 0 0 0.3rem;
}
.bst-key-point-block .bst-key-point-body {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #2a2a2a;
  margin: 0;
}

/* Highlight */
.bst-highlight-block {
  background: #fffde7;
  border-left: 3px solid #f0c060;
  border-radius: 0 4px 4px 0;
  padding: 0.6rem 0.9rem;
  margin: 0.75rem 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #3a3000;
}

/* Divider */
.bst-block-divider {
  border: none;
  border-top: 1px solid #d8d8d8;
  margin: 1.25rem 0;
}
.bst-block-divider.is-accent {
  border-top-color: var(--bst-accent, #2b8a6a);
  border-top-width: 2px;
}

/* ── Wrapper applied by preview/renderer ───────────────────────────────── */

.bst-blocks-preview {
  font-family: inherit;
  color: #222;
  line-height: 1.6;
}

/* ── Card grid column count overrides ─────────────────────────────────── */
/* bst-course-player.css collapses .bst-evidence-map to 1-col at 900px.
   These rules use higher specificity (.bst-block-card-grid ancestor) to
   keep block-composer grids multi-column down to actual mobile widths. */

/* Both classes sit on the same element — chain them (no space). */
.bst-evidence-map.cols-1 {
  grid-template-columns: 1fr !important;
}
.bst-evidence-map.cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: stretch !important;
}
.bst-evidence-map.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch !important;
}

/* Cards fill their grid cell — align-items:stretch on the grid handles height,
   align-self:stretch here is belt-and-suspenders. Do NOT override display:grid
   (the player CSS sets grid-template-columns:54px 1fr for the icon column). */
.bst-evidence-map.cols-2 .bst-evidence-card,
.bst-evidence-map.cols-3 .bst-evidence-card {
  align-self: stretch !important;
}
/* card-copy is a grid item spanning 2 rows; make it a flex column so the
   takeaway can be pushed to the bottom with margin-top:auto */
.bst-evidence-map.cols-2 .bst-evidence-card-copy,
.bst-evidence-map.cols-3 .bst-evidence-card-copy {
  display: flex;
  flex-direction: column;
}
/* Push takeaway to the bottom of card-copy */
.bst-evidence-map.cols-2 .bst-evidence-takeaway,
.bst-evidence-map.cols-3 .bst-evidence-takeaway {
  margin-top: auto;
}

/* Collapse to single column only at genuine mobile width */
@media (max-width: 580px) {
  .bst-evidence-map.cols-2,
  .bst-evidence-map.cols-3 {
    grid-template-columns: 1fr !important;
  }
}

/* Fallback cols-3 override for non-block-composer contexts */
.bst-evidence-map.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 640px) {
  .bst-evidence-map.cols-3 { grid-template-columns: 1fr; }
}

/* ── Preview-pane layout overrides ────────────────────────────────────── */
/* The preview pane is ~330px wide, which triggers narrow-screen rules from
   bst-course-player.css. These overrides, scoped to the preview body class,
   restore desktop layout so the preview accurately reflects the live site. */

/* Keep row columns side-by-side regardless of pane width */
.bst-blocks-preview .bst-row {
  flex-direction: row !important;
}
.bst-blocks-preview .bst-row > .bst-row-col {
  flex: 1 1 0 !important;
  width: auto !important;
}

/* Evidence-map (card grid): use flexible columns with a lower minimum so
   cards fill the available space even in a narrow pane. */
.bst-blocks-preview .bst-evidence-map {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
}

/* ── Interactive selection — preview iframe only ───────────────────────── */
/* Scoped to .bst-blocks-preview so these rules never apply on the live site
   even though bst-blocks.css is also loaded by the WordPress plugin. */

.bst-blocks-preview [data-bst-block-id] {
  cursor: pointer;
}
.bst-blocks-preview [data-bst-block-id]:hover {
  outline: 2px dashed rgba(45, 106, 79, 0.45);
  outline-offset: 2px;
}
.bst-blocks-preview [data-bst-highlight="1"] {
  outline: 2px solid #2d6a4f;
  outline-offset: 2px;
}

/* ── Further Investigation — recommended reading list ──────────────────────── */

[data-section-key="ap_further_investigation"] .bst-block-image {
  width: 100%;
  max-width: 300px;
  margin: 0 0 .85rem;
}

[data-section-key="ap_further_investigation"] .bst-block-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
  border: 1px solid #e2dbd3;
  border-radius: 8px;
  background: #f7f1ea;
}

[data-section-key="ap_further_investigation"] .bst-block-image.is-contain img {
  object-fit: contain;
}

[data-section-key="ap_further_investigation"] .bst-block-person {
  display: grid;
  grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
  gap: clamp(18px, 3vw, 28px);
  align-items: start;
}

[data-section-key="ap_further_investigation"] .bst-block-person.is-image-right {
  grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
}

[data-section-key="ap_further_investigation"] .bst-block-person.is-image-right .bst-block-person-media {
  order: 2;
}

[data-section-key="ap_further_investigation"] .bst-block-person-media {
  width: 100%;
  max-width: 300px;
  margin: 0;
}

[data-section-key="ap_further_investigation"] .bst-block-person-media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
  border: 1px solid #e2dbd3;
  border-radius: 8px;
  background: #f7f1ea;
}

[data-section-key="ap_further_investigation"] .bst-block-person-media figcaption {
  margin-top: 8px;
  color: #6a7891;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.35;
}

@media (max-width: 640px) {
  [data-section-key="ap_further_investigation"] .bst-block-person,
  [data-section-key="ap_further_investigation"] .bst-block-person.is-image-right {
    grid-template-columns: 1fr;
  }

  [data-section-key="ap_further_investigation"] .bst-block-person.is-image-right .bst-block-person-media {
    order: 0;
  }
}

.bst-fi-resources {
  margin-top: 1.5rem;
}

.bst-fi-resources__heading {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--bst-accent, #2b8a6a);
  margin: 0 0 .85rem;
}

.bst-fi-resources__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .65rem;
}

.bst-fi-resource {
  border: 1px solid #e2dbd3;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.bst-fi-resource__header {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  padding: .65rem .85rem;
  background: #f8f4ef;
}

.bst-fi-resource__title {
  font-weight: 600;
  font-size: .95rem;
  color: #2a2319;
}

.bst-fi-resource__author {
  font-size: .82rem;
  color: #7a6e65;
}

.bst-fi-resource__detail {
  border-top: 1px solid #e2dbd3;
}

.bst-fi-resource__detail > summary {
  padding: .45rem .85rem;
  font-size: .82rem;
  font-weight: 600;
  color: var(--bst-accent, #2b8a6a);
  cursor: pointer;
  user-select: none;
  list-style: none;
}
.bst-fi-resource__detail > summary::-webkit-details-marker { display: none; }
.bst-fi-resource__detail > summary::before {
  content: '▸ ';
  font-size: .7rem;
}
.bst-fi-resource__detail[open] > summary::before { content: '▾ '; }

.bst-fi-resource__note {
  padding: .5rem .85rem .75rem;
  font-size: .88rem;
  line-height: 1.65;
  color: #3a3530;
}
.bst-fi-resource__note p { margin: 0 0 .5rem; }
.bst-fi-resource__note p:last-child { margin-bottom: 0; }

/* ── Reflection questions block ─────────────────────────────────────────── */
.bst-reflection-desc {
  color: #5a5a72;
  font-size: .9rem;
  margin: -.25rem 0 .55rem;
  line-height: 1.5;
}

/* ── Two-panel block overrides ──────────────────────────────────────────── */
.bst-block-two-panel .bst-objection-box h4 { font-weight: 700; }
/* -- Two-panel / hero-sidebar objection classes -- */
.bst-objection-kicker,
.bst-objection-label {
  margin: 0 0 8px;
  color: #8a3a3a;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.bst-objection-lead,
.bst-objection-brief p,
.bst-objection-case p {
  color: #4d4458;
  font-size: 1rem;
  line-height: 1.7;
}

.bst-objection-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  margin-top: 14px;
}

.bst-objection-box {
  padding: 16px;
  border: 1px solid rgba(35, 52, 79, 0.12);
  border-radius: 8px;
  background: #fffdf9;
}

.bst-objection-box.is-challenge {
  background: #fff7f5;
}

.bst-objection-box.is-response {
  background: #f5faf7;
}

.bst-objection-box h4 {
  margin: 0 0 9px;
  color: #23344f;
  font-size: 1rem;
  line-height: 1.3;
}

.bst-objection-box p {
  color: #4d4458;
  font-size: 0.94rem;
  line-height: 1.62;
}

.bst-objection-brief p + p,
.bst-objection-box p + p,
.bst-objection-case p + p {
  margin-top: 12px;
}

.bst-objection-takeaway {
  margin-top: 14px;
  padding: 13px 15px;
  border-left: 4px solid #3a5f72;
  border-radius: 0 8px 8px 0;
  background: #f4fafb;
  color: #4d4458;
  line-height: 1.65;
}


/* Phil argument block */
.bst-block-phil-argument {
  --bst-phil-accent: #c28a12;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(35, 52, 79, .14);
  border-left: 5px solid var(--bst-phil-accent);
  border-radius: 8px;
  background: #fffdf9;
  color: #3a3340;
}

.bst-block-phil-argument.is-tone-green { --bst-phil-accent: #2d6a4f; background: #f5faf7; }
.bst-block-phil-argument.is-tone-blue { --bst-phil-accent: #3a5f72; background: #f4fafb; }
.bst-block-phil-argument.is-tone-purple { --bst-phil-accent: #6b4a8f; background: #f8f4fb; }

.bst-block-phil-argument-header {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin-bottom: .8rem;
}

.bst-block-phil-argument-icon {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bst-phil-accent) 18%, white);
  position: relative;
}

.bst-block-phil-argument-icon::before,
.bst-block-phil-argument-icon::after {
  content: "";
  position: absolute;
  left: 9px;
  right: 9px;
  height: 2px;
  border-radius: 2px;
  background: var(--bst-phil-accent);
}

.bst-block-phil-argument-icon::before { top: 12px; }
.bst-block-phil-argument-icon::after { top: 20px; }

.bst-block-phil-argument-title {
  color: #23344f;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.3;
}

.bst-block-phil-argument-premises {
  display: grid;
  gap: .55rem;
}

.bst-block-phil-argument-premise,
.bst-block-phil-argument-conclusion {
  display: flex;
  gap: .65rem;
  align-items: flex-start;
  padding: .7rem .8rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, .72);
  line-height: 1.55;
}

.bst-block-phil-argument-premise-label,
.bst-block-phil-argument-conclusion-label {
  flex: 0 0 auto;
  min-width: 2.1rem;
  color: var(--bst-phil-accent);
  font-weight: 800;
}

.bst-block-phil-argument-premise-text,
.bst-block-phil-argument-conclusion-text {
  min-width: 0;
  color: #3a3340;
}

.bst-block-phil-argument-divider {
  margin: .85rem 0;
  border: 0;
  border-top: 1px solid rgba(35, 52, 79, .16);
}

.bst-block-phil-argument-conclusion {
  background: color-mix(in srgb, var(--bst-phil-accent) 10%, white);
  font-weight: 700;
}

.bst-block-phil-argument-commentary {
  margin-top: .85rem;
  color: #4d4458;
  line-height: 1.65;
}

.bst-block-phil-argument-commentary p:first-child { margin-top: 0; }
.bst-block-phil-argument-commentary p:last-child { margin-bottom: 0; }

/* ── Worked example (3-column argument showcase) ────────────────────────── */

.bst-block-worked-example {
  --bst-we-accent: #2d6a4f;
  --bst-we-soft: #f6faf8;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr) minmax(0, 8fr);
  gap: 1.4rem;
  margin: 1rem 0;
  padding: 1.25rem 1.4rem;
  border: 1px solid rgba(35, 52, 79, .14);
  border-radius: 10px;
  background: var(--bst-we-soft);
  color: #3a3340;
}

.bst-block-worked-example.is-tone-gold   { --bst-we-accent: #c28a12; --bst-we-soft: #f3f0eb; }
.bst-block-worked-example.is-tone-blue   { --bst-we-accent: #3a5f72; --bst-we-soft: #f0f4f8; }
.bst-block-worked-example.is-tone-purple { --bst-we-accent: #6b4a8f; --bst-we-soft: #f4f0f8; }

.bst-we-argument,
.bst-we-points {
  padding-left: 1.4rem;
  border-left: 1px solid rgba(35, 52, 79, .12);
}

.bst-we-intro-head {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
}

.bst-we-badge {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--bst-we-accent);
  color: #fff;
  font-weight: 800;
  font-size: .9rem;
}

.bst-we-title {
  color: #23344f;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
}

.bst-we-subtitle {
  margin: .55rem 0 0;
  color: #6a7891;
  font-size: .88rem;
  line-height: 1.55;
}

.bst-we-image { margin: .9rem 0 0; }

.bst-we-image img {
  display: block;
  max-width: 100%;
  border-radius: 8px;
}

.bst-we-col-label {
  margin-bottom: .75rem;
  color: var(--bst-we-accent);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.bst-we-argument-card {
  padding: .85rem .9rem;
  border: 1px solid rgba(35, 52, 79, .12);
  border-radius: 8px;
  background: #fff;
  display: grid;
  gap: .6rem;
}

.bst-we-premise,
.bst-we-conclusion {
  display: flex;
  gap: .65rem;
  align-items: flex-start;
  line-height: 1.5;
}

.bst-we-premise + .bst-we-premise,
.bst-we-conclusion {
  padding-top: .6rem;
  border-top: 1px solid rgba(35, 52, 79, .1);
}

.bst-we-premise-label {
  flex: 0 0 auto;
  padding: .1rem .45rem;
  border-radius: 5px;
  background: var(--bst-we-accent);
  color: #fff;
  font-size: .78rem;
  font-weight: 800;
}

.bst-we-conclusion { font-weight: 700; }

.bst-we-conclusion-label {
  color: var(--bst-we-accent);
  font-weight: 800;
}

.bst-we-point {
  display: flex;
  gap: .65rem;
  align-items: flex-start;
}

.bst-we-point + .bst-we-point { margin-top: .85rem; }

.bst-we-point-check {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  color: var(--bst-we-accent);
}

.bst-we-point-check svg {
  width: 22px;
  height: 22px;
  display: block;
}

/* Red cross variant — for invalid/unsound points; overrides the tone accent */
.bst-we-point-check.is-cross { color: #b3363d; }

/* ── Remember / takeaway (2-column summary panel) ───────────────────────── */

.bst-block-takeaway {
  --bst-ta-accent: #3a5f72;
  --bst-ta-deep: #23344f;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: 1.4rem;
  margin: 1rem 0;
  padding: 1.25rem 1.4rem;
  border: 1px solid rgba(35, 52, 79, .12);
  border-radius: 10px;
  background: #edf2f7;
  color: #3a3340;
}

.bst-block-takeaway.is-tone-green  { --bst-ta-accent: #2d6a4f; --bst-ta-deep: #1d4736; background: #eef5f0; }
.bst-block-takeaway.is-tone-gold   { --bst-ta-accent: #a4761a; --bst-ta-deep: #6d4e10; background: #f8f3e7; }
.bst-block-takeaway.is-tone-purple { --bst-ta-accent: #6b4a8f; --bst-ta-deep: #4a3366; background: #f3eff8; }

.bst-ta-points {
  padding-left: 1.4rem;
  border-left: 1px solid rgba(35, 52, 79, .14);
}

.bst-ta-intro-head {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin-bottom: 1rem;
}

.bst-ta-badge {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--bst-ta-accent);
  color: #fff;
  font-weight: 800;
  font-size: .9rem;
}

.bst-ta-title {
  color: var(--bst-ta-deep);
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.25;
}

.bst-ta-statement-row {
  display: flex;
  gap: .9rem;
  align-items: flex-start;
  padding-left: .35rem;
}

.bst-ta-icon {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--bst-ta-accent);
  color: #fff;
}

.bst-ta-icon svg {
  width: 28px;
  height: 28px;
  display: block;
}

.bst-ta-statement-copy { min-width: 0; }

.bst-ta-statement {
  color: var(--bst-ta-deep);
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.45;
}

.bst-ta-subtext {
  margin: .45rem 0 0;
  color: #5d6b80;
  font-size: .9rem;
  line-height: 1.55;
}

.bst-ta-col-label {
  margin-bottom: .85rem;
  color: var(--bst-ta-deep);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.bst-ta-point {
  display: flex;
  gap: .7rem;
  align-items: flex-start;
}

.bst-ta-point + .bst-ta-point { margin-top: .85rem; }

.bst-ta-point-icon {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1.5px solid color-mix(in srgb, var(--bst-ta-accent) 55%, white);
  background: #fff;
  color: var(--bst-ta-accent);
}

.bst-ta-point-icon svg {
  width: 20px;
  height: 20px;
  display: block;
}

.bst-ta-point-copy {
  min-width: 0;
  font-size: .9rem;
  line-height: 1.5;
  color: #5d6b80;
}

.bst-ta-point-copy strong {
  display: block;
  color: var(--bst-ta-deep);
}

@media (max-width: 920px) {
  .bst-block-takeaway { grid-template-columns: 1fr; }
  .bst-ta-points {
    padding-left: 0;
    border-left: 0;
    padding-top: 1rem;
    border-top: 1px solid rgba(35, 52, 79, .14);
  }
}

/* Structured breakdown (numbered card, icon-labeled rows) */

.bst-block-breakdown {
  --bst-bd-accent: #2d6a4f;
  --bst-bd-deep: #1d4736;
  --bst-bd-soft: #eef5f0;
  --bst-bd-line: rgba(45, 106, 79, .28);
  margin: 1rem 0;
  border: 1px solid rgba(35, 52, 79, .14);
  border-left: 5px solid var(--bst-bd-accent);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.bst-block-breakdown.is-tone-teal { --bst-bd-accent: #2d6a6a; --bst-bd-deep: #1e5454; --bst-bd-soft: #e4f0ee; --bst-bd-line: rgba(45, 106, 106, .28); }
.bst-block-breakdown.is-tone-plum { --bst-bd-accent: #6b4a8f; --bst-bd-deep: #4a3366; --bst-bd-soft: #f3eff8; --bst-bd-line: rgba(107, 74, 143, .28); }
.bst-block-breakdown.is-tone-gold { --bst-bd-accent: #a4761a; --bst-bd-deep: #6d4e10; --bst-bd-soft: #f8f3e7; --bst-bd-line: rgba(164, 118, 26, .28); }
.bst-block-breakdown.is-tone-blue { --bst-bd-accent: #3a5f72; --bst-bd-deep: #244657; --bst-bd-soft: #eef5fb; --bst-bd-line: rgba(58, 95, 114, .28); }
.bst-block-breakdown.is-tone-green { --bst-bd-accent: #2d6a4f; --bst-bd-deep: #1d4736; --bst-bd-soft: #eef5f0; --bst-bd-line: rgba(45, 106, 79, .28); }
.bst-block-breakdown.is-tone-orange { --bst-bd-accent: #b25c22; --bst-bd-deep: #7c3f16; --bst-bd-soft: #fbefe7; --bst-bd-line: rgba(178, 92, 34, .28); }

.bst-breakdown-header {
  display: grid;
  grid-template-columns: 40px minmax(8rem, 12rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.3rem;
  border-bottom: 1px solid rgba(35, 52, 79, .12);
}

/* Pin each header piece to its row-grid column so the kicker pill sits above
   the row labels and the heading lines up with the row text. */
.bst-breakdown-header .bst-breakdown-number  { grid-column: 1; }
.bst-breakdown-header .bst-breakdown-kicker  { grid-column: 2; justify-self: start; }
.bst-breakdown-header .bst-breakdown-heading { grid-column: 3; }

.bst-breakdown-number {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--bst-bd-accent);
  color: #fff;
  font-weight: 800;
  font-size: .9rem;
}

.bst-breakdown-kicker {
  padding: .3rem .7rem;
  border-radius: 999px;
  background: var(--bst-bd-soft);
  color: var(--bst-bd-accent);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.bst-block-breakdown .bst-breakdown-heading {
  margin: 0;
  color: var(--bst-bd-accent);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.3;
}

/* Guided commentary styles ordinary headings as teaching-note cards. A
   structured breakdown heading already has its own header layout, so keep
   that heading free of the teaching-note label and card wrapper. */
.bst-lesson-section--guided_commentary .bst-section-body .bst-block-breakdown .bst-breakdown-heading {
  margin: 0 !important;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--bst-bd-accent) !important;
  font-family: inherit;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.bst-lesson-section--guided_commentary .bst-section-body .bst-block-breakdown .bst-breakdown-heading::before {
  content: none !important;
  display: none !important;
}

.bst-breakdown-row {
  display: grid;
  grid-template-columns: 40px minmax(8rem, 12rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: 1rem 1.3rem;
}

.bst-breakdown-row + .bst-breakdown-row {
  border-top: 1px solid rgba(35, 52, 79, .08);
}

.bst-breakdown-row-icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1.5px solid var(--bst-bd-line);
  background: #fff;
  color: var(--bst-bd-accent);
}

.bst-breakdown-row-icon svg {
  width: 21px;
  height: 21px;
  display: block;
}

.bst-breakdown-row-body { min-width: 0; }

.bst-breakdown-row-label {
  display: block;
  padding-top: .3rem;
  color: var(--bst-bd-accent);
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.35;
  text-transform: uppercase;
}

.bst-breakdown-row-text {
  color: #4d5a6b;
  font-size: .92rem;
  line-height: 1.55;
}

.bst-breakdown-row-text p,
.bst-breakdown-row-text ul,
.bst-breakdown-row-text ol {
  margin: 0 0 .5rem;
}

.bst-breakdown-row-text > :last-child {
  margin-bottom: 0;
}

.bst-breakdown-row-quote {
  position: relative;
  margin: 0;
  padding: .8rem 1rem .8rem 3rem;
  border-left: 4px solid var(--bst-bd-accent);
  border-radius: 8px;
  background: var(--bst-bd-soft);
  color: #3a4a3f;
  font-size: .92rem;
  font-style: italic;
  line-height: 1.55;
}

.bst-breakdown-row-quote::before {
  content: "\201C";
  position: absolute;
  left: .95rem;
  top: .5rem;
  color: var(--bst-bd-accent);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.4rem;
  font-style: normal;
  font-weight: 800;
  line-height: 1;
  opacity: .68;
}

.bst-breakdown-row-quote p { margin: 0; }

@media (max-width: 760px) {
  .bst-breakdown-row {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: .35rem .8rem;
  }

  .bst-breakdown-row-body {
    grid-column: 2;
  }

  .bst-breakdown-header {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
  }
}

/* ── Concept card (toned card: kicker chip, heading, body + callout panels) ─ */

.bst-block-concept {
  --bst-cc-accent: #8b2a3a;
  --bst-cc-soft: #faeef0;
  margin: 1rem 0;
  padding: 1.4rem 1.5rem;
  border: 1px solid rgba(35, 52, 79, .12);
  border-top: 4px solid var(--bst-cc-accent);
  border-radius: 12px;
  background: #fff;
}

.bst-block-concept.is-tone-green  { --bst-cc-accent: #2d6a4f; --bst-cc-soft: #eef5f0; }
.bst-block-concept.is-tone-purple { --bst-cc-accent: #6b4a8f; --bst-cc-soft: #f3eff8; }
.bst-block-concept.is-tone-blue   { --bst-cc-accent: #3a5f72; --bst-cc-soft: #edf2f7; }
.bst-block-concept.is-tone-gold   { --bst-cc-accent: #a4761a; --bst-cc-soft: #f8f3e7; }

.bst-concept-head {
  display: flex;
  align-items: stretch;
  margin-bottom: 1rem;
}

.bst-concept-chip {
  flex: 0 0 36px;
  width: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px 0 0 8px;
  background: var(--bst-cc-accent);
  color: #fff;
}

.bst-concept-chip svg {
  width: 18px;
  height: 18px;
  display: block;
}

.bst-concept-kicker {
  display: inline-flex;
  align-items: center;
  padding: .45rem .95rem;
  border-radius: 999px;
  background: var(--bst-cc-soft);
  color: var(--bst-cc-accent);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.bst-concept-chip + .bst-concept-kicker { border-radius: 0 999px 999px 0; }

.bst-concept-cols {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 1.7rem;
  align-items: start;
}

.bst-block-concept .bst-concept-heading {
  margin: 0 0 .8rem;
  color: #1d2b4f;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.25;
}

.bst-concept-body {
  color: #3f4a5c;
  font-size: .95rem;
  line-height: 1.65;
}

.bst-concept-body p,
.bst-concept-body ul,
.bst-concept-body ol {
  margin: 0 0 .9rem;
}

.bst-concept-body > :last-child { margin-bottom: 0; }

.bst-concept-panel {
  padding: 1rem 1.15rem;
  border-radius: 10px;
  background: var(--bst-cc-soft);
}

.bst-concept-panel + .bst-concept-panel { margin-top: .9rem; }

.bst-concept-panel-head {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding-bottom: .55rem;
  margin-bottom: .65rem;
  border-bottom: 1px solid color-mix(in srgb, var(--bst-cc-accent) 40%, transparent);
  color: var(--bst-cc-accent);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.bst-concept-panel-icon svg {
  width: 18px;
  height: 18px;
  display: block;
}

.bst-concept-panel-text {
  color: #3f4a5c;
  font-size: .88rem;
  line-height: 1.55;
}

.bst-concept-panel-text p,
.bst-concept-panel-text ul,
.bst-concept-panel-text ol {
  margin: 0 0 .5rem;
}

.bst-concept-panel-text > :last-child { margin-bottom: 0; }

/* Bullet lists inside concept panels render as tick lists in the card tone.
   The !important flags shield these from the lesson player's generic boxed
   list styling (high-specificity :not() chains) without touching it. */
.bst-concept-panel-text ul {
  display: block !important;
  list-style: none !important;
  margin: 0 0 .5rem !important;
  padding: 0 0 0 .1rem !important;
}

.bst-concept-panel-text ul > li {
  position: relative !important;
  min-height: 0 !important;
  margin: .4rem 0 !important;
  padding: 0 0 0 1.55rem !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #3f4a5c !important;
  font-size: .88rem !important;
  line-height: 1.55 !important;
}

.bst-concept-panel-text ul > li::before {
  content: '✓' !important;
  position: absolute !important;
  left: 0 !important;
  top: .22em !important;
  width: 15px !important;
  height: 15px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: var(--bst-cc-accent) !important;
  color: #fff !important;
  font-size: .6rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

@media (max-width: 920px) {
  .bst-concept-cols { grid-template-columns: 1fr; }
}

.bst-we-point-copy {
  min-width: 0;
  font-size: .92rem;
  line-height: 1.55;
  color: #4d4458;
}

.bst-we-point-copy strong { color: #23344f; }

@media (max-width: 920px) {
  .bst-block-worked-example { grid-template-columns: 1fr; }
  .bst-we-argument,
  .bst-we-points {
    padding-left: 0;
    border-left: 0;
    padding-top: 1rem;
    border-top: 1px solid rgba(35, 52, 79, .12);
  }
}

/* -- Block-composer renderer classes -- */

.bst-block-rich-text {
  margin: 1rem 0;
  color: #3a3340;
  line-height: 1.65;
}

.bst-block-rich-text > :first-child { margin-top: 0; }
.bst-block-rich-text > :last-child { margin-bottom: 0; }

.bst-block-rich-text p,
.bst-block-rich-text li {
  color: #3a3340;
  line-height: 1.65;
}

.bst-block-rich-text h3,
.bst-block-rich-text h4 {
  color: #23344f;
  line-height: 1.25;
}
.bst-block-callout-heading {
  margin: 0 0 .45rem;
  color: #23344f;
  font-size: .92rem;
  font-weight: 800;
  line-height: 1.35;
}

.bst-block-callout.is-info { border-left: 4px solid #3a5f72; }
.bst-block-callout.is-key { border-left: 4px solid #c28a12; }
.bst-block-callout.is-success { border-left: 4px solid #2d6a4f; }
.bst-block-callout.is-warning { border-left: 4px solid #b85515; }

.bst-block-wrap {
  display: block;
  min-width: 0;
}

.bst-row-col > .bst-block-wrap + .bst-block-wrap {
  margin-top: 1rem;
}

.bst-block-quote {
  margin: 1rem 0;
  padding: .8rem 1rem;
  border-left: 4px solid #c28a12;
  border-radius: 0 8px 8px 0;
  background: #fffaf0;
  color: #4d4458;
}

.bst-block-quote p {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.7;
}

.bst-block-quote cite {
  display: block;
  margin-top: .5rem;
  color: #8a3a3a;
  font-size: .82rem;
  font-style: normal;
  font-weight: 700;
}

.bst-block-image {
  margin: 1rem 0;
}

.bst-block-image img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #e2dbd3;
  border-radius: 8px;
  background: #f7f1ea;
  object-fit: cover;
}

.bst-block-image.is-contain img {
  object-fit: contain;
}

.bst-block-image figcaption {
  margin-top: .45rem;
  color: #6a7891;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.35;
}

.bst-block-accordion {
  display: grid;
  gap: .65rem;
  margin: 1rem 0;
}

.bst-block-acc-item {
  border: 1px solid rgba(35, 52, 79, .14);
  border-radius: 8px;
  background: #fffdf9;
  overflow: hidden;
}

.bst-block-acc-item > summary {
  padding: .75rem .9rem;
  color: #23344f;
  font-weight: 800;
  cursor: pointer;
}

.bst-block-acc-body {
  padding: 0 .9rem .85rem;
  color: #4d4458;
  line-height: 1.62;
}

.bst-block-person {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
  gap: clamp(16px, 3vw, 26px);
  align-items: start;
  margin: 1rem 0;
}

.bst-block-person.is-image-right {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 260px);
}

.bst-block-person.is-image-right .bst-block-person-media {
  order: 2;
}

.bst-block-person-copy {
  min-width: 0;
}

.bst-block-person-badge {
  display: inline-block;
  margin: 0 0 .45rem;
  color: #8a3a3a;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.bst-block-person-name {
  margin: 0 0 .65rem;
  color: #23344f;
  font-size: 1.25rem;
  line-height: 1.25;
}

.bst-block-reflection-questions {
  margin: 1rem 0;
}

.bst-discussion {
  display: grid;
  gap: 1rem;
}

.bst-discussion__item {
  padding: 1rem;
  border: 1px solid rgba(35, 52, 79, .12);
  border-radius: 8px;
  background: #fffdf9;
}

.bst-discussion__q {
  margin: 0 0 .65rem;
  color: #23344f;
  font-size: .98rem;
  line-height: 1.55;
}

.bst-textarea {
  width: 100%;
  min-height: 120px;
  box-sizing: border-box;
  padding: .75rem .85rem;
  border: 1px solid rgba(35, 52, 79, .18);
  border-radius: 8px;
  color: #252b36;
  font: inherit;
  line-height: 1.55;
  resize: vertical;
}

.bst-textarea:focus {
  border-color: #3a5f72;
  outline: 2px solid rgba(58, 95, 114, .18);
  outline-offset: 1px;
}

.bst-save-indicator {
  margin: .65rem 0 0;
  color: #2d6a4f;
  font-size: .82rem;
  font-weight: 700;
}

@media (max-width: 920px) {
  .bst-objection-pair {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .bst-block-person,
  .bst-block-person.is-image-right {
    grid-template-columns: 1fr;
  }

  .bst-block-person.is-image-right .bst-block-person-media {
    order: 0;
  }
}

/* ── Block-composer card grid: compact sizing ───────────────────────────── */
/* The player CSS uses clamp(18px,2.5vw,24px) padding and clamp(1.25rem,2vw,1.65rem)
   h3 font-size — designed for full-page hero sections. Scale these down so
   block-composer cards look like compact cards rather than A4 panels. */
.bst-block-card-grid .bst-evidence-card {
  padding: 12px 14px !important;
}
/* h3 must remain visually a heading (weight+size) — just smaller than the hero default.
   Use the same sans-serif body font as the rest of the card text instead of the
   default Georgia serif heading font. */
.bst-block-card-grid .bst-evidence-card h3 {
  font-family: inherit !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  margin-bottom: 4px !important;
}
/* Body text in cards: player CSS sets 1rem explicitly; reduce to match page body text.
   Also target the points container itself (and any bare <div> lines): the points
   editor leaves the first paragraph as an unwrapped text node, which would
   otherwise inherit the container's larger size and render bigger than the
   following <p> paragraphs. Sizing the container matches them all. */
.bst-block-card-grid .bst-evidence-card p,
.bst-block-card-grid .bst-evidence-points,
.bst-block-card-grid .bst-evidence-points div,
.bst-block-card-grid .bst-evidence-points li {
  font-size: 0.875rem !important;
  line-height: 1.55 !important;
}
/* The shared .bst-evidence-points rule elsewhere in course_interface.css sets
   padding-left:1.1rem for the legacy <ul><li> bullet-point rendering path, and
   a later rule for cards resets everything except that padding-left — so it
   leaks through even when points are rich text rendered as a plain <div>
   (no bullets), showing up as an unexplained left indent under the title.
   Zero it for the div variant only; the <ul> bullet fallback keeps its indent. */
.bst-block-card-grid div.bst-evidence-points {
  padding-left: 0 !important;
}
/* Preserve intentional headings inside points at heading sizes. */
.bst-block-card-grid .bst-evidence-points h2 { font-size: 1.02rem !important; }
.bst-block-card-grid .bst-evidence-points h3 { font-size: 0.95rem !important; }
.bst-block-card-grid .bst-evidence-card-num {
  width: 32px !important;
  height: 32px !important;
  font-size: 0.9rem !important;
}
.bst-block-card-grid .bst-evidence-card-icon {
  width: 36px !important;
  height: 36px !important;
}

/* ── Block-composer callouts: reduce body text to match page font size ──── */
/* The callout body inherits from the container; reduce explicitly */
.bst-block-callout {
  padding: .65rem .9rem !important;
}
.bst-block-callout-body p,
.bst-block-callout-body li {
  font-size: 0.875rem !important;
  line-height: 1.55 !important;
}

/* ── Card grid: optional quote field ────────────────────────────────────── */
.bst-evidence-quote { margin: .5rem 0 .6rem; padding: .5rem .85rem; font-size: .9rem; }

/* ── Callout: background colour overrides ───────────────────────────────── */
.bst-block-callout.bg-white { background: #fff !important; }
.bst-block-callout.bg-teal  { background: #e6f4f1 !important; }
.bst-block-callout.bg-sand  { background: #fef9ec !important; }
.bst-block-callout.bg-blue  { background: #edf3fb !important; }
.bst-block-callout.bg-slate { background: #f0f2f5 !important; }
.bst-block-callout.bg-rose  { background: #fde8ea !important; }

/* ── Hero + sidebar: plain hero background ──────────────────────────────── */
.bst-objection-hero.is-plain {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* ── Hero + sidebar: sidebar vertical alignment ───────────────────────────
   flex-start is now the default (see bst-course-player.css), so short
   sidebar text starts at the top instead of centering into the bg image.
   .align-top is kept as a no-op for any content saved with that value;
   .is-centered is the new explicit opt-in for vertical centering. ── */
.bst-objection-side.align-top { justify-content: flex-start !important; }
.bst-objection-side.is-centered { justify-content: center !important; }

/* ── Hero + sidebar: sidebar colour variants ────────────────────────────── */
.bst-objection-side.is-white { background: #fff !important; }
.bst-objection-side.is-teal  { background: #e6f4f1 !important; }
.bst-objection-side.is-sand  { background: #fef9ec !important; }
.bst-objection-side.is-blue  { background: #edf3fb !important; }
.bst-objection-side.is-slate { background: #f0f2f5 !important; }
.bst-objection-side.is-rose  { background: #fde8ea !important; }

/* Hero + sidebar: richer sidebar content */
.bst-block-hero-sidebar .bst-objection-side {
  position: relative;
  overflow: hidden;
  gap: 1rem;
}

.bst-block-hero-sidebar .bst-objection-side.has-bg-image::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 92%;
  height: 74%;
  background-image: var(--bst-sidebar-bg-image);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: contain;
  opacity: .32;
  pointer-events: none;
}

.bst-block-hero-sidebar .bst-objection-side > * {
  position: relative;
  z-index: 1;
}

.bst-herosb-item {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  width: 100%;
}

.bst-herosb-item + .bst-herosb-item {
  padding-top: .85rem;
  border-top: 1px solid rgba(58, 95, 114, .14);
}

.bst-herosb-icon {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(194, 138, 18, .18);
  color: #9d6b08;
}

.bst-block-hero-sidebar .bst-objection-side .bst-herosb-icon {
  color: #9d6b08;
}

.bst-herosb-icon svg {
  width: 24px;
  height: 24px;
  display: block;
}

.bst-herosb-item.is-teal .bst-herosb-icon { background: rgba(46, 125, 130, .16); color: #2e7d82; }
.bst-herosb-item.is-plum .bst-herosb-icon { background: rgba(107, 53, 184, .16); color: #6b35b8; }
.bst-herosb-item.is-gold .bst-herosb-icon { background: rgba(194, 138, 18, .18); color: #9d6b08; }
.bst-herosb-item.is-blue .bst-herosb-icon { background: rgba(63, 115, 184, .16); color: #3f73b8; }
.bst-herosb-item.is-green .bst-herosb-icon { background: rgba(45, 106, 79, .16); color: #2d6a4f; }
.bst-herosb-item.is-orange .bst-herosb-icon { background: rgba(214, 106, 32, .16); color: #b85515; }

.bst-herosb-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .2rem;
  color: #4c5368;
  line-height: 1.55;
}

.bst-herosb-copy img {
  width: 100%;
  border-radius: 6px;
  display: block;
  margin-bottom: .25rem;
}

.bst-herosb-copy strong {
  color: #23344f;
  font-weight: 800;
  line-height: 1.35;
}

.bst-block-hero-sidebar .bst-objection-side .bst-herosb-copy span {
  color: #4c5368;
  font-size: .95rem;
  line-height: 1.55;
}

.bst-herosb-text {
  color: #4c5368;
  font-size: .95rem;
  line-height: 1.55;
}

.bst-herosb-text p,
.bst-herosb-quote-text p {
  margin: 0 0 .55rem;
}

.bst-herosb-text p:last-child,
.bst-herosb-quote-text p:last-child {
  margin-bottom: 0;
}

.bst-herosb-text ul,
.bst-herosb-text ol,
.bst-herosb-quote-text ul,
.bst-herosb-quote-text ol {
  margin: .25rem 0 .55rem;
  padding-left: 1.2rem;
}

.bst-herosb-text strong,
.bst-herosb-text b,
.bst-herosb-quote-text strong,
.bst-herosb-quote-text b {
  color: #23344f;
  font-weight: 800;
}

.bst-herosb-text em,
.bst-herosb-text i,
.bst-herosb-quote-text em,
.bst-herosb-quote-text i {
  font-style: italic;
}

.bst-herosb-text a,
.bst-herosb-quote-text a {
  color: #9a4b35;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.bst-herosb-quote {
  width: 100%;
  margin: 0;
  padding: .2rem 0;
  border: 0;
  border-left: 0;
  color: #4c5368;
  font-size: 1.03rem;
  line-height: 1.75;
}

.bst-herosb-quote::before {
  content: open-quote;
  display: block;
  color: #c88a79;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 3rem;
  line-height: .8;
  opacity: .65;
}

.bst-herosb-quote p {
  margin: 0;
}

.bst-herosb-quote cite {
  display: block;
  margin-top: .45rem;
  color: #a46212;
  font-size: .82rem;
  font-style: normal;
  font-weight: 700;
}

.bst-herosb-divider {
  display: flex;
  align-items: center;
  gap: .85rem;
  width: 100%;
  color: #c88a79;
  margin: .25rem 0;
}

.bst-herosb-divider::before,
.bst-herosb-divider::after {
  content: "";
  flex: 1 1 0;
  border-top: 1px solid currentColor;
  opacity: .55;
}

.bst-herosb-divider span {
  flex: 0 0 auto;
  display: inline-flex;
}

.bst-herosb-divider svg {
  width: 22px;
  height: 22px;
  display: block;
}





/* Block composer font normalization: pasted rich text should not carry source fonts. */
.bst-blocks-preview,
.bst-blocks-preview *,
.bst-block-rich-text,
.bst-block-rich-text *,
.bst-block-callout,
.bst-block-callout *,
.bst-block-phil-argument,
.bst-block-phil-argument *,
.bst-block-person-card,
.bst-block-person-card *,
.bst-block-hero-sidebar,
.bst-block-hero-sidebar *,
.bst-block-two-panel,
.bst-block-two-panel * {
  font-family: 'Poppins', system-ui, sans-serif !important;
}

.bst-block-rich-text :where(p, li, span, strong, em, a),
.bst-block-callout-body :where(p, li, span, strong, em, a),
.bst-block-phil-argument-commentary :where(p, li, span, strong, em, a) {
  font-size: inherit !important;
}

/* ── Book recommendation block ──────────────────────────────────────────── */
.bst-block-book-rec {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  background: #faf8f5;
  border: 1px solid #e8e0d4;
  border-left: 4px solid #c07b2a;
  border-radius: 8px;
  padding: 1.25rem 1.25rem 1.25rem 1rem;
  margin: 1rem 0;
}
.bst-block-book-rec-cover {
  flex: 0 0 auto;
  width: 90px;
}
.bst-block-book-rec-cover img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
.bst-block-book-rec-body {
  flex: 1 1 0;
  min-width: 0;
}
.bst-block-book-rec-title {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 .2rem;
  color: #1e2a35;
  line-height: 1.3;
}
.bst-block-book-rec-author {
  font-size: .88rem;
  color: #6b5c3e;
  font-style: italic;
  margin: 0 0 .6rem;
}
.bst-block-book-rec-desc { margin-bottom: .25rem; }
.bst-block-book-rec-desc p {
  font-size: .9rem;
  color: #444;
  margin: 0;
  line-height: 1.6;
}
.bst-block-book-rec-desc p + p {
  margin-top: .65rem;
}
.bst-block-book-rec-link {
  display: inline-block;
  font-size: .85rem;
  font-weight: 600;
  color: #fff;
  background: #c07b2a;
  border-radius: 6px;
  padding: .45rem 1.1rem;
  margin-top: 1rem;
  text-decoration: none;
  transition: background .15s;
}
.bst-block-book-rec-link:hover { background: #a0641e; }
@media (max-width: 480px) {
  .bst-block-book-rec { flex-direction: column; }
  .bst-block-book-rec-cover { width: 70px; }
}

/* ── YouTube video block ────────────────────────────────────────────────── */
.bst-block-youtube { margin: 1rem 0; }
.bst-block-youtube-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1e2a35;
  margin: 0 0 .6rem;
}
.bst-block-youtube-wrap {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #000;
}
.bst-block-youtube-wrap iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border: 0;
}
.bst-block-youtube-desc {
  font-size: .88rem;
  color: #555;
  margin: .65rem 0 0;
  line-height: 1.5;
}

/* ── Passage reader (structured scripture reading block) ─────────────────── */
.bst-passage-reader {
  margin: 1rem 0;
  font-family: inherit;
}

.bst-pr-focus {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  background: #fdf6ec;
  border: 1px solid #f0dcb8;
  border-left: 4px solid #c2830f;
  border-radius: 8px;
  padding: .9rem 1.1rem;
  margin: 0 0 1.25rem;
}
.bst-pr-focus-icon { flex-shrink: 0; width: 22px; height: 22px; color: #b85515; }
.bst-pr-focus-icon svg { width: 100%; height: 100%; }
.bst-pr-focus-heading {
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #b85515;
  margin-bottom: .25rem;
}
.bst-pr-focus-text { margin: 0; font-size: .92rem; line-height: 1.55; color: #4a4238; }

.bst-pr-movements { display: flex; flex-direction: column; }

.bst-pr-movement {
  display: grid;
  grid-template-columns: 40px 1fr 230px;
  gap: .25rem 1.25rem;
  padding: 1.1rem 0;
  border-top: 1px solid #e8e4dc;
}
.bst-pr-movements .bst-pr-movement:first-child { border-top: none; padding-top: 0; }

.bst-pr-num {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: .88rem;
  background: #2e7d82;
}
.bst-pr-num.is-teal   { background: #2e7d82; }
.bst-pr-num.is-plum   { background: #6b35b8; }
.bst-pr-num.is-gold   { background: #9d6b08; }
.bst-pr-num.is-blue   { background: #3f73b8; }
.bst-pr-num.is-green  { background: #2d6a4f; }
.bst-pr-num.is-orange { background: #b85515; }

.bst-pr-main { min-width: 0; }

.bst-pr-label-row { display: flex; align-items: center; gap: .45rem; margin-bottom: .5rem; flex-wrap: wrap; }
.bst-pr-label-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
}
.bst-pr-label-icon svg { width: 16px; height: 16px; }
.bst-pr-label-icon.is-teal   svg { color: #2e7d82; }
.bst-pr-label-icon.is-plum   svg { color: #6b35b8; }
.bst-pr-label-icon.is-gold   svg { color: #9d6b08; }
.bst-pr-label-icon.is-blue   svg { color: #3f73b8; }
.bst-pr-label-icon.is-green  svg { color: #2d6a4f; }
.bst-pr-label-icon.is-orange svg { color: #b85515; }

.bst-pr-label {
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.bst-pr-label.is-teal   { color: #2e7d82; }
.bst-pr-label.is-plum   { color: #6b35b8; }
.bst-pr-label.is-gold   { color: #9d6b08; }
.bst-pr-label.is-blue   { color: #3f73b8; }
.bst-pr-label.is-green  { color: #2d6a4f; }
.bst-pr-label.is-orange { color: #b85515; }

.bst-pr-range { font-size: .78rem; color: #8a8377; }

.bst-pr-verses p { margin: 0 0 .5rem; font-size: .92rem; line-height: 1.6; color: #33302a; }
.bst-pr-verses p:last-child { margin-bottom: 0; }
.bst-pr-vnum {
  font-size: .74rem;
  font-weight: 700;
  color: #8a8377;
  margin-right: .3rem;
  vertical-align: text-top;
}

.bst-pr-hl-teal   { background: rgba(46,125,130,.20); border-radius: 3px; padding: 0 .15em; }
.bst-pr-hl-plum   { background: rgba(107,53,184,.16); border-radius: 3px; padding: 0 .15em; }
.bst-pr-hl-gold   { background: rgba(194,138,18,.24); border-radius: 3px; padding: 0 .15em; }
.bst-pr-hl-blue   { background: rgba(63,115,184,.20); border-radius: 3px; padding: 0 .15em; }
.bst-pr-hl-green  { background: rgba(45,106,79,.18);  border-radius: 3px; padding: 0 .15em; }
.bst-pr-hl-orange { background: rgba(184,85,21,.18);  border-radius: 3px; padding: 0 .15em; }

.bst-pr-observe {
  background: #f8f7f4;
  border: 1px solid #e8e4dc;
  border-radius: 8px;
  padding: .75rem .85rem;
  align-self: start;
}
.bst-pr-observe-heading {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #8a8377;
  margin-bottom: .5rem;
}
.bst-pr-note { display: flex; gap: .5rem; align-items: flex-start; margin-bottom: .55rem; }
.bst-pr-note-icon { flex-shrink: 0; width: 17px; height: 17px; color: #8a8377; margin-top: .1rem; }
.bst-pr-note-icon svg { width: 100%; height: 100%; }

.bst-pr-observe.is-teal   .bst-pr-observe-heading, .bst-pr-observe.is-teal   .bst-pr-note-icon { color: #2e7d82; }
.bst-pr-observe.is-plum   .bst-pr-observe-heading, .bst-pr-observe.is-plum   .bst-pr-note-icon { color: #6b35b8; }
.bst-pr-observe.is-gold   .bst-pr-observe-heading, .bst-pr-observe.is-gold   .bst-pr-note-icon { color: #9d6b08; }
.bst-pr-observe.is-blue   .bst-pr-observe-heading, .bst-pr-observe.is-blue   .bst-pr-note-icon { color: #3f73b8; }
.bst-pr-observe.is-green  .bst-pr-observe-heading, .bst-pr-observe.is-green  .bst-pr-note-icon { color: #2d6a4f; }
.bst-pr-observe.is-orange .bst-pr-observe-heading, .bst-pr-observe.is-orange .bst-pr-note-icon { color: #b85515; }
.bst-pr-note-text { font-size: .84rem; line-height: 1.5; color: #4a4238; }
.bst-pr-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.bst-pr-tag {
  display: inline-block;
  font-size: .72rem;
  font-weight: 600;
  padding: .18rem .55rem;
  border-radius: 999px;
  color: #fff;
  border: none;
  font-family: inherit;
  cursor: pointer;
  transition: filter .12s, transform .12s;
}
.bst-pr-tag:hover, .bst-pr-tag:focus-visible {
  filter: brightness(1.12);
  transform: translateY(-1px);
}
.bst-pr-tag:focus-visible {
  outline: 2px solid rgba(0,0,0,.35);
  outline-offset: 2px;
}
.bst-pr-tag.is-teal   { background: #2e7d82; }
.bst-pr-tag.is-plum   { background: #6b35b8; }
.bst-pr-tag.is-gold   { background: #9d6b08; }
.bst-pr-tag.is-blue   { background: #3f73b8; }
.bst-pr-tag.is-green  { background: #2d6a4f; }
.bst-pr-tag.is-orange { background: #b85515; }

.bst-pr-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1rem;
  padding-top: .85rem;
  border-top: 1px solid #e8e4dc;
  font-size: .78rem;
  color: #4a4238;
}
.bst-pr-legend-item { display: inline-flex; align-items: center; gap: .4rem; }
.bst-pr-legend-swatch { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
.bst-pr-legend-swatch.is-teal   { background: #2e7d82; }
.bst-pr-legend-swatch.is-plum   { background: #6b35b8; }
.bst-pr-legend-swatch.is-gold   { background: #9d6b08; }
.bst-pr-legend-swatch.is-blue   { background: #3f73b8; }
.bst-pr-legend-swatch.is-green  { background: #2d6a4f; }
.bst-pr-legend-swatch.is-orange { background: #b85515; }

@media (max-width: 720px) {
  .bst-pr-movement { grid-template-columns: 1fr; gap: .5rem; }
  .bst-pr-num { grid-row: 1; }
  .bst-pr-observe { margin-top: .25rem; }
}

/* Interpretive debate comparison block. The detailed comparison layout reuses
   the debate sheet styles from bst-course-player.css; this wrapper keeps the
   block spacing isolated from other composer blocks. */
.bst-block-interpretive-debate {
  margin: 1rem 0;
}
.bst-block-interpretive-debate .bst-debate-question {
  margin-top: 0;
}
.bst-block-interpretive-debate .bst-debate-common {
  margin-bottom: 0;
}

/* ── Full-width supporting-evidence row ─────────────────────────────────── */
.bst-block-evidence-row {
  display: grid;
  grid-template-columns: minmax(220px, 30%) minmax(0, 1fr);
  gap: clamp(1.25rem, 3vw, 2.4rem);
  align-items: start;
  width: 100%;
  box-sizing: border-box;
  margin: 1rem 0;
  padding: clamp(1rem, 2.5vw, 1.6rem);
  border: 1px solid rgba(31, 48, 72, .14);
  border-radius: 10px;
  background: linear-gradient(135deg, #fffdf8, #fff);
  box-shadow: 0 8px 24px rgba(31, 48, 72, .07);
}
.bst-block-evidence-row.is-right .bst-evidence-row-panel { order: 2; }
.bst-block-evidence-row.is-right .bst-evidence-row-body { order: 1; }
.bst-block-evidence-row.is-right { grid-template-columns: minmax(0, 1fr) minmax(220px, 30%); }
.bst-evidence-row-panel { min-width: 0; }
.bst-evidence-row-heading { display: flex; align-items: center; gap: .75rem; margin-bottom: .85rem; }
.bst-evidence-row-number {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.5rem; height: 2.5rem; flex: 0 0 2.5rem;
  border-radius: 50%; background: #1f3b61; color: #fff;
  font-size: 1.15rem; font-weight: 800; line-height: 1;
}
.bst-evidence-row-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 3rem; height: 3rem; flex: 0 0 3rem;
  border: 2px solid #2f6690; border-radius: 50%; color: #2f6690;
  background: #f4f8fb;
}
.bst-block-evidence-row.is-icon-navy .bst-evidence-row-icon { border-color:#1f3b61; color:#1f3b61; background:#eef2f8; }
.bst-block-evidence-row.is-icon-blue .bst-evidence-row-icon { border-color:#2f6690; color:#2f6690; background:#f4f8fb; }
.bst-block-evidence-row.is-icon-teal .bst-evidence-row-icon { border-color:#2e7d82; color:#2e7d82; background:#edf7f7; }
.bst-block-evidence-row.is-icon-green .bst-evidence-row-icon { border-color:#2d6a4f; color:#2d6a4f; background:#edf7f1; }
.bst-block-evidence-row.is-icon-purple .bst-evidence-row-icon { border-color:#6b35b8; color:#6b35b8; background:#f2ebfb; }
.bst-block-evidence-row.is-icon-gold .bst-evidence-row-icon { border-color:#c28a12; color:#9d6b08; background:#fbf3df; }
.bst-block-evidence-row.is-icon-orange .bst-evidence-row-icon { border-color:#d66a20; color:#b85515; background:#fff0e5; }
.bst-block-evidence-row.is-icon-red .bst-evidence-row-icon { border-color:#a64040; color:#a64040; background:#fbecec; }
.bst-block-evidence-row.is-icon-slate .bst-evidence-row-icon { border-color:#5f6b7a; color:#5f6b7a; background:#f0f2f5; }
.bst-evidence-row-icon .bst-inline-svg { width: 1.7rem; height: 1.7rem; }
.bst-evidence-row-title { margin: 0 0 .85rem; color: #142a4a; font-size: clamp(1.05rem, 2vw, 1.35rem); line-height: 1.25; }
.bst-evidence-row-callout {
  padding: .7rem .85rem; border-left: 3px solid #c28a12; border-radius: 0 6px 6px 0;
  background: #fbf3df; color: #26344a; font-weight: 700; line-height: 1.45;
}
.bst-block-evidence-row.is-callout-navy .bst-evidence-row-callout { border-left-color:#1f3b61; background:#eef2f8; color:#263b59; }
.bst-block-evidence-row.is-callout-blue .bst-evidence-row-callout { border-left-color:#2f6690; background:#edf4fc; color:#213a55; }
.bst-block-evidence-row.is-callout-teal .bst-evidence-row-callout { border-left-color:#2e7d82; background:#edf7f7; color:#234c4e; }
.bst-block-evidence-row.is-callout-green .bst-evidence-row-callout { border-left-color:#2d6a4f; background:#edf7f1; color:#234b3a; }
.bst-block-evidence-row.is-callout-purple .bst-evidence-row-callout { border-left-color:#6b35b8; background:#f2ebfb; color:#49316a; }
.bst-block-evidence-row.is-callout-gold .bst-evidence-row-callout { border-left-color:#c28a12; background:#fbf3df; color:#5a4512; }
.bst-block-evidence-row.is-callout-orange .bst-evidence-row-callout { border-left-color:#d66a20; background:#fff0e5; color:#703718; }
.bst-block-evidence-row.is-callout-red .bst-evidence-row-callout { border-left-color:#a64040; background:#fbecec; color:#663333; }
.bst-block-evidence-row.is-callout-slate .bst-evidence-row-callout { border-left-color:#5f6b7a; background:#f0f2f5; color:#3f4b59; }
.bst-evidence-row-body { min-width: 0; color: #23344f; }
.bst-evidence-row-body > :first-child { margin-top: 0; }
.bst-evidence-row-body > :last-child { margin-bottom: 0; }
.bst-evidence-row-body p, .bst-evidence-row-body li { line-height: 1.65; }
@media (max-width: 760px) {
  .bst-block-evidence-row,
  .bst-block-evidence-row.is-right { grid-template-columns: 1fr; }
  .bst-block-evidence-row.is-right .bst-evidence-row-panel,
  .bst-block-evidence-row.is-right .bst-evidence-row-body { order: initial; }
}
