/* GENERATED by book.mjs from book-parts/*.mjs styles exports. Do not edit. */
.start-multisrc .ledger .src { font-size: 6.4pt; letter-spacing: 0.05em; white-space: nowrap; }
/* Move one's steps were capped at 6.2in while the header rule/footer ledger
   run the full sheet measure, leaving a ~1in dead band on the right. Widen
   the step paragraphs (book.css caps .move p at 5.2in) so the block fills
   the actual page measure instead of an arbitrary narrower one. */
.start-wide .move p { max-width: 6.3in; }
/* BRANCH on the Oracle page: the arms carry whole authored paragraphs (the
   mobile route is one long one), so widen the "then" column and settle the
   type — the fork stays dominant, the paragraph stops being a column of soup. */
.start-fork .branch-arm { grid-template-columns: 1.5in 1fr; padding: 9px 0; }
.start-fork .branch-then { font-size: 9pt; line-height: 1.45; }
/* CLOCK on the windows page: four deadlines read as one band across the top,
   not as a 2x2 block that would push the two document columns off the sheet. */
/* The four disconnected clocks became two anchored rulers (T3). Compact them:
   this is the densest sheet the ruler appears on. */
.start-windows .tl { margin: 6px 0 0; }
.start-windows .tl-ruler { height: 31px; }
.start-windows .tl-seg b { font-size: 10.5pt; }
.start-windows .tl-flags { margin-top: 2px; }
.start-windows .win-foot { display: flex; align-items: center; gap: 10px; margin: 5px 0 7px; }
.start-windows .win-foot .stamp { padding: 4px 12px; }

.sp-deadline .stamp { padding: 5px 14px 4px; }
.sp-deadline .stamp .d { display: block; white-space: normal; max-width: 1.6in; text-align: center; line-height: 1.15; }
/* BRANCH, six arms, whole authored paragraphs (the domestic-partner routes run
   long). Give the answer column the room and settle the type so all six forks
   stay on one sheet — the reader finds their own row, they do not read the page. */
.sp-elig .branch-arm { grid-template-columns: 1.35in 1fr; gap: 3px 18px; padding: 7px 0; }
.sp-elig .branch-if { font-size: 9pt; line-height: 1.25; }
.sp-elig .branch-then { font-size: 9pt; line-height: 1.42; }

.care-tight .lead { margin-bottom: 10px; }
.care-tight .menu-item { padding: 13px 0; }
.care-note { margin-top: 4px; }

/* COMPARE — the divergence, hoisted. Two Benefit Facts labels side by side are
   a comparison surface, but they made the reader find the difference. The one
   row the plans actually turn on now sits beside the DO THIS line, at the size
   of the decision it drives. Both figures are sliced from the authored table. */
.care-cmp .cmp-top { display: grid; grid-template-columns: 1fr 2.55in; gap: 0 0.3in; align-items: start; }
.care-cmp .cmp-top .lead { max-width: none; margin-bottom: 12px; }
.care-cmp .diverge { border-top: 4px solid var(--forest); padding-top: 5px; }
.care-cmp .diverge .dl { display: block; font-size: 7.2pt; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-ink); }
.care-cmp .diverge .dg { display: flex; justify-content: space-between; gap: 14px; margin-top: 2px; }
.care-cmp .diverge .dp small { display: block; font-size: 6.4pt; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--grey-ink); }
.care-cmp .diverge .dp b { font-size: 15pt; font-weight: 900; letter-spacing: -.02em; color: var(--forest); font-variant-numeric: tabular-nums; }
.care-cmp .diverge .dn { display: block; font-size: 7.2pt; line-height: 1.35; color: var(--grey-ink); margin-top: 3px; }

/* RECEIPT — the total is the page. The worked example moves to the reading
   side and its bottom line is set at the size of the only number you owe. */
.care-receipt .rgrid { display: grid; grid-template-columns: 2.85in 1fr; gap: 0 0.32in; align-items: start; }
.care-receipt .receipt .rtotal .n { font-size: 25pt; }
.care-receipt .receipt .rh { font-size: 9pt; }
.care-receipt .receipt .rrow { font-size: 9pt; }

/* The source prints preventive care in its own bordered box BELOW the cost
   ladder, deliberately off the $-scale (see this page's honesty row). Keeping
   it inside the ladder implied a sixth rank. It gets its own box here too. */
