/* GENERATED by book.mjs from book-parts/*.mjs styles exports. Do not edit. */
/* ---- the content box and the grid ---- */
.sheet.k27 { display: flex; flex-direction: column; padding: 0.62in 1.0in 0.9in 1.22in; --gut: 0.16in; --bleed: 14px;
  /* one grid column: (6.28in content - 11 gutters) / 12 */ --col: calc((6.28in - 11 * var(--gut)) / 12);
  /* small grey text prints light; one step darker than the book's grey, 8:1 on bone */
  --grey-ink: #45454D; }
.k27 .g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gut); }

/* ---- no widows (David, 2026-09-24: "i hate widows and orphans") ----
   Headings balance their lines; running text never ends on a lone word.
   check-edition E10 measures every block and fails a one-word last line. */
.k27 .k-h, .k27 .k-ch .cn, .k27 .k-rh, .k27 .k-rl, .k27 .t, .k27 .bn, .k27 .k-row .q, .k27 .k-do p { text-wrap: balance; }
.k27 .k-sub, .k27 .d, .k27 .ff, .k27 .k-half .nt, .k27 .k-half .w, .k27 .bf, .k27 .w, .k27 .k-row .a, .k27 .k-same, .k27 .dl { text-wrap: pretty; }

/* ---- vertical rhythm: fixed, never stretched ---- */
.k27 > .k-top { margin: 0 0 28px; }
.k27 > .k-top ~ :not(.k-foot):not(.k-budget) + :not(.k-foot):not(.k-budget) { margin-top: 36px; }
.k27 .k-group > .k-label { margin-bottom: 8px; }

/* ---- the top block ---- */
.k27 .k-eyebrow { font-size: 8pt; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--forest-mid); margin-bottom: 8px; }
.k27 .k-h { font-size: 28pt; line-height: 1.06; font-weight: 850; letter-spacing: -0.03em; color: var(--forest); margin: 0; max-width: 6.28in; }
.k27 .k-h.k-h-sm { font-size: 22pt; }
.k27 .k-sub { font-size: 11pt; line-height: 1.45; color: var(--grey-ink); margin: 10px 0 0; max-width: 5.6in; }
.k27 .k-sub b { color: var(--forest-deep); }
.k27 .k-big .k-yr { color: var(--forest); }
.k27 .k-big { white-space: nowrap; font-size: 44pt; line-height: 0.92; font-weight: 850; letter-spacing: -0.04em; color: var(--forest); margin: 0 0 8px; }
.k27 .k-big .k-to { color: var(--chartreuse); font-weight: 700; }
.k27 .k-big + .k-sub { margin: 0 0 18px; }
.k27 .k-label { font-size: 8pt; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--forest-mid); }

/* ---- steps across (2 or 3) ---- */
.k27 .k-steps { border-top: 2px solid var(--forest); padding-top: 12px; row-gap: 0; }
.k27 .k-step .n { font-size: 26pt; font-weight: 850; line-height: 1; color: var(--forest); letter-spacing: -0.03em; }
.k27 .k-step .t { font-size: 11pt; font-weight: 750; line-height: 1.25; margin: 8px 0 4px; color: var(--forest-deep); }
.k27 .k-step .d { font-size: 9pt; line-height: 1.45; color: var(--grey-ink); }
.k27 .k-step.key .n, .k27 .k-step.key .t { color: var(--chartreuse); }

/* ---- numbered list down the page: number in column 1, text from column 2 ---- */
.k27 .k-vsteps { border-top: 2px solid var(--forest); }
/* The number's centre sits on the centre of the title's first line (David,
   2026-09-24: "horiz center number and first line"): the number's line box
   is exactly the title's line height, so the glyph centres on that line.
   check-edition E12 measures it. */
.k27 .k-vstep { align-items: start; padding: 11px 0; border-bottom: 1px solid var(--rule); --tl: calc(11.5pt * 1.3); }
.k27 .k-vstep .n { grid-column: 1 / span 1; font-size: 22pt; font-weight: 850; color: var(--forest); line-height: var(--tl); }
.k27 .k-vstep .b { grid-column: 2 / span 11; }
.k27 .k-vstep .t { font-size: 11.5pt; font-weight: 750; color: var(--forest-deep); line-height: var(--tl); }
.k27 .k-vstep .d { font-size: 9.5pt; line-height: 1.45; color: var(--grey-ink); margin-top: 3px; }
.k27 .k-vstep.key .n, .k27 .k-vstep.key .t { color: var(--chartreuse); }

