/* =================================================================
 * BlueIron IP — Steel theme.css
 *
 * Component-level rules. theme.json carries the palette and type stack;
 * this file carries the things WordPress can't express in theme.json:
 * source-quote chrome, sticky outlines, marketing-grid layouts,
 * eyebrow rules, and the "no full-bleed color surfaces" discipline.
 *
 * Section order tracks DESIGN_SYSTEM.md:
 *   1. Tokens
 *   2. Reset + base
 *   3. Layout containers
 *   4. Template-part chrome (util bar, header, footer)
 *   5. Marketing components (hero, pillars, three readings, …)
 *   6. Reference components (statute box, rule article, outline)
 *   7. Blog components (drop cap, pull-quote, aside-box, author-block)
 *   8. Utilities
 *   9. Responsive overrides
 * ================================================================= */

/* ---- 1. Tokens (mirror theme.json into CSS vars for older browsers) */
:root {
	--paper:      #FBFBFA;
	--paper-deep: #EFEFEC;
	--paper-hi:   #E3E3DE;
	--ink:        #0D1A1E;
	--ink-soft:   #2E3F44;
	--muted:      #6E7B82;
	--hair:       rgba(13, 26, 30, 0.12);
	--hair-soft:  rgba(13, 26, 30, 0.06);
	--steel:      #1E3A8A;
	--steel-deep: #0F1F4D;
	--steel-tint: #ECEEF4;
	--steel-light:#93B4FC;

	--source-bg:     #F0F3F8;
	--source-border: rgba(15, 31, 77, 0.16);

	--sans:   'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--mono:   'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	--serif:  'Source Serif 4', Georgia, 'Times New Roman', serif;

	--wrap:        1280px;
	--wrap-hero:   1180px;
	--wrap-closing:1100px;
	--wrap-article: 760px;
	--wrap-ref:    1080px;
}

/* ---- 2. Reset + base --------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

/* ---- 3. Layout containers ---------------------------------------- */
.bi-wrap         { max-width: var(--wrap);        margin: 0 auto; padding: 0 56px; }
.bi-wrap-hero    { max-width: var(--wrap-hero);   margin: 0 auto; padding: 0 56px; }
.bi-wrap-closing { max-width: var(--wrap-closing);margin: 0 auto; padding: 0 56px; }
.bi-wrap-article { max-width: var(--wrap-article);margin: 0 auto; padding: 0 32px; }
.bi-wrap-ref     { max-width: var(--wrap-ref);    margin: 0 auto; padding: 0 32px; }

.bi-section { padding: 104px 0; border-bottom: 1px solid var(--hair); }
.bi-section--ink     { background: var(--ink); color: var(--paper); border-bottom: none; }
.bi-section--deep    { background: var(--paper-deep); }
.bi-section--no-rule { border-bottom: none; }
.bi-section--tight   { padding: 88px 0; }

/* Section eyebrow — 2px steel rule + IBM Plex Mono UPPERCASE label */
.bi-eyebrow {
	display: flex; align-items: center; gap: 12px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.16em; text-transform: uppercase; font-weight: 600;
	color: var(--steel);
	margin-bottom: 22px;
}
.bi-eyebrow::before {
	content: ''; width: 28px; height: 2px; background: var(--steel); display: inline-block;
}
.bi-eyebrow--on-dark { color: var(--steel-light); }
.bi-eyebrow--on-dark::before { background: var(--steel-light); }
.bi-eyebrow--centered { justify-content: center; }

/* Section H2 */
.bi-h2 {
	font-family: var(--sans);
	font-weight: 700; font-size: 56px;
	letter-spacing: -0.028em; line-height: 1.02;
	margin: 0 0 18px; color: var(--ink);
}
.bi-h2 .accent { color: var(--steel); }
.bi-h2--on-dark { color: var(--paper); }
.bi-h2--on-dark .accent { color: var(--steel-light); }
.bi-h2-sub {
	font-family: var(--sans); font-size: 20px;
	color: var(--ink-soft); margin: 0 0 56px; max-width: 820px;
	line-height: 1.5; font-weight: 400;
}
.bi-h2-sub--on-dark { color: rgba(255, 255, 255, 0.78); }

/* ---- 4. Util bar / header / footer ------------------------------- */
.bi-util {
	background: var(--paper-deep); color: var(--ink-soft);
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	text-transform: uppercase; font-weight: 500;
	padding: 9px 56px;
	display: flex; justify-content: space-between; gap: 24px;
	border-bottom: 1px solid var(--hair);
}
.bi-util .right { color: var(--steel-deep); font-weight: 600; }

.bi-header {
	padding: 22px 56px; background: var(--paper);
	border-bottom: 1px solid var(--hair);
	display: flex; justify-content: space-between; align-items: center;
	position: sticky; top: 0; z-index: 50;
}
.bi-header .brand {
	display: flex; align-items: center; gap: 12px; color: var(--ink);
	font-weight: 600; font-size: 18px; letter-spacing: -0.012em;
}
.bi-header .brand .dot { width: 12px; height: 12px; background: var(--steel); border-radius: 50%; flex-shrink: 0; }
.bi-header nav { display: flex; gap: 32px; align-items: center; font-size: 14px; color: var(--ink-soft); font-weight: 500; }
.bi-header nav > a { color: var(--ink-soft); }
.bi-header nav > a:hover { color: var(--steel); }
.bi-header nav .here { color: var(--steel); font-weight: 600; }
.bi-header .cta {
	font-size: 13px; font-weight: 600; padding: 11px 20px;
	background: var(--steel); color: var(--paper); border-radius: 4px;
}
.bi-header .cta:hover { background: var(--steel-deep); }

/* Dropdown — pure CSS, opens on hover or keyboard focus */
.bi-header .bi-menu { position: relative; }
.bi-header .bi-menu > a { color: var(--ink-soft); cursor: default; }
.bi-header .bi-menu > a:hover { color: var(--steel); }
.bi-header .bi-menu-caret { font-size: 9px; color: var(--muted); margin-left: 2px; }
.bi-header .bi-submenu {
	position: absolute; top: 100%; left: -16px;
	background: var(--paper); border: 1px solid var(--hair);
	padding: 10px 0; min-width: 240px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	z-index: 60;
	opacity: 0; visibility: hidden;
	transform: translateY(-4px);
	transition: opacity 0.12s ease, transform 0.12s ease, visibility 0s linear 0.12s;
}
.bi-header .bi-menu:hover .bi-submenu,
.bi-header .bi-menu:focus-within .bi-submenu {
	opacity: 1; visibility: visible; transform: translateY(0);
	transition: opacity 0.12s ease, transform 0.12s ease, visibility 0s linear 0s;
}
.bi-header .bi-submenu a {
	display: block; padding: 9px 18px;
	font-size: 13px; font-weight: 500; color: var(--ink-soft);
}
.bi-header .bi-submenu a:hover,
.bi-header .bi-submenu a:focus { background: var(--steel-tint); color: var(--steel-deep); outline: none; }
.bi-header .bi-submenu a.here { color: var(--steel); }

.bi-footer {
	background: var(--ink); color: rgba(255, 255, 255, 0.65);
	padding: 48px 56px 36px; font-size: 13px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.bi-footer .row {
	max-width: var(--wrap); margin: 0 auto;
	display: flex; justify-content: space-between; align-items: flex-start; gap: 48px;
}
.bi-footer .brand { display: flex; align-items: center; gap: 12px; }
.bi-footer .brand .dot { width: 12px; height: 12px; background: var(--steel); border-radius: 50%; flex-shrink: 0; }
.bi-footer .brand .word {
	font-family: var(--sans); font-size: 18px; font-weight: 600;
	letter-spacing: -0.012em; color: var(--paper);
}
.bi-footer .address {
	margin-top: 16px; font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.12em; line-height: 1.7; text-transform: uppercase; font-weight: 500;
}
.bi-footer .cols { display: flex; gap: 64px; }
.bi-footer .cols h6 {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
	color: var(--steel); text-transform: uppercase; font-weight: 600;
	margin: 0 0 14px;
}
.bi-footer .cols a { display: block; margin-bottom: 8px; font-family: var(--sans); color: rgba(255, 255, 255, 0.75); font-weight: 400; }
.bi-footer .cols a:hover { color: var(--paper); }
.bi-footer .bottom {
	max-width: var(--wrap); margin: 40px auto 0; padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	display: flex; justify-content: space-between;
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em;
	text-transform: uppercase; font-weight: 500;
}

/* ---- 5. Marketing components ------------------------------------- */

/* Hero — split */
.bi-hero {
	padding: 120px 56px 110px; border-bottom: 1px solid var(--hair);
}
.bi-hero .inner {
	max-width: var(--wrap); margin: 0 auto;
	display: grid; grid-template-columns: 1.7fr 1fr; gap: 80px; align-items: end;
}
.bi-hero .eyebrow {
	display: flex; align-items: center; gap: 14px;
	font-family: var(--mono); font-size: 12px; color: var(--steel);
	font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
	margin-bottom: 28px;
}
.bi-hero .eyebrow::before { content: ''; width: 36px; height: 2px; background: var(--steel); display: inline-block; }
.bi-hero h1 {
	font-family: var(--sans); font-weight: 700; font-size: 96px;
	letter-spacing: -0.042em; line-height: 0.96; margin: 0;
	color: var(--ink); max-width: 1100px;
}
.bi-hero h1 .accent { color: var(--steel); }
.bi-hero .lede { font-size: 22px; line-height: 1.45; color: var(--ink-soft); margin: 32px 0 0; max-width: 780px; font-weight: 400; }
.bi-hero .ctas { margin-top: 44px; display: flex; gap: 12px; }
.bi-hero .ctas a { font-size: 14px; font-weight: 600; padding: 14px 24px; border-radius: 4px; }
.bi-hero .ctas .primary { background: var(--steel); color: var(--paper); }
.bi-hero .ctas .ghost   { color: var(--ink); border: 1px solid var(--hair); }
.bi-hero .meta {
	margin-top: 64px; padding-top: 22px; border-top: 1px solid var(--hair);
	display: flex; gap: 28px; flex-wrap: wrap;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--muted); text-transform: uppercase; font-weight: 500;
}
.bi-hero .glance { background: var(--paper-deep); padding: 32px; border-radius: 8px; }
.bi-hero .glance .label {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--steel-deep); font-weight: 600; text-transform: uppercase;
	margin-bottom: 22px;
}
.bi-hero .glance .row { padding: 14px 0; border-bottom: 1px solid rgba(15, 31, 77, 0.18); }
.bi-hero .glance .row:last-child { border-bottom: none; }
.bi-hero .glance .row .k {
	font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--steel-deep); font-weight: 600; margin-bottom: 4px; opacity: 0.75;
}
.bi-hero .glance .row .v { font-size: 19px; color: var(--ink); font-weight: 600; letter-spacing: -0.01em; }

/* Four questions */
.bi-four-q { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.bi-four-q article {
	background: var(--paper); border: 1px solid var(--hair);
	border-top: 3px solid var(--steel); border-radius: 8px;
	padding: 32px 30px; display: flex; flex-direction: column;
}
.bi-four-q .head { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.bi-four-q .badge {
	width: 32px; height: 32px; border-radius: 50%;
	background: var(--steel-tint); color: var(--steel-deep);
	font-family: var(--mono); font-size: 12px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
}
.bi-four-q h3 { font-family: var(--sans); font-size: 22px; font-weight: 600; letter-spacing: -0.014em; line-height: 1.2; margin: 0; }
.bi-four-q p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--ink-soft); }
.bi-four-q + .tail { font-size: 18px; line-height: 1.6; margin: 40px 0 0; max-width: 940px; color: var(--ink-soft); }

/* Stats band — full-bleed ink slab */
.bi-stats-band { background: var(--ink); color: var(--paper); padding: 72px 56px; }
.bi-stats-band .inner { max-width: var(--wrap); margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
.bi-stats-band .stat { border-top: 2px solid rgba(255, 255, 255, 0.4); padding-top: 22px; }
.bi-stats-band .stat .kicker {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	color: rgba(255, 255, 255, 0.8); margin-bottom: 16px; font-weight: 600;
}
.bi-stats-band .stat .num {
	font-family: var(--sans); font-size: 68px; font-weight: 700;
	letter-spacing: -0.038em; line-height: 0.95; color: var(--paper);
}
.bi-stats-band .stat .label { font-family: var(--sans); font-size: 14px; color: rgba(255, 255, 255, 0.92); margin-top: 16px; line-height: 1.45; font-weight: 400; }

/* Pillar pair */
.bi-pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bi-pillar  { background: var(--paper); border: 1px solid var(--hair); border-radius: 8px; padding: 36px 32px; display: flex; flex-direction: column; }
.bi-pillar--steel      { border-top: 3px solid var(--steel); }
.bi-pillar--steel-deep { border-top: 3px solid var(--steel-deep); }
.bi-pillar .head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 24px; gap: 16px; }
.bi-pillar .head .badge-row { display: flex; align-items: center; gap: 10px; }
.bi-pillar .badge {
	padding: 5px 11px; border-radius: 4px;
	font-family: var(--mono); font-size: 10px; font-weight: 700;
	letter-spacing: 0.14em; text-transform: uppercase;
}
.bi-pillar--steel      .badge { background: var(--steel-tint); color: var(--steel-deep); }
.bi-pillar--steel-deep .badge { background: var(--steel-deep); color: var(--paper); }
.bi-pillar .kicker {
	font-family: var(--mono); font-size: 10px; font-weight: 600;
	letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted);
}
.bi-pillar--steel-deep .head .kicker { color: var(--steel-deep); opacity: 0.85; }
.bi-pillar .numeral { font-family: var(--sans); font-size: 84px; font-weight: 700; line-height: 0.9; letter-spacing: -0.04em; margin-bottom: 22px; }
.bi-pillar--steel      .numeral { color: var(--steel); }
.bi-pillar--steel-deep .numeral { color: var(--steel-deep); }
.bi-pillar h3 { font-family: var(--sans); font-size: 36px; font-weight: 700; margin: 0 0 20px; lline-height: 1.05; color: var(--ink); letter-spacing: -0.024em; }
.bi-pillar p { font-size: 16px; line-height: 1.65; margin: 0 0 14px; color: var(--ink-soft); }
.bi-pillar p:last-of-type { margin-bottom: 0; }
.bi-pillar .summary {
	margin-top: 24px; padding-top: 18px;
	border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 12px; line-height: 1.6;
	color: var(--muted); font-weight: 500; letter-spacing: 0.02em;
}
.bi-pillar--steel-deep .summary { color: var(--steel-deep); opacity: 0.85; border-top-color: rgba(15, 31, 77, 0.18); }
.bi-pillar .cta {
	margin-top: 26px; align-self: flex-start;
	color: var(--paper); padding: 12px 18px; border-radius: 4px;
	font-size: 13px; font-weight: 600;
}
.bi-pillar--steel      .cta { background: var(--steel); }
.bi-pillar--steel-deep .cta { background: var(--steel-deep); }
.bi-pillar-tail { font-size: 17px; line-height: 1.65; margin: 40px 0 0; max-width: 1000px; color: var(--ink-soft); font-weight: 400; }

/* Three readings */
.bi-readings { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 56px; }
.bi-readings article {
	background: var(--paper); border: 1px solid var(--hair);
	border-top: 3px solid var(--steel); border-radius: 8px;
	padding: 30px 28px 28px; display: flex; flex-direction: column;
}
.bi-readings .head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; }
.bi-readings .role {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--steel); font-weight: 600; text-transform: uppercase;
}
.bi-readings .tag {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
	color: var(--muted); font-weight: 600; text-transform: uppercase;
}
.bi-readings .numeral { font-family: var(--sans); font-size: 72px; font-weight: 700; color: var(--steel); line-height: 0.9; letter-spacing: -0.04em; margin-bottom: 20px; }
.bi-readings p { margin: 0 0 18px; font-size: 15.5px; line-height: 1.65; color: var(--ink-soft); }
.bi-readings .gives {
	margin-top: auto; padding-top: 18px; border-top: 1px solid var(--hair);
	font-family: var(--sans); font-size: 14.5px; line-height: 1.5;
	color: var(--steel-deep); font-weight: 500; font-style: italic;
}

.bi-readings-arg {
	display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start;
	padding-top: 56px; border-top: 1px solid var(--hair);
}
.bi-readings-arg h3 {
	font-family: var(--sans); font-size: 36px; font-weight: 700;
	margin: 0; line-height: 1.08; letter-spacing: -0.024em; color: var(--ink);
}
.bi-readings-arg .body { font-size: 17px; line-height: 1.7; color: var(--ink-soft); }
.bi-readings-arg .body p { margin: 0 0 18px; }
.bi-readings-arg .body p:last-child { margin-bottom: 0; }