.care-free { border: 2.5px solid var(--forest); background: var(--white); padding: 9px 12px 10px; margin-top: 12px; }
/* the box reuses the ladder's rung markup, so it needs the rung's own rules —
   .menu-item carries the flex line; the border and padding come off here. */
.care-free .menu-item { padding: 0; border-bottom: 0; }
.care-free .menu-item p { max-width: 5.4in; }

.cplan-plan-h { font-size: 12.5pt; font-weight: 800; color: var(--forest); padding-bottom: 5px; border-bottom: 3px solid var(--forest); margin-bottom: 9px; }
.cplan-group-h { font-size: 10.5pt; font-weight: 800; color: var(--forest); margin: 6px 0 8px; }
.cplan-card { padding-top: 3px; }
.cplan-card p { font-size: 9pt; line-height: 1.6; color: var(--forest-deep); }

.cplan-strip { background: var(--forest-050); padding: 8px 15px; margin-top: 8px; }
.cplan-strip-k { display: block; font-size: 7.2pt; font-weight: 900; letter-spacing: 0.14em; text-transform: uppercase; color: var(--forest-deep); margin-bottom: 4px; }
.cplan-strip p { font-size: 9pt; line-height: 1.45; color: var(--forest-deep); }

.cplan-item { padding: 4px 0; border-bottom: 1px solid var(--rule); font-size: 9pt; line-height: 1.4; color: var(--forest-deep); }
.cplan-item b { color: var(--forest); }
.cplan-item:last-child { border-bottom: none; }

/* ---------- comparison table (the decision page) ----------
   A row reads across, a plan reads down. Nothing here carries meaning by colour
   alone — the plan names are written in the header cells — so it survives the
   black-and-white photocopy this book gets read as. */
/* No caption: the h1 already says "the rows where they split", and the column
   headers already name the plans. A caption here would be the third time. */
.cmp { width: 100%; border-collapse: collapse; }
.cmp thead th {
  text-align: left; vertical-align: bottom; padding: 0 10px 5px 0;
  font-size: 7.2pt; font-weight: 900; letter-spacing: .08em; text-transform: uppercase;
  color: var(--grey-ink); border-bottom: 3px solid var(--forest);
}
/* 4px matches .cplan-item, which sits directly beneath this table */
.cmp tbody th, .cmp tbody td {
  vertical-align: top; padding: 4px 10px 4px 0;
  border-bottom: 1px solid var(--rule); font-size: 9pt; line-height: 1.38;
  color: var(--forest-deep);
}
.cmp thead th:last-child, .cmp tbody td:last-child { padding-right: 0; }
.cmp tbody th { text-align: left; font-weight: 800; color: var(--forest); }
.cmp tbody tr:last-child th, .cmp tbody tr:last-child td { border-bottom: none; }
/* The label column carries the longest single phrase on the page ("Employee
   contributions (premiums)"); at 21% it wrapped to three lines and made a row
   whose answers are one word each the tallest row in the table. */
.cmp .cmp-rk { width: 27%; }
.cmp thead th:not(.cmp-rk) { width: 36.5%; }

/* The shared sentences used to sit BESIDE the difference list in a two-column
   split. The table is full measure, so they now stack under it — two columns
   here gives that height back instead of taking it off the page. */
.cmp-shared { margin-top: 16px; }
.cmp-shared .cplan-group-h { margin: 0 0 6px; }
/* No row rules inside the columns: a border that stops at a column break reads
   as a broken table row, not as a list separator. The gap does the work. */
.cmp-shared .cplan-item { break-inside: avoid; border-bottom: none; padding: 0 0 7px; }
.cmp-shared-list { column-count: 2; column-gap: 0.32in; }

.cplan-legend { display: flex; gap: 16px; margin-bottom: 12px; font-size: 7.2pt; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--grey-ink); }
.cplan-legend i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
.cplan-legend .you { background: var(--chartreuse); }
.cplan-legend .plan { background: var(--forest); }