/* ---- dates: calendar tiles ---- */
.k27 .k-cal { width: calc(2 * var(--col) + var(--gut)); border: 1.5px solid var(--forest); border-radius: 5px; background: var(--white); text-align: center; overflow: hidden; display: flex; flex-direction: column; }
.k27 .k-cal .m { display: block; background: var(--forest); color: var(--white); font-size: 7pt; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; padding: 3px 0 2px; }
.k27 .k-cal .dd { display: block; font-size: 24pt; font-weight: 850; line-height: 1.1; color: var(--forest-deep); letter-spacing: -0.02em; padding-top: 3px; }
.k27 .k-cal .y { display: block; font-size: 8pt; font-weight: 700; color: var(--grey-ink); padding-bottom: 5px; }
.k27 .k-date.first .k-cal { border-color: var(--chartreuse); }
.k27 .k-date.first .k-cal .m { background: var(--chartreuse); }
.k27 .k-date .dl { font-size: 9pt; line-height: 1.3; color: var(--grey-ink); margin-top: 7px; text-wrap: balance; }
.k27 .k-cal sup.t { display: none; }
/* Two dates: each is tile plus label, side by side, in columns 1 and 7, so
   the pair reads across the row instead of stopping at its middle (David,
   2026-09-24, arrows across the empty half of p13). E15 measures the reach. */
.k27 .k-dates.pair > .k-date { display: grid; grid-template-columns: subgrid; align-items: center; }
.k27 .k-dates.pair .k-cal { grid-column: 1 / span 2; }
.k27 .k-dates.pair .dl { grid-column: 3 / -1; margin-top: 0; font-size: 10pt; color: var(--forest-deep); }

/* ---- key/value rows: key in columns 1–4, text from column 5 ---- */
.k27 .k-row { padding: 9px 0; border-top: 1px solid var(--rule); align-items: baseline; }
.k27 .k-rows { border-bottom: 1px solid var(--rule); }
.k27 .k-row .q { grid-column: 1 / span 4; font-size: 11pt; font-weight: 750; color: var(--forest-deep); line-height: 1.35; }
.k27 .k-row .a { grid-column: 5 / span 8; font-size: 11pt; line-height: 1.45; color: var(--forest-deep); }

/* ---- a comparison: one row per subject, the two plans side by side ----
   (David, 2026-09-24: "we are comparing two things we should have them line
   up with one another horizontally"; then, on p9 and p15: "wtf happened on
   this page?", "looks crowded ... cuz of the numbers".) The old two-column
   version paired the i-th fact on the left with the i-th on the right, so a
   side with fewer facts left a void and unrelated facts shared a row. Here a
   ROW is one subject; each plan's answer for it is one cell, columns 1 and 7,
   and no cell may be empty (the kit refuses one; E14 measures it).
   Figures right-align on one axis per plan: see .k-half below. */
.k27 .k-cmp { row-gap: 0; }
.k27 .k-cmp > .k-ch { grid-column: span 6; grid-row: 1; padding-bottom: 10px; border-bottom: 2px solid var(--forest); }
.k27 .k-ch .if { font-size: 8pt; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--grey-ink); }
.k27 .k-ch .cn { font-size: 15pt; line-height: 1.2; font-weight: 800; color: var(--forest-deep); margin-top: 3px; }
/* Each plan is one half: its rows are the table's rows (subgrid), so a row
   keeps one top edge across both plans; its columns are its own, a figure
   track as wide as the plan's widest figure and a label track, so every
   figure right-aligns on one axis and the widest sits on the column line. */
.k27 .k-half { display: grid; grid-template-rows: subgrid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 10px; align-items: center; }
.k27 .k-half > .k-cell { display: contents; }
/* A row's name is the subject for BOTH plans (David, 2026-09-24: "the
   grouping of the category 'emergency room' which applies to both of the 2
   plans"; then "unclear if this applies to second column?"). It is a band
   across the whole table, over both plans. A left column was tried and
   dropped: two grid columns cannot hold "Emergency room" without a widow
   (E10). A cell title that differs by plan (p12) sits in its own half. */
.k27 .k-cmp > .k-rl { grid-column: 1 / -1; align-self: stretch; padding-top: 14px; border-top: 1px solid var(--rule); }
/* The band bleeds into the margin like .k-band, so its words stay on column 1. */
.k27 .k-cmp > .k-rl.k-rband { align-self: start; margin: 14px calc(-1 * var(--bleed)) 8px; padding: 5px var(--bleed) 4px; border: 0; border-radius: 4px; background: var(--white); font-size: 8pt; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--forest); }
.k27 .k-cmp > .k-rl.k-rband.first { margin-top: 12px; }
.k27 .k-cmp > .k-rl.first { border-top: 0; }
.k27 .k-half .k-rh { grid-column: 1 / -1; align-self: stretch; padding-top: 14px; margin-bottom: 4px; font-size: 10.5pt; font-weight: 800; color: var(--forest); }
.k27 .k-half .k-rh:empty { margin-bottom: 0; }
.k27 .k-cmp > .k-rl:not(:empty) ~ .k-half .k-rh:empty { min-height: 0; }
.k27 .k-half .v { grid-column: 1; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; font-size: 22pt; font-weight: 850; letter-spacing: -0.03em; line-height: 1.1; padding: 2px 0; color: var(--forest-deep); }
.k27 .k-half .v + .w { grid-column: 2; }
.k27 .k-half .w { font-size: 9pt; color: var(--grey-ink); line-height: 1.25; }
.k27 .k-half .nt { grid-column: 1 / -1; align-self: start; font-size: 9pt; line-height: 1.4; color: var(--grey-ink); margin-top: 6px; }
.k27 .k-half .nt.solo { font-size: 10pt; color: var(--forest-deep); margin-top: 0; }
.k27 .k-half .nt.mid { align-self: center; }
.k27 .k-half .k-sp { grid-column: 1 / -1; height: 20px; }