.bi-compare { margin-top: 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bi-compare .col { border-radius: 8px; padding: 30px 32px; }
.bi-compare .col--neg { background: var(--paper); border: 1px solid var(--hair); }
.bi-compare .col--pos { background: var(--steel-tint); border: 1px solid rgba(15, 31, 77, 0.18); }
.bi-compare .kicker {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	font-weight: 600; text-transform: uppercase; margin-bottom: 16px;
}
.bi-compare .col--neg .kicker { color: var(--muted); }
.bi-compare .col--pos .kicker { color: var(--steel-deep); }
.bi-compare ul { margin: 0; padding: 0; list-style: none; }
.bi-compare li {
	display: grid; grid-template-columns: 24px 1fr; gap: 10px;
	padding: 12px 0; font-size: 15.5px; line-height: 1.6;
	border-bottom: 1px solid var(--hair);
}
.bi-compare .col--pos li { color: var(--ink); border-color: rgba(15, 31, 77, 0.18); font-weight: 500; }
.bi-compare .col--neg li { color: var(--ink-soft); }
.bi-compare li:last-child { border-bottom: none; }
.bi-compare li .sym { font-family: var(--mono); font-weight: 700; }
.bi-compare .col--pos li .sym { color: var(--steel-deep); }
.bi-compare .col--neg li .sym { color: var(--muted); }

/* Thesis slab */
.bi-thesis { background: var(--ink); color: var(--paper); padding: 120px 56px; }
.bi-thesis .inner { max-width: var(--wrap-closing); margin: 0 auto; }
.bi-thesis .eyebrow {
	font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em;
	color: rgba(255, 255, 255, 0.85); font-weight: 600;
	text-transform: uppercase; text-align: center; margin-bottom: 32px;
}
.bi-thesis h2 {
	font-family: var(--sans); font-size: 88px; line-height: 0.98;
	letter-spacing: -0.034em; font-weight: 700; margin: 0; text-align: center;
	color: var(--paper);
}
.bi-thesis h2 em {
	color: rgba(255, 255, 255, 0.38); font-style: italic; font-weight: 400;
}
.bi-thesis .dek {
	font-family: var(--sans); font-size: 22px; line-height: 1.45;
	color: rgba(255, 255, 255, 0.92); margin: 32px auto 0;
	max-width: 820px; text-align: center; font-weight: 400;
}
.bi-thesis .cards { margin-top: 72px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bi-thesis .card {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.10);
	padding: 32px; border-radius: 8px; color: var(--paper);
}
.bi-thesis .card .eyebrow {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
	color: var(--steel-light); margin-bottom: 16px; text-transform: uppercase;
	font-weight: 600; text-align: left;
}
.bi-thesis .card p { margin: 0 0 14px; color: rgba(255, 255, 255, 0.86); font-size: 16px; line-height: 1.65; }
.bi-thesis .card p:last-child { margin-bottom: 0; }
.bi-thesis .card .punch { font-weight: 600; color: var(--paper); font-size: 16px; line-height: 1.5; }

/* Outcomes list */
.bi-outcomes { }
.bi-outcomes .row {
	display: grid; grid-template-columns: 60px 1.1fr 1.8fr; gap: 32px;
	padding: 30px 0; align-items: baseline;
	border-top: 1px solid var(--hair);
}
.bi-outcomes .row:last-child { border-bottom: 1px solid var(--hair); }
.bi-outcomes .num { font-family: var(--sans); font-size: 44px; font-weight: 700; color: var(--steel); line-height: 0.95; letter-spacing: -0.028em; }
.bi-outcomes h3 { font-family: var(--sans); font-size: 22px; font-weight: 600; letter-spacing: -0.014em; line-height: 1.22; color: var(--ink); margin: 0; }
.bi-outcomes p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--ink-soft); }

/* Principal block */
.bi-principal { background: var(--ink); color: var(--paper); padding: 104px 56px; }
.bi-principal .inner { max-width: var(--wrap); margin: 0 auto; }
.bi-principal .layout {
	display: grid; grid-template-columns: 360px 1fr; gap: 64px;
	align-items: start; max-width: var(--wrap-hero);
}
.bi-principal .photo {
	aspect-ratio: 4/5; overflow: hidden; border-radius: 8px;
	background: var(--paper-deep); border: 1px solid rgba(255, 255, 255, 0.08);
}
.bi-principal .photo img { width: 100%; height: 100%; object-fit: cover; display: block; filter: contrast(1.02); }
.bi-principal .byline {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	color: var(--steel-light); font-weight: 600; text-transform: uppercase;
	margin: 0 0 16px;
}
.bi-principal h3 {
	font-family: var(--sans); font-size: 44px; font-weight: 700;
	margin: 0 0 28px; line-height: 1.02; color: var(--paper); letter-spacing: -0.028em;
}
.bi-principal h3 .accent { color: var(--steel-light); }
.bi-principal p { font-size: 17px; line-height: 1.7; margin: 0 0 16px; color: rgba(255, 255, 255, 0.82); }
.bi-principal p:last-of-type { margin-bottom: 0; }
.bi-principal em { color: var(--paper); font-style: italic; }
.bi-principal .ctas { margin-top: 36px; display: flex; gap: 12px; flex-wrap: wrap; }
.bi-principal .ctas a { padding: 14px 22px; border-radius: 4px; font-size: 13px; font-weight: 600; }
.bi-principal .ctas .primary { background: var(--steel); color: var(--paper); }
.bi-principal .ctas .ghost   { background: transparent; color: var(--paper); border: 1px solid rgba(255, 255, 255, 0.28); }

/* Journal cards */
.bi-journal-head {
	display: flex; justify-content: space-between; align-items: end; gap: 32px;
	margin-bottom: 48px;
}
.bi-journal-head .view-all {
	background: var(--paper); color: var(--ink); padding: 12px 18px;
	border-radius: 4px; font-size: 13px; font-weight: 600;
	border: 1px solid var(--hair); white-space: nowrap;
}
.bi-journal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.bi-journal-card {
	background: var(--paper); border: 1px solid var(--hair);
	border-radius: 8px; padding: 30px 28px 26px;
	display: flex; flex-direction: column; min-height: 320px;
}
.bi-journal-card .meta {
	display: flex; justify-content: space-between;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--steel); margin-bottom: 22px; font-weight: 600;
	text-transform: uppercase;
}
.bi-journal-card .meta .time { color: var(--muted); }
.bi-journal-card h3 {
	font-family: var(--sans); font-size: 22px; line-height: 1.2;
	letter-spacing: -0.014em; font-weight: 600; margin: 0 0 16px; color: var(--ink);
}
.bi-journal-card p { font-size: 15px; line-height: 1.65; color: var(--ink-soft); margin: 0; flex: 1; }
.bi-journal-card .read {
	margin-top: 22px; padding-top: 16px;
	border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--steel); font-weight: 600; text-transform: uppercase;
}

/* Book band */
.bi-book-band { background: var(--paper-deep); padding: 120px 56px; border-bottom: 1px solid var(--hair); }
.bi-book-band .inner {
	max-width: 1200px; margin: 0 auto;
	display: grid; grid-template-columns: 0.7fr 1.2fr; gap: 80px; align-items: center;
}
.bi-book-band .cover {
	aspect-ratio: 2/3; border-radius: 4px; overflow: hidden;
	background: #fff;
	box-shadow: 0 24px 48px rgba(13, 26, 30, 0.18), 0 2px 6px rgba(13, 26, 30, 0.10);
}
.bi-book-band .cover img { width: 100%; height: 100%; object-fit: cover; }
.bi-book-band .eyebrow {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	color: var(--steel); font-weight: 600; text-transform: uppercase;
	margin-bottom: 16px;
}
.bi-book-band h2 {
	font-family: var(--sans); font-size: 56px; font-weight: 700;
	margin: 0 0 24px; line-height: 1.02; letter-spacing: -0.03em; color: var(--ink);
}
.bi-book-band h2 .accent { color: var(--steel); }
.bi-book-band .lede { font-size: 18px; line-height: 1.6; color: var(--ink-soft); max-width: 580px; margin: 0; }
.bi-book-band .ctas { margin-top: 36px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.bi-book-band .ctas a { padding: 14px 22px; border-radius: 4px; font-size: 13px; font-weight: 600; }
.bi-book-band .ctas .primary { background: var(--ink); color: var(--paper); }
.bi-book-band .ctas .ghost   { background: var(--steel); color: var(--paper); }
.bi-book-band .meta {
	margin-top: 16px; font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.14em; color: var(--muted);
	text-transform: uppercase; font-weight: 500;
}

/* Library cards */
.bi-library-head {
	display: flex; justify-content: space-between; align-items: end;
	margin-bottom: 36px; gap: 24px;
}
.bi-library-head .view-all {
	background: var(--paper); color: var(--ink); padding: 10px 16px;
	border-radius: 4px; font-size: 13px; font-weight: 600; border: 1px solid var(--hair);
}
.bi-library-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.bi-library-card {
	background: var(--paper); border: 1px solid var(--hair);
	border-radius: 8px; padding: 28px 28px 24px;
	display: flex; flex-direction: column;
}
.bi-library-card .kicker {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	color: var(--steel); font-weight: 600; margin-bottom: 14px; text-transform: uppercase;
}
.bi-library-card h3 {
	font-family: var(--sans); font-size: 24px; font-weight: 600;
	margin: 0 0 12px; line-height: 1.15; color: var(--ink); letter-spacing: -0.014em;
}
.bi-library-card p { font-size: 15px; line-height: 1.6; margin: 0; color: var(--ink-soft); flex: 1; }
.bi-library-card .open {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--steel); font-weight: 600;
	margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--hair);
	text-transform: uppercase;
}

/* Closing CTA */
.bi-closing { background: var(--ink); color: var(--paper); padding: 120px 56px; }
.bi-closing .inner { max-width: var(--wrap-closing); margin: 0 auto; }
.bi-closing .eyebrow {
	font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em;
	color: var(--steel-light); font-weight: 600; margin-bottom: 28px;
	text-transform: uppercase;
}
.bi-closing h2 {
	font-family: var(--sans); font-size: 72px; font-weight: 700;
	margin: 0 0 36px; line-height: 1.02; letter-spacing: -0.032em;
	max-width: 1100px; color: var(--paper);
}
.bi-closing h2 .accent { color: var(--steel-light); }
.bi-closing .dek { font-size: 19px; line-height: 1.55; margin: 0 0 40px; color: rgba(255, 255, 255, 0.7); max-width: 760px; font-weight: 400; }
.bi-closing .cta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 760px; }
.bi-closing .cta-grid a {
	padding: 22px 28px; display: flex; gap: 32px;
	align-items: center; justify-content: space-between;
	border-radius: 6px; color: var(--paper);
}
.bi-closing .cta-grid .primary { background: var(--steel); }
.bi-closing .cta-grid .ghost   { background: transparent; border: 1px solid rgba(255, 255, 255, 0.28); }
.bi-closing .cta-grid .lbl {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em;
	text-transform: uppercase; font-weight: 600; margin-bottom: 6px;
	color: rgba(255, 255, 255, 0.85);
}
.bi-closing .cta-grid .ghost .lbl { color: var(--steel-light); }
.bi-closing .cta-grid .val { font-family: var(--sans); font-size: 18px; font-weight: 600; }
.bi-closing .cta-grid .arrow { font-size: 22px; font-weight: 600; }
.bi-closing .cta-grid .ghost .arrow { color: var(--steel-light); }

/* ---- 5b. Sub-page components (CIPO / Lending / About) ------------ */

/* Hero — stats variant (Lending) */
.bi-hero-stats { padding: 80px 56px 96px; border-bottom: 1px solid var(--hair); }
.bi-hero-stats .inner { max-width: var(--wrap); margin: 0 auto; }
.bi-hero-stats .eyebrow {
	display: flex; align-items: center; gap: 14px;
	font-family: var(--mono); font-size: 12px; color: var(--steel);
	font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
	margin-bottom: 28px;
}
.bi-hero-stats .eyebrow::before { content: ''; width: 36px; height: 2px; background: var(--steel); display: inline-block; }
.bi-hero-stats h1 {
	font-family: var(--sans); font-weight: 700; font-size: 88px;
	letter-spacing: -0.04em; line-height: 0.98; margin: 0;
	color: var(--ink); max-width: 1180px;
}
.bi-hero-stats h1 .accent { color: var(--steel); }
.bi-hero-stats .lede { font-size: 22px; line-height: 1.45; color: var(--ink-soft); margin: 32px 0 0; max-width: 820px; font-weight: 400; }
.bi-hero-stats .stats { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1100px; }
.bi-hero-stats .stat { background: var(--paper); border: 1px solid var(--hair); border-top: 3px solid var(--steel); border-radius: 8px; padding: 24px; }
.bi-hero-stats .stat.featured { background: var(--steel-tint); border-color: rgba(15, 31, 77, 0.18); border-top-color: var(--steel-deep); }
.bi-hero-stats .stat .kicker {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em;
	font-weight: 600; color: var(--muted); margin-bottom: 12px; text-transform: uppercase;
}
.bi-hero-stats .stat.featured .kicker { color: var(--steel-deep); }
.bi-hero-stats .stat .num { font-family: var(--sans); font-size: 40px; font-weight: 700; line-height: 0.95; letter-spacing: -0.03em; color: var(--ink); }
.bi-hero-stats .stat .label { font-family: var(--sans); font-size: 13px; margin-top: 12px; line-height: 1.45; color: var(--ink-soft); }
.bi-hero-stats .ctas { margin-top: 44px; display: flex; gap: 12px; }
.bi-hero-stats .ctas a { font-size: 14px; font-weight: 600; padding: 14px 24px; border-radius: 4px; }
.bi-hero-stats .ctas .primary { background: var(--steel); color: var(--paper); }
.bi-hero-stats .ctas .ghost   { color: var(--ink); border: 1px solid var(--hair); }

/* Hero — full-width variant (About) */
.bi-hero-full { padding: 48px 56px 56px; border-bottom: 1px solid var(--hair); margin-bottom: 80px; }
.bi-hero-full .inner { max-width: 1200px; margin: 0 auto; }
.bi-hero-full .crumb {
	font-family: var(--mono); font-size: 11px; color: var(--muted);
	letter-spacing: 0.14em; margin: 0 0 36px; text-transform: uppercase; font-weight: 500;
}
.bi-hero-full .crumb a { color: var(--muted); }
.bi-hero-full h1 {
	font-family: var(--sans); font-weight: 700; font-size: 88px;
	letter-spacing: -0.04em; line-height: 0.98; margin: 0 0 32px;
	max-width: 1080px; text-wrap: balance;
}
.bi-hero-full h1 .accent { color: var(--steel); }
.bi-hero-full .lede { font-size: 22px; line-height: 1.45; color: var(--ink-soft); max-width: 820px; margin: 0; font-weight: 400; }
.bi-hero-full .meta {
	margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--hair);
	display: flex; gap: 40px; flex-wrap: wrap;
	font-family: var(--mono); font-size: 11px; color: var(--ink-soft);
	letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500;
}
.bi-hero-full .meta strong { color: var(--steel); font-weight: 600; }

/* Master frame panel (About §01) */
.bi-mfp {
	background: var(--paper-deep);
	border: 1px solid var(--hair);
	border-left: 4px solid var(--steel-deep);
	border-radius: 8px;
	padding: 36px 40px;
	margin: 0 0 80px;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}
.bi-mfp .label {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.18em;
	color: var(--steel-deep); margin-bottom: 14px;
	text-transform: uppercase; font-weight: 600;
}
.bi-mfp p {
	font-family: var(--sans); font-size: 19px; line-height: 1.6;
	margin: 0; color: var(--ink); font-weight: 400;
}
.bi-mfp strong { color: var(--ink); font-weight: 600; }

/* Purpose grid (CIPO §02) */
.bi-purpose { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.bi-purpose article {
	background: var(--paper); padding: 32px 30px;
	border-radius: 8px; border-top: 3px solid var(--steel);
}
.bi-purpose .badge {
	width: 32px; height: 32px; border-radius: 50%;
	background: var(--steel-tint); color: var(--steel-deep);
	font-family: var(--mono); font-size: 13px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
	margin-bottom: 18px;
}
.bi-purpose h3 { font-size: 21px; font-weight: 600; margin: 0 0 12px; letter-spacing: -0.012em; line-height: 1.25; }
.bi-purpose p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--ink-soft); }

/* Method moves (CIPO §03) */
.bi-method .row {
	display: grid; grid-template-columns: 60px 1fr 1fr; gap: 32px;
	padding: 32px 0; border-top: 1px solid var(--hair);
}
.bi-method .row:last-child { border-bottom: 1px solid var(--hair); }
.bi-method .num { font-size: 48px; font-weight: 700; color: var(--steel); line-height: 1; letter-spacing: -0.025em; }
.bi-method h3 { font-size: 22px; font-weight: 600; margin: 0 0 12px; letter-spacing: -0.012em; line-height: 1.25; color: var(--ink); }
.bi-method p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--ink-soft); }
.bi-method .result { background: var(--steel-tint); padding: 16px 20px; border-radius: 6px; align-self: start; }
.bi-method .result .kicker {
	font-family: var(--mono); font-size: 11px; font-weight: 700;
	letter-spacing: 0.12em; color: var(--steel-deep);
	margin-bottom: 8px; text-transform: uppercase;
}
.bi-method .result p { font-size: 15px; line-height: 1.6; color: var(--ink); }
.bi-method .coda { font-size: 15px; color: var(--muted); font-style: italic; margin: 24px 0 0; }

/* Pricing stages (CIPO §05) */
.bi-pricing .shape-band {
	background: var(--paper-deep); padding: 24px 28px;
	border-radius: 8px; margin-bottom: 28px;
	display: grid; grid-template-columns: 240px 1fr; gap: 32px; align-items: baseline;
}
.bi-pricing .shape-band .kicker {
	font-family: var(--mono); font-size: 11px; font-weight: 700;
	letter-spacing: 0.12em; color: var(--steel); text-transform: uppercase;
}
.bi-pricing .shape-band p { margin: 0 0 8px; font-size: 17px; line-height: 1.6; }
.bi-pricing .shape-band p:first-of-type { font-weight: 500; }
.bi-pricing .shape-band p:last-child { margin-bottom: 0; color: var(--ink-soft); font-size: 16px; }

.bi-pricing .stages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 28px; }
.bi-pricing .stage {
	background: var(--paper); border: 1px solid var(--hair);
	border-radius: 8px; padding: 28px 24px;
	display: flex; flex-direction: column;
}
.bi-pricing .stage.featured { background: var(--steel-tint); border: 2px solid var(--steel); }
.bi-pricing .stage .n {
	font-family: var(--mono); font-size: 11px; font-weight: 700;
	letter-spacing: 0.12em; color: var(--steel);
	margin-bottom: 10px; text-transform: uppercase;
}
.bi-pricing .stage h4 { font-size: 24px; font-weight: 600; margin: 0 0 14px; letter-spacing: -0.014em; line-height: 1.15; }
.bi-pricing .stage p { margin: 0 0 18px; font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); flex: 1; }
.bi-pricing .stage .price {
	padding-top: 12px; border-top: 1px solid var(--hair);
	font-size: 16px; font-weight: 600; color: var(--steel-deep);
}