.cplan-tier { margin-bottom: 15px; }
.cplan-tier-t { font-size: 9pt; font-weight: 700; color: var(--forest); margin-bottom: 4px; }
.cplan-bar { display: flex; height: 28px; border-radius: 3px; overflow: hidden; background: var(--forest-050); }
.cplan-seg { display: flex; align-items: center; justify-content: center; font-size: 7.2pt; font-weight: 800; color: var(--bone); white-space: nowrap; overflow: hidden; padding: 0 3px; }
.cplan-seg-k { font-weight: 900; letter-spacing: .03em; margin-right: 5px; }
.cplan-seg-you { background: var(--pay-you-bg); color: var(--pay-you-ink); }
.cplan-seg-you sup.t { color: var(--pay-you-ink); }
.cplan-seg-plan { background: var(--forest); }
/* the dagger must not vanish on the forest segment — invert it, do not delete it */
.cplan-seg-plan sup.t { color: var(--bone); }
.cplan-seg-blank { background: repeating-linear-gradient(45deg, var(--rule) 0 4px, var(--forest-050) 4px 8px); color: var(--grey-ink); font-weight: 700; font-size: 7.2pt; }
.cplan-oop { display: flex; justify-content: space-between; align-items: baseline; margin-top: 4px; font-size: 8pt; }
.cplan-oop-k { font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--grey-ink); }
.cplan-oop-v { font-weight: 800; color: var(--forest); }
.cplan-oop-v.blank { color: var(--grey-ink); font-weight: 600; font-style: italic; }

.cplan-term { border-top: 3px solid var(--forest); padding-top: 10px; }
/* the glossary under the directory — supporting matter, so it flows in two
   columns and does NOT borrow .dir, which is now the directory archetype. */
.cplan-terms { column-count: 2; column-gap: 0.34in; margin-top: 4px; }
/* these three rows carry a full answer under the key, so the book's default
   two-up directory flow would split a row across the column break. */
.rx-dir .dir { column-count: 1; }
.rx-dir .dir-sub { max-width: 5.1in; }

/* Plan flow: the one-bucket / two-bucket structure the two cards stated in
   prose, drawn. Forest hairline boxes on bone; the merge glyph and the lanes
   that never join ARE the information. Taps are chartreuse — the member's own
   accounts (accent law role 1), each with its written label. */