/* ---- band and action: key in columns 1–4, text from column 5 ---- */
.k27 .k-band, .k27 .k-do { border-radius: 6px; margin-left: calc(-1 * var(--bleed)); margin-right: calc(-1 * var(--bleed)); padding: 13px var(--bleed); align-items: center; }
.k27 .k-band { background: var(--white); }
.k27 .k-band .if { grid-column: 1 / span 4; font-size: 8pt; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--grey-ink); }
.k27 .k-band .b { grid-column: 5 / span 5; }
.k27 .k-band .b.wide { grid-column: 5 / span 8; }
.k27 .k-band .bn { font-size: 10.5pt; font-weight: 800; color: var(--forest); }
.k27 .k-band .bf { font-size: 9pt; color: var(--grey-ink); line-height: 1.4; margin-top: 2px; }
.k27 .k-band .v { grid-column: 10 / span 3; text-align: right; font-size: 24pt; font-weight: 850; letter-spacing: -0.03em; color: var(--forest-deep); white-space: nowrap; }
.k27 .k-do { background: var(--chartreuse); color: var(--white); }
.k27 .k-do .k { grid-column: 1 / span 4; font-size: 8pt; font-weight: 900; letter-spacing: 0.2em; text-transform: uppercase; opacity: .85; }
.k27 .k-do p { grid-column: 5 / span 8; font-size: 11.5pt; font-weight: 700; line-height: 1.3; }
.k27 .k-do sup.t { color: var(--white); }

.k27 .k-same { font-size: 10pt; line-height: 1.45; color: var(--forest-deep); max-width: 6.28in; }

/* ---- links: the words keep their colour; a thin underline says "tap me" ---- */
.k27 a.xl, .sheet a.xl { color: inherit; text-decoration: underline; text-decoration-thickness: 0.5px; text-underline-offset: 2px; }

/* ---- the foot, on the same content edges ---- */
.k27 .k-foot { position: absolute; left: 1.22in; right: 1.0in; bottom: 0.4in; padding-top: 9px; border-top: 1px solid var(--rule); display: flex; justify-content: space-between; gap: 18px; font-size: 8.3pt; color: var(--grey-ink); }
.k27 .k-foot b { color: var(--forest); }
.k27 .k-foot .fp { color: var(--forest-mid); font-weight: 700; white-space: nowrap; }

/* ---- roomy: a short page sets its body larger, same grid, same rhythm ---- */
.k27-roomy .k-vstep { padding: 11px 0; --tl: calc(13pt * 1.3); }
.k27-roomy .k-vstep .n { font-size: 26pt; }
.k27-roomy .k-vstep .t { font-size: 13pt; }
.k27-roomy .k-vstep .d { font-size: 10pt; line-height: 1.45; }
.k27-roomy .k-row { padding: 12px 0; }
.k27-roomy .k-row .q, .k27-roomy .k-row .a { font-size: 11pt; }
.k27-roomy .k-same { font-size: 11pt; }

/* ---- the mark at display size (David, 2026-09-24: "remove these giant cross
   things"). It stays in the markup (claims keep it) and in small text. ---- */
/* No † on a designed page at any size (David, 2026-09-24: "why the damn cross?"). The claims data carries provenance; the markup keeps the mark. */
.k27 sup.t { display: none; }

.k27 .call-big { font-size: 34pt; line-height: 1; font-weight: 850; letter-spacing: -0.03em; color: var(--forest); margin: 4px 0 6px; }
.k27 .call-grid { row-gap: 0; }
.k27 .call-row { grid-column: span 6; }
.k27 .call-row { padding: 4px 0; border-top: 1px solid var(--rule); break-inside: avoid; }
.k27 .call-row .r { text-wrap: balance; line-height: 1.3; font-size: 9pt; font-weight: 800; color: var(--forest-deep); }
.k27 .call-row .d { font-size: 8.3pt; color: var(--grey-ink); }
.k27 .call-row .c { font-size: 8.4pt; line-height: 1.3; color: var(--forest-deep); }
/* one contact detail per line, so an address never dangles on its own */
.k27 .call-row .c span { display: block; }