.bi-pricing .onramp {
	background: var(--paper-deep); border-radius: 8px;
	padding: 28px 32px;
	display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px;
}
.bi-pricing .onramp .kicker {
	font-family: var(--mono); font-size: 11px; font-weight: 700;
	letter-spacing: 0.12em; color: var(--steel);
	text-transform: uppercase; margin-bottom: 10px;
}
.bi-pricing .onramp h4 { font-size: 22px; font-weight: 600; margin: 0 0 12px; letter-spacing: -0.014em; line-height: 1.25; }
.bi-pricing .onramp .body p { margin: 0 0 10px; font-size: 15.5px; line-height: 1.6; color: var(--ink-soft); }
.bi-pricing .onramp .body p:last-child { margin-bottom: 0; }
.bi-pricing .onramp .includes .lbl {
	font-family: var(--mono); font-size: 11px; font-weight: 700;
	letter-spacing: 0.12em; color: var(--muted);
	margin-bottom: 10px; text-transform: uppercase;
}
.bi-pricing .onramp .bullets { display: grid; }
.bi-pricing .onramp .bullets .b {
	display: grid; grid-template-columns: 24px 1fr; gap: 8px;
	padding: 8px 0; border-bottom: 1px solid var(--hair);
	font-size: 14.5px; line-height: 1.5;
}
.bi-pricing .onramp .bullets .b:last-child { border-bottom: none; }
.bi-pricing .onramp .bullets .check { color: var(--steel); font-weight: 700; }
.bi-pricing .onramp .meta {
	margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 11px; font-weight: 600;
	letter-spacing: 0.12em; color: var(--steel); text-transform: uppercase;
}

/* Fit / eligibility yes-no (CIPO §06 + Lending §02) */
.bi-fit { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bi-fit .col { border-radius: 8px; padding: 28px 32px; }
.bi-fit .col--yes { background: var(--paper); border-top: 3px solid var(--steel); border: 1px solid var(--hair); border-top: 3px solid var(--steel); }
.bi-fit .col--no  { background: var(--paper); border: 1px solid var(--hair); border-top: 3px solid var(--hair); }
.bi-fit .head { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.bi-fit .head .badge {
	width: 24px; height: 24px; border-radius: 50%;
	font-size: 14px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--mono);
}
.bi-fit .col--yes .badge { background: var(--steel-tint); color: var(--steel-deep); }
.bi-fit .col--no .badge  { background: var(--paper-hi); color: var(--muted); }
.bi-fit .head .label {
	font-size: 12px; font-weight: 700; letter-spacing: 0.12em;
	text-transform: uppercase;
}
.bi-fit .col--yes .label { color: var(--steel-deep); }
.bi-fit .col--no .label  { color: var(--muted); }
.bi-fit ul { margin: 0; padding: 0; list-style: none; }
.bi-fit li {
	padding: 10px 0; border-bottom: 1px solid var(--hair);
	font-size: 15.5px; line-height: 1.6;
}
.bi-fit li:last-child { border-bottom: none; }
.bi-fit .col--no li { color: var(--ink-soft); }

/* Requirements cards (Lending §01) */
.bi-req-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bi-req-card {
	background: var(--paper); border: 1px solid var(--hair);
	border-top: 3px solid var(--steel); border-radius: 8px;
	padding: 34px 32px; display: flex; flex-direction: column;
}
.bi-req-card .head { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.bi-req-card .badge {
	width: 36px; height: 36px; border-radius: 50%;
	background: var(--steel-tint); color: var(--steel-deep);
	font-family: var(--mono); font-size: 13px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
}
.bi-req-card h3 { font-size: 24px; font-weight: 600; letter-spacing: -0.014em; line-height: 1.2; margin: 0; }
.bi-req-card p { margin: 0 0 16px; font-size: 16px; line-height: 1.65; color: var(--ink-soft); }
.bi-req-card .note {
	margin-top: auto; padding-top: 16px; border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 12px; letter-spacing: 0.04em;
	color: var(--muted); font-style: italic; line-height: 1.55;
}
.bi-req-tail { margin-top: 36px; max-width: 960px; font-size: 17px; line-height: 1.65; color: var(--ink-soft); }

/* Why this practice (Lending §04) */
.bi-why { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.bi-why .col-text p { font-size: 17px; line-height: 1.7; color: var(--ink-soft); margin: 0 0 18px; }
.bi-why .col-text p:last-child { margin-bottom: 0; }
.bi-why .card { background: var(--paper-deep); border: 1px solid var(--hair); border-radius: 8px; padding: 30px 32px; }
.bi-why .card .kicker {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	color: var(--steel); font-weight: 600; margin-bottom: 18px; text-transform: uppercase;
}
.bi-why .card .row { padding: 14px 0; border-bottom: 1px solid var(--hair); }
.bi-why .card .row:last-child { border-bottom: none; }
.bi-why .card .row h4 { font-size: 16px; font-weight: 600; color: var(--ink); margin: 0 0 4px; letter-spacing: -0.01em; }
.bi-why .card .row p { font-size: 14.5px; color: var(--ink-soft); margin: 0; line-height: 1.55; }

/* Engagement steps (Lending §05) */
.bi-steps { border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
.bi-step {
	display: grid; grid-template-columns: 100px 1.2fr 1fr; gap: 32px;
	padding: 32px 0; border-top: 1px solid var(--hair); align-items: start;
}
.bi-step:first-child { border-top: none; }
.bi-step .n { font-size: 56px; font-weight: 700; color: var(--steel); line-height: 0.92; letter-spacing: -0.034em; }
.bi-step h3 { font-size: 24px; font-weight: 600; margin: 0 0 12px; letter-spacing: -0.014em; line-height: 1.2; color: var(--ink); }
.bi-step p { margin: 0; font-size: 15.5px; line-height: 1.65; color: var(--ink-soft); }
.bi-step .result {
	background: var(--steel-tint); border: 1px solid rgba(15, 31, 77, 0.18);
	border-radius: 6px; padding: 16px 20px;
}
.bi-step .result .kicker {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--steel-deep); font-weight: 600; margin-bottom: 8px; text-transform: uppercase;
}
.bi-step .result p { font-size: 14.5px; color: var(--ink); }
.bi-step-tail {
	margin-top: 24px; font-size: 14.5px; color: var(--muted);
	font-style: italic; line-height: 1.6;
}

/* Stages list (About §04) */
.bi-stages-list { border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
.bi-stages-list .stage {
	display: grid; grid-template-columns: 90px 1fr 1.4fr; gap: 32px;
	padding: 32px 0; border-top: 1px solid var(--hair); align-items: start;
}
.bi-stages-list .stage:first-child { border-top: none; }
.bi-stages-list .stage .n { font-size: 52px; font-weight: 700; color: var(--steel); line-height: 0.9; letter-spacing: -0.034em; }
.bi-stages-list .stage .kicker {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--muted); margin-bottom: 12px; font-weight: 600; text-transform: uppercase;
}
.bi-stages-list .stage h3 { font-size: 22px; font-weight: 600; margin: 0 0 6px; line-height: 1.2; letter-spacing: -0.014em; color: var(--ink); }
.bi-stages-list .stage p { font-size: 15.5px; line-height: 1.65; color: var(--ink-soft); margin: 0; }
.bi-stages-list .stage p em { font-style: italic; color: var(--ink); font-weight: 500; }

/* Qualifiers list (About §05) */
.bi-qualifiers {
	margin: 0; padding: 0; list-style: none;
	border: 1px solid var(--hair); border-radius: 8px; overflow: hidden;
}
.bi-qualifiers li {
	padding: 22px 28px; border-bottom: 1px solid var(--hair);
	background: var(--paper);
	display: grid; grid-template-columns: 200px 1fr; gap: 32px; align-items: baseline;
}
.bi-qualifiers li:last-child { border-bottom: none; }
.bi-qualifiers li:nth-child(even) { background: var(--paper-deep); }
.bi-qualifiers .crit {
	font-family: var(--mono); font-size: 11px; font-weight: 600;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--steel);
}
.bi-qualifiers .detail { font-size: 16px; line-height: 1.6; color: var(--ink-soft); }
.bi-qualifiers .detail strong { color: var(--ink); font-weight: 600; }

/* Principal block — light variant (About §03 + credentials list) */
.bi-principal--light { background: var(--paper); color: var(--ink); padding: 0 0 56px; }
.bi-principal--light .layout { grid-template-columns: 360px 1fr; gap: 64px; }
.bi-principal--light .byline { color: var(--steel); }
.bi-principal--light h3 { color: var(--ink); }
.bi-principal--light h3 .accent { color: var(--steel); }
.bi-principal--light p { color: var(--ink-soft); }
.bi-principal--light em { color: var(--ink); }
.bi-principal--light .photo { background: var(--paper-deep); border: 1px solid var(--hair); }

.bi-creds { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--hair); }
.bi-creds li {
	padding: 18px 0; border-bottom: 1px solid var(--hair);
	display: grid; grid-template-columns: 170px 1fr; gap: 24px; align-items: baseline;
	font-size: 16px;
}
.bi-creds .label {
	font-family: var(--mono); font-size: 11px; color: var(--steel);
	letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600;
}
.bi-creds .body-line { color: var(--ink); font-weight: 500; }
.bi-creds .body-line .sub { color: var(--muted); display: block; font-size: 14px; font-weight: 400; margin-top: 4px; }

/* Three readings — dark variant (Lending §03) */
.bi-section--ink .bi-readings article {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-top: 3px solid var(--steel);
}
.bi-section--ink .bi-readings .role { color: var(--steel); }
.bi-section--ink .bi-readings .tag  { color: rgba(255, 255, 255, 0.65); }
.bi-section--ink .bi-readings .numeral { color: var(--steel); }
.bi-section--ink .bi-readings p { color: rgba(255, 255, 255, 0.78); }
.bi-section--ink .bi-readings .gives { color: var(--steel-light); border-top-color: rgba(255, 255, 255, 0.12); }
.bi-section--ink .bi-readings-tail {
	margin-top: 40px; max-width: 960px;
	font-size: 17px; line-height: 1.65; color: rgba(255, 255, 255, 0.82);
}

/* ---- 6. Reference components (statute box, etc.) ----------------- */

/* Source-quote chrome — DESIGN_SYSTEM.md §1 */
.bi-source-quote {
	background: var(--source-bg);
	border: 1px solid var(--source-border);
	border-radius: 1px;
	padding: 22px 26px;
	position: relative;
	margin: 24px 0;
}
.bi-source-quote::before {
	content: attr(data-source) ' · VERBATIM';
	position: absolute; top: -9px; left: 18px;
	background: var(--paper);
	padding: 0 8px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.08em;
	color: var(--steel); font-weight: 500;
	text-transform: uppercase;
}
.bi-source-quote > p {
	font-family: var(--serif);
	font-size: 16px; line-height: 1.7;
	color: var(--ink-soft); margin: 0;
}
.bi-source-quote > p + p { margin-top: 14px; }

/* MPEP rule article */
.bi-rule {
	padding: 28px 0 32px;
	border-bottom: 1px solid var(--hair);
	scroll-margin-top: 24px;
}
.bi-rule .anchor-mark {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--muted); text-transform: uppercase; margin: 0 0 6px;
}
.bi-rule h3 {
	font-family: var(--sans); font-size: 14px; font-weight: 500;
	letter-spacing: 0.01em; text-transform: uppercase;
	color: var(--muted); line-height: 1.4; margin: 0 0 14px;
}
.bi-rule .note {
	font-family: var(--sans); font-style: italic;
	font-size: 18px; font-weight: 400; line-height: 1.55;
	color: var(--ink-soft); letter-spacing: -0.002em; margin: 0 0 18px;
}
.bi-rule .citations {
	margin-top: 14px;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em;
	color: var(--muted);
}
.bi-rule .citations a { color: var(--steel); border-bottom: 1px solid transparent; }
.bi-rule .citations a:hover { border-bottom-color: var(--steel); }

/* Sticky outline (right sidebar) */
.bi-outline { position: sticky; top: 110px; font-family: var(--sans); font-size: 13px; }
.bi-outline .o-section { padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--hair); }
.bi-outline .o-section:last-child { border-bottom: none; }
.bi-outline .lbl {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--steel); font-weight: 500;
	margin: 0 0 12px;
}

/* Two-column reference layout */
.bi-ref-wrap {
	max-width: var(--wrap-ref); margin: 0 auto;
	padding: 56px 32px 120px;
	display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 56px;
	align-items: start;
}

/* TOC strip + Prev/Next strip */
.bi-toc {
	border-bottom: 1px solid var(--hair); background: var(--paper);
	position: sticky; top: 59px; z-index: 9;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em;
}
.bi-toc .inner {
	max-width: var(--wrap-ref); margin: 0 auto;
	padding: 12px 32px; display: flex; gap: 22px; flex-wrap: wrap; align-items: center;
}
.bi-toc .lbl { color: var(--muted); }
.bi-toc a { color: var(--ink-soft); white-space: nowrap; }
.bi-toc a:hover { color: var(--steel); }

.bi-prevnext {
	max-width: var(--wrap-article); margin: 0 auto; padding: 20px 32px 0;
	display: flex; justify-content: space-between; gap: 16px;
	font-family: var(--mono); font-size: 12px;
}
.bi-prevnext a { color: var(--ink-soft); }
.bi-prevnext a:hover { color: var(--steel); }
.bi-prevnext .disabled { color: var(--hair); }

/* ---- 7. Blog components ------------------------------------------ */

/* Article masthead */
.bi-article-mast { padding: 56px 0 32px; border-bottom: 1px solid var(--hair); }
.bi-article-mast .crumb {
	font-family: var(--mono); font-size: 12px; color: var(--muted);
	letter-spacing: 0.04em; margin: 0 0 24px;
}
.bi-article-mast h1 {
	font-family: var(--sans); font-size: 56px; font-weight: 700;
	letter-spacing: -0.028em; line-height: 1.05; margin: 0 0 18px;
}
.bi-article-mast h1 .accent { color: var(--steel); }
.bi-article-mast .dek {
	font-size: 20px; color: var(--ink-soft); line-height: 1.55;
	margin: 0 0 28px; max-width: 720px;
}
.bi-article-mast .byline {
	padding-top: 18px; border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 12px; color: var(--muted);
	display: flex; gap: 28px; flex-wrap: wrap;
}

/* Drop cap */
.bi-dropcap::first-letter {
	font-family: var(--sans); font-weight: 700;
	font-size: 88px; float: left; line-height: 0.9;
	padding: 6px 10px 0 0; color: var(--steel);
}

/* Pull-quote */
.bi-pullquote {
	border-left: 3px solid var(--steel); padding: 4px 0 4px 22px;
	margin: 36px 0; font-family: var(--sans); font-size: 26px;
	line-height: 1.4; font-weight: 600; letter-spacing: -0.012em;
	color: var(--ink);
}
.bi-pullquote cite {
	display: block; margin-top: 12px;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--muted); font-style: normal; font-weight: 500;
	text-transform: uppercase;
}

/* Aside-box */
.bi-aside {
	background: var(--steel-tint); border-left: 4px solid var(--steel);
	padding: 26px 28px; margin: 32px 0; border-radius: 2px;
}
.bi-aside .kicker {
	font-family: var(--mono); font-style: italic; font-size: 12px;
	letter-spacing: 0.08em; color: var(--steel-deep);
	text-transform: uppercase; font-weight: 500; margin-bottom: 10px;
}
.bi-aside p { font-size: 16px; line-height: 1.65; margin: 0 0 12px; color: var(--ink-soft); }
.bi-aside p:last-child { margin-bottom: 0; }

/* Author block (blog) */
.bi-author { background: var(--ink); color: var(--paper); padding: 48px 56px; }
.bi-author .inner {
	max-width: var(--wrap-article); margin: 0 auto;
	display: grid; grid-template-columns: 96px 1fr; gap: 32px;
	align-items: start;
}
.bi-author .avatar { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; }
.bi-author .eyebrow {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	color: var(--steel-light); font-weight: 600; text-transform: uppercase;
	margin: 0 0 8px;
}
.bi-author p { font-size: 16px; line-height: 1.65; color: rgba(255, 255, 255, 0.82); margin: 0 0 14px; }
.bi-author .ctas a { display: inline-block; padding: 11px 18px; border-radius: 4px; font-size: 13px; font-weight: 600; margin-right: 8px; }
.bi-author .ctas .primary { background: var(--steel); color: var(--paper); }
.bi-author .ctas .ghost { border: 1px solid rgba(255, 255, 255, 0.28); color: var(--paper); }

/* Footnotes */
.bi-footnotes {
	margin: 64px 0 0; padding-top: 32px; border-top: 1px solid var(--hair);
	font-size: 14px; line-height: 1.65; color: var(--ink-soft);
}
.bi-footnotes ol { padding-left: 28px; margin: 0; }
.bi-footnotes ol li::marker { font-family: var(--mono); color: var(--steel); }
.bi-footnotes li + li { margin-top: 10px; }

/* ---- 7b. Prose layer — Steel typography on existing post/page content
 *
 * This block targets native WordPress blocks (paragraphs, headings,
 * lists, quotes, images) rendered inside .bi-article via post-content.
 * It's the visual layer over existing content — the theme doesn't touch
 * the markup, just applies Steel typography and color tokens.
 * ----------------------------------------------------------------- */

/* Generic article masthead (used by page.html for non-marketing pages) */
.bi-article-h1 {
	font-family: var(--sans); font-size: 48px; font-weight: 700;
	letter-spacing: -0.028em; line-height: 1.05;
	margin: 0 0 18px;
}
.bi-article-h1 .accent { color: var(--steel); }

.bi-page .bi-article-mast {
	padding: 56px 32px 32px;
	border-bottom: 1px solid var(--hair);
	margin-bottom: 0;
	background: transparent;
}

/* ---- Blog single — full layout from 05-Blog-Post.html ----------- */
.bi-single { background: var(--paper); }

/* Article masthead — paper-deep band with crumb + H1 + dek + byline */
.bi-single .bi-article-mast {
	background: var(--paper-deep);
	border-bottom: 1px solid var(--hair);
	padding: 64px 56px 56px;
	margin: 0;
}
.bi-single .bi-article-mast-inner {
	max-width: var(--wrap); margin: 0 auto;
}
.bi-single .bi-crumb {
	display: flex; gap: 14px; align-items: center; flex-wrap: wrap;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--muted); margin: 0 0 28px;
	font-weight: 500;
}
.bi-single .bi-crumb a { color: var(--muted); }
.bi-single .bi-crumb a:hover { color: var(--steel); }
.bi-single .bi-crumb .sep { opacity: 0.5; }
.bi-single .bi-crumb-cat,
.bi-single .bi-crumb-cat a {
	color: var(--steel); font-weight: 600; display: inline;
}