.pf { margin-top: 6px; }
.pf-inlets { display: flex; gap: 8px; }
.pf-in, .pf-inlets span { flex: 1; text-align: center; font-size: 7.2pt; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--forest); border: 1.5px solid var(--forest); padding: 3px 0; border-radius: 3px; }
.pf-join { width: 56%; height: 8px; margin: 0 auto; border-left: 1.5px solid var(--forest); border-right: 1.5px solid var(--forest); border-bottom: 1.5px solid var(--forest); position: relative; }
.pf-join::after { content: ''; position: absolute; left: 50%; bottom: -8px; height: 8px; border-left: 1.5px solid var(--forest); }
.pf-join + .pf-box { margin-top: 8px; }
.pf-stub { width: 0; height: 8px; margin: 0 auto; border-left: 1.5px solid var(--forest); }
.pf-box { border: 1.5px solid var(--forest); border-radius: 3px; padding: 5px 8px; }
.pf-box b { display: block; font-size: 8pt; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; color: var(--forest); margin-bottom: 1px; }
.pf-box span { display: block; font-size: 7.6pt; line-height: 1.4; color: var(--forest-deep); }
.pf-cap { font-size: 7.6pt; line-height: 1.4; color: var(--grey-ink); margin-bottom: 5px; }
.pf-lanes { display: flex; gap: 8px; align-items: stretch; }
.pf-lane { flex: 1; display: flex; flex-direction: column; }
.pf-lane .pf-box { flex: 1; }
.pf-taps { display: flex; gap: 6px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
.pf-tap { background: var(--pay-you-bg); color: var(--pay-you-ink); font-size: 7.2pt; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 3px; }
.pf-tapcap { font-size: 7.2pt; color: var(--grey-ink); line-height: 1.35; flex: 1; min-width: 1.4in; }

/* paying for the CARE masthead photograph — see book.css .band--photo */
.care-open h1 { margin-bottom: 3px; }
.care-open .standfirst { margin-bottom: 2px; }
.care-open .lead { margin: 0 0 6px; }
.care-open .lead p { line-height: 1.4; }
.care-open .cplan-plan-h { margin-bottom: 7px; padding-bottom: 4px; }
.care-open .cplan-card p { font-size: 9pt; line-height: 1.4; }
.care-open .cplan-strip { padding: 5px 15px; margin-top: 4px; }
.care-open .cplan-strip p { font-size: 8pt; line-height: 1.36; }
.care-open .note { padding: 5px 12px; line-height: 1.4; }
.care-open .also { margin-top: 0; line-height: 1.4; }

.cc-jane { font-size: 9pt; line-height: 1.5; color: var(--grey-ink); max-width: 6.3in; margin: 0 0 14px; padding: 8px 10px 8px 13px; background: var(--forest-050); }
.cc-jane-k { color: var(--forest-deep); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 900; font-size: 7.2pt; }
.cc-example { font-weight: 700; margin-top: 4px; }
.move p.cc-example { color: var(--forest-deep); font-weight: 700; }
.cc-drow { display: grid; grid-template-columns: 1fr 1.08in 1.08in 1.08in; gap: 8px; align-items: baseline; padding: 4px 13px 3px 0; border-top: 1px solid var(--rule); font-size: 8pt; line-height: 1.32; }
.cc-drow.head { border-top: none; padding-top: 0; font-size: 6.4pt; font-weight: 900; text-transform: uppercase; color: var(--forest-deep); }
.cc-dk { font-weight: 700; color: var(--forest-deep); }
.cc-drow.head .cc-dk { font-weight: 900; letter-spacing: 0.05em; }
.cc-dv { text-align: right; font-weight: 800; color: var(--forest); font-variant-numeric: tabular-nums; }
.cc-drow.you .cc-dv { background: var(--pay-you-bg); color: var(--pay-you-ink); padding: 0 4px; margin: 0 -4px; }
.cc-rail { border-top: 2px solid var(--rule); padding-top: 6px; }
.cc-rail h4 { font-size: 8pt; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--forest-deep); margin: 0 0 5px; }
.cc-rail .cc-cap { font-size: 7.2pt; color: var(--grey-ink); line-height: 1.35; }
.cc-rail .cc-lines { background-image: repeating-linear-gradient(to bottom, transparent, transparent 15px, var(--rule) 15px, var(--rule) 16px); }
.cc-rail .cc-lines.sm { height: 48px; }
.cc-rail .cc-lines.lg { height: 96px; }
/* receipt on the left, the ladder that explains it on the right */
.cc-split { display: grid; grid-template-columns: 2.95in 1fr; gap: 0.28in; align-items: start; }
.cc-split .cc-jane { margin-bottom: 9px; max-width: none; padding: 7px 10px; }
.cc-split .governs { margin-top: 14px; }
.cc-split .note { margin-top: 12px; }
.cc-split .move { margin-bottom: 10px; }
.cc-split .move p { font-size: 9pt; line-height: 1.45; }
/* the vision clock rows carry long coverage prose, so the figure has to sit
   tighter than the two-up default in book.css */
.cc-clock .clock-fig { font-size: 15pt; letter-spacing: -0.01em; }
.cc-clock .clock-p { font-size: 8pt; line-height: 1.4; }
.cc-clock .clocks-grid { gap: 11px 24px; margin-top: 8px; }

.money-adv-label {
  font-size: 7.2pt; font-weight: 900; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--forest-deep); margin: 16px 0 6px;
}
.money-adv { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.money-adv-h { font-size: 9pt; font-weight: 800; color: var(--forest); }
.money-adv-p { font-size: 8pt; line-height: 1.45; color: var(--grey-ink); max-width: 6.6in; margin-top: 1px; }

.money-tri-col { display: flex; flex-direction: column; gap: 8px; }
.money-tri-item {
  display: flex; align-items: center; gap: 10px;
  border: 1px solid var(--forest-100); border-radius: 4px; padding: 8px 12px;
}
.money-tri-n {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--forest); color: var(--bone); font-size: 9pt; font-weight: 800;
}
.money-tri-item p { font-size: 9pt; font-weight: 700; color: var(--forest); line-height: 1.3; }

.money-note-block { max-width: 6.2in; }
.money-note-block h3 { font-size: 10.5pt; font-weight: 800; color: var(--forest); margin-bottom: 3px; }
.money-note-block p { font-size: 9pt; line-height: 1.5; color: var(--forest-deep); }