.bi-single .bi-article-mast h1,
.bi-single .bi-article-h1 {
	font-family: var(--sans); font-weight: 700; font-size: 72px;
	line-height: 1.0; letter-spacing: -0.034em; margin: 0 0 32px;
	max-width: 1100px; text-wrap: balance; color: var(--ink);
}
.bi-single .bi-article-h1 .accent { color: var(--steel); }

.bi-single .bi-article-dek,
.bi-single .bi-article-dek p {
	font-family: var(--sans); font-size: 22px; line-height: 1.45;
	color: var(--ink-soft); max-width: 880px; margin: 0 0 40px;
	font-weight: 400;
}

.bi-single .bi-byline {
	display: flex; flex-wrap: wrap; gap: 20px 32px; align-items: center;
	padding: 24px 0 0; border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--ink-soft); font-weight: 500;
}
.bi-single .bi-byline > * { margin: 0; line-height: 1; }
.bi-single .bi-byline a { color: inherit; border-bottom: none; }
.bi-single .bi-byline-author { color: var(--ink); font-weight: 600; display: inline-flex; gap: 6px; align-items: center; }
.bi-single .bi-byline-author .wp-block-post-author-name { display: inline; color: var(--ink); }
.bi-single .bi-byline-date,
.bi-single .bi-byline-time { color: var(--ink-soft); display: inline; }
.bi-single .bi-byline-tag,
.bi-single .bi-byline-tag a { color: var(--steel); font-weight: 600; display: inline; }

/* Body + Right Rail grid layout */
.bi-single .bi-single-page {
	max-width: var(--wrap); margin: 0 auto;
	padding: 72px 56px 96px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 72px;
	align-items: start;
}

/* Right rail — sticky */
.bi-rail { position: sticky; top: 32px; font-family: var(--sans); display: grid; gap: 24px; }
.bi-rail-card {
	background: var(--paper); border: 1px solid var(--hair);
	border-radius: 8px; padding: 22px;
}
.bi-rail-card .kicker {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--steel); font-weight: 600;
	margin-bottom: 16px; padding-bottom: 12px;
	border-bottom: 1px solid var(--hair);
}
.bi-rail-list, .bi-rail-query { list-style: none; padding: 0; margin: 0; display: contents; }
.bi-rail-query .wp-block-post-template { list-style: none; padding: 0; margin: 0; display: contents; }
.bi-rail-post {
	padding: 12px 0; border-bottom: 1px solid var(--hair);
	list-style: none;
}
.bi-rail-post:last-child { border-bottom: none; }
.bi-rail-post .title,
.bi-rail-post h5 {
	font-family: var(--sans); font-size: 14.5px; line-height: 1.35;
	color: var(--ink); display: block; margin: 0 0 4px; font-weight: 500;
}
.bi-rail-post .title a,
.bi-rail-post h5 a { color: var(--ink); border-bottom: none; }
.bi-rail-post .title a:hover,
.bi-rail-post h5 a:hover { color: var(--steel); }
.bi-rail-post .meta {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--muted); font-weight: 500;
}
.bi-rail-cats { display: flex; flex-wrap: wrap; gap: 6px; }
.bi-rail-cats ul,
.bi-rail-cats .bi-rail-cats-inner { list-style: none; padding: 0; margin: 0; display: contents; }
.bi-rail-cats li { display: inline-block; }
.bi-rail-cats a {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--ink-soft);
	padding: 6px 10px; border: 1px solid var(--hair);
	border-radius: 4px; background: var(--paper); font-weight: 500;
	display: inline-block;
}
.bi-rail-cats a:hover { border-color: var(--steel); color: var(--steel); }

.bi-rail-memo {
	background: var(--steel-tint); border-color: rgba(15, 31, 77, 0.18);
}
.bi-rail-memo .kicker { color: var(--steel-deep); border-bottom-color: rgba(15, 31, 77, 0.18); }
.bi-rail-memo h4 { font-family: var(--sans); font-weight: 700; font-size: 20px; line-height: 1.15; margin: 0 0 12px; letter-spacing: -0.014em; color: var(--ink); }
.bi-rail-memo p { font-size: 14px; line-height: 1.55; color: var(--ink-soft); margin: 0 0 18px; }
.bi-rail-memo-form { display: flex; align-items: stretch; background: var(--paper); border: 1px solid var(--hair); border-radius: 4px; overflow: hidden; }
.bi-rail-memo-form input { flex: 1; background: transparent; border: none; outline: none; padding: 10px 12px; color: var(--ink); font-family: var(--sans); font-size: 14px; }
.bi-rail-memo-form input::placeholder { color: var(--muted); }
.bi-rail-memo-form button { background: var(--steel); border: none; color: var(--paper); font-family: var(--sans); font-size: 13px; font-weight: 600; cursor: pointer; padding: 0 14px; }
.bi-rail-memo-form button:hover { background: var(--steel-deep); }
.bi-rail-memo-note { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; color: var(--muted); text-transform: uppercase; margin: 12px 0 0; font-weight: 500; }

/* Related reading — bottom slab on paper-deep */
.bi-related { background: var(--paper-deep); border-top: 1px solid var(--hair); padding: 88px 56px; }
.bi-related-inner { max-width: var(--wrap); margin: 0 auto; }
.bi-related-head {
	display: flex; justify-content: space-between; align-items: flex-end;
	margin-bottom: 36px; padding-bottom: 20px;
	border-bottom: 1px solid var(--hair);
}
.bi-related-head h3 {
	font-family: var(--sans); font-weight: 700; font-size: 40px;
	letter-spacing: -0.026em; margin: 0; line-height: 1.05; color: var(--ink);
}
.bi-related-head h3 .accent { color: var(--steel); }
.bi-related-link {
	background: var(--paper); color: var(--ink); padding: 10px 16px;
	border-radius: 4px; border: 1px solid var(--hair);
	font-size: 13px; font-weight: 600; white-space: nowrap;
}
.bi-related-link:hover { border-color: var(--steel); color: var(--steel); }
.bi-related-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.bi-related-grid .wp-block-post-template { display: contents; list-style: none; padding: 0; margin: 0; }
.bi-related-card {
	background: var(--paper); border: 1px solid var(--hair);
	border-radius: 8px; padding: 28px 28px 24px;
	display: flex; flex-direction: column;
	list-style: none;
}
.bi-related-card .meta {
	display: flex; justify-content: space-between;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--steel);
	margin-bottom: 18px; font-weight: 600;
}
.bi-related-card .meta .read { color: var(--muted); }
.bi-related-card h4 {
	font-family: var(--sans); font-weight: 600; font-size: 21px;
	line-height: 1.2; letter-spacing: -0.014em; margin: 0 0 12px; color: var(--ink);
}
.bi-related-card h4 a { color: var(--ink); border-bottom: none; }
.bi-related-card h4 a:hover { color: var(--steel); }
.bi-related-card p,
.bi-related-card .wp-block-post-excerpt {
	font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); margin: 0 0 22px;
}
.bi-related-card .readlink,
.bi-related-card .wp-block-read-more {
	margin-top: auto; padding-top: 14px; border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--steel); font-weight: 600;
	border-bottom: none;
}

/* Body content typography (applies to .bi-article in single AND .bi-article in page) */
.bi-article,
.bi-page .bi-article {
	padding: 0;
	font-family: var(--sans);
	color: var(--ink);
	font-size: 19px;
	line-height: 1.7;
}
.bi-page .bi-article { padding: 48px 32px 80px; max-width: var(--wrap-article); margin: 0 auto; }
.bi-article > * { max-width: 760px; margin-left: 0; margin-right: 0; }
.bi-page .bi-article > * { margin-left: auto; margin-right: auto; }
.bi-article .alignwide   { max-width: 1080px; }
.bi-article .alignfull   { max-width: none; }

.bi-article p { margin: 0 0 22px; color: var(--ink); }
.bi-article p strong { color: var(--ink); font-weight: 600; }
.bi-article p em { font-style: italic; color: var(--ink); font-weight: 500; }
.bi-article a {
	color: var(--steel-deep);
	border-bottom: 1px solid rgba(15, 31, 77, 0.4);
	transition: background-color 0.15s ease, border-bottom-color 0.15s ease;
}
.bi-article a:hover { border-bottom-color: var(--steel-deep); }

/* Drop cap on first paragraph of blog post body */
.bi-single .bi-article .wp-block-post-content > p:first-of-type::first-letter,
.bi-single .bi-article > p:first-of-type::first-letter {
	font-family: var(--sans); font-weight: 700;
	float: left; font-size: 88px; line-height: 0.86;
	padding: 6px 14px 0 0; margin-top: 4px;
	color: var(--steel); letter-spacing: -0.04em;
}

/* Footnote refs (.fn class — superscript brackets in steel) */
.bi-article .fn,
.bi-article a.fn {
	font-family: var(--mono); font-size: 11px;
	vertical-align: super; line-height: 0;
	color: var(--steel); margin-left: 2px;
	border-bottom: none; font-weight: 600;
}
.bi-article a.fn::before { content: '['; }
.bi-article a.fn::after { content: ']'; }
.bi-article a.fn:hover { background: transparent; color: var(--steel-deep); }

/* End mark — small steel circle to mark end of article body */
.bi-article .endmark,
.bi-article .bi-endmark {
	display: inline-block; margin-left: 8px;
	width: 10px; height: 10px;
	background: var(--steel); border-radius: 50%;
	vertical-align: middle;
}

.bi-article h2 {
	font-family: var(--sans); font-weight: 700;
	font-size: 36px; letter-spacing: -0.022em; line-height: 1.1;
	margin: 64px 0 22px; padding-top: 32px;
	border-top: 1px solid var(--hair);
	text-wrap: balance; color: var(--ink);
}
/* H2 with §-number eyebrow — editor wraps the section number in <span class="num">§ 01</span> */
.bi-article h2 .num {
	display: block;
	font-family: var(--mono); font-weight: 600; font-size: 11px;
	letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--steel); margin-bottom: 14px;
}
.bi-article h3 {
	font-family: var(--sans); font-weight: 600;
	font-size: 26px; letter-spacing: -0.014em; line-height: 1.25;
	margin: 1.8em 0 0.4em; color: var(--ink);
}
.bi-article h4 {
	font-family: var(--sans); font-weight: 600;
	font-size: 20px; letter-spacing: -0.01em; line-height: 1.3;
	margin: 1.6em 0 0.4em; color: var(--ink);
}
.bi-article h5, .bi-article h6 {
	font-family: var(--mono); font-size: 12px; font-weight: 600;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--steel);
	margin: 1.8em 0 0.6em;
}

.bi-article ul, .bi-article ol { margin: 0 0 1.4em; padding-left: 1.6em; }
.bi-article li { margin: 0 0 0.6em; line-height: 1.6; color: var(--ink-soft); }
.bi-article li::marker { color: var(--steel); }

.bi-article blockquote {
	margin: 1.8em 0;
	padding: 4px 0 4px 22px;
	border-left: 3px solid var(--steel);
	font-family: var(--sans); font-weight: 600;
	font-size: 22px; line-height: 1.45;
	color: var(--ink); letter-spacing: -0.01em;
}
.bi-article blockquote p { color: var(--ink); margin: 0 0 0.6em; }
.bi-article blockquote p:last-child { margin: 0; }
.bi-article blockquote cite {
	display: block; margin-top: 12px;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--muted); font-style: normal; font-weight: 500;
	text-transform: uppercase;
}

.bi-article figure { margin: 1.8em 0; }
.bi-article figure img { border-radius: 4px; }
.bi-article figcaption {
	font-family: var(--mono); font-size: 11px; color: var(--muted);
	letter-spacing: 0.06em; margin-top: 10px; text-align: center;
}

.bi-article hr {
	border: none; border-top: 1px solid var(--hair);
	margin: 2.4em auto;
	width: 80px;
}

.bi-article table { border-collapse: collapse; width: 100%; font-size: 15px; margin: 1.8em 0; }
.bi-article th, .bi-article td { padding: 12px 14px; border-bottom: 1px solid var(--hair); text-align: left; vertical-align: top; }
.bi-article th { font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--steel); font-weight: 600; }

.bi-article code, .bi-article pre {
	font-family: var(--mono); font-size: 14px;
	background: var(--paper-deep); color: var(--ink);
}
.bi-article code { padding: 2px 6px; border-radius: 3px; }
.bi-article pre { padding: 18px 22px; border-radius: 6px; overflow-x: auto; margin: 1.8em 0; }
.bi-article pre code { padding: 0; background: transparent; }

/* Article footer — prev/next */
.bi-article-foot {
	max-width: var(--wrap-article);
	margin: 0 auto;
	padding: 32px;
	display: flex; justify-content: space-between; gap: 16px;
	border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 12px;
	letter-spacing: 0.06em; text-transform: uppercase;
}
.bi-article-foot a { color: var(--ink-soft); }
.bi-article-foot a:hover { color: var(--steel); }

/* Archive grid */
.bi-archive { padding: 0; }
.bi-archive-head {
	padding: 80px 32px 56px;
	border-bottom: 1px solid var(--hair);
	margin-bottom: 64px;
}
.bi-archive-head .bi-eyebrow { margin-bottom: 22px; }
.bi-archive-head h1, .bi-archive-head .bi-h2 { font-size: 56px; margin: 0; }
.bi-archive-query { padding: 0 32px 80px; }
.bi-archive-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.bi-archive-grid .bi-journal-card { min-height: 320px; }
.bi-archive-grid .bi-journal-card .meta { font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; color: var(--steel); text-transform: uppercase; }
.bi-archive-grid .bi-journal-card .meta .wp-block-post-date { color: var(--muted); }
.bi-archive-grid .bi-journal-card h3 { font-family: var(--sans); font-size: 22px; line-height: 1.2; letter-spacing: -0.014em; font-weight: 600; margin: 16px 0; }
.bi-archive-grid .bi-journal-card h3 a { color: var(--ink); border-bottom: none; }
.bi-archive-grid .bi-journal-card .wp-block-post-excerpt { font-size: 15px; color: var(--ink-soft); line-height: 1.65; }
.bi-archive-grid .bi-journal-card .read,
.bi-archive-grid .bi-journal-card .wp-block-read-more {
	margin-top: 22px; padding-top: 16px;
	border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	color: var(--steel); font-weight: 600; text-transform: uppercase;
	border-bottom: none;
}

.bi-pagination {
	margin: 48px auto 0;
	gap: 12px;
	font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em;
	text-transform: uppercase;
}
.bi-pagination .page-numbers,
.bi-pagination a {
	padding: 8px 14px;
	border: 1px solid var(--hair); border-radius: 4px;
	color: var(--ink-soft);
}
.bi-pagination .current { background: var(--steel); color: var(--paper); border-color: var(--steel); }
.bi-pagination a:hover { border-color: var(--steel); color: var(--steel); }

.bi-noresults {
	padding: 64px 32px;
	text-align: center;
	font-family: var(--mono); font-size: 13px;
	color: var(--muted); letter-spacing: 0.06em;
}

/* 404 */
.bi-404 { padding: 96px 32px; }
.bi-404 .bi-h2 { font-size: 48px; margin: 0 0 20px; }
.bi-404 p { color: var(--ink-soft); font-size: 19px; line-height: 1.65; margin: 0 0 16px; }
.bi-404-links { gap: 18px; margin-top: 24px; font-family: var(--mono); font-size: 13px; letter-spacing: 0.06em; }
.bi-404-links a { color: var(--steel); border-bottom: 1px solid currentColor; }

/* Search */
.bi-search-results { padding: 80px 32px 96px; }
.bi-search-results .bi-h2 { font-size: 36px; margin: 0 0 28px; }
.bi-search-form { margin: 0 0 48px; max-width: 560px; }
.bi-search-form input[type="search"] {
	border: 1px solid var(--hair); padding: 12px 16px;
	font-family: var(--sans); font-size: 16px; border-radius: 4px;
}
.bi-search-form button {
	background: var(--steel); color: var(--paper);
	border: none; padding: 12px 18px; border-radius: 4px;
	font-family: var(--sans); font-weight: 600; font-size: 14px;
	margin-left: 8px;
}
.bi-search-item {
	padding: 24px 0; border-bottom: 1px solid var(--hair);
}
.bi-search-item h3 { font-size: 22px; margin: 0 0 10px; letter-spacing: -0.014em; }
.bi-search-item h3 a { color: var(--ink); border-bottom: none; }
.bi-search-item h3 a:hover { color: var(--steel); }
.bi-search-meta {
	margin-top: 12px; gap: 18px;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em;
	color: var(--muted); text-transform: uppercase;
}

/* ---- 7c. Ultimate FAQ plugin overrides --------------------------- *
 * Targets the EWD Ultimate FAQ plugin's default markup so existing
 * FAQ pages don't look broken under the new theme. The plugin's slugs
 * may vary with version; treat these as a starting point and add
 * selectors as needed after walking the live FAQ pages.
 * ----------------------------------------------------------------- */
.bi-page .ewd-ufaq-faqs,
.bi-page .ewd-ufaq-faq-toggle,
.bi-page .ewd-ufaq-faqs-display {
	font-family: var(--sans);
	max-width: 760px;
	margin: 24px auto;
}
.bi-page .ewd-ufaq-post-margin-symbol {
	color: var(--steel);
}
.bi-page .ewd-ufaq-faq-title,
.bi-page .ewd-ufaq-question {
	font-family: var(--sans);
	font-weight: 600;
	font-size: 20px;
	letter-spacing: -0.012em;
	line-height: 1.3;
	color: var(--ink);
	padding: 18px 0;
	border-top: 1px solid var(--hair);
}
.bi-page .ewd-ufaq-faq-title:hover,
.bi-page .ewd-ufaq-question:hover { color: var(--steel); cursor: pointer; }
.bi-page .ewd-ufaq-faq-body,
.bi-page .ewd-ufaq-answer {
	background: var(--source-bg);
	border-left: 4px solid var(--steel);
	padding: 22px 26px;
	margin: 12px 0 24px;
	border-radius: 2px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--ink-soft);
}
.bi-page .ewd-ufaq-faq-body a,
.bi-page .ewd-ufaq-answer a { color: var(--steel); border-bottom: 1px solid currentColor; }