/* Survivor bars: the three payout shares drawn over the one $5,000 base the
   prose names but the old rows never showed. Reuses the grow-bar anatomy;
   fills are FOREST, not chartreuse — this is plan-paid money, nothing here is
   the member's own payment and nothing is due (accent law). The combined bar
   two-tones spouse (forest) vs children (forest-deep); each share also carries
   its written label, so the split survives greyscale. */
.sv-bars .grow-bar-fill { background: var(--forest); }
.sv-bars .grow-bar-fill.sv-children { background: var(--forest-deep); }
.sv-bars .grow-bar-track { display: flex; height: 22px; }
.sv-bars .grow-bar-row { margin-bottom: 9px; }
.sv-bars .grow-bar-label { font-size: 8pt; margin-bottom: 3px; }
.sv-bars .grow-bar-amt { font-size: 10.5pt; min-width: 0.9in; }
.sv-base { font-size: 7.2pt; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--grey-ink); margin: 6px 0 8px; }
.sv-base b { color: var(--forest); }

.prot-rail .h { font-size: 7.2pt; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--forest-deep); margin-bottom: 5px; }
.prot-rail .ln { border-bottom: 1px solid var(--rule); height: 13px; }
/* scoped widen for the elections Benefit Facts panel — full column width, wider value share */
.prot-elect .frow > span:first-child { max-width: 2.5in; }
.prot-elect .frow .v { max-width: 3.9in; }
/* book.css carries two .dir rules — the old card-grid one (column-count:2) and the new
   directory archetype one. A three-record contact list must not split 2/1 across columns,
   so this sheet's directory runs single-column. Scoped, so the dense state directory
   elsewhere in the book keeps its two columns. */
.prot-dir .dir { column-count: 1; }
.prot-pays { display: flex; gap: 10px; align-items: baseline; margin: 16px 0 2px; }
.prot-pays span { font-size: 9pt; line-height: 1.45; color: var(--forest-deep); max-width: 5.2in; }
.cols .prot-pays { margin: 4px 0 0; }
/* This sheet carries a full-bleed photo band, the p.25 section divider AND the fork.
   The fork keeps its rules and its hierarchy; only the row padding is pulled in. */
.prot-why .branch-arm { padding: 7px 0; }
.prot-why .note { padding: 6px 12px; }
.prot-why .standfirst { font-size: 9pt; max-width: 62ch; }
.prot-why .steps-tight .move { margin-bottom: 5px; }

.grow-term { font-variant: small-caps; text-transform: lowercase; letter-spacing: 0.02em; }

.grow-bars-stat { display: flex; align-items: baseline; gap: 8px; margin-bottom: 12px; }
.grow-bars-stat .k { font-size: 7.2pt; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--grey-ink); }
.grow-bars-stat .v { font-size: 10.5pt; font-weight: 900; color: var(--forest); }
.grow-bar-row { margin-bottom: 13px; }
.grow-bar-label { font-size: 9pt; font-weight: 700; color: var(--forest); margin-bottom: 4px; }
.grow-bar-line { display: flex; align-items: center; gap: 10px; }
.grow-bar-track { flex: 1; height: 26px; background: var(--forest-050); border-radius: 3px; overflow: hidden; }
.grow-bar-fill { height: 100%; background: var(--chartreuse); }
.grow-bar-amt { font-size: 12.5pt; font-weight: 900; color: var(--forest); white-space: nowrap; min-width: 1.1in; text-align: right; font-variant-numeric: tabular-nums; }
.grow-bar-sub { font-size: 7.2pt; color: var(--grey-ink); margin-top: 4px; }

.grow-contact { border: 3px solid var(--forest); padding: 14px 16px; background: var(--white); }
.grow-contact-label { font-size: 7.2pt; font-weight: 900; letter-spacing: 0.16em; text-transform: uppercase; color: var(--grey-ink); }
.grow-contact-num { font-size: 19pt; font-weight: 900; color: var(--forest); letter-spacing: -0.01em; margin: 2px 0 8px; font-variant-numeric: tabular-nums; }
.grow-contact-hours { font-size: 8pt; color: var(--grey-ink); line-height: 1.5; border-top: 1px solid var(--rule); padding-top: 8px; margin-bottom: 2px; }
.grow-contact-row { padding: 6px 0; border-top: 1px solid var(--rule); }
.grow-contact-row .k { display: block; font-size: 7.2pt; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--forest-deep); }
.grow-contact-row .v { display: block; font-size: 8pt; color: var(--forest-deep); line-height: 1.4; margin-top: 1px; }