/* ---- 7d. Reference-page chrome (MPEP / FAQ / book chapter) ------ *
 * Activated by assigning the "Reference page" template to a page.
 * The template includes the TOC strip, prev/next strip, body, and
 * sticky right outline. The bi_toc and bi_outline shortcodes auto-
 * generate anchor lists from the page's H2/H3 headings (any heading
 * with an id, or any heading at all — auto-id filter runs).
 * ----------------------------------------------------------------- */

.bi-reference { background: var(--paper); }

/* TOC strip — sticky horizontal anchor list */
.bi-toc-strip {
	background: var(--paper);
	border-bottom: 1px solid var(--hair);
	position: sticky; top: 0; z-index: 9;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em;
}
.bi-toc-strip-inner {
	max-width: var(--wrap-ref); margin: 0 auto;
	padding: 12px 32px;
	display: flex; gap: 22px; flex-wrap: wrap; align-items: center;
	overflow-x: auto;
}
.bi-toc-strip-label { color: var(--muted); text-transform: uppercase; font-weight: 500; }
.bi-toc-strip a {
	color: var(--ink-soft); white-space: nowrap;
	border-bottom: 1px solid transparent;
}
.bi-toc-strip a:hover { color: var(--steel); border-bottom-color: var(--steel); }
/* Hide the strip entirely when bi_toc emitted nothing (no headings) */
.bi-toc-strip:not(:has(a)) { display: none; }

/* Prev/next strip — between TOC and body */
.bi-prevnext {
	max-width: var(--wrap-article); margin: 0 auto;
	padding: 20px 32px 0;
	display: flex; justify-content: space-between; gap: 16px;
	font-family: var(--mono); font-size: 12px;
}
.bi-prevnext a { color: var(--ink-soft); border-bottom: 1px solid transparent; }
.bi-prevnext a:hover { color: var(--steel); border-bottom-color: var(--steel); }
.bi-prevnext .bi-prevnext-prev::before { content: '«« '; color: var(--muted); }
.bi-prevnext .bi-prevnext-next::after { content: ' »»'; color: var(--muted); }
.bi-prevnext:not(:has(a)) { display: none; }

/* Reference-page body + outline grid */
.bi-ref-wrap {
	max-width: var(--wrap-ref); margin: 0 auto;
	padding: 56px 32px 120px;
	display: grid; grid-template-columns: minmax(0, 1fr) 260px;
	gap: 56px; align-items: start;
}
.bi-ref-article { min-width: 0; max-width: 740px; }
.bi-crumb-ref {
	font-family: var(--mono); font-size: 12px; color: var(--muted);
	letter-spacing: 0.04em; margin: 0 0 28px;
	display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.bi-crumb-ref a { color: var(--muted); border-bottom: none; }
.bi-crumb-ref a:hover { color: var(--steel); }
.bi-crumb-ref .sep { opacity: 0.5; }
.bi-ref-h1 {
	font-family: var(--sans); font-size: 36px; font-weight: 500;
	letter-spacing: -0.012em; line-height: 1.18;
	margin: 0 0 18px; color: var(--ink);
}
.bi-ref-h1 .sec,
.bi-ref-h1 .bi-sec { color: var(--steel); font-weight: 400; }

/* Sticky right outline */
.bi-outline {
	position: sticky; top: 80px;
	font-family: var(--sans); font-size: 13px;
}
.bi-outline-section {
	padding-bottom: 22px; margin-bottom: 22px;
	border-bottom: 1px solid var(--hair);
}
.bi-outline-section:last-child { border-bottom: none; margin-bottom: 0; }
.bi-outline-lbl {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--steel);
	font-weight: 500; margin: 0 0 12px;
}
.bi-outline-list,
.bi-outline-sublist,
.bi-outline-links {
	list-style: none; padding: 0; margin: 0;
}
.bi-outline-list > li { padding: 6px 0; border-bottom: 1px dotted var(--hair); }
.bi-outline-list > li:last-child { border-bottom: none; }
.bi-outline-list a { color: var(--ink-soft); border-bottom: none; display: block; line-height: 1.4; }
.bi-outline-list a:hover { color: var(--steel); }
.bi-outline-sublist { padding-left: 14px; margin-top: 4px; }
.bi-outline-sublist li { padding: 3px 0; font-size: 12.5px; }
.bi-outline-sublist a { color: var(--muted); }
.bi-outline-links a {
	display: block; padding: 8px 0;
	color: var(--ink-soft); border-bottom: 1px dotted var(--hair);
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.1em; text-transform: uppercase;
}
.bi-outline-links li:last-child a { border-bottom: none; }
.bi-outline-links a:hover { color: var(--steel); }

/* MPEP rule article — when editor wraps content in <section class="bi-rule" id="..."> */
.bi-ref-article .bi-rule,
.bi-article .bi-rule {
	padding: 28px 0 32px;
	border-bottom: 1px solid var(--hair);
	scroll-margin-top: 64px;
}
.bi-ref-article .bi-rule h3,
.bi-article .bi-rule h3 {
	font-family: var(--sans); font-size: 14px; font-weight: 500;
	letter-spacing: 0.01em; text-transform: uppercase;
	color: var(--muted); line-height: 1.4; margin: 0 0 14px;
}
.bi-ref-article .bi-rule h3 .anchor,
.bi-article .bi-rule h3 .anchor {
	color: var(--steel); border-bottom: none; margin-right: 6px;
}
.bi-ref-article .bi-rule .note,
.bi-article .bi-rule .note {
	font-family: var(--sans); font-style: italic;
	font-size: 17px; font-weight: 400; line-height: 1.55;
	color: var(--ink-soft); letter-spacing: -0.002em;
	margin: 0 0 18px;
}
.bi-ref-article .bi-rule .cite,
.bi-article .bi-rule .cite {
	margin-top: 14px;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em;
	color: var(--muted);
}
.bi-ref-article .bi-rule .cite a,
.bi-article .bi-rule .cite a { color: var(--ink-soft); border-bottom: none; }
.bi-ref-article .bi-rule .cite a:hover,
.bi-article .bi-rule .cite a:hover { color: var(--steel); }

/* MPEP/FAQ statute label inside source-quote (alt: <div class="bi-source-quote" data-source="...">) — already styled in §6 */

/* FAQ answer card — when editor wraps the answer in <div class="bi-answer-card"> */
.bi-answer-card {
	margin: 32px 0;
	padding: 28px 32px;
	background: var(--steel-tint);
	border: 1px solid rgba(15, 31, 77, 0.18);
	border-radius: 6px;
}
.bi-answer-card .verdict {
	font-family: var(--sans); font-size: 24px; font-weight: 600;
	line-height: 1.3; margin: 0 0 16px; color: var(--ink); letter-spacing: -0.014em;
}
.bi-answer-card .verdict .answer,
.bi-answer-card .verdict span[class*="answer"] { color: var(--steel); }
.bi-answer-card p { font-family: var(--sans); font-size: 16px; line-height: 1.65; color: var(--ink); margin: 0 0 12px; }
.bi-answer-card p:last-child { margin-bottom: 0; }

/* MPEP quote block (FAQ pages) */
.bi-mpep-quote {
	margin: 24px 0; padding: 22px 26px;
	background: var(--source-bg); border: 1px solid var(--source-border);
	border-radius: 2px; position: relative;
}
.bi-mpep-quote .label,
.bi-mpep-quote::before {
	position: absolute; top: -9px; left: 18px;
	background: var(--paper); padding: 0 8px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.08em; color: var(--steel);
	font-weight: 500; text-transform: uppercase;
}
.bi-mpep-quote p {
	font-family: var(--serif); font-size: 16px; line-height: 1.7;
	color: var(--ink-soft); margin: 0;
}

/* Book chapter — one-liner section marks */
.bi-article .bi-one-liner,
.bi-ref-article .bi-one-liner {
	margin: 40px 0 24px;
	padding: 18px 0 0;
	border-top: 2px solid var(--ink);
	font-family: var(--sans); font-size: 22px; font-weight: 500;
	letter-spacing: -0.014em; line-height: 1.3; color: var(--ink);
	max-width: 580px;
}
.bi-article .bi-one-liner em,
.bi-ref-article .bi-one-liner em {
	font-style: italic; color: var(--steel); font-weight: 500;
}

/* Book chapter — reproduction notice (top-of-chapter callout) */
.bi-reproduction-notice {
	background: var(--paper-deep); border-left: 4px solid var(--steel);
	border-radius: 4px; padding: 18px 24px;
	font-family: var(--sans); font-size: 15px; line-height: 1.55;
	color: var(--ink-soft); margin: 0 0 36px;
}
.bi-reproduction-notice strong { color: var(--ink); font-weight: 600; }
.bi-reproduction-notice a { color: var(--steel-deep); }

/* ---- 7e. Per-page-type chrome -------------------------------- */

/* Lede paragraph + meta-row (used by MPEP / FAQ / book templates) */
.bi-ref-lede,
.bi-ref-lede p {
	font-family: var(--sans); font-size: 18.5px; line-height: 1.55;
	color: var(--ink-soft); margin: 0 0 28px;
}
.bi-meta-row {
	margin: 0 0 28px;
	padding: 18px 0; border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair);
	font-family: var(--mono); font-size: 12px; color: var(--muted);
	display: flex; gap: 28px; flex-wrap: wrap;
}
.bi-meta-row strong { font-weight: 500; color: var(--ink-soft); }
.bi-meta-row a { color: var(--ink-soft); border-bottom: none; }
.bi-meta-row a:hover { color: var(--steel); }
.bi-meta-row .wp-block-post-date,
.bi-meta-row .bi-meta-date { color: var(--muted); }

.bi-disclaimer-line {
	font-family: var(--sans); font-size: 14.5px; line-height: 1.6;
	color: var(--muted); margin: 24px 0 32px;
	padding: 14px 18px; background: var(--paper-deep);
	border-left: 3px solid var(--hair); border-radius: 2px; font-style: italic;
}
.bi-disclaimer-line em { font-style: normal; color: var(--ink-soft); font-weight: 500; }

/* H2 sub-text (count line under MPEP H2s) */
.bi-ref-article .h2-sub,
.bi-ref-article h2 + p.h2-sub {
	font-family: var(--mono); font-size: 12px; color: var(--muted);
	margin: 0 0 24px; letter-spacing: 0.04em;
}

/* FAQ-specific: rules-list with tag chips */
.bi-rules-list { list-style: none; padding: 0; margin: 0; }
.bi-rules-list li {
	padding: 16px 0; border-bottom: 1px solid var(--hair);
	display: grid; grid-template-columns: 1fr 100px 110px;
	gap: 16px; align-items: baseline;
}
.bi-rules-list li:first-child { border-top: 1px solid var(--hair); }
.bi-rules-list .rule-title {
	font-family: var(--sans); font-size: 15.5px; color: var(--ink);
	font-weight: 500; line-height: 1.4;
}
.bi-rules-list .rule-title a { color: var(--ink); border-bottom: none; }
.bi-rules-list .rule-title a:hover { color: var(--steel); }
.bi-rules-list .mpep-ref {
	font-family: var(--mono); font-size: 11px; color: var(--muted);
	letter-spacing: 0.06em; text-align: right;
}
.bi-rules-list .mpep-ref a { color: var(--muted); border-bottom: none; }
.bi-rules-list .mpep-ref a:hover { color: var(--steel); }
.bi-rules-list .tag {
	justify-self: end;
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
	text-transform: uppercase; font-weight: 500;
	padding: 3px 10px; border: 1px solid var(--hair); border-radius: 1px;
}
.bi-rules-list .tag.required { color: var(--steel); border-color: rgba(15, 31, 77, 0.4); }
.bi-rules-list .tag.recommended { color: var(--ink-soft); border-color: var(--hair); }
.bi-rules-list .tag.permitted { color: var(--ink-soft); border-color: var(--hair); }
.bi-rules-list .tag.none { visibility: hidden; }

/* Related FAQs list — question-mark prefixed */
.bi-related-faqs-list { list-style: none; padding: 0; margin: 0; }
.bi-related-faqs-list li {
	padding: 14px 0; border-bottom: 1px solid var(--hair);
	display: grid; grid-template-columns: 24px 1fr;
	gap: 10px; align-items: baseline;
}
.bi-related-faqs-list li:first-child { border-top: 1px solid var(--hair); }
.bi-related-faqs-list li::before {
	content: '?';
	font-family: var(--mono); font-size: 13px; color: var(--steel); font-weight: 500;
}
.bi-related-faqs-list li a {
	color: var(--ink); border-bottom: none;
	font-family: var(--sans); font-size: 15.5px; line-height: 1.45;
}
.bi-related-faqs-list li a:hover { color: var(--steel); }

/* FAQ topics + tags chip rows */
.bi-topics-tags {
	margin-top: 48px; padding-top: 28px;
	border-top: 1px solid var(--hair);
	display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
}
.bi-topics-tags .col h4 {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--muted);
	margin: 0 0 12px; font-weight: 500;
}
.bi-topics-tags .chips { display: flex; flex-wrap: wrap; gap: 6px; }
.bi-topics-tags .chip {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em;
	color: var(--ink-soft); padding: 4px 10px;
	border: 1px solid var(--hair); border-radius: 1px;
}
.bi-topics-tags .chip a { color: var(--ink-soft); border-bottom: none; }
.bi-topics-tags .chip:hover { border-color: var(--steel); }
.bi-topics-tags .chip:hover a { color: var(--steel); }

/* MPEP citations list */
.bi-ref-list { list-style: none; padding: 0; margin: 24px 0; }
.bi-ref-list li {
	padding: 10px 0; border-bottom: 1px solid var(--hair);
	font-size: 15.5px;
	display: flex; justify-content: space-between; gap: 24px;
}
.bi-ref-list li:last-child { border-bottom: none; }
.bi-ref-list .label {
	font-family: var(--mono); font-size: 12px; color: var(--muted); flex-shrink: 0;
}
.bi-ref-list a { color: var(--ink); border-bottom: 1px solid var(--steel); }
.bi-ref-list a:hover { background: var(--steel-tint); }

/* MPEP-Chapter metrics panel — table-style */
.bi-stats-panel { margin: 24px 0 48px; border: 1px solid var(--hair); border-radius: 4px; overflow: hidden; }
.bi-stats-panel table { width: 100%; border-collapse: collapse; font-family: var(--sans); }
.bi-stats-panel thead { background: var(--paper-deep); }
.bi-stats-panel th {
	padding: 12px 18px; text-align: left;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--steel); font-weight: 600;
}
.bi-stats-panel th:last-child { text-align: right; }
.bi-stats-panel td { padding: 14px 18px; border-top: 1px solid var(--hair); font-size: 14.5px; vertical-align: top; }
.bi-stats-panel td.label { color: var(--ink-soft); }
.bi-stats-panel td.value { color: var(--ink); font-weight: 500; }
.bi-stats-panel td.share { text-align: right; font-family: var(--mono); font-size: 12px; color: var(--steel); }
.bi-stats-panel .breakdown { font-family: var(--mono); font-size: 12px; color: var(--muted); margin-top: 4px; }

/* MPEP-Chapter sections list */
.bi-sections-list { list-style: none; padding: 0; margin: 24px 0 48px; }
.bi-sections-list li {
	padding: 14px 0; border-bottom: 1px solid var(--hair);
	display: grid; grid-template-columns: 100px 1fr 60px;
	gap: 16px; align-items: baseline;
}
.bi-sections-list li:first-child { border-top: 1px solid var(--hair); }
.bi-sections-list .section-num {
	font-family: var(--mono); font-size: 13px; color: var(--steel);
	font-weight: 500; letter-spacing: 0.04em;
}
.bi-sections-list .section-title {
	font-family: var(--sans); font-size: 16px; color: var(--ink);
	font-weight: 500; line-height: 1.4;
}
.bi-sections-list .section-title a { color: var(--ink); border-bottom: none; }
.bi-sections-list .section-title a:hover { color: var(--steel); }
.bi-sections-list .rule-count {
	font-family: var(--mono); font-size: 12px; color: var(--muted);
	text-align: right;
}

/* Book chapter — book-mast (cover + meta) */
.bi-book-mast {
	display: grid; grid-template-columns: 200px 1fr; gap: 40px;
	margin: 0 0 36px; padding-bottom: 36px; border-bottom: 1px solid var(--hair);
	align-items: start;
}
.bi-book-mast-cover {
	border-bottom: none; display: block;
	aspect-ratio: 2/3; overflow: hidden; border-radius: 2px;
	box-shadow: 0 8px 24px rgba(13, 26, 30, 0.12), 0 1px 3px rgba(13, 26, 30, 0.08);
}
.bi-book-mast-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bi-book-mast-cover.wp-block-post-featured-image { margin: 0; }
.bi-book-mast-cover .wp-block-post-featured-image__placeholder,
.bi-book-mast-cover:empty {
	background: var(--paper-deep); aspect-ratio: 2/3;
	display: flex; align-items: center; justify-content: center;
	color: var(--muted); font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.12em; text-transform: uppercase;
}
.bi-book-mast-meta { display: flex; flex-direction: column; gap: 14px; }
.bi-book-mast-label {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--steel); font-weight: 600; margin: 0;
}
.bi-book-mast-h1 {
	font-family: var(--sans); font-size: 40px; font-weight: 500;
	letter-spacing: -0.022em; line-height: 1.05; margin: 0; color: var(--ink);
}
.bi-book-mast-h1 .sec { color: var(--steel); font-weight: 400; display: block; font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 4px; }
.bi-book-mast-lede,
.bi-book-mast-lede p {
	font-family: var(--sans); font-size: 18px; line-height: 1.55;
	color: var(--ink-soft); margin: 0;
}
.bi-book-mast-reading {
	margin-top: 8px;
	display: flex; gap: 24px;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--muted); font-weight: 500;
}

/* Book chapter sections list at end of chapter */
.bi-chapter-sections { margin: 64px 0 0; padding-top: 36px; border-top: 1px solid var(--hair); }
.bi-chapter-sections h2 {
	font-family: var(--sans); font-size: 22px; font-weight: 500;
	letter-spacing: -0.008em; margin: 0 0 6px;
	padding-top: 0; border-top: none;
}
.bi-chapter-sections .h2-sub {
	font-family: var(--mono); font-size: 11px; color: var(--muted);
	margin: 0 0 22px; letter-spacing: 0.04em; text-transform: uppercase;
}
.bi-chapter-sections ol { list-style: none; padding: 0; margin: 0; }
.bi-chapter-sections li {
	padding: 18px 0; border-bottom: 1px solid var(--hair);
	display: grid; grid-template-columns: 80px 1fr 24px;
	gap: 20px; align-items: baseline;
}
.bi-chapter-sections li:first-child { border-top: 1px solid var(--hair); }
.bi-chapter-sections li .num {
	font-family: var(--mono); font-size: 13px; color: var(--steel);
	font-weight: 500; letter-spacing: 0.04em;
}
.bi-chapter-sections li .title {
	font-family: var(--sans); font-size: 17px; color: var(--ink);
	font-weight: 500; line-height: 1.4;
}
.bi-chapter-sections li .title a { color: var(--ink); border-bottom: none; }
.bi-chapter-sections li .title a:hover { color: var(--steel); }
.bi-chapter-sections li .arrow { font-family: var(--mono); color: var(--muted); }
.bi-chapter-sections li:hover .arrow { color: var(--steel); }

/* Book chapter end CTA — dark slab */
.bi-chapter-cta {
	margin: 56px 0 0; padding: 28px 32px;
	background: var(--ink); color: var(--paper); border-radius: 2px;
	display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center;
}
.bi-chapter-cta .kicker {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--steel-light); font-weight: 500;
	margin-bottom: 8px;
}
.bi-chapter-cta h3 {
	font-family: var(--sans); font-size: 22px; font-weight: 500;
	margin: 0; letter-spacing: -0.012em; color: var(--paper);
	padding: 0; border: none;
}
.bi-chapter-cta p {
	font-family: var(--sans); font-size: 14.5px; color: rgba(255, 255, 255, 0.78);
	margin: 8px 0 0; max-width: 540px; line-height: 1.5;
}
.bi-chapter-cta .buttons { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.bi-chapter-cta .btn {
	display: inline-flex; align-items: center; padding: 12px 20px;
	font-family: var(--sans); font-size: 13px; font-weight: 500;
	border-radius: 2px; border-bottom: none;
}
.bi-chapter-cta .btn.primary { background: var(--steel); color: var(--paper); }
.bi-chapter-cta .btn.ghost { background: transparent; color: var(--paper); border: 1px solid rgba(255, 255, 255, 0.28); }
.bi-chapter-cta .btn:hover { opacity: 0.92; }

/* ---- 7f. Existing-markup styling for live MPEP / FAQ / book content
 *
 * The live blueironip.com MPEP pages, FAQ pages, and book chapters
 * use specific markup conventions baked into their content (not the
 * Steel design system's classes). These rules style the EXISTING
 * markup directly so no editor action is required on hundreds of
 * pages. Content filters in functions.php §4b transform the heavier
 * patterns (USC/CFR statute blocks, inline B-tag romans) into
 * BlueIron classes; this section catches everything else.
 * ----------------------------------------------------------------- */

/* MPEP container — the wrapper around the whole USPTO-source block */
.bi-mpep .uspto-source-block {
	margin: 32px 0;
	padding: 0;
}
.bi-mpep .uspto-source-block__footer {
	margin: 24px 0 32px;
	padding: 14px 18px;
	background: var(--paper-deep);
	border-left: 3px solid var(--hair);
	border-radius: 2px;
	font-family: var(--mono); font-size: 12px;
	color: var(--muted); letter-spacing: 0.04em;
	font-style: italic; line-height: 1.55;
}

/* Statute / regulation blocks — fallback styles if the content filter
 * didn't transform them (e.g., for editor previews or odd nesting). */
.bi-mpep .USC,
.bi-mpep .CFR {
	margin: 32px 0; padding: 22px 26px;
	background: var(--source-bg); border: 1px solid var(--source-border);
	border-radius: 2px; position: relative;
}
.bi-mpep .USC h4,
.bi-mpep .CFR h4 {
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.08em; color: var(--steel);
	font-weight: 500; text-transform: uppercase;
	margin: 0 0 14px;
	background: transparent; padding: 0; border: none;
}
.bi-mpep .USC h4 i,
.bi-mpep .CFR h4 i { font-style: normal; }
.bi-mpep .USC p,
.bi-mpep .CFR p {
	font-family: var(--serif); font-size: 16px; line-height: 1.7;
	color: var(--ink-soft); margin: 0 0 12px;
}
.bi-mpep .USC p:last-child,
.bi-mpep .CFR p:last-child { margin-bottom: 0; }

/* Roman-numeral subsection headings — output by the content filter */
.bi-mpep .bi-mpep-roman {
	font-family: var(--sans); font-size: 22px; font-weight: 600;
	letter-spacing: -0.014em; line-height: 1.25;
	margin: 40px 0 16px; color: var(--ink);
	scroll-margin-top: 80px;
}
.bi-mpep .bi-mpep-roman .num {
	display: inline-block; min-width: 1.4em;
	font-family: var(--mono); font-weight: 500;
	font-size: 13px; letter-spacing: 0.08em;
	color: var(--steel); margin-right: 4px;
}

/* MPEP page timestamps (e.g., "BlueIron Last Updated: 2026-01-17") */
.bi-mpep .mpep-page-timestamps {
	margin: 36px 0 0; padding-top: 14px;
	border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.06em; color: var(--muted);
}
.bi-mpep .mpep-page-timestamps strong { color: var(--ink-soft); font-weight: 600; }
.bi-mpep .mpep-page-timestamps small { font-size: inherit; }

/* MPEP related-resources block at the bottom of every section */
.bi-mpep .mpep-related-resources {
	margin: 56px 0 0; padding-top: 36px;
	border-top: 1px solid var(--hair);
}
.bi-mpep .mpep-related-resources h3 {
	font-family: var(--sans); font-size: 22px; font-weight: 500;
	letter-spacing: -0.008em; margin: 0 0 8px;
	padding-top: 0; border-top: none;
	color: var(--ink);
}
.bi-mpep .mpep-related-resources p {
	font-family: var(--mono); font-size: 11px; color: var(--muted);
	letter-spacing: 0.04em; margin: 0 0 22px; text-transform: uppercase;
}
.bi-mpep .mpep-related-resources ul { list-style: none; padding: 0; margin: 0; }
.bi-mpep .mpep-related-resources li {
	padding: 14px 0; border-bottom: 1px solid var(--hair);
	font-family: var(--sans); font-size: 15.5px; line-height: 1.5;
}
.bi-mpep .mpep-related-resources li:last-child { border-bottom: none; }
.bi-mpep .mpep-related-resources li a {
	color: var(--ink); border-bottom: none; font-weight: 500;
}
.bi-mpep .mpep-related-resources li a:hover { color: var(--steel); }

/* Reset H4 globally inside MPEP context — many were typeset as inline labels */
.bi-mpep .bi-ref-article h4 {
	font-family: var(--sans); font-size: 16px; font-weight: 600;
	color: var(--ink); margin: 24px 0 8px;
}

/* Style lists inside MPEP body */
.bi-mpep .bi-ref-article ul,
.bi-mpep .bi-ref-article ol {
	margin: 16px 0; padding-left: 24px;
}
.bi-mpep .bi-ref-article li {
	margin: 0 0 10px; line-height: 1.65;
}
.bi-mpep .bi-ref-article ul.nobull,
.bi-mpep .bi-ref-article li.nobull {
	list-style: none;
}

/* MPEP body paragraph baseline */
.bi-mpep .bi-ref-article {
	font-family: var(--sans); font-size: 17px;
	line-height: 1.7; color: var(--ink);
}
.bi-mpep .bi-ref-article p {
	margin: 0 0 20px; color: var(--ink);
}
.bi-mpep .bi-ref-article a {
	color: var(--steel-deep);
	border-bottom: 1px solid rgba(15, 31, 77, 0.4);
}
.bi-mpep .bi-ref-article a:hover {
	background: var(--steel-tint);
}
.bi-mpep .bi-ref-article b,
.bi-mpep .bi-ref-article strong { color: var(--ink); font-weight: 600; }
.bi-mpep .bi-ref-article i,
.bi-mpep .bi-ref-article em { font-style: italic; color: var(--ink); }

/* FAQ — neutralize the Ultimate FAQ plugin's inline navy CTA box */
.bi-faq .faq-cta-box,
.bi-page .faq-cta-box {
	background: var(--ink) !important;
	border-radius: 6px !important;
	box-shadow: none !important;
	padding: 24px 28px !important;
	margin: 32px 0 !important;
	text-align: left !important;
}
.bi-faq .faq-cta-box p,
.bi-page .faq-cta-box p {
	color: var(--paper) !important; font-family: var(--sans) !important;
	font-size: 17px !important; line-height: 1.5 !important;
	font-weight: 500 !important; margin: 0 0 16px !important;
}
.bi-faq .faq-cta-box .btn-cta,
.bi-page .faq-cta-box .btn-cta {
	background: var(--steel) !important; color: var(--paper) !important;
	font-family: var(--sans) !important; font-size: 13px !important;
	font-weight: 600 !important; padding: 12px 22px !important;
	border-radius: 4px !important; text-decoration: none !important;
	display: inline-flex !important; align-items: center !important;
}
.bi-faq .faq-cta-box .btn-cta:hover,
.bi-page .faq-cta-box .btn-cta:hover {
	background: var(--steel-deep) !important; opacity: 1 !important;
}

/* Book chapter — book-prev-next-nav (from live book content) */
.bi-book .book-prev-next-nav,
.bi-book-overview .book-prev-next-nav {
	margin: 32px 0; padding: 18px 0;
	border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair);
	display: flex; justify-content: space-between; gap: 16px;
	font-family: var(--mono); font-size: 12px;
}
.bi-book .book-prev-next-nav a,
.bi-book-overview .book-prev-next-nav a {
	color: var(--ink-soft); border-bottom: none;
}
.bi-book .book-prev-next-nav a:hover,
.bi-book-overview .book-prev-next-nav a:hover { color: var(--steel); }

/* ---- 7g. Auto-styled per-page-type chrome (opt-in by editor wrap) */

/* MPEP-Chapter related guides */
.bi-related-block { margin-top: 64px; padding-top: 36px; border-top: 1px solid var(--hair); }
.bi-related-block h3 {
	font-family: var(--sans); font-size: 22px; font-weight: 500;
	letter-spacing: -0.008em; margin: 0 0 8px;
	padding-top: 0; border-top: none;
}
.bi-related-block .h3-sub {
	font-family: var(--mono); font-size: 11px; color: var(--muted);
	letter-spacing: 0.04em; margin: 0 0 22px; text-transform: uppercase;
}
.bi-related-block ul { list-style: none; padding: 0; margin: 0; }
.bi-related-block li {
	padding: 14px 0; border-bottom: 1px solid var(--hair);
	display: grid; gap: 6px;
}
.bi-related-block li:last-child { border-bottom: none; }
.bi-related-block li a {
	color: var(--ink); border-bottom: none;
	font-family: var(--sans); font-weight: 500; font-size: 16px; line-height: 1.4;
}
.bi-related-block li a:hover { color: var(--steel); }
.bi-related-block li .desc {
	font-family: var(--sans); font-size: 14.5px;
	color: var(--ink-soft); line-height: 1.5;
}

/* ---- 7g. Custom MPEP page-header + USPTO-source plugin blocks ---- *
 * The live site has a custom plugin (the original `blueiron-2026`
 * theme or a sibling plugin) that registers two blocks the editor
 * places inside MPEP page content:
 *
 *   .wp-block-blueiron-mpep-page-header — breadcrumbs, title with
 *      section number, source strip with date + authority badges,
 *      and a prev/next pager.
 *   .wp-block-blueiron-uspto-html — wraps verbatim USPTO text in a
 *      collapsible source-quote chrome with title, attribution,
 *      and Show/Hide toggle button.
 *
 * The theme didn't ship CSS for these so they rendered as raw
 * concatenated text ("1068 Rules615 Verbatim"). These rules
 * style them in Steel.
 * ----------------------------------------------------------------- */

/* When the custom MPEP header block is present in post_content,
 * hide my template's duplicate <h1> (.bi-ref-h1) and the
 * .bi-meta-row that says "Source: USPTO MPEP". The plugin block
 * provides its own.
 */
.bi-mpep:has(.wp-block-blueiron-mpep-page-header) .bi-ref-article > h1.bi-ref-h1,
.bi-mpep:has(.wp-block-blueiron-mpep-page-header) .bi-ref-article > .bi-meta-row {
	display: none;
}

/* Custom MPEP page header block */
.wp-block-blueiron-mpep-page-header,
.mpep-page-header {
	margin: 0 0 32px;
	padding: 0 0 20px;
	border-bottom: 1px solid var(--hair);
}
.mpep-page-header__breadcrumbs {
	font-family: var(--mono); font-size: 12px; color: var(--muted);
	letter-spacing: 0.04em; margin: 0 0 18px;
	display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
}
.mpep-page-header__breadcrumbs .breadcrumb-link {
	color: var(--muted); border-bottom: none;
}
.mpep-page-header__breadcrumbs .breadcrumb-link:hover { color: var(--steel); }
.mpep-page-header__breadcrumbs .breadcrumb-sep { color: var(--hair); opacity: 0.8; }
.mpep-page-header__breadcrumbs .breadcrumb-current { color: var(--ink-soft); font-weight: 500; }

.mpep-page-header__pager {
	margin-left: auto;
	display: inline-flex; gap: 12px; align-items: center;
}
.mpep-page-header__pager-link {
	color: var(--ink-soft); border-bottom: 1px solid transparent;
	padding: 4px 0;
}
.mpep-page-header__pager-link:hover { color: var(--steel); border-bottom-color: var(--steel); }
.mpep-page-header__pager-link.mpep-page-header__pager-prev::before,
.mpep-page-header__pager-link.mpep-page-header__pager-next::after { color: var(--muted); }

.mpep-page-header__title-block { margin: 0 0 20px; }
.mpep-page-header__title {
	font-family: var(--sans); font-size: 36px; font-weight: 500;
	letter-spacing: -0.012em; line-height: 1.18;
	margin: 0; color: var(--ink);
}
.mpep-page-header__title .section-number {
	color: var(--steel); font-weight: 400;
}

.mpep-page-header__source-strip {
	display: flex; flex-wrap: wrap; gap: 24px 32px; align-items: center;
	padding-top: 14px; border-top: 1px solid var(--hair);
	font-family: var(--mono); font-size: 12px;
}
.source-strip__dates {
	display: flex; flex-wrap: wrap; gap: 16px 24px;
	color: var(--muted); letter-spacing: 0.04em;
}
.source-strip__dates .source-date strong {
	font-weight: 500; color: var(--ink-soft);
}
.source-strip__authorities {
	display: flex; flex-wrap: wrap; gap: 8px;
	margin-left: auto;
}
.source-strip__authorities .authority-badge,
.authority-badge {
	display: inline-flex; align-items: center;
	padding: 4px 10px;
	background: var(--paper);
	border: 1px solid var(--hair);
	border-radius: 1px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.06em; color: var(--steel);
	font-weight: 500; border-bottom: 1px solid var(--hair);
	white-space: nowrap;
}
.authority-badge:hover { border-color: var(--steel); background: var(--steel-tint); }
.authority-badge--citation { color: var(--steel-deep); }
.authority-badge--usc { color: var(--steel); }

/* MPEP guidance callout — the disclaimer paragraph after the header */
.mpep-guidance-callout {
	font-family: var(--sans); font-size: 14.5px; line-height: 1.6;
	color: var(--muted); margin: 24px 0 32px;
	padding: 14px 18px; background: var(--paper-deep);
	border-left: 3px solid var(--hair); border-radius: 2px; font-style: italic;
}

/* USPTO source HTML block — collapsible verbatim text container */
.wp-block-blueiron-uspto-html,
section.uspto-source-block {
	margin: 32px 0;
	background: var(--source-bg);
	border: 1px solid var(--source-border);
	border-radius: 2px;
	position: relative;
}
.uspto-source-block__header {
	padding: 16px 22px;
	border-bottom: 1px solid var(--source-border);
	display: flex; flex-wrap: wrap; align-items: baseline;
	gap: 12px 24px;
}
.uspto-source-block__title {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em;
	color: var(--steel); font-weight: 500;
	text-transform: uppercase; margin: 0;
	padding: 0; border: none;
}
.uspto-source-block__attribution {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em;
	color: var(--muted);
}
.uspto-source-block__attribution a { color: var(--steel); border-bottom: 1px solid currentColor; }
.uspto-source-block__attribution small { font-size: 10px; color: var(--muted); display: block; margin-top: 2px; }
.uspto-source-block__toggle {
	margin-left: auto;
	background: transparent; border: 1px solid var(--hair);
	padding: 4px 12px; border-radius: 2px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.06em; color: var(--steel);
	cursor: pointer; font-weight: 500;
}
.uspto-source-block__toggle:hover { background: var(--paper); border-color: var(--steel); }
.uspto-source-block__content {
	padding: 18px 22px;
	font-family: var(--serif); font-size: 15.5px; line-height: 1.7;
	color: var(--ink-soft);
}
.uspto-source-block__content p,
.uspto-source-block__content li {
	font-family: var(--serif); color: var(--ink-soft);
}
.uspto-source-block__content h1,
.uspto-source-block__content .page-title {
	font-family: var(--sans); font-size: 17px; font-weight: 600;
	color: var(--ink); margin: 0 0 16px;
	padding: 0; border: none;
}
.uspto-source-block__content .Section { padding: 0; margin: 0; }
.uspto-source-block__content ul[style*="list-style-type"] {
	list-style: none; padding-left: 0;
}
.uspto-source-block__content ul > li {
	padding: 6px 0 6px 32px;
	position: relative;
}
.uspto-source-block__content ul > li.nobull::before { content: ''; }

/* Display-group block — collapsible "Topic" group containing rule cards.
 * Markup: .wp-block-blueiron-display-group > .display-group__header
 *   > .display-group__header-left (badge + h3 title)
 *   > .display-group__header-right (rules count + Collapse button)
 * > .display-group__content (rule cards inside).
 */