/* book.css defines .dir twice — the old card grid (column-count:2) and the directory
   archetype. A two-record contact list must not split across columns; scoped so the
   dense state directory elsewhere in the book keeps its two columns. */
.grow-dir .dir { column-count: 1; }
.grow-dir .grow-contact-row { border-top: 0; border-bottom: 1px solid var(--rule); }
.grow-edelivery { margin-top: 10px; }
.grow-edelivery-lead { font-size: 8pt; color: var(--grey-ink); margin-bottom: 8px; }
.grow-fees-quote { font-size: 7.2pt; font-style: italic; color: var(--grey-ink); margin: -4px 0 2px; }

.ex-h2 { font-size: 12.5pt; font-weight: 800; color: var(--forest); padding-bottom: 2px; border-bottom: 3px solid var(--forest); margin-bottom: 3px; }
/* ---------- poster field ----------
   Flat forest field, bone knockout, one sentence at display size. Bleeds both
   edges so it reads as a field and not a panel. No shadow, no gradient,
   radius 0, per DIRECTION.md. */
/* Inset figure styles now live in book.css — shared by six sheets. */

.care-poster {
  background: var(--forest); color: var(--bone);
  margin: 14px -0.6in 14px -0.36in;
  padding: 16px 0.6in 18px calc(0.36in + 4px);
}
.care-poster-k { display: block; font-size: 7.2pt; font-weight: 900; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bone-dim); margin-bottom: 6px; }
.care-poster-q { display: block; font-size: 25pt; font-weight: 900; letter-spacing: -0.02em; line-height: 1.06; max-width: 6.1in; }
.care-poster sup.t { color: var(--bone); }

.ex-body { font-size: 9pt; line-height: 1.42; color: var(--forest-deep); margin-top: 5px; }
.ex-body b { color: var(--forest); }
.ex-col { min-width: 0; }
.ex-fact { background: var(--forest-050); padding: 6px 10px 6px 14px; font-size: 9pt; font-weight: 650; line-height: 1.32; color: var(--forest); margin: 5px 0; }
.ex-list { list-style: none; margin-top: 6px; }
.ex-list li { position: relative; padding: 4px 0 4px 15px; font-size: 9pt; line-height: 1.45; color: var(--forest-deep); }
.ex-list li::before { content: ""; position: absolute; left: 0; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--forest); }
.ex-milk { border: 1px solid var(--rule); padding: 6px 10px; background: var(--bone); }
/* The eight Spring Health services used book.css's .dir card grid. The directory
   archetype now also claims .dir, so this grid gets its own class rather than
   inheriting a 4px rule it never asked for. Same two columns, same .dcard rows. */
.ex-svc { column-count: 2; column-gap: 0.34in; }
.ex-svc .dcard { padding: 7px 0 7px; }
/* Session ticks: the containment relation the facts rows state in words —
   8 sessions, of which 2 can convert — drawn once. A hollow centre means
   "can become a medication-management consultation", not a ninth session. */
.ticks { display: flex; align-items: center; gap: 10px; margin: 5px 0 6px; }
.ticks-row { display: flex; gap: 4px; flex: 0 0 auto; }
.tick { width: 16px; height: 16px; border-radius: 3px; background: var(--forest); position: relative; }
.tick--dual::after { content: ''; position: absolute; inset: 4px; border-radius: 1px; background: var(--bone); }
.ticks-cap { font-size: 7.2pt; line-height: 1.4; color: var(--grey-ink); }
.ex-fork .branch-arm { padding: 8px 0; }
.ex-fork .standfirst { font-size: 9pt; max-width: 62ch; }
.ex-clock .clock-fig { font-size: 19pt; }
.ex-clock .clock-unit { font-size: 10.5pt; }

.extras-disclaimer { margin: 2px 0 8px; max-width: 6.5in; }
.extras-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 0.34in; }
.extras-card { break-inside: avoid; padding-bottom: 4px; }
.extras-card.wide { grid-column: 1 / -1; padding-top: 4px; border-top: 1px solid var(--rule); }
.extras-card .extras-h { font-size: 10.5pt; font-weight: 800; color: var(--forest); margin-bottom: 3px; }
.extras-card .p { font-size: 8pt; line-height: 1.45; color: var(--forest-deep); max-width: 5.7in; }
/* dagger marks were escaping their line box at this leading (sup.t sets line-height:0 in
   book.css) and cutting through the line above; scoped fix keeps the paragraph leading
   untouched and just re-seats the mark inside its own line. */
.extras-card .p sup.t { line-height: inherit; vertical-align: 0.35em; }
.extras-nowrap { white-space: nowrap; }
.extras-card .extra { margin: 6px 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
/* The flagged card carries a note the others do not; its own margins pay for
   the line the source-page annotation adds, rather than the page losing air. */
.extras-card.wide .note { margin-top: 4px; padding: 5px 12px; line-height: 1.4; }
.extras-card .extra .x { font-size: 8pt; color: var(--grey-ink); line-height: 1.42; max-width: 4in; }
.extras-gloss { column-count: 2; column-gap: 0.34in; }
.extras-term { break-inside: avoid; padding: 6px 0 7px; border-bottom: 1px solid var(--rule); }
.extras-term .extras-h { font-size: 9pt; font-weight: 800; color: var(--forest); margin-bottom: 2px; }
.extras-term .d { font-size: 8pt; line-height: 1.5; color: var(--forest-deep); }
.extras-gloss-standfirst { max-width: 6.5in; }
/* Gloss bars: the page's declared question drawn once — the same $100 allowed
   amount under a co-payment, under co-insurance, and when a provider balance
   bills. Reuses the cplan-bar segment grammar from the CARE compare sheet;
   .gseg-base is the neutral allowed-amount segment (neither payer role). */
.gbars { margin: 4px 0 4px; }
.gbars .cplan-bar { height: 20px; }
.gbars-cap { font-size: 7.2pt; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--grey-ink); margin-bottom: 4px; }
.gbar { margin: 3px 0; }
.gbar-t { font-size: 8pt; font-weight: 800; color: var(--forest); margin-bottom: 1px; }
.gseg-base { background: var(--forest-050); color: var(--forest); }
.gseg-base sup.t { color: var(--forest); }

.call-dir .dir { column-count: 2; column-gap: 0.3in; border-top: 0; margin-top: 8px; }
.call-dir .dir-row {
  break-inside: avoid; padding: 4px 0 5px;
  grid-template-columns: 1fr; gap: 1px;
  border-top: 2px solid var(--forest); border-bottom: 0;
}
.call-dir .dir-k { font-size: 9pt; line-height: 1.25; }
.call-dir .dir-v {
  grid-row: auto; grid-column: 1;
  white-space: normal; text-align: left;
  font-size: 8pt; font-weight: 700; line-height: 1.35; letter-spacing: -0.01em;
}
.call-dir .dir-sub { font-size: 7.2pt; line-height: 1.3; }

/* Year strip: the annual join window placed where it actually falls in the
   year. The window's position and width are date arithmetic on the two
   printed dates — the same licence as a bar chart's widths. Month initials
   are navigation, not facts. Forest ink over the chartreuse window is 6.09:1
   (DIRECTION.md hard constraint), and the window also carries its written
   dates, so the placement survives greyscale. */
.ys { margin: 10px 0 2px; }
.ys-strip { position: relative; display: flex; border: 1.5px solid var(--forest); border-radius: 3px; overflow: hidden; height: 30px; }
.ys-win { position: absolute; top: 0; bottom: 0; background: var(--chartreuse); }
.ys-m { flex: 1; display: flex; align-items: center; justify-content: center; font-size: 6.4pt; font-weight: 800; color: var(--grey-ink); position: relative; }
.ys-m + .ys-m { border-left: 1px solid var(--rule); }
.ys-m.in-win { color: var(--forest-deep); border-left-color: var(--forest); }
.ys-cap { display: flex; justify-content: flex-end; gap: 6px; font-size: 7.2pt; color: var(--grey-ink); margin-top: 4px; line-height: 1.4; }
.ys-cap b { color: var(--forest); font-weight: 900; white-space: nowrap; }