.wp-block-blueiron-display-group,
section.display-group {
	margin: 40px 0 24px;
	border-top: 1px solid var(--hair);
	padding-top: 24px;
}
.display-group__header {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: 16px 24px;
	margin: 0 0 18px;
}
.display-group__header-left {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: 12px;
}
.display-group__header-right {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: 12px;
	margin-left: auto;
}
.display-group__badge {
	display: inline-flex; align-items: center;
	padding: 3px 10px;
	background: var(--steel-tint); color: var(--steel-deep);
	border-radius: 1px;
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600;
}
.display-group__title {
	font-family: var(--sans); font-size: 22px; font-weight: 600;
	letter-spacing: -0.014em; line-height: 1.25;
	margin: 0; color: var(--ink);
}
.display-group__count {
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.06em; color: var(--muted);
}
.display-group__toggle {
	background: transparent; border: 1px solid var(--hair);
	padding: 4px 12px; border-radius: 2px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.06em; color: var(--ink-soft);
	cursor: pointer; font-weight: 500;
}
.display-group__toggle:hover { border-color: var(--steel); color: var(--steel); }
.display-group__content { display: grid; gap: 24px; }

/* Rule-card block — individual rule within a display-group.
 * Markup: .wp-block-blueiron-rule-card > .rule-card__nav
 *   > .rule-header > .rule-header-left (3 badges) + .rule-header-right ([id])
 *   > .rule-title
 *   > .condition-box > .condition-label + .condition-text
 *   > .rule-text > <blockquote> > .rule-nucleus + (.rule-components)
 *   > .source > .source-text > .source-row .source-left + .topic-primary + .source-row .topic-secondary…
 */
.wp-block-blueiron-rule-card,
div.rule-card {
	background: var(--paper);
	border: 1px solid var(--hair);
	border-top: 3px solid var(--steel);
	border-radius: 4px;
	padding: 22px 26px;
	display: flex; flex-direction: column; gap: 16px;
}
div.rule-card.statutory { border-top-color: var(--steel-deep); }

.rule-card__nav {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: 12px 24px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.06em; color: var(--muted);
	padding-bottom: 12px; border-bottom: 1px solid var(--hair);
	margin: -6px 0 0;
}
.rule-card__nav-back {
	color: var(--ink-soft); border-bottom: 1px solid transparent;
}
.rule-card__nav-back:hover { color: var(--steel); border-bottom-color: var(--steel); }
.rule-card__nav-siblings {
	display: inline-flex; align-items: center; gap: 12px;
	margin-left: auto;
}
.rule-card__nav-prev,
.rule-card__nav-next {
	color: var(--ink-soft); border-bottom: 1px solid transparent;
	padding: 2px 6px;
}
.rule-card__nav-prev:hover,
.rule-card__nav-next:hover { color: var(--steel); border-bottom-color: var(--steel); }
.rule-card__nav-prev.is-disabled,
.rule-card__nav-next.is-disabled { color: var(--hair); cursor: not-allowed; }
.rule-card__nav-position { color: var(--muted); }

.rule-header {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: 12px 24px;
}
.rule-header-left {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: 8px;
}
.rule-header-right {
	margin-left: auto;
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.04em; color: var(--muted);
}
.rule-id {
	font-family: var(--mono); font-size: 10px; color: var(--muted);
	letter-spacing: 0.04em; word-break: break-all;
}
.rule-badge,
.hedge-badge {
	display: inline-flex; align-items: center;
	padding: 3px 10px;
	border: 1px solid var(--hair);
	border-radius: 1px;
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600;
	color: var(--ink-soft); background: var(--paper);
	line-height: 1.4;
}
.rule-badge.badge-statutory,
.rule-badge--statutory { color: var(--steel-deep); border-color: rgba(15, 31, 77, 0.4); background: var(--steel-tint); }
.rule-badge--informative { color: var(--ink-soft); border-color: var(--hair); }
.hedge-badge.hedge-absolute,
.hedge-badge--absolute { color: var(--steel); border-color: rgba(30, 58, 138, 0.3); }

.rule-title {
	font-family: var(--sans); font-size: 19px; font-weight: 600;
	letter-spacing: -0.012em; line-height: 1.3;
	margin: 0; color: var(--ink);
}

.condition-box {
	background: var(--paper-deep);
	border-left: 3px solid var(--hair);
	border-radius: 2px;
	padding: 14px 18px;
}
.condition-label {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--muted);
	font-weight: 600; margin: 0 0 6px;
}
.condition-text {
	font-family: var(--sans); font-style: italic;
	font-size: 15.5px; line-height: 1.55;
	color: var(--ink-soft); margin: 0;
}

.rule-text {
	background: var(--source-bg);
	border: 1px solid var(--source-border);
	border-radius: 2px;
	padding: 18px 22px;
}
.rule-text blockquote {
	margin: 0; padding: 0; border: none; background: none;
	font-family: var(--serif); font-size: 16px; line-height: 1.7;
	color: var(--ink); font-weight: 400; letter-spacing: 0;
}
.rule-text blockquote p { margin: 0 0 12px; font-family: inherit; }
.rule-text blockquote p:last-child { margin: 0; }
.rule-nucleus {
	font-family: var(--serif); font-weight: 600; color: var(--ink);
}
.rule-text a { color: var(--steel-deep); border-bottom: 1px solid rgba(15, 31, 77, 0.4); }
.rule-text a:hover { background: rgba(15, 31, 77, 0.08); }
.rule-components {
	list-style: none; padding: 0; margin: 12px 0 0;
}
.rule-components li {
	padding: 6px 0 6px 16px; position: relative;
	font-family: var(--serif); font-size: 15.5px; line-height: 1.65;
	color: var(--ink);
}
.rule-components li::before {
	content: '·'; position: absolute; left: 0; color: var(--steel);
	font-weight: 700;
}

.source {
	padding-top: 14px;
	border-top: 1px solid var(--hair);
}
.source-text {
	display: flex; flex-direction: column; gap: 6px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.04em; color: var(--muted);
}
.source-row {
	display: flex; flex-wrap: wrap; align-items: baseline;
	gap: 8px 16px;
}
.source-row--main { color: var(--ink-soft); }
.source-row--secondary { color: var(--muted); }
.source-left {
	display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 6px;
}
.source-left a {
	color: var(--steel); border-bottom: 1px solid transparent;
}
.source-left a:hover { border-bottom-color: var(--steel); }
.topic-primary {
	color: var(--steel); font-weight: 500;
	margin-left: auto;
	padding-left: 12px;
}
.topic-secondary {
	color: var(--muted);
	padding: 2px 8px;
	border: 1px solid var(--hair);
	border-radius: 1px;
	font-size: 10px;
}

/* MPEP summary / key-obligations / practice-notes pattern.
 * Pages styled this way have plain wp-block-paragraph with <strong>
 * labels and wp-block-list bullets following each label paragraph.
 * Style the H2 + label-paragraph + bullet-list trio.
 */
.bi-mpep .bi-ref-article h2 + p,
.bi-mpep .bi-ref-article h2 + .wp-block-paragraph {
	margin-top: 8px;
}
.bi-mpep .bi-ref-article .wp-block-paragraph > strong {
	display: block;
	margin: 24px 0 8px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--steel); font-weight: 600;
}
.bi-mpep .bi-ref-article ul.wp-block-list {
	margin: 0 0 24px; padding-left: 22px;
}
.bi-mpep .bi-ref-article ul.wp-block-list li {
	margin: 6px 0; line-height: 1.65;
	color: var(--ink); font-size: 17px;
}
.bi-mpep .bi-ref-article ul.wp-block-list li::marker {
	color: var(--steel);
}

/* ---- 7h. Design-reference class aliases -------------------------- *
 * The design handoff HTML references (design_handoff/pages/*.html)
 * use unprefixed class names: .pull, .aside-box, .footnotes, .fn,
 * .endmark, .one-liner, .statute, .reproduction-notice, .answer-card,
 * .mpep-quote, .rules-list, .related-faqs-list, .topics-tags, .chip,
 * .book-mast, .book-cover, .meta-side, .reading-time, .chapter-body,
 * .chapter-sections, .chapter-cta, .h2-sub, .disclaimer.
 *
 * The theme's canonical classes are `bi-` prefixed. Editors who paste
 * the design reference snippets into a Custom HTML block need the
 * unprefixed names to render the same way. This block aliases the two.
 * Inside .bi-article (blog) or .bi-ref-article (MPEP / FAQ / book).
 * ----------------------------------------------------------------- */

/* Pull-quote alias */
.bi-article .pull,
.bi-ref-article .pull {
	margin: 48px 0; padding: 28px 0 28px 32px;
	border-left: 3px solid var(--steel);
	font-family: var(--sans); font-weight: 600;
	font-size: 26px; line-height: 1.28; letter-spacing: -0.014em;
	color: var(--ink); text-wrap: balance;
}
.bi-article .pull em,
.bi-ref-article .pull em { color: var(--steel); font-style: italic; font-weight: 600; }
.bi-article .pull .attrib,
.bi-ref-article .pull .attrib {
	display: block; margin-top: 18px;
	font-family: var(--mono); font-style: normal;
	font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--muted); font-weight: 500;
}

/* Aside-box alias */
.bi-article .aside-box,
.bi-ref-article .aside-box {
	margin: 44px 0; padding: 28px 32px;
	background: var(--steel-tint); border: 1px solid rgba(15, 31, 77, 0.18);
	border-left: 4px solid var(--steel); border-radius: 6px;
}
.bi-article .aside-box .kicker,
.bi-ref-article .aside-box .kicker {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--steel-deep);
	margin-bottom: 12px; font-weight: 600;
}
.bi-article .aside-box p,
.bi-ref-article .aside-box p {
	font-family: var(--sans); font-size: 16px; line-height: 1.65;
	margin: 0; color: var(--ink);
}
.bi-article .aside-box p + p,
.bi-ref-article .aside-box p + p { margin-top: 14px; }

/* Endmark alias */
.bi-article .endmark,
.bi-ref-article .endmark {
	display: inline-block; margin-left: 8px;
	width: 10px; height: 10px;
	background: var(--steel); border-radius: 50%;
	vertical-align: middle;
}

/* Footnote-ref alias (.fn on a link) — already in §7b but reinforced here */
.bi-article .fn,
.bi-article a.fn,
.bi-ref-article .fn,
.bi-ref-article a.fn {
	font-family: var(--mono); font-size: 11px;
	vertical-align: super; line-height: 0;
	color: var(--steel); margin-left: 2px;
	border-bottom: none; font-weight: 600;
}
.bi-article a.fn::before,
.bi-ref-article a.fn::before { content: '['; }
.bi-article a.fn::after,
.bi-ref-article a.fn::after { content: ']'; }

/* Footnotes list alias */
.bi-article .footnotes,
.bi-ref-article .footnotes {
	margin-top: 72px; padding-top: 32px;
	border-top: 1px solid var(--hair);
	font-family: var(--sans); font-size: 15px; line-height: 1.6;
	color: var(--ink-soft);
}
.bi-article .footnotes .kicker,
.bi-ref-article .footnotes .kicker {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--steel);
	margin-bottom: 20px; font-weight: 600;
}
.bi-article .footnotes ol,
.bi-ref-article .footnotes ol { padding-left: 24px; margin: 0; }
.bi-article .footnotes li,
.bi-ref-article .footnotes li { margin-bottom: 12px; }
.bi-article .footnotes li::marker,
.bi-ref-article .footnotes li::marker { color: var(--steel); font-family: var(--mono); font-size: 13px; font-weight: 600; }

/* One-liner section mark alias (book chapter) */
.bi-article .one-liner,
.bi-ref-article .one-liner {
	margin: 40px 0 24px;
	padding: 18px 0 0;
	border-top: 2px solid var(--ink);
	font-family: var(--sans); font-size: 22px; font-weight: 500;
	letter-spacing: -0.014em; line-height: 1.3; color: var(--ink);
	max-width: 580px;
}
.bi-article .one-liner em,
.bi-ref-article .one-liner em { font-style: italic; color: var(--steel); font-weight: 500; }

/* Statute box alias (MPEP — VERBATIM chrome) */
.bi-ref-article .statute,
.bi-article .statute {
	margin: 32px 0; padding: 22px 24px 18px;
	background: var(--source-bg);
	border: 1px solid var(--source-border);
	border-radius: 1px; position: relative;
}
.bi-ref-article .statute .label,
.bi-article .statute .label {
	position: absolute; top: -9px; left: 18px;
	background: var(--paper); padding: 0 8px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.06em; color: var(--steel);
	font-weight: 500;
}
.bi-ref-article .statute p,
.bi-article .statute p {
	font-family: var(--serif); font-size: 15.5px; line-height: 1.7;
	color: var(--ink-soft); margin: 8px 0;
}
.bi-ref-article .statute p:first-of-type,
.bi-article .statute p:first-of-type { margin-top: 4px; }
.bi-ref-article .statute p:last-of-type,
.bi-article .statute p:last-of-type { margin-bottom: 0; }

/* Rule article alias — already in §7d but unprefixed */
.bi-ref-article .rule,
.bi-article .rule {
	padding: 28px 0 32px;
	border-bottom: 1px solid var(--hair);
	scroll-margin-top: 64px;
}
.bi-ref-article .rule h3,
.bi-article .rule h3 {
	font-family: var(--sans); font-size: 14px; font-weight: 500;
	letter-spacing: 0.01em; text-transform: uppercase;
	color: var(--muted); line-height: 1.4; margin: 0 0 14px;
}
.bi-ref-article .rule h3 .anchor,
.bi-article .rule h3 .anchor {
	color: var(--steel); border-bottom: none; margin-right: 6px;
}
.bi-ref-article .rule .note,
.bi-article .rule .note {
	font-family: var(--sans); font-style: italic;
	font-size: 17px; font-weight: 400; line-height: 1.55;
	color: var(--ink-soft); letter-spacing: -0.002em;
	margin: 0 0 18px;
}
.bi-ref-article .rule .cite,
.bi-article .rule .cite {
	margin-top: 14px;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em;
	color: var(--muted);
}
.bi-ref-article .rule .cite a,
.bi-article .rule .cite a { color: var(--ink-soft); border-bottom: none; }
.bi-ref-article .rule .cite a:hover,
.bi-article .rule .cite a:hover { color: var(--steel); }

/* Reproduction notice alias */
.bi-ref-article .reproduction-notice,
.bi-article .reproduction-notice {
	background: var(--paper-deep); border-left: 4px solid var(--steel);
	border-radius: 4px; padding: 18px 24px;
	font-family: var(--sans); font-size: 15px; line-height: 1.55;
	color: var(--ink-soft); margin: 0 0 36px;
}
.bi-ref-article .reproduction-notice strong,
.bi-article .reproduction-notice strong { color: var(--ink); font-weight: 600; }
.bi-ref-article .reproduction-notice a,
.bi-article .reproduction-notice a { color: var(--steel-deep); }

/* Answer card alias (FAQ) */
.bi-ref-article .answer-card,
.bi-article .answer-card {
	margin: 32px 0; padding: 28px 32px;
	background: var(--steel-tint);
	border: 1px solid rgba(15, 31, 77, 0.18);
	border-radius: 6px;
}
.bi-ref-article .answer-card .verdict,
.bi-article .answer-card .verdict {
	font-family: var(--sans); font-size: 24px; font-weight: 600;
	line-height: 1.3; margin: 0 0 16px; color: var(--ink); letter-spacing: -0.014em;
}
.bi-ref-article .answer-card .verdict .answer,
.bi-article .answer-card .verdict .answer { color: var(--steel); }
.bi-ref-article .answer-card p,
.bi-article .answer-card p { font-family: var(--sans); font-size: 16px; line-height: 1.65; color: var(--ink); margin: 0 0 12px; }

/* MPEP quote alias (FAQ) */
.bi-ref-article .mpep-quote,
.bi-article .mpep-quote {
	margin: 24px 0; padding: 22px 26px;
	background: var(--source-bg); border: 1px solid var(--source-border);
	border-radius: 2px; position: relative;
}
.bi-ref-article .mpep-quote .label,
.bi-article .mpep-quote .label {
	position: absolute; top: -9px; left: 18px;
	background: var(--paper); padding: 0 8px;
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.08em; color: var(--steel);
	font-weight: 500; text-transform: uppercase;
}
.bi-ref-article .mpep-quote p,
.bi-article .mpep-quote p {
	font-family: var(--serif); font-size: 16px; line-height: 1.7;
	color: var(--ink-soft); margin: 0;
}

/* Rules-list alias (FAQ) */
.bi-ref-article .rules-list,
.bi-article .rules-list { list-style: none; padding: 0; margin: 0; }
.bi-ref-article .rules-list li,
.bi-article .rules-list li {
	padding: 16px 0; border-bottom: 1px solid var(--hair);
	display: grid; grid-template-columns: 1fr 100px 110px;
	gap: 16px; align-items: baseline;
}
.bi-ref-article .rules-list li:first-child,
.bi-article .rules-list li:first-child { border-top: 1px solid var(--hair); }
.bi-ref-article .rules-list .rule-title,
.bi-article .rules-list .rule-title { font-family: var(--sans); font-size: 15.5px; color: var(--ink); font-weight: 500; line-height: 1.4; }
.bi-ref-article .rules-list .mpep-ref,
.bi-article .rules-list .mpep-ref { font-family: var(--mono); font-size: 11px; color: var(--muted); letter-spacing: 0.06em; text-align: right; }
.bi-ref-article .rules-list .tag,
.bi-article .rules-list .tag { justify-self: end; font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 500; padding: 3px 10px; border: 1px solid var(--hair); border-radius: 1px; }
.bi-ref-article .rules-list .tag.required,
.bi-article .rules-list .tag.required { color: var(--steel); border-color: rgba(15, 31, 77, 0.4); }

/* Related-faqs-list alias */
.bi-ref-article .related-faqs-list,
.bi-article .related-faqs-list { list-style: none; padding: 0; margin: 0; }
.bi-ref-article .related-faqs-list li,
.bi-article .related-faqs-list li {
	padding: 14px 0; border-bottom: 1px solid var(--hair);
	display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: baseline;
}
.bi-ref-article .related-faqs-list li::before,
.bi-article .related-faqs-list li::before {
	content: '?'; font-family: var(--mono); font-size: 13px;
	color: var(--steel); font-weight: 500;
}
.bi-ref-article .related-faqs-list li a,
.bi-article .related-faqs-list li a { color: var(--ink); border-bottom: none; font-family: var(--sans); font-size: 15.5px; line-height: 1.45; }