.gs-divider {
  background: var(--forest); color: var(--bone);
  margin: -2px -0.6in 16px -0.36in;
  padding: 11px 0.6in 10px calc(0.36in + 4px);
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
}
.gs-divider-k { font-size: 7.2pt; font-weight: 900; letter-spacing: 0.16em; text-transform: uppercase; color: var(--bone-dim); flex-basis: 100%; }
.gs-divider-h { font-size: 10.5pt; font-weight: 800; letter-spacing: -0.01em; flex-basis: 100%; }
.gs-divider-p { font-size: 8pt; color: var(--bone); opacity: .92; line-height: 1.45; flex-basis: 100%; }
/* p51/p52 column heads run one vs two lines; hold both card bodies to a shared baseline. */
.gs-directory .dcard .t { min-height: 2.1em; }
/* Two rows inside a half-width column: the book-wide two-column .dir flow would
   snap this pair side by side and shred the "Or go to" label. Keep it a list. */
.gs-dir .dir { column-count: 1; }
/* Two rows are the whole actionable content of this notice; give them the room
   that says so, instead of a Benefit Facts panel that has no figures to hold. */
.gs-dir .dir-row { padding: 15px 0; }
.gs-dir .dir-k { font-size: 10.5pt; }
.gs-dir .dir-v { font-size: 15pt; }

.ix-sheet h1 { font-size: 25pt; }
.ix-sheet .standfirst { font-size: 9pt; max-width: 74ch; }
.ix-sheet .ix { column-count: 2; column-gap: 0.34in; margin-top: 9px; }
.ix-g { break-inside: avoid; margin-bottom: 9px; }
.ix-g h3 {
  font-size: 8pt; font-weight: 900; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--forest); border-bottom: 2.5px solid var(--forest); padding-bottom: 3px;
}
.ix-row {
  display: grid; grid-template-columns: 1fr auto; gap: 6px; align-items: baseline;
  border-bottom: 1px solid var(--rule); padding: 1.7px 0 1.5px;
  color: inherit; text-decoration: none;
}
.ix-q { font-size: 7.2pt; line-height: 1.24; color: var(--forest-deep); }
.ix-p {
  font-size: 7.2pt; font-weight: 900; color: var(--forest);
  font-variant-numeric: tabular-nums;
}

.sheet.back-cover { padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.band--photo.band--culture {
  position: relative; flex: 0 0 auto; height: 3.85in; margin: 0;
  display: grid; grid-template-columns: 0.86fr 1fr 1.28fr;
}
.band--photo.band--culture > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.band--culture > .pmv-family { object-position: 50% 30%; }
.band--culture > .pmv-tacos  { object-position: 50% 45%; }
.band--culture > .pmv-burger { object-position: 55% 35%; }
/* the client's wordmark is the one permitted overlay on a band (DIRECTION.md) */
.band--photo.band--culture > img.culture-lockup { position: absolute; left: 0.55in; bottom: 0.34in; width: auto; height: 1.05in; object-fit: unset; }
/* the body box ends above the absolute ledger (bottom 0.3in), or check-book reports a collision */
.culture-body { flex: 1 1 auto; display: flex; flex-direction: column; padding: 0.46in 0.8in 0 0.98in; margin-bottom: 0.68in; }
.culture-body .eyebrow {
  font-size: 9pt; font-weight: 800; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--forest-mid); margin: 0 0 6px;
}
.culture-purpose h1 { font-size: 36pt; line-height: 1.0; font-weight: 900; letter-spacing: -0.025em; color: var(--forest); margin: 0; max-width: 6.2in; }
.culture-mission { margin-top: 0.3in; padding-top: 0.2in; border-top: 1px solid var(--rule); }
.culture-mission h2 { font-size: 17pt; line-height: 1.18; font-weight: 700; color: var(--forest); margin: 0; max-width: 6.2in; }
.culture-values { margin-top: 0.3in; padding-top: 0.2in; border-top: 1px solid var(--rule); }
.culture-values .culture-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 0.4in; row-gap: 14px; }
.culture-value h3 { font-size: 11pt; line-height: 1.15; font-weight: 800; color: var(--forest); margin: 0 0 3px; }
.culture-value p { font-size: 9.6pt; line-height: 1.36; color: var(--grey-ink); margin: 0; }
.culture-note { margin-top: auto; padding-top: 0.2in; font-size: 7.2pt; line-height: 1.5; color: var(--grey-ink); max-width: 5.6in; }