/* Topics + Tags alias */
.bi-ref-article .topics-tags,
.bi-article .topics-tags {
	margin-top: 48px; padding-top: 28px;
	border-top: 1px solid var(--hair);
	display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
}
.bi-ref-article .topics-tags .col h4,
.bi-article .topics-tags .col h4 {
	font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--muted);
	margin: 0 0 12px; font-weight: 500;
}
.bi-ref-article .topics-tags .chips,
.bi-article .topics-tags .chips { display: flex; flex-wrap: wrap; gap: 6px; }
.bi-ref-article .topics-tags .chip,
.bi-article .topics-tags .chip {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em;
	color: var(--ink-soft); padding: 4px 10px;
	border: 1px solid var(--hair); border-radius: 1px;
}

/* Book chapter aliases — book-mast, intro, chapter-sections, chapter-cta */
.bi-ref-article .book-mast,
.bi-article .book-mast {
	display: grid; grid-template-columns: 200px 1fr; gap: 40px;
	margin: 0 0 36px; padding-bottom: 36px;
	border-bottom: 1px solid var(--hair); align-items: start;
}
.bi-ref-article .book-mast .book-cover,
.bi-article .book-mast .book-cover {
	border-bottom: none; display: block;
	aspect-ratio: 2/3; overflow: hidden; border-radius: 2px;
	box-shadow: 0 8px 24px rgba(13, 26, 30, 0.12), 0 1px 3px rgba(13, 26, 30, 0.08);
}
.bi-ref-article .book-mast .book-cover img,
.bi-article .book-mast .book-cover img { width: 100%; height: 100%; object-fit: cover; }
.bi-ref-article .book-mast .meta-side .label,
.bi-article .book-mast .meta-side .label {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--steel); font-weight: 600; margin: 0 0 12px;
}
.bi-ref-article .book-mast h1,
.bi-article .book-mast h1 {
	font-family: var(--sans); font-size: 40px; font-weight: 500;
	letter-spacing: -0.022em; line-height: 1.05; margin: 0; color: var(--ink);
}
.bi-ref-article .book-mast h1 .sec,
.bi-article .book-mast h1 .sec {
	display: block; color: var(--steel); font-weight: 400;
	font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 4px;
}
.bi-ref-article .book-mast .lede,
.bi-article .book-mast .lede {
	font-family: var(--sans); font-size: 18px; line-height: 1.55;
	color: var(--ink-soft); margin: 14px 0 0;
}
.bi-ref-article .book-mast .reading-time,
.bi-article .book-mast .reading-time {
	margin-top: 16px; display: flex; gap: 24px;
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--muted); font-weight: 500;
}

/* Chapter body intro paragraph with drop cap (book chapter) */
.bi-ref-article .chapter-body .intro,
.bi-article .chapter-body .intro {
	font-family: var(--sans); font-size: 19px; line-height: 1.7;
	color: var(--ink); margin: 0 0 24px;
}
.bi-ref-article .chapter-body .intro::first-letter,
.bi-article .chapter-body .intro::first-letter,
.bi-book .bi-ref-article > p:first-of-type::first-letter {
	font-family: var(--sans); font-weight: 700;
	float: left; font-size: 88px; line-height: 0.86;
	padding: 6px 14px 0 0; margin-top: 4px;
	color: var(--steel); letter-spacing: -0.04em;
}

/* Chapter sections list alias */
.bi-ref-article .chapter-sections,
.bi-article .chapter-sections { margin: 64px 0 0; padding-top: 36px; border-top: 1px solid var(--hair); }
.bi-ref-article .chapter-sections h2,
.bi-article .chapter-sections h2 {
	font-family: var(--sans); font-size: 22px; font-weight: 500;
	letter-spacing: -0.008em; margin: 0 0 6px; padding-top: 0; border-top: none;
}
.bi-ref-article .chapter-sections ol,
.bi-article .chapter-sections ol { list-style: none; padding: 0; margin: 0; }
.bi-ref-article .chapter-sections li,
.bi-article .chapter-sections li {
	padding: 18px 0; border-bottom: 1px solid var(--hair);
	display: grid; grid-template-columns: 80px 1fr 24px; gap: 20px; align-items: baseline;
}
.bi-ref-article .chapter-sections li:first-child,
.bi-article .chapter-sections li:first-child { border-top: 1px solid var(--hair); }
.bi-ref-article .chapter-sections li .num,
.bi-article .chapter-sections li .num {
	font-family: var(--mono); font-size: 13px; color: var(--steel);
	font-weight: 500; letter-spacing: 0.04em;
}
.bi-ref-article .chapter-sections li .title,
.bi-article .chapter-sections li .title {
	font-family: var(--sans); font-size: 17px; color: var(--ink);
	font-weight: 500; line-height: 1.4;
}
.bi-ref-article .chapter-sections li .title a,
.bi-article .chapter-sections li .title a { color: var(--ink); border-bottom: none; }
.bi-ref-article .chapter-sections li .arrow,
.bi-article .chapter-sections li .arrow { font-family: var(--mono); color: var(--muted); }

/* Chapter CTA dark slab alias */
.bi-ref-article .chapter-cta,
.bi-article .chapter-cta {
	margin: 56px 0 0; padding: 28px 32px;
	background: var(--ink); color: var(--paper); border-radius: 2px;
	display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center;
}
.bi-ref-article .chapter-cta .kicker,
.bi-article .chapter-cta .kicker {
	font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--steel-light); font-weight: 500;
	margin-bottom: 8px;
}
.bi-ref-article .chapter-cta h3,
.bi-article .chapter-cta h3 {
	font-family: var(--sans); font-size: 22px; font-weight: 500;
	margin: 0; letter-spacing: -0.012em; color: var(--paper);
	padding: 0; border: none;
}
.bi-ref-article .chapter-cta p,
.bi-article .chapter-cta p {
	font-family: var(--sans); font-size: 14.5px;
	color: rgba(255, 255, 255, 0.78); margin: 8px 0 0;
	max-width: 540px; line-height: 1.5;
}
.bi-ref-article .chapter-cta .buttons,
.bi-article .chapter-cta .buttons { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.bi-ref-article .chapter-cta .btn,
.bi-article .chapter-cta .btn {
	display: inline-flex; align-items: center; padding: 12px 20px;
	font-family: var(--sans); font-size: 13px; font-weight: 500;
	border-radius: 2px; border-bottom: none;
}
.bi-ref-article .chapter-cta .btn.primary,
.bi-article .chapter-cta .btn.primary { background: var(--steel); color: var(--paper); }
.bi-ref-article .chapter-cta .btn.ghost,
.bi-article .chapter-cta .btn.ghost { background: transparent; color: var(--paper); border: 1px solid rgba(255, 255, 255, 0.28); }

/* h2-sub alias — count line below MPEP H2s */
.bi-ref-article .h2-sub,
.bi-article .h2-sub {
	font-family: var(--mono); font-size: 12px; color: var(--muted);
	letter-spacing: 0.04em; margin: 0 0 24px;
}

/* Disclaimer alias */
.bi-ref-article .disclaimer,
.bi-article .disclaimer {
	font-family: var(--sans); font-size: 14.5px; line-height: 1.6;
	color: var(--muted); margin: 24px 0;
	padding: 14px 18px; background: var(--paper-deep);
	border-left: 3px solid var(--hair); border-radius: 2px; font-style: italic;
}

/* ---- 8. Utilities ------------------------------------------------ */
.bi-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;
}

/* ---- 9. Responsive overrides ------------------------------------- */
@media (max-width: 1100px) {
	.bi-hero h1   { font-size: 72px; }
	.bi-h2        { font-size: 44px; }
	.bi-thesis h2 { font-size: 64px; }
	.bi-closing h2{ font-size: 56px; }
	.bi-pillar .numeral, .bi-readings .numeral { font-size: 64px; }
	.bi-book-band h2 { font-size: 44px; }
}

@media (max-width: 980px) {
	.bi-single .bi-single-page,
	.bi-ref-wrap {
		grid-template-columns: 1fr;
		gap: 48px;
		padding-left: 32px;
		padding-right: 32px;
	}
	.bi-rail, .bi-outline { position: static; }
	.bi-single .bi-article-mast h1,
	.bi-single .bi-article-h1 { font-size: 56px; }
	.bi-related-grid { grid-template-columns: 1fr; }
	.bi-related-head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.bi-related-head h3 { font-size: 32px; }
	.bi-related { padding: 64px 32px; }
}

@media (max-width: 900px) {
	.bi-hero .inner,
	.bi-pillars,
	.bi-four-q,
	.bi-readings,
	.bi-readings-arg,
	.bi-compare,
	.bi-journal-grid,
	.bi-library-grid,
	.bi-thesis .cards,
	.bi-book-band .inner,
	.bi-principal .layout,
	.bi-closing .cta-grid,
	.bi-stats-band .inner {
		grid-template-columns: 1fr;
	}
	.bi-outcomes .row { grid-template-columns: 48px 1fr; }
	.bi-outcomes .row p { grid-column: 1 / -1; }
	.bi-section { padding: 72px 0; }
	.bi-hero    { padding: 80px 32px; }
	.bi-stats-band, .bi-thesis, .bi-principal, .bi-closing, .bi-book-band { padding-left: 32px; padding-right: 32px; }
	.bi-wrap, .bi-wrap-hero, .bi-wrap-closing { padding: 0 32px; }
	.bi-util, .bi-header, .bi-footer { padding-left: 32px; padding-right: 32px; }
}

@media (max-width: 600px) {
	.bi-hero h1    { font-size: 48px; }
	.bi-h2         { font-size: 32px; }
	.bi-thesis h2  { font-size: 44px; }
	.bi-closing h2 { font-size: 36px; }
	.bi-pillar h3, .bi-book-band h2 { font-size: 28px; }
	.bi-pillar .numeral, .bi-readings .numeral { font-size: 48px; }
	.bi-stats-band .stat .num { font-size: 44px; }
	.bi-principal h3 { font-size: 32px; }
	.bi-header nav { display: none; }
	.bi-footer .row, .bi-footer .cols, .bi-footer .bottom { flex-direction: column; gap: 24px; }
}

/* ================================================================ *
 * Collapsible panel block (wp-block-blueiron-collapsible-panel)
 *
 * Used on FAQ singles ("Other Related FAQs") and MPEP Appendix R
 * pages (Topics / Coverage / Cross-references). Markup is a
 * <section> with a <button class="__summary"> as the header — the
 * whole header is clickable. JS toggles `data-collapsed` between
 * "true" and "false" on the section.
 *
 * Without CSS the title / count / sr-only "Collapse" label ran
 * together (e.g. "4 FAQsCollapse").
 * ================================================================ */
.wp-block-blueiron-collapsible-panel,
.bi-collapsible-panel {
	margin: 32px 0;
	border: 1px solid var(--hair);
	border-radius: 4px;
	background: var(--paper);
	overflow: hidden;
}
.bi-collapsible-panel__header {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--hair);
	background: var(--paper-deep);
}
.bi-collapsible-panel[data-collapsed="true"] .bi-collapsible-panel__header {
	border-bottom: 0;
}
.bi-collapsible-panel__summary {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 20px;
	background: transparent;
	border: 0;
	cursor: pointer;
	text-align: left;
	font: inherit;
	color: inherit;
}
.bi-collapsible-panel__summary:hover {
	background: var(--paper-hi, #e3e3de);
}
.bi-collapsible-panel__summary:focus-visible {
	outline: 2px solid var(--steel);
	outline-offset: -2px;
}
.bi-collapsible-panel__header-left {
	flex: 1 1 auto;
	min-width: 0;
}
.bi-collapsible-panel__title-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
}
.bi-collapsible-panel__title {
	margin: 0;
	font-family: var(--inter, 'Inter', sans-serif);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--ink);
	line-height: 1.3;
}
.bi-collapsible-panel__subtitle {
	margin: 4px 0 0;
	font-size: 13px;
	color: var(--muted);
	line-height: 1.4;
}
.bi-collapsible-panel__subtitle:empty { display: none; }
.bi-collapsible-panel__meta {
	display: inline-flex;
	align-items: center;
	padding: 2px 10px;
	border: 1px solid var(--hair);
	border-radius: 999px;
	background: var(--paper);
	font-family: var(--mono, 'IBM Plex Mono', monospace);
	font-size: 11px;
	font-weight: 500;
	color: var(--ink-soft);
	white-space: nowrap;
	letter-spacing: 0.02em;
}
/* Modifier counts (cross-refs / topics / coverage) — same chip,
   subtle accent color so eyes can scan groups quickly. */
.bi-xref-panel__count    { color: var(--steel); border-color: var(--steel-tint); }
.bi-topics-panel__count  { color: var(--ink-soft); }
.bi-coverage-panel__count { color: var(--steel-deep); border-color: var(--steel-tint); }

/* Visually-hidden "Collapse"/"Expand" label for screen readers —
   the button itself is large and clickable, no caret needed.
   Hide off-screen rather than display:none so SR still reads it. */
.bi-collapsible-panel__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;
}
/* Caret indicator on the right of the summary button. */
.bi-collapsible-panel__summary::after {
	content: "";
	flex: 0 0 auto;
	width: 10px; height: 10px;
	margin-left: 8px;
	border-right: 2px solid var(--ink-soft);
	border-bottom: 2px solid var(--ink-soft);
	transform: rotate(45deg);
	transition: transform 0.15s ease;
}
.bi-collapsible-panel[data-collapsed="true"] .bi-collapsible-panel__summary::after {
	transform: rotate(-45deg);
}
.bi-collapsible-panel__content {
	padding: 20px;
}
.bi-collapsible-panel[data-collapsed="true"] .bi-collapsible-panel__content {
	display: none;
}

/* ================================================================ *
 * Truncate-list block (wp-block-blueiron-truncate-list)
 *
 * Used inside collapsible panels (and inline on MPEP Appendix R
 * topic lists). Shows the first N children (data-visible-count="5")
 * with a "+N more" expand button. JS toggles a class to reveal the
 * hidden tail.
 *
 * The block is a wrapper around a normal <ul> — the actual list
 * styling comes from the WP list block. We just want a clean reset.
 * ================================================================ */
.wp-block-blueiron-truncate-list,
.bi-truncate-list,
.bi-inline-truncate-list {
	margin: 0;
}
.bi-truncate-list__content > ul,
.bi-truncate-list__content > .wp-block-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.bi-truncate-list__content > ul > li,
.bi-truncate-list__content > .wp-block-list > li {
	margin: 0;
	padding: 0;
}
/* Rule-row item — used inside truncate lists (FAQ cross-refs,
   MPEP topic rule lists). Each row is a self-contained link card. */
.bi-rule-row-item {
	display: block;
	margin: 0 0 6px;
}
.bi-rule-row-item:last-child {
	margin-bottom: 0;
}
.bi-rule-row {
	display: flex;
	align-items: baseline;
	gap: 12px;
	padding: 10px 14px;
	border: 1px solid var(--hair);
	border-radius: 4px;
	background: var(--paper);
	transition: border-color 0.15s ease, background 0.15s ease;
}
.bi-rule-row:hover {
	border-color: var(--steel-tint);
	background: var(--steel-tint);
}
.bi-rule-row__link {
	flex: 1 1 auto;
	color: var(--steel);
	text-decoration: none;
	font-weight: 500;
	line-height: 1.4;
}
.bi-rule-row__link:hover {
	text-decoration: underline;
}
/* Inline variant — used in MPEP topic nodes to render the rule list
   without each row becoming a full card. */
.bi-inline-truncate-list .bi-rule-row,
.bi-topics-node__rules .bi-rule-row {
	border: 0;
	background: transparent;
	padding: 4px 0;
}
.bi-inline-truncate-list .bi-rule-row:hover,
.bi-topics-node__rules .bi-rule-row:hover {
	background: transparent;
}

/* Truncate-list peek/expand button — class names vary by JS impl
   but the common pattern is a button at the end of the content area.
   Style any button that lives directly under .bi-truncate-list__content
   the same way. */
.bi-truncate-list__content > button,
.bi-truncate-list > button {
	margin-top: 8px;
	padding: 6px 12px;
	background: transparent;
	border: 1px solid var(--hair);
	border-radius: 4px;
	font: inherit;
	font-size: 13px;
	color: var(--steel);
	cursor: pointer;
}
.bi-truncate-list__content > button:hover,
.bi-truncate-list > button:hover {
	background: var(--steel-tint);
	border-color: var(--steel);
}

/* ================================================================ *
 * Mini-index group count — sometimes used standalone outside a
 * collapsible panel (e.g. "4 sub-sections" on an MPEP index).
 * Same chip styling so the visual language is consistent. */
.mpep-mini-index__group-count {
	display: inline-flex;
	align-items: center;
	padding: 2px 10px;
	border: 1px solid var(--hair);
	border-radius: 999px;
	background: var(--paper);
	font-family: var(--mono, 'IBM Plex Mono', monospace);
	font-size: 11px;
	color: var(--ink-soft);
	white-space: nowrap;
}

/* ================================================================ *
 * Book single template — bi-article-mast inside bi-reference
 *
 * Book pages (overview, chapters, sub-sections, appendices) all
 * use the bi-reference reference-page chrome (article + right rail).
 * The bi-article-mast banner sits above the ref-wrap as a full-
 * width-padded crumb/H1/dek block, aligned with the ref-wrap below
 * it. Without these rules the mast has no horizontal padding (its
 * default is 56px 0 32px) and the H1 runs to the window edges.
 * ================================================================ */
.bi-reference .bi-article-mast {
	max-width: var(--wrap-ref);
	margin: 0 auto;
	padding: 56px 32px 24px;
	border-bottom: 1px solid var(--hair);
}
.bi-reference .bi-article-mast .bi-article-h1 {
	max-width: 760px;
	margin: 0 0 18px;
}
.bi-reference .bi-article-mast .bi-article-dek,
.bi-reference .bi-article-mast .bi-article-dek p {
	max-width: 760px;
	font-size: 20px;
	color: var(--ink-soft);
	line-height: 1.55;
	margin: 0;
}
/* The ref-wrap underneath should start a bit tighter when there's a
   banner above (the banner already provides the top breathing room). */
.bi-reference .bi-article-mast + .bi-ref-wrap {
	padding-top: 40px;
}
