/* One persistent answer sheet. Normal flow until its complete content fits. */
.document-journey .journey-fixed { position: static; top: 5rem; }
.document-journey[data-can-pin="true"] .journey-fixed { position: sticky; }
.answer-sheet { background: #fffdf5; color: #20382c; padding: 1.3rem 1.5rem; margin: 1.25rem 0; border: 1px solid #cecfc0; box-shadow: 9px 9px 0 #ffffff12; }
.answer-sheet-head { display: flex; justify-content: space-between; gap: 1rem; font: 600 .62rem/1.4 system-ui; letter-spacing: .08em; border-bottom: 1px solid #c6cbbc; padding-bottom: .65rem; margin-bottom: .65rem; }
.answer-sheet .scene-label { font-size: .58rem; margin-bottom: .65rem !important; }
.sheet-question { font: 1rem/1.4 Georgia, serif; padding: .6rem; border-left: 3px solid transparent; }
.sheet-question b { display: block; font: 600 .63rem/1.5 system-ui; text-transform: uppercase; margin-bottom: .25rem; }
.sheet-draft, .sheet-source, .sheet-revision { border-left: 3px solid transparent; padding: .6rem; margin-top: .45rem; transition: background-color .25s, border-color .25s; }
.sheet-label { font: 600 .62rem/1.5 system-ui; text-transform: uppercase; letter-spacing: .06em; }
.answer-sheet p { margin: .2rem 0 0; }
.sheet-draft p, .sheet-source p, .sheet-revision p { font: .93rem/1.4 Georgia, serif; }
.sheet-draft s { text-decoration-color: #a34230; text-decoration-thickness: 2px; }
.sheet-draft aside { font: italic .82rem/1.4 Georgia, serif; color: #923c2e; margin-top: .3rem; }
.sheet-source { background: #f0eadb; }
.answer-sheet mark { color: inherit; background: #e2d3a1; padding: 0 .12rem; }
.sheet-revision ins { text-decoration: underline; text-decoration-color: #36745c; text-underline-offset: .2rem; }
.answer-sheet .sheet-pending { font-size: .7rem !important; margin-top: .6rem !important; padding: .5rem .65rem; }
.answer-sheet[data-active-beat="0"] .sheet-question { background: #f0e5c7; border-color: #927036; }
.answer-sheet[data-active-beat="1"] .sheet-draft { background: #f8e7df; border-color: #a34230; }
.answer-sheet[data-active-beat="2"] .sheet-source { background: #e7dbb7; border-color: #927036; }
.answer-sheet[data-active-beat="2"] .sheet-source mark { background: #ceb567; }
.answer-sheet[data-active-beat="3"] .sheet-revision { background: #e3eee1; border-color: #36745c; }
.answer-sheet[data-active-beat="3"] .sheet-revision mark { background: #cce1c8; }
.answer-sheet[data-active-beat="0"] .sheet-draft s { text-decoration-color: transparent; }
.answer-sheet:not([data-active-beat="3"]) .sheet-revision ins { text-decoration-color: transparent; }
.answer-sheet:not([data-active-beat="2"]) .sheet-source mark { background: transparent; }
.answer-sheet:not([data-active-beat="3"]) .sheet-revision mark { background: transparent; }
.document-journey .journey-fixed h2 { font-size: clamp(2rem, 3vw, 3rem); margin-bottom: .65rem; }
.document-journey .journey-nav { margin: 1rem 0; }
.document-journey .journey-step { min-height: 22rem; }
.document-journey[data-can-pin="false"] .journey-step { min-height: 0; padding-bottom: 2.5rem; }
.guide-cover:hover { translate: 0 -5px; }
.ix-static-proof { border: 1px solid var(--rule); background: var(--surface); padding: 1.4rem; margin: 1.5rem 0; }
.ix-static-proof>p { max-width: 65ch; }
.ix-static-proof dl { display: grid; grid-template-columns: 7rem 1fr; gap: .7rem 1.2rem; margin: 1rem 0; }
.ix-static-proof dt { font-weight: 650; }
.ix-static-proof dd { margin: 0; }
@media (max-width:900px) { .document-journey .journey-fixed { position: static; } .answer-sheet { max-width: 38rem; } .document-journey .journey-step { min-height: 0; } }
@media (max-width:520px) { .answer-sheet { padding: 1rem; } .ix-static-proof dl { grid-template-columns: 1fr; gap: .3rem; } .ix-static-proof dd { margin-bottom: .65rem; } }
@media (prefers-reduced-motion:reduce) { .document-journey .journey-fixed { position: static; } .sheet-draft, .sheet-source, .sheet-revision { transition: none; } .guide-cover:hover { translate: none; } }
@media print { .document-journey[data-can-pin] .journey-fixed { position: static; } }
/* Keep the complete document and its actions in view on ordinary laptops. */
@media (min-width:901px) and (max-height:950px) {
  .document-journey .journey-fixed { top:5rem; }
  .document-journey .journey-fixed>.eyebrow { margin-bottom:.25rem; }
  .document-journey .journey-fixed h2 { font-size:1.8rem; line-height:1.15; margin:.25rem 0 .5rem; }
  .document-journey .journey-fixed h2 br { display:none; }
  .document-journey .answer-sheet { display:grid; grid-template-columns:1fr 1fr; gap:.3rem .65rem; padding:.85rem 1rem; margin:.6rem 0 .8rem; }
  .answer-sheet-head, .answer-sheet>.scene-label, .answer-sheet>.sheet-question, .answer-sheet>.sheet-revision, .answer-sheet>.sheet-pending { grid-column:1 / -1; }
  .document-journey .answer-sheet-head { padding-bottom:.4rem; margin:0; }
  .document-journey .answer-sheet>.scene-label { margin:0 !important; }
  .document-journey .sheet-question { font-size:.95rem; line-height:1.35; padding:.35rem .45rem; margin:0; }
  .document-journey .sheet-draft, .document-journey .sheet-source, .document-journey .sheet-revision { margin:0; padding:.4rem .45rem; }
  .document-journey .sheet-draft p, .document-journey .sheet-source p, .document-journey .sheet-revision p { font-size:.875rem; line-height:1.35; }
  .document-journey .sheet-pending { margin:.2rem 0 0 !important; padding:.4rem .55rem; }
  .document-journey .journey-nav { margin:.6rem 0; }
  .document-journey .journey-nav a { padding:.35rem .45rem; }
  .document-journey .journey-fixed>.btn { padding:.7rem 1rem; }
  .document-journey .journey-exit { display:inline-block; margin:.5rem 0 .5rem .8rem; font-size:.75rem; }
  .document-journey .journey-scope { margin:.5rem 0 0; }
}
/* ==========================================================================
   Design tokens.

   Light is the base. Dark redefines only the tokens, never the rules, so a
   colour can never exist in one theme and not the other. Nothing here loads
   over the network: no web fonts, no CDN, no external stylesheet. That keeps
   the page fast, keeps it working inside a strict content policy, and means a
   visitor on a charity's locked-down desktop gets exactly what we designed.
   ========================================================================== */

:root {
  --ground: #fbfaf7;
  --ground-warm: #f2efe8;
  --ground-deep: #10302a;
  --surface: #ffffff;
  --ink: #17201d;
  --ink-soft: #4c5a55;
  --ink-faint: #6d7a75;
  --rule: #e0dbd1;
  --rule-strong: #cdc6b8;
  --brand: #15594a;
  --brand-bright: #1d7a64;
  --brand-wash: #e8f1ed;
  --accent: #a8551f;
  --on-deep: #f4f7f5;
  --on-deep-soft: #c3d6cf;
  --focus: #a8551f;
  --shadow: 0 1px 2px rgba(23, 32, 29, 0.05), 0 8px 24px rgba(23, 32, 29, 0.06);
  --radius: 10px;
  --wrap: 68rem;
  --measure: 38rem;
}

@media (prefers-color-scheme: dark) {
  :root {
    --ground: #0e1614;
    --ground-warm: #14201d;
    --ground-deep: #0a1a17;
    --surface: #16211e;
    --ink: #edf2f0;
    --ink-soft: #b3c2bd;
    --ink-faint: #8b9994;
    --rule: #293833;
    --rule-strong: #3a4c46;
    --brand: #6fc9ae;
    --brand-bright: #8fdcc3;
    --brand-wash: #16302a;
    --accent: #e0955f;
    --on-deep: #edf2f0;
    --on-deep-soft: #a9bfb8;
    --focus: #e0955f;
    --shadow: none;
  }
}

/* --------------------------------------------------------------------------
   Reset and base
   -------------------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  background: var(--ground);
  color: var(--ink);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3 {
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
  text-wrap: balance;
}

h1 { font-size: clamp(2.1rem, 1.4rem + 3vw, 3.4rem); }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.7vw, 2.3rem); }
h3 { font-size: 1.2rem; font-weight: 600; }

p, li { text-wrap: pretty; }
a { color: var(--brand); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { color: var(--brand-bright); }

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
  border-radius: 3px;
}

strong { font-weight: 650; }

.skip {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--surface);
  color: var(--ink);
  padding: 0.75rem 1rem;
  z-index: 50;
}
.skip:focus { left: 0.5rem; top: 0.5rem; }

.wrap {
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline: 1.25rem;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.topbar {
  border-bottom: 1px solid var(--rule);
  background: var(--ground);
  position: sticky;
  top: 0;
  z-index: 20;
}
.topbar-inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  min-height: 4.25rem;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-weight: 650;
  font-size: 1.1rem;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: -0.01em;
}
.brand-mark {
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 4px;
  background: var(--brand);
  box-shadow: inset 0 0 0 3px var(--ground), inset 0 0 0 4px var(--brand);
  flex: none;
}
.menu { margin-left: auto; }
.menu-btn { display: none; }
.nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}
.nav a {
  color: var(--ink-soft);
  text-decoration: none;
  font-size: 0.95rem;
  padding-block: 0.75rem;
  display: inline-block;
}
.nav a:hover, .nav a[aria-current="page"] { color: var(--ink); }
.nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--brand); }

/* Round 8 (R5_FOLD_3 item 34): on a phone the six links sit behind a menu
   button, so Pricing is one tap away instead of off the right-hand edge of a
   scrolling row. It is a details element, so it opens and closes with no
   script and no framework. On a wide screen the button is hidden and the row
   is shown whatever the open state is, which is why display and
   content-visibility are both forced here: a closed details element is
   hidden by the browser's own stylesheet in two different ways. */
.menu > .nav {
  display: block;
  content-visibility: visible;
}
/* R9, 2026-09-09. Chrome 131 and later hide a closed details element's
   content through the ::details-content pseudo-element, which the child rule
   above cannot reach, so on a laptop the seven links laid out at zero width
   and the row was empty. Overriding the pseudo-element restores the row on a
   wide screen; on a phone the closed state is still hidden by the
   .menu:not([open]) > .nav rule below, so the button keeps working. */
.menu::details-content {
  content-visibility: visible;
}

@media (max-width: 60rem) {
  .topbar { position: static; }
  .topbar-inner { min-height: 3.4rem; gap: 0.75rem; }
  .menu { margin-left: auto; position: relative; }
  .menu-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    cursor: pointer;
    list-style: none;
    padding: 0.5rem 0.85rem;
    border: 1px solid var(--rule);
    border-radius: 6px;
    font-size: 0.95rem;
    color: var(--ink);
    background: var(--ground);
  }
  .menu-btn::-webkit-details-marker { display: none; }
  .menu-btn::after {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
  }
  .menu[open] .menu-btn::after { transform: translateY(2px) rotate(225deg); }
  .menu:not([open]) > .nav { display: none; content-visibility: hidden; }
  .menu[open] > .nav {
    position: absolute;
    right: 0;
    top: calc(100% + 0.5rem);
    z-index: 30;
    min-width: 14rem;
    padding: 0.4rem 1rem;
    background: var(--ground);
    border: 1px solid var(--rule);
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
  }
  .menu[open] .nav ul { flex-direction: column; gap: 0; }
  .menu[open] .nav li { border-bottom: 1px solid var(--rule); }
  .menu[open] .nav li:last-child { border-bottom: 0; }
  .menu[open] .nav a { display: block; padding-block: 0.7rem; }
  .nav-cta { order: 3; }
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.6rem 1.15rem;
  border-radius: var(--radius);
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
}
.btn-sm { min-height: 2.4rem; padding: 0.4rem 0.85rem; font-size: 0.92rem; }
.btn-primary { background: var(--brand); color: #ffffff; }
.btn-primary:hover { background: var(--brand-bright); color: #ffffff; }
.btn-ghost { border-color: currentColor; color: inherit; background: transparent; }
@media (prefers-color-scheme: dark) {
  .btn-primary { color: #06120f; }
  .btn-primary:hover { color: #06120f; }
}

/* On a dark band the brand green sits too close to the ground behind it, so
   the primary button inverts. Checked both ways: #f4f7f5 on #10302a is 13.4:1
   for the button face, and #0d241f text on that face is 13.1:1. */
.hero .btn-primary,
.band-deep .btn-primary {
  background: var(--on-deep);
  color: #0d241f;
}
.hero .btn-primary:hover,
.band-deep .btn-primary:hover {
  background: #ffffff;
  color: #0d241f;
}

/* --------------------------------------------------------------------------
   Hero and bands
   -------------------------------------------------------------------------- */

.hero {
  background: var(--ground-deep);
  color: var(--on-deep);
  padding-block: clamp(3rem, 1.5rem + 7vw, 6rem);
  border-bottom: 1px solid var(--rule);
}
.hero h1 { max-width: 20ch; }
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--on-deep-soft);
  margin-bottom: 0.9rem;
}
.hero-intro {
  margin-top: 1.4rem;
  max-width: 46rem;
  font-size: clamp(1.1rem, 1rem + 0.4vw, 1.28rem);
  color: var(--on-deep-soft);
}
.hero-actions { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.9rem; }
.hero .btn-ghost { color: var(--on-deep); }
.hero-note {
  margin-top: 1.6rem;
  font-size: 0.92rem;
  color: var(--on-deep-soft);
  max-width: 46rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.hero a { color: var(--on-deep); }

/* R6 fold B6-1, restyled by R7 fold X2. The routes to a person, beside the
   one ask. It was two small sentences laid out as a row of chips under the
   button, which is how a site says "here is the small print" rather than
   "here is the other way in". It is one line now, at body size, because a
   reader with a deadline reading it is choosing between it and the button. */
.person-routes { margin-top: 1rem; font-size: 1rem; max-width: 46rem; }
.person-routes-hero { color: var(--on-deep-soft); }
.creative-opening .person-routes-hero { color: var(--ink-soft); }
.person-routes-form { margin-bottom: 0.5rem; color: var(--ink-soft); }
.person-routes a { font-weight: 600; }

.band { padding-block: clamp(2.5rem, 1.5rem + 4vw, 4.5rem); }
.band-warm { background: var(--ground-warm); border-block: 1px solid var(--rule); }
.band-deep { background: var(--ground-deep); color: var(--on-deep); border-block: 1px solid var(--rule); }
.band-deep h2 { color: var(--on-deep); }
.band-deep p { color: var(--on-deep-soft); }
.band + .band:not(.band-warm):not(.band-deep) { padding-top: 0; }
/* R9, 2026-09-09. The rule above collapses the gap between two plain bands,
   where there is no visible boundary. When the band above is warm or deep it
   ends with a border and a colour change, and a heading sitting flush against
   that line read as too tight, so the top padding is kept there. */
.band-warm + .band:not(.band-warm):not(.band-deep),
.band-deep + .band:not(.band-warm):not(.band-deep) { padding-top: clamp(2.5rem, 1.5rem + 4vw, 4.5rem); }

.band > .wrap > h2 + p,
.band > .wrap > .kicker + h2 + p { margin-top: 1rem; }
.band p { max-width: 46rem; }
.band p + p { margin-top: 1rem; }
.band h3 { margin-top: 2rem; }
.band h3 + p { margin-top: 0.6rem; }
/* R9, 2026-09-09. Only p + p carried a gap, so a paragraph that followed a
   list, a card row, a table, a quote, a form or a callout sat flush against
   it, and a second h2 inside a band sat flush against the paragraph above.
   Headings are excluded here so h2 + p and h3 + p keep their own rules. */
.band > .wrap > ul + p,
.band > .wrap > ol + p,
.band > .wrap > .grid + p,
.band > .wrap > blockquote + p,
.band > .wrap > form + p,
.band > .wrap > .faqs + p,
.band > .wrap > .callout + p,
.band > .wrap > .table-scroll + p,
.band > .wrap > figure + p,
.band > .wrap > table + p { margin-top: 1.25rem; }
.band > .wrap > p + h2,
.band > .wrap > ul + h2,
.band > .wrap > ol + h2,
.band > .wrap > .grid + h2,
.band > .wrap > .faqs + h2 { margin-top: 2.5rem; }

.lead { font-size: 1.15rem; color: var(--ink-soft); }
.band-deep .lead { color: var(--on-deep-soft); }

.kicker {
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 0.7rem;
}

/* --------------------------------------------------------------------------
   Breadcrumbs
   -------------------------------------------------------------------------- */

.crumbs { border-bottom: 1px solid var(--rule); background: var(--ground); }
.crumbs ol {
  list-style: none;
  padding: 0.75rem 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.88rem;
  color: var(--ink-faint);
}
.crumbs li + li::before { content: "/"; margin-right: 0.5rem; color: var(--rule-strong); }
.crumbs a { color: var(--ink-soft); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }

/* --------------------------------------------------------------------------
   Cards, steps, stats
   -------------------------------------------------------------------------- */

.grid { display: grid; gap: 1.25rem; margin-top: 2rem; }
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }

.card {
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 1.4rem;
  box-shadow: var(--shadow);
}
.card h3 { margin-top: 0; }
.card h3 a { text-decoration: none; }
.card h3 a:hover { text-decoration: underline; }
.card p { margin-top: 0.55rem; color: var(--ink-soft); font-size: 0.98rem; }

.steps { list-style: none; padding: 0; margin-top: 2rem; display: grid; gap: 1.5rem; }
.step { display: flex; gap: 1rem; align-items: flex-start; }
.step-n {
  flex: none;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--brand-wash);
  color: var(--brand);
  font-weight: 700;
  font-size: 0.95rem;
  border: 1px solid var(--rule);
}
.step h3 { margin-top: 0.15rem; }
.step p { margin-top: 0.4rem; color: var(--ink-soft); }

.stats {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  margin-top: 2rem;
  padding: 1.5rem;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--surface);
}
.stats dt {
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: 1.9rem;
  font-weight: 600;
  color: var(--brand);
  line-height: 1.1;
}
.stats dd { margin: 0.35rem 0 0; font-size: 0.92rem; color: var(--ink-soft); }

/* --------------------------------------------------------------------------
   Tables
   -------------------------------------------------------------------------- */

.table-scroll { overflow-x: auto; margin-top: 2rem; }
table { border-collapse: collapse; width: 100%; font-size: 0.98rem; }
caption {
  text-align: left;
  font-size: 0.88rem;
  color: var(--ink-faint);
  padding-bottom: 0.6rem;
}
th, td {
  text-align: left;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--rule);
  vertical-align: top;
}
thead th, thead td {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--ink-faint);
  border-bottom: 1px solid var(--rule-strong);
  font-weight: 700;
}
tbody th { font-weight: 600; }
.detail { display: block; font-weight: 400; color: var(--ink-soft); font-size: 0.92rem; margin-top: 0.25rem; }
.prices .price { white-space: nowrap; font-weight: 650; }
.table-note { margin-top: 0.9rem; font-size: 0.92rem; color: var(--ink-soft); }
.compare td { color: var(--ink-soft); }

/* --------------------------------------------------------------------------
   Callouts, lists, disclosures
   -------------------------------------------------------------------------- */

.callout {
  margin-top: 2rem;
  padding: 1.5rem;
  border: 1px solid var(--rule);
  border-left: 3px solid var(--brand);
  border-radius: var(--radius);
  background: var(--surface);
}
.callout-warn { border-left-color: var(--accent); }
.callout h3 { margin-top: 0; }
.callout p { margin-top: 0.7rem; color: var(--ink-soft); }
.band-deep .callout { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.16); }
.band-deep .callout p { color: var(--on-deep-soft); }

.bullets { margin-top: 1.2rem; padding-left: 1.15rem; display: grid; gap: 0.6rem; max-width: 46rem; }
.bullets li { padding-left: 0.25rem; }
.bullets-check { list-style: none; padding-left: 0; }
.bullets-check li { padding-left: 1.75rem; position: relative; }
.bullets-check li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 2px;
  background: var(--brand);
}
/* R6 fold B4-6. The numbered form, for a procedure whose order is the point.
   The marker is the list's own counter, so the number a reader sees is the
   number the markup holds and neither can drift from the other. */
.bullets-step { list-style: none; padding-left: 0; counter-reset: step; }
.bullets-step li { padding-left: 2.1rem; position: relative; counter-increment: step; }
.bullets-step li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0;
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
  text-align: center;
  border-radius: 50%;
  background: var(--brand);
  color: var(--surface);
  font-size: 0.82rem;
  font-weight: 700;
}
/* R6 fold B6-2. The fee estimator. The wrapper carries the `hidden`
   attribute from the build and public/enhance.js takes it off, so with
   JavaScript blocked none of this renders and the static block above it is
   the whole answer. */
.estimator {
  margin-top: 2rem;
  padding: 1.4rem 1.5rem 1.6rem;
  background: var(--surface);
  border: 1px solid var(--rule-strong);
  border-left: 3px solid var(--brand);
  border-radius: var(--radius);
}
.estimator h3 { margin-top: 0; }
.estimator > .hint { margin: 0.5rem 0 0; font-size: 0.92rem; color: var(--ink-faint); }
.estimator-steps { list-style: none; padding-left: 0; margin: 1.3rem 0 0; display: grid; gap: 1.1rem; }
.estimator-q { margin: 0 0 0.55rem; font-weight: 600; }
.estimator-opts { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.estimator-opts .btn[aria-pressed="true"] {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--surface);
}
.estimator-result {
  margin-top: 1.5rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--rule);
}
.estimator-result p { margin-top: 0.6rem; }
.estimator-result p:first-child { margin-top: 0; }
.estimator-empty { color: var(--ink-faint); font-size: 0.95rem; }
.estimator-band { font-size: 1.1rem; }

/* R6 fold B6-3. The worked example on a public question: the quotation, and
   the deliberately weak draft under it. The draft is set apart so a reader
   can never mistake it for the site talking about itself. */
.sample-quote {
  margin: 1.2rem 0 0;
  padding: 1rem 1.2rem;
  background: var(--brand-wash);
  border-left: 3px solid var(--brand);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-size: 1.05rem;
}
.sample-draft {
  margin-top: 1.2rem;
  padding: 1.1rem 1.3rem;
  background: var(--surface);
  border: 1px dashed var(--rule-strong);
  border-radius: var(--radius);
  color: var(--ink-soft);
}
.sample-draft p { margin-top: 0.9rem; }
.sample-draft p:first-child { margin-top: 0; }

.bullets-cross { list-style: none; padding-left: 0; }
.bullets-cross li { padding-left: 1.75rem; position: relative; }
.bullets-cross li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 2px;
  background: var(--accent);
}

.faqs { margin-top: 2rem; border-top: 1px solid var(--rule); max-width: 52rem; }
.faq { border-bottom: 1px solid var(--rule); }
.faq summary {
  cursor: pointer;
  list-style: none;
  padding: 1.1rem 2.5rem 1.1rem 0;
  font-weight: 600;
  position: relative;
  min-height: 2.75rem;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "";
  position: absolute;
  right: 0.5rem;
  top: 1.5rem;
  width: 0.6rem;
  height: 0.6rem;
  border-right: 2px solid var(--ink-faint);
  border-bottom: 2px solid var(--ink-faint);
  transform: rotate(45deg);
}
.faq[open] summary::after { transform: rotate(-135deg); top: 1.7rem; }
/* The question is an h3 (fold 10) but looks exactly as the summary text did. */
.faq summary h3 {
  display: inline;
  margin: 0;
  font: inherit;
  letter-spacing: inherit;
  text-wrap: pretty;
}
.faq-body { padding-bottom: 1.2rem; }
.faq-body p { color: var(--ink-soft); }

.closer { text-align: left; max-width: 46rem; }
.closer p { margin-top: 1rem; }
.closer .btn { margin-top: 0.5rem; }

/* --------------------------------------------------------------------------
   Form
   -------------------------------------------------------------------------- */

.form { margin-top: 2rem; max-width: 42rem; display: grid; gap: 1.35rem; }
.field { display: grid; gap: 0.4rem; }
.field label { font-weight: 600; font-size: 1rem; }
.field .hint { font-size: 0.9rem; color: var(--ink-faint); font-weight: 400; }
.field .optional { font-weight: 400; color: var(--ink-faint); }
/* R6 fold B4-1. The form is two steps now: the free read first, the pack
   second and optional. Each step is a fieldset, and the accent marks the
   step a reader is meant to start on. The upload keeps its own label size
   and loses the border it used to draw for itself, because the fieldset
   around it draws one. */
.form-step { display: grid; gap: 1.15rem; }
.form-step legend { font-size: 1.05rem; }
.form-step legend .optional { font-weight: 400; color: var(--ink-faint); }
.form-step > .hint { font-size: 0.95rem; color: var(--ink-faint); margin: 0; }
.form-step-primary {
  border-color: var(--rule-strong);
  border-left: 3px solid var(--accent);
  background: var(--surface);
}
.form-step #f-detail { min-height: 6.5rem; }
.field-upload label { font-size: 1.05rem; }
input[type="file"] { padding: 0.55rem 0.6rem; cursor: pointer; }
input, select, textarea {
  font: inherit;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--rule-strong);
  border-radius: 8px;
  padding: 0.7rem 0.8rem;
  min-height: 2.9rem;
  width: 100%;
}
textarea { min-height: 9rem; resize: vertical; }
fieldset { border: 1px solid var(--rule); border-radius: var(--radius); padding: 1.1rem; }
legend { font-weight: 600; padding-inline: 0.35rem; }
.radio-row { display: grid; gap: 0.7rem; margin-top: 0.4rem; }
.radio-row label { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; }
.radio-row input { width: auto; min-height: auto; margin-top: 0.35rem; }
.hp { position: absolute; left: -9999px; }
.form-status {
  border: 1px solid var(--rule);
  border-left: 3px solid var(--accent);
  border-radius: var(--radius);
  padding: 1rem 1.1rem;
  background: var(--surface);
  font-size: 0.96rem;
}
.form-status[hidden] { display: none; }
.error { color: var(--accent); font-size: 0.9rem; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.footer {
  border-top: 1px solid var(--rule);
  background: var(--ground-warm);
  padding-block: 3rem 2.5rem;
  margin-top: 0;
}
.footer-grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
}
.footer h2 {
  font-family: inherit;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: var(--ink-faint);
  font-weight: 700;
}
.footer ul { list-style: none; padding: 0; margin-top: 0.8rem; display: grid; gap: 0.5rem; }
.footer a { color: var(--ink-soft); text-decoration: none; font-size: 0.96rem; }
.footer a:hover { color: var(--ink); text-decoration: underline; }
.footer-foot {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--rule);
  display: grid;
  gap: 0.75rem;
}
.footer-foot p { font-size: 0.88rem; color: var(--ink-faint); max-width: 52rem; }

/* --------------------------------------------------------------------------
   Print
   -------------------------------------------------------------------------- */

@media print {
  .topbar, .footer, .hero-actions, .closer { display: none; }
  body { background: #fff; color: #000; }
  .band { padding-block: 1rem; }
}

/* --------------------------------------------------------------------------
   Round 5 additions: the quotable definition paragraph, card CTAs, and the
   letter's enquiry block.
   -------------------------------------------------------------------------- */

.definition {
  border-left: 3px solid var(--brand);
  padding-left: 1rem;
  margin-top: 1.2rem;
  font-size: 1.08rem;
}
.band-deep .definition { border-left-color: var(--on-deep-soft); }
.card-cta { margin-top: 0.8rem; font-weight: 600; }
.card-cta a { text-decoration: none; }
.card-cta a::after { content: " \2192"; }
.card-cta a:hover { text-decoration: underline; }
.enquiry-block .form { margin-top: 1.5rem; }

/* --------------------------------------------------------------------------
   Round 14: drawn diagrams and pull quotes.

   The diagrams are inline SVG written by lib/diagrams.mjs. Not one colour is
   set in the markup: every fill and stroke is a class here reading the same
   tokens as the rest of the page, so a diagram follows the light and the
   dark theme without a second drawing, and no inline style attribute is
   needed, which matters because the content policy sets style-src to 'self'
   with no unsafe-inline.

   Sizing. Each diagram is drawn in a 400 unit viewBox and capped at 30rem.
   At a 390px viewport the wrap leaves 350px, so it renders at about 0.88 and
   a 15px label lands near 13px. On a wide screen it renders at about 1.2 and
   the same label lands near 18px. Both are legible, which is the point.
   -------------------------------------------------------------------------- */

/* Bottom margin as well as top: the element after a figure or a pull quote
   is usually a paragraph, and a paragraph only gets a top margin when it
   follows another paragraph, so without this the copy butts against the
   drawing. Adjacent block margins collapse, so a list after a figure still
   gets one gap and not two. */
.figure { margin: 2rem 0 1.6rem; max-width: 30rem; }
.dgm { display: block; width: 100%; height: auto; }
.dgm-panel { fill: var(--surface); stroke: var(--rule-strong); stroke-width: 1; }
.dgm-panel-key { fill: var(--brand-wash); stroke: var(--brand); stroke-width: 1; }
.dgm-frame { fill: none; stroke: var(--rule-strong); stroke-width: 1; stroke-dasharray: 4 4; }
.dgm-line { stroke: var(--rule-strong); stroke-width: 2; }
.dgm-arrow { fill: var(--ink-faint); }
.dgm-dot { fill: var(--brand); }
.dgm-head {
  fill: var(--ink-faint);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.dgm-t { fill: var(--ink); font-size: 15px; }
.dgm-b { fill: var(--ink); font-size: 15px; font-weight: 650; }
.dgm-key { fill: var(--brand); font-size: 15px; font-weight: 650; }
.dgm-s { fill: var(--ink-faint); font-size: 13px; }

.pull {
  margin: 2rem 0 1.6rem;
  padding: 0.15rem 0 0.15rem 1.15rem;
  border-left: 3px solid var(--accent);
  max-width: 40rem;
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
  font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.45rem);
  line-height: 1.32;
  letter-spacing: -0.01em;
  color: var(--ink);
  text-wrap: pretty;
}
.band-warm .pull { border-left-color: var(--brand); }

@media print {
  .figure { break-inside: avoid; }
}

/* ===========================================================================
   THE GUIDES. Round 6, lane L4.
   =========================================================================== */

.byline {
  margin: 0;
  padding: 0.75rem 0 0;
  font-size: 0.9rem;
  color: var(--muted, #5a6a63);
}

.closer-note {
  margin: 0.5rem 0 0;
  font-size: 0.92rem;
  opacity: 0.85;
}

/* The bid or no bid scorecard. Plain cells with a visible box for the score,
   so the sheet is usable with a pen and needs no state and no script. */
table.scorecard {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}

table.scorecard caption {
  text-align: left;
  padding-bottom: 0.6rem;
  font-weight: 600;
}

table.scorecard th,
table.scorecard td {
  border: 1px solid var(--rule, #d8d5cd);
  padding: 0.55rem 0.7rem;
  text-align: left;
  vertical-align: top;
}

table.scorecard thead th {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

table.scorecard tbody th {
  font-weight: 500;
  min-width: 16rem;
}

table.scorecard .score-n {
  font-weight: 700;
  padding-right: 0.35rem;
}

table.scorecard .score-box {
  width: 4.5rem;
  min-width: 4.5rem;
}

table.scorecard tfoot th {
  text-align: right;
  font-weight: 700;
}

/* ===========================================================================
   EDITORIAL VISUAL CRAFT & MOTION
   =========================================================================== */

.split-editorial {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: stretch;
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  overflow: hidden;
  margin: 2rem 0;
  box-shadow: var(--shadow);
}

@media (min-width: 48rem) {
  .split-editorial {
    grid-template-columns: 5fr 7fr;
    gap: 0;
  }
}

.split-editorial.reverse {
  grid-template-columns: 1fr;
}

@media (min-width: 48rem) {
  .split-editorial.reverse {
    grid-template-columns: 7fr 5fr;
  }
  .split-editorial.reverse .split-media {
    order: 2;
  }
}

.split-media {
  position: relative;
  min-height: 16rem;
  overflow: hidden;
  background: var(--ground-deep);
}

.split-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.split-media:hover img {
  transform: scale(1.02);
}

.split-media-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(16, 48, 42, 0.9) 0%, rgba(16, 48, 42, 0.25) 50%, transparent 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.25rem;
  color: #fff;
  pointer-events: none;
}

.split-media-scrim .badge {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9fe2bf;
  font-weight: 700;
}

.split-media-scrim .caption {
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: #f4f7f5;
  margin-top: 0.2rem;
}

.split-copy {
  padding: 2rem 2.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
}

.split-copy h2,
.split-copy h3 {
  margin: 0;
  font-size: 1.45rem;
  line-height: 1.2;
}

.split-copy p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.95rem;
  line-height: 1.6;
}

.tilt-card {
  transition: transform 0.15s ease-out, box-shadow 0.2s ease;
  transform-style: preserve-3d;
  will-change: transform;
}

.spotlight-card {
  position: relative;
  overflow: hidden;
}

.spotlight-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  background: radial-gradient(
    600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
    rgba(21, 89, 74, 0.08),
    transparent 70%
  );
}

.spotlight-card:hover::before {
  opacity: 1;
}

.studio-container {
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 1.75rem;
  margin: 2.5rem 0;
  box-shadow: var(--shadow);
}

.studio-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 1.5rem;
}

.studio-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 48rem) {
  .studio-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.paper-rejected {
  background: #fff8f8;
  border: 2px dashed #f87171;
  border-radius: 8px;
  padding: 1.5rem;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.paper-dossier {
  background: #faf8f5;
  border: 1px solid #dcd5c7;
  border-radius: 8px;
  padding: 1.5rem;
  position: relative;
  box-shadow: 0 4px 12px rgba(23, 32, 29, 0.04);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.stamp-rejected {
  position: absolute;
  top: 1rem;
  right: 1rem;
  border: 2px solid #dc2626;
  background: rgba(254, 226, 226, 0.95);
  color: #b91c1c;
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.2rem 0.5rem;
  transform: rotate(-6deg);
  font-family: ui-monospace, monospace;
  pointer-events: none;
}

.stamp-scored {
  position: absolute;
  top: 1rem;
  right: 1rem;
  border: 2px solid #059669;
  background: rgba(209, 250, 229, 0.95);
  color: #065f46;
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.2rem 0.5rem;
  transform: rotate(-3deg);
  font-family: ui-monospace, monospace;
  pointer-events: none;
}

.gauges-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
}

.gauge-box {
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: 1.25rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
}

.gauge-svg {
  width: 3.5rem;
  height: 3.5rem;
  transform: rotate(-90deg);
}

.gauge-val {
  font-family: ui-monospace, monospace;
  font-weight: 700;
  font-size: 0.9rem;
  margin-top: -2.4rem;
  margin-bottom: 1.2rem;
}

.gauge-label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink);
}

.banner-institutional {
  position: relative;
  background: #0d221e;
  color: #fff;
  padding: 3.5rem 1.5rem;
  overflow: hidden;
  margin: 2.5rem 0;
  border-radius: var(--radius);
}

.banner-institutional img.bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.22;
}

.banner-institutional .content {
  position: relative;
  z-index: 1;
  max-width: var(--wrap);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.studio-kicker { margin-bottom: 0.25rem; }
.studio-title { margin: 0; }
.studio-pill { background: var(--brand-wash); color: var(--brand); font-weight: 700; font-size: 0.8rem; padding: 0.3rem 0.75rem; border-radius: 999px; }
.studio-intro { color: var(--ink-soft); font-size: 0.95rem; margin-bottom: 1.5rem; }
.studio-label-rejected { font-family: ui-monospace, monospace; font-size: 0.8rem; color: #b91c1c; font-weight: 700; }
.studio-quote-rejected { font-size: 0.9rem; color: #7f1d1d; line-height: 1.5; margin: 0.5rem 0; }
.studio-meta-rejected { border-top: 1px solid #fecaca; padding-top: 0.75rem; font-size: 0.8rem; color: #991b1b; display: flex; flex-direction: column; gap: 0.35rem; }
.studio-label-scored { font-family: ui-monospace, monospace; font-size: 0.8rem; color: var(--brand); font-weight: 700; }
.studio-quote-scored { font-size: 0.9rem; color: var(--ink); line-height: 1.5; margin: 0.5rem 0; }
.studio-meta-scored { border-top: 1px solid var(--rule); padding-top: 0.75rem; font-size: 0.8rem; color: var(--ink-soft); display: flex; flex-direction: column; gap: 0.35rem; }
.gauge-val-brand { color: var(--brand); }
.gauge-val-success { color: #059669; }
.gauge-sub { font-size: 0.75rem; color: var(--ink-soft); }
.banner-kicker { color: #9fe2bf; margin-bottom: 0.25rem; font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.banner-title { color: #fff; font-size: 1.6rem; margin: 0; line-height: 1.2; }
.banner-subtitle { color: #d1fae5; font-size: 0.95rem; margin: 0; max-width: 42rem; line-height: 1.6; }

/* ===========================================================================
   PRINT. The scorecard comes out as one sheet the reader can carry into a
   meeting, and nothing else on the page comes with it.
   =========================================================================== */
@media print {
  .topbar,
  .footer,
  .crumbs,
  .hero-actions,
  .closer,
  .skip,
  .byline,
  .print-hide {
    display: none !important;
  }

  .band,
  .band-warm,
  .band-deep {
    background: none !important;
    padding: 0.5rem 0 !important;
  }

  .scorecard {
    break-inside: avoid;
  }

  a[href]::after {
    content: "";
  }

  body {
    font-size: 11pt;
    background: #fff;
    color: #000;
  }
}

/* ==========================================================================
   THE INTERACTIVES. Round 23. Markup: lib/interactives.mjs. Behaviour:
   public/enhance.js. Contract: the comment at the top of lib/interactives.mjs.

   PART A, STRUCTURE. Owned by the build. Keeps the blocks usable, readable
   and accessible in both themes with no visual pass at all. Change it only
   with the markup.
   ========================================================================== */

.ix[hidden],
.ix [hidden] { display: none !important; }

@media screen { .ix-retired { display: none !important; } }
@media print { .ix { display: none !important; } }
@media print {
  #ix-tender-evaluation {
    display: block !important;
    background: #ffffff !important;
    color: #121212 !important;
    border: 2px solid #121212 !important;
    padding: 1.5rem !important;
    page-break-inside: avoid;
  }
  #ix-tender-evaluation .ix-scorecard-actions,
  #ix-tender-evaluation .ix-score-buttons,
  #ix-tender-evaluation .ix-scorecard-review-callout {
    display: none !important;
  }
  #ix-tender-evaluation .ix-print-score-val {
    display: inline-block !important;
    font-weight: 700 !important;
    color: #15594a !important;
    margin-left: 0.5rem !important;
  }
}

.ix {
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 1.25rem;
  margin: 1.5rem 0;
}
@media (min-width: 48rem) { .ix { padding: 2rem; } }

.ix-head h2 { margin-top: 0.25rem; }
.ix-lead { color: var(--ink-soft); max-width: var(--measure); }

.ix-step { border: 0; margin: 1.5rem 0 0; padding: 0; min-width: 0; }
.ix-step legend { font-weight: 700; padding: 0; margin-bottom: 0.75rem; }

.ix-question { padding: 0.85rem 0; border-top: 1px solid var(--rule); }
.ix-question-text { margin: 0 0 0.5rem; }
.ix-n {
  display: inline-block;
  min-width: 1.6rem;
  margin-right: 0.4rem;
  color: var(--ink-faint);
  font-variant-numeric: tabular-nums;
}
.ix-hint { margin: 0 0 0.6rem; color: var(--ink-soft); font-size: 0.92rem; }

.ix-choices { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ix-choice {
  min-height: 2.75rem;
  min-width: 2.75rem;
  padding: 0.45rem 1rem;
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  background: var(--ground);
  color: var(--ink);
  font: inherit;
  cursor: pointer;
}
.ix-choice:hover { border-color: var(--brand); }
.ix-choice:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.ix-choice[aria-pressed="true"] {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--surface);
}

.ix-result { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 2px solid var(--rule-strong); }
.ix-meter { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: baseline; }
.ix-figure { margin: 0; }
.ix-figure-label { display: block; font-size: 0.8rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-faint); }
.ix-out { font-weight: 700; font-variant-numeric: tabular-nums; }
.ix-figure .ix-out { font-size: 1.8rem; color: var(--brand); }
.ix-figure-of { color: var(--ink-soft); }
.ix-panel { margin-top: 1rem; max-width: var(--measure); }
.ix-panel h3 { margin-top: 0; }
.ix-list li + li { margin-top: 0.5rem; }
.ix-actions { margin-top: 1rem; }

/* The scale explorer. */
.ix-control { margin-top: 1.25rem; }
.ix-control-label { display: block; font-weight: 700; margin-bottom: 0.5rem; }
.ix-range { width: 100%; accent-color: var(--brand); }
.ix-range:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.ix-ticks { display: flex; justify-content: space-between; color: var(--ink-faint); font-variant-numeric: tabular-nums; }
.ix-band-score { display: flex; align-items: baseline; gap: 0.5rem; margin: 0; }
.ix-band-n { font-size: 2.4rem; font-weight: 700; color: var(--brand); line-height: 1; }
.ix-band-of { color: var(--ink-soft); }
.ix-band-name { font-weight: 700; }
.ix-bar {
  display: flex;
  width: 100%;
  height: 0.75rem;
  border-radius: 999px;
  background: var(--ground-warm);
  overflow: hidden;
  margin: 1rem 0 0.5rem;
}
/* The bar is the whole tender, a hundred marks. Earned and lost are this
   question's share of it, so a light question draws a short bar. */
.ix-bar-earned { width: calc(var(--ix-earned, 0) * 1%); background: var(--brand); }
.ix-bar-lost { width: calc(var(--ix-lost, 0) * 1%); background: var(--accent); }
.ix-sentence { margin: 0; max-width: var(--measure); }

/* The engagement timeline. */
.ix-timeline { list-style: none; margin: 1.25rem 0 0; padding: 0; }
.ix-milestone { display: grid; grid-template-columns: 2.5rem 1fr; gap: 0.75rem; padding: 0.75rem 0; }
.ix-milestone + .ix-milestone { border-top: 1px solid var(--rule); }
.ix-milestone-n {
  display: inline-grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--brand-wash);
  color: var(--brand);
  font-weight: 700;
}
.ix-milestone-body h3 { margin: 0.2rem 0 0.25rem; }
.ix-milestone-body p { margin: 0; }

/* ==========================================================================
   PART B, THE VISUAL LAYER. Owned by the design pass.

   Everything above can be overridden from here. Rules for this zone:
     - Tokens only (var(--brand) and friends), so dark mode keeps working.
     - No new network requests: no web fonts, no CDN, no remote images.
       The Content Security Policy blocks them in production and they would
       work on a local preview and fail live.
     - Motion sits inside @media (prefers-reduced-motion: no-preference).
     - Never display: none on an element carrying a data-ix* attribute or
       an id. Visibility is the script's job, through `hidden`.
     - Hooks available: .ix.is-ready, [data-ix-state="<panel key>"],
       button[aria-pressed="true"], --ix-earned and --ix-lost on .ix-bar.
   ========================================================================== */

/* 1. Master interactive card styling */
.ix.is-ready {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--rule);
  border-top: 3px solid var(--brand);
  border-radius: var(--radius);
  box-shadow: 0 4px 20px -2px rgba(21, 89, 74, 0.08), 0 2px 6px -1px rgba(23, 32, 29, 0.04);
}

@media (prefers-color-scheme: dark) {
  .ix.is-ready {
    box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.35);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .ix.is-ready {
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
  }
}

.ix-head .kicker {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 0.35rem;
}

.ix-head h2 {
  font-size: clamp(1.45rem, 1.2rem + 1.2vw, 1.95rem);
  color: var(--ink);
  margin: 0.15rem 0 0.5rem;
  line-height: 1.2;
}

.ix-lead {
  font-size: 1rem;
  color: var(--ink-soft);
  line-height: 1.6;
}

/* 2. Step and question layout */
.ix-step {
  margin-top: 1.75rem;
}

.ix-step legend {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 0.85rem;
}

.ix-question {
  padding: 1rem 0.5rem;
  border-top: 1px solid var(--rule);
  border-radius: 6px;
}

@media (prefers-reduced-motion: no-preference) {
  .ix-question {
    transition: background-color 0.18s ease;
  }
}

.ix-question:focus-within {
  background-color: var(--ground-warm);
}

.ix-question-text {
  font-size: 1.02rem;
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 0.45rem;
  line-height: 1.5;
}

.ix-n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.6rem;
  height: 1.6rem;
  margin-right: 0.5rem;
  border-radius: 4px;
  background: var(--brand-wash);
  color: var(--brand);
  font-size: 0.85rem;
  font-weight: 700;
  vertical-align: middle;
}

.ix-hint {
  font-size: 0.9rem;
  color: var(--ink-soft);
  margin: 0 0 0.65rem 2.1rem;
  line-height: 1.5;
}

/* 3. Segmented choice buttons */
.ix-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-left: 2.1rem;
}

.ix-choice {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  min-width: 2.75rem;
  padding: 0.45rem 1.15rem;
  font-size: 0.95rem;
  font-weight: 600;
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  background: var(--ground);
  color: var(--ink);
  cursor: pointer;
  user-select: none;
}

@media (prefers-reduced-motion: no-preference) {
  .ix-choice {
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease, transform 0.12s ease;
  }
  .ix-choice:hover {
    transform: translateY(-1px);
  }
  .ix-choice:active {
    transform: translateY(1px);
  }
}

.ix-choice:hover {
  border-color: var(--brand);
  background: var(--brand-wash);
  color: var(--brand);
}

.ix-choice:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

.ix-choice[aria-pressed="true"] {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--surface);
  box-shadow: 0 2px 8px rgba(21, 89, 74, 0.25);
}

@media (prefers-color-scheme: dark) {
  .ix-choice[aria-pressed="true"] {
    box-shadow: 0 2px 10px rgba(111, 201, 174, 0.25);
  }
}

/* 4. Scorer meter and result panels */
.ix-result {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 2px solid var(--rule-strong);
}

.ix-meter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  align-items: stretch;
}

.ix-figure {
  flex: 1 1 9rem;
  margin: 0;
  padding: 0.9rem 1.15rem;
  background: var(--ground-warm);
  border: 1px solid var(--rule);
  border-radius: 8px;
}

.ix-figure-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: 0.25rem;
}

.ix-figure .ix-out {
  display: inline-block;
  font-size: 2.1rem;
  font-weight: 750;
  line-height: 1.1;
  color: var(--brand);
}

.ix-figure-of {
  font-size: 0.9rem;
  color: var(--ink-soft);
  margin-left: 0.25rem;
}

/* Status result callout panels */
.ix-panel {
  margin-top: 1.25rem;
  padding: 1.15rem 1.35rem;
  border-radius: 0 8px 8px 0;
  background: var(--ground-warm);
  border-left: 4px solid var(--rule-strong);
}

.ix-panel h3 {
  font-size: 1.15rem;
  font-weight: 650;
  color: var(--ink);
  margin: 0 0 0.4rem;
}

.ix-panel p {
  font-size: 0.98rem;
  color: var(--ink-soft);
  line-height: 1.6;
  margin: 0;
}

.ix-panel[data-ix-panel="stop"] {
  border-left-color: var(--accent);
  background: var(--ground-warm);
}

.ix-panel[data-ix-panel="stop"] h3 {
  color: var(--accent);
}

.ix-panel[data-ix-panel="clear"] {
  border-left-color: var(--brand-bright);
  background: var(--brand-wash);
}

.ix-panel[data-ix-panel="close"] {
  border-left-color: var(--brand);
  background: var(--ground-warm);
}

.ix-panel[data-ix-panel="heavy"] {
  border-left-color: var(--rule-strong);
  background: var(--ground-warm);
}

/* Zero guidance list */
.ix-zero-list {
  margin-top: 1.35rem;
  padding: 1.25rem;
  background: var(--ground-warm);
  border: 1px solid var(--rule);
  border-radius: 8px;
}

.ix-zero-list h3 {
  font-size: 1.1rem;
  font-weight: 650;
  color: var(--ink);
  margin: 0 0 0.85rem;
}

.ix-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ix-list li[data-ix-zero] {
  padding: 0.75rem 0;
  font-size: 0.96rem;
  line-height: 1.55;
  color: var(--ink-soft);
}

.ix-list li[data-ix-zero]:not([hidden]) ~ li[data-ix-zero]:not([hidden]) {
  border-top: 1px solid var(--rule);
}

.ix-list li strong {
  display: block;
  color: var(--ink);
  margin-bottom: 0.2rem;
}

.ix-actions {
  margin-top: 1.25rem;
}

.ix-reset {
  cursor: pointer;
}

/* 5. Scale explorer visual layer */
.ix-scale .ix-choices {
  margin-left: 0;
}

.ix-control {
  margin-top: 1.5rem;
  padding: 1.15rem;
  background: var(--ground-warm);
  border: 1px solid var(--rule);
  border-radius: 8px;
}

.ix-control-label {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 0.75rem;
}

.ix-range {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  height: 0.5rem;
  background: var(--rule-strong);
  border-radius: 999px;
  outline: none;
  accent-color: var(--brand);
  cursor: pointer;
  margin: 0.5rem 0;
}

.ix-range::-webkit-slider-runnable-track {
  height: 0.5rem;
  background: var(--rule-strong);
  border-radius: 999px;
}

.ix-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: var(--brand);
  border: 2px solid var(--surface);
  cursor: pointer;
  margin-top: -0.425rem;
}

.ix-range::-moz-range-track {
  height: 0.5rem;
  background: var(--rule-strong);
  border-radius: 999px;
}

.ix-range::-moz-range-thumb {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: var(--brand);
  border: 2px solid var(--surface);
  cursor: pointer;
}

.ix-ticks {
  display: flex;
  justify-content: space-between;
  padding: 0 0.25rem;
  margin-top: 0.45rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink-faint);
}

.ix-band-score {
  display: flex;
  align-items: baseline;
  gap: 0.65rem;
  margin: 0 0 0.85rem;
}

.ix-band-n {
  font-size: 2.6rem;
  font-weight: 800;
  line-height: 1;
  color: var(--brand);
}

.ix-band-of {
  font-size: 1rem;
  color: var(--ink-soft);
}

.ix-band-name {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--ink);
}

.ix-band-reads,
.ix-band-moves {
  margin: 0.4rem 0;
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--ink-soft);
}

.ix-band-reads strong,
.ix-band-moves strong {
  color: var(--ink);
}

.ix-scale .ix-meter {
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1.25rem;
  padding: 1.25rem;
  background: var(--ground-warm);
  border: 1px solid var(--rule);
  border-radius: 8px;
}

.ix-bar {
  display: flex;
  width: 100%;
  height: 0.9rem;
  border-radius: 999px;
  background: var(--rule);
  overflow: hidden;
  margin: 0.25rem 0 0.5rem;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

.ix-bar-earned {
  width: calc(var(--ix-earned, 0) * 1%);
  background: var(--brand);
}

.ix-bar-lost {
  width: calc(var(--ix-lost, 0) * 1%);
  background: var(--accent);
}

@media (prefers-reduced-motion: no-preference) {
  .ix-bar-earned,
  .ix-bar-lost {
    transition: width 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  }
}

.ix-sentence {
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--ink);
}

.ix-sentence .ix-out {
  font-weight: 750;
  color: var(--brand);
}

/* 6. Engagement timeline visual layer */
.ix-timeline-block .ix-choices {
  margin-left: 0;
  margin-top: 0.65rem;
}

.ix-timeline {
  position: relative;
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0 0 0 0.5rem;
}

.ix-timeline::before {
  content: "";
  position: absolute;
  top: 1rem;
  bottom: 1rem;
  left: 1.625rem;
  width: 2px;
  background: var(--rule-strong);
  z-index: 0;
}

.ix-milestone {
  position: relative;
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 1rem;
  padding: 1rem 0;
  z-index: 1;
}

.ix-milestone + .ix-milestone {
  border-top: 0;
}

.ix-milestone-n {
  display: inline-grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--brand);
  color: var(--brand);
  font-size: 0.95rem;
  font-weight: 750;
  box-shadow: 0 2px 6px rgba(21, 89, 74, 0.12);
}

.ix-milestone-body {
  padding: 0.9rem 1.2rem;
  background: var(--ground-warm);
  border: 1px solid var(--rule);
  border-radius: 8px;
}

.ix-milestone-body h3 {
  font-size: 1.15rem;
  font-weight: 650;
  color: var(--ink);
  margin: 0 0 0.35rem;
}

.ix-milestone-body p {
  font-size: 0.96rem;
  color: var(--ink-soft);
  line-height: 1.6;
  margin: 0;
}

/* 7. Mobile responsive adaptations */
@media (max-width: 32rem) {
  .ix {
    padding: 1rem;
    margin: 1.25rem 0;
  }
  .ix-choices {
    margin-left: 0;
    margin-top: 0.6rem;
  }
  .ix-hint {
    margin-left: 0;
  }
  .ix-figure {
    flex: 1 1 100%;
  }
  .ix-milestone {
    grid-template-columns: 2.25rem 1fr;
    gap: 0.75rem;
  }
}


/* 8. Tool-first pages. The compact hero (hero({ tool: true }) in
   lib/components.mjs) and the band that carries the interactive straight
   after it, so the tool starts inside the first screen. */
.hero-tool { padding-block: clamp(1.5rem, 0.75rem + 2vw, 2.5rem); }
.hero-tool h1 {
  max-width: 22ch;
  font-size: clamp(1.9rem, 1.3rem + 2.2vw, 2.75rem);
}
.hero-tool .eyebrow { margin-bottom: 0.6rem; }
.hero-tool .hero-intro {
  margin-top: 0.9rem;
  font-size: clamp(1.02rem, 0.96rem + 0.25vw, 1.12rem);
}
.hero-tool .hero-actions { margin-top: 1.1rem; }
.hero-tool .person-routes { margin-top: 0.7rem; font-size: 0.94rem; }
.hero-tool .hero-note { margin-top: 0.9rem; padding-top: 0.75rem; }

@media (min-width: 56rem) {
  .hero-tool .wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    column-gap: clamp(2rem, 4vw, 4rem);
    align-items: center;
  }
  .hero-tool .hero-intro { margin-top: 0; }
}

.band.ix-lift { padding-top: clamp(1rem, 0.5rem + 1.2vw, 1.5rem); }
.band.ix-lift > .wrap > .ix.is-ready:first-child { margin-top: 0; }
.band.ix-lift > .wrap > h2:first-child { margin-top: 0; }
@media (min-width: 48rem) {
  .band.ix-lift > .wrap > .ix.is-ready:first-child { padding-top: 1.5rem; }
}

/* The timeline opens on its lane question, so it needs no rule above it. */
.ix-timeline-block > .ix-question:first-child { border-top: 0; padding-top: 0; }

/* The guide byline is a bare paragraph outside .wrap, so it sat on the
   viewport edge. Align it with the column every other line of the page
   sits in. */
.byline {
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline: 1.25rem;
}

/* With JavaScript off the interactive stays hidden, so its lifted band would
   be an empty strip at the top of the page. Collapse it to nothing. */
.band.ix-lift:has(> .wrap > .ix[hidden]:only-child) { padding: 0; }

/* ==========================================================================
   British Working Paper, Service Lanes & Rubric (Astra Visual Upgrade)
   ========================================================================== */
:root,
.bc-paper {
  --bc-paper: #fbfaf7;
  --bc-forest: #0e241f;
  --bc-ink: #202821;
  --bc-muted: #62675e;
  --bc-rule: #d6d4c9;
  --bc-wash: #efeee7;
  --bc-positive: #e8efe8;
  --bc-caution: #f6eddd;
}

.bc-paper {
  background: var(--bc-paper);
  color: var(--bc-ink);
}

.bc-wrap {
  width: min(100% - 2.5rem, 74rem);
  margin-inline: auto;
}

.bc-kicker {
  font: 600 0.6875rem/1.4 system-ui, sans-serif;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.bc-title {
  max-width: 16ch;
  font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  font-size: clamp(2.8rem, 5.5vw, 5.4rem);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -0.035em;
}

.bc-section-title {
  font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 400;
  line-height: 1.12;
}

.bc-prose {
  max-width: 66ch;
  font-size: 1.0625rem;
  line-height: 1.75;
}

.bc-button {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.25rem;
  border: 1px solid var(--bc-forest, #0e241f);
  background: var(--bc-forest, #0e241f);
  color: #fff;
  font: 600 0.875rem/1.4 system-ui, sans-serif;
  text-decoration: none;
}

.bc-button:hover {
  background: #1c4036;
  color: #fff;
}

.bc-paper :focus-visible {
  outline: 3px solid #a8551f;
  outline-offset: 4px;
}

.bc-services {
  padding-block: 3.5rem;
}

.bc-service-lanes {
  display: grid;
  gap: 1.5rem;
  margin-top: 2rem;
}

.bc-service-lane {
  padding: 2rem;
  border: 1px solid var(--rule, #d6d4c9);
  background: var(--surface, #ffffff);
  border-radius: 8px;
}

.bc-service-lane h3 {
  margin-top: 0.5rem;
  font-size: 1.6rem;
}

.bc-price-list {
  margin-block: 1.5rem;
}

.bc-price-list > div {
  display: grid;
  gap: 0.25rem;
  padding-block: 0.75rem;
  border-top: 1px solid var(--rule, #d6d4c9);
}

.bc-price-list dd {
  font-size: 1.5rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--brand, #15594a);
}

.bc-price-list dd span {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--ink-soft, #4c5a55);
}

@media (min-width: 48rem) {
  .bc-service-lanes {
    grid-template-columns: 1fr 1fr;
  }
}

/* Rubric table styling */
.bc-table-scroll {
  overflow-x: auto;
  margin-block: 2rem;
}

.bc-rubric-table,
table.compare {
  width: 100%;
  min-width: 44rem;
  border-collapse: collapse;
  font-size: 0.9375rem;
  line-height: 1.6;
}

.bc-rubric-table caption,
table.compare caption {
  padding-bottom: 1rem;
  text-align: left;
  color: var(--ink-soft, #4c5a55);
}

.bc-rubric-table th,
.bc-rubric-table td,
table.compare th,
table.compare td {
  padding: 1.25rem;
  border-bottom: 1px solid var(--rule, #d6d4c9);
  text-align: left;
  vertical-align: top;
}

.bc-rubric-table thead th,
table.compare thead th {
  background: var(--ground-deep, #10302a);
  color: #fff;
}

.bc-rubric-table tbody th,
table.compare tbody th {
  width: 22%;
  font-weight: 600;
}

.bc-rubric-table tbody td:nth-child(2) {
  background: #fdf6ec;
}

.bc-rubric-table tbody td:nth-child(3) {
  background: #f0f7f3;
}

/* Scorecard progress indicator */
.bc-score-progress {
  display: grid;
  gap: 0.625rem;
  margin-block: 1.5rem;
  font-size: 0.8125rem;
}

.bc-score-progress label:not(:first-child) {
  margin-top: 0.75rem;
}

.bc-score-progress progress,
.bc-score-progress meter {
  width: 100%;
  height: 0.75rem;
  accent-color: var(--brand, #15594a);
}

/* ==========================================================================
   Document Interactives: Anatomy, Teardown and Evaluation Scorecard
   ========================================================================== */

.ix-document-block {
  border: 1px solid var(--rule, #dcdcd8);
  border-radius: var(--radius, 6px);
  background: var(--surface, #ffffff);
  padding: 1.5rem;
  margin: 2rem 0;
}

@media (min-width: 48rem) {
  .ix-document-block {
    padding: 2.25rem;
  }
}

.ix-doc-header {
  margin-bottom: 1.25rem;
  border-bottom: 1px solid var(--rule, #dcdcd8);
  padding-bottom: 1rem;
}

.ix-doc-kicker {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--brand, #15594a);
  margin-bottom: 0.25rem;
}

.ix-doc-title {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--ink, #121212);
}

.ix-doc-disclaimer {
  margin: 0.5rem 0 0;
  font-size: 0.8125rem;
  color: var(--ink-soft, #555555);
}

.ix-prompt-box {
  background: var(--ground, #f7f7f4);
  border: 1px solid var(--rule, #dcdcd8);
  border-radius: 4px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
}

.ix-prompt-text {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ink, #121212);
}

.ix-prompt-sub {
  margin: 0;
  font-size: 0.85rem;
  color: var(--ink-soft, #555555);
}

.ix-layer-panel,
.ix-teardown-panel {
  background: var(--surface, #ffffff);
  border: 1px solid var(--rule, #dcdcd8);
  border-radius: 6px;
  padding: 1.25rem;
  margin-top: 1rem;
}

.ix-layer-kicker {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--brand, #15594a);
  margin-bottom: 0.25rem;
}

.ix-layer-summary {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
  font-weight: 700;
}

.ix-layer-desc {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ink-soft, #555555);
}

.ix-panel-badge-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--rule, #dcdcd8);
}

.ix-panel-label {
  font-weight: 700;
  font-size: 0.9rem;
}

.ix-score-badge {
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  background: var(--ground-deep, #10302a);
  color: #ffffff;
}

.ix-passage-quote {
  margin: 0 0 1.25rem;
  padding: 1rem;
  border-left: 3px solid var(--brand, #15594a);
  background: var(--ground, #f7f7f4);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--ink, #121212);
}

.ix-critique-box {
  background: #fdf6ec;
  border: 1px solid #f3d19c;
  border-radius: 4px;
  padding: 0.875rem 1rem;
  font-size: 0.875rem;
  line-height: 1.5;
}

.ix-critique-box strong {
  display: block;
  margin-bottom: 0.25rem;
  color: #92400e;
}

.ix-critique-box p {
  margin: 0;
  color: #78350f;
}

/* Criteria and Scorecard */
.ix-criteria-list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin: 1.5rem 0;
}

.ix-criterion-row {
  border: 1px solid var(--rule, #dcdcd8);
  border-radius: 6px;
  padding: 1.25rem;
  background: var(--surface, #ffffff);
}

.ix-criterion-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 0.35rem;
}

.ix-criterion-name {
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink, #121212);
}

.ix-criterion-weight {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--brand, #15594a);
}

.ix-criterion-desc {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: var(--ink-soft, #555555);
}

.ix-score-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px dashed var(--rule, #dcdcd8);
}

.ix-score-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ink-soft, #555555);
}

.ix-score-buttons {
  display: flex;
  gap: 0.4rem;
}

.ix-score-btn {
  min-width: 2.25rem;
  min-height: 2.25rem;
  border: 1px solid var(--rule-strong, #b5b5b0);
  border-radius: 4px;
  background: var(--ground, #f7f7f4);
  color: var(--ink, #121212);
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
}

.ix-score-btn:hover {
  border-color: var(--brand, #15594a);
}

.ix-score-btn:focus-visible {
  outline: 2px solid var(--focus, #f59e0b);
  outline-offset: 2px;
}

.ix-score-btn[aria-pressed="true"] {
  background: var(--brand, #15594a);
  border-color: var(--brand, #15594a);
  color: #ffffff;
}

.ix-scorecard-summary {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 2px solid var(--rule-strong, #b5b5b0);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
}

.ix-scorecard-numbers {
  display: flex;
  gap: 2rem;
}

.ix-stat-box {
  display: flex;
  flex-direction: column;
}

.ix-stat-label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-faint, #777777);
}

.ix-stat-value {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--brand, #15594a);
}

.ix-scorecard-actions {
  display: flex;
  gap: 0.75rem;
}

.ix-btn-action {
  min-height: 2.5rem;
  padding: 0.45rem 1rem;
  border: 1px solid var(--rule-strong, #b5b5b0);
  border-radius: 4px;
  background: var(--ground, #f7f7f4);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink, #121212);
  cursor: pointer;
}

.ix-btn-action:hover {
  background: var(--surface, #ffffff);
  border-color: var(--brand, #15594a);
}

@media (prefers-reduced-motion: no-preference) {
  .ix-score-btn {
    transition: all 0.15s ease;
  }
}

.ix-print-score-val {
  display: none;
}

.ix-prompt-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.ix-meta-pill {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  background: var(--ground, #f7f7f4);
  border: 1px solid var(--rule, #dcdcd6);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ink-soft, #555555);
}

.ix-rubric-legend {
  margin: 1rem 0 1.5rem;
  padding: 0.75rem 1rem;
  border-radius: 4px;
  background: var(--ground, #f7f7f4);
  border-left: 3px solid var(--brand, #15594a);
}

.ix-legend-title {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--brand, #15594a);
  margin-bottom: 0.35rem;
}

.ix-rubric-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.ix-rubric-pill {
  font-size: 0.75rem;
  color: var(--ink-soft, #555555);
  background: #ffffff;
  padding: 0.15rem 0.5rem;
  border-radius: 3px;
  border: 1px solid var(--rule, #dcdcd6);
}

.ix-scorecard-review-callout {
  margin-top: 2rem;
  padding: 1.25rem 1.5rem;
  border-radius: 6px;
  background: var(--ground, #f7f7f4);
  border: 1px solid var(--rule-strong, #b5b5b0);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.ix-scorecard-review-callout .ix-callout-text strong {
  display: block;
  font-size: 0.95rem;
  color: var(--ink, #121212);
  margin-bottom: 0.25rem;
}

.ix-scorecard-review-callout .ix-callout-text p {
  margin: 0;
  font-size: 0.85rem;
  color: var(--ink-soft, #555555);
}

.ix-btn-cta {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.5rem 1.25rem;
  border-radius: 4px;
  background: var(--brand, #15594a);
  color: #ffffff;
  font-weight: 700;
  font-size: 0.85rem;
  text-decoration: none;
  white-space: nowrap;
}

.ix-btn-cta:hover {
  background: var(--brand-deep, #0f4035);
  color: #ffffff;
}

/* Primary-navigation reading rhythm, October 2026. */
.page-index { background: #f1eee6; border-block: 1px solid #d4d8cf; color: #173b31; }
.page-index .wrap { padding-block: 1.25rem; }
.page-index .kicker { margin: 0 0 .65rem; }
.page-index-links { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; }
.page-index-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: .95rem; text-underline-offset: .3em; }
.reading-details { border-block: 1px solid #c7cec3; margin-block: 1.5rem; padding: 1rem 0; }
.reading-details > summary { cursor: pointer; min-height: 44px; padding-block: .5rem; font-weight: 650; }
.reading-details[open] > summary { margin-bottom: 1.5rem; }
.navigation-reading h2[id], .navigation-reading section[id] { scroll-margin-top: 6rem; }
.navigation-reading .band .wrap > p { max-width: 68ch; }
.navigation-reading .table-note { max-width: 74ch; }
@media (max-width: 600px) { .page-index-links { display: grid; grid-template-columns: 1fr; gap: .25rem; } }
@media print { .page-index { display: none; } }

.document-workflow { list-style: none; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(3, minmax(0,1fr)); margin-block: 2rem; }
.document-workflow > li { border-top: 2px solid #355e4c; padding-top: 1.25rem; }
.document-workflow h3 { margin-block: .75rem; }
.service-choice { display: grid; gap: 0; margin-block: 2rem; border-top: 1px solid #b6c3b6; }
.service-choice > div { display: grid; grid-template-columns: minmax(10rem,1fr) 2fr; gap: 1.5rem; padding-block: 1.25rem; border-bottom: 1px solid #b6c3b6; }
.service-choice dt { font-weight: 700; color: #173b31; }
.service-choice dd { margin: 0; max-width: 60ch; }
@media (max-width: 700px) { .document-workflow, .service-choice > div { grid-template-columns: 1fr; } .service-choice > div { gap: .5rem; } }

/* Authored document scenes: useful static HTML first, motion as an enhancement. */
.creative-wrap{
  width:min(88rem,calc(100% - 5rem));
  margin-inline:auto}
.creative-opening{
  padding:clamp(2rem,5vw,5rem) 0;
  background:var(--ground-warm);
  border-bottom:1px solid var(--rule);
  overflow:clip}
.creative-opening .creative-wrap{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:center}
.creative-opening h1{
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(2.8rem,4.8vw,5rem);
  line-height:1.03;
  letter-spacing:-.055em;
  max-width:12ch;
  margin:.7rem 0 1.5rem}
.opening-intro{
  font-size:1.1rem;
  line-height:1.65;
  max-width:39ch;
  color:var(--ink-soft)}
.opening-copy .hero-actions{
  margin-top:1.6rem}
.opening-text-link{
  display:inline-block;
  margin-top:1rem;
  font-size:.9rem}
.opening-terms{
  font-size:.85rem;
  line-height:1.5;
  max-width:44ch;
  margin-top:1.5rem;
  color:var(--ink-soft)}
.opening-art{
  position:relative;
  min-width:0}
.scene-label,.paper-topline,.paper-bottomline{
  font:600 .65rem/1.5 system-ui,sans-serif;
  letter-spacing:.09em;
  text-transform:uppercase}
.scene-label{
  margin-bottom:1rem!important;
  color:inherit;
  opacity:.8}
.marked-page{
  background:#fffdf5;
  color:#1e322c;
  box-shadow:0 35px 60px -35px #122c2860,0 0 0 1px #203e2820;
  padding:clamp(1.3rem,3vw,2.7rem);
  transform:rotate(-1deg)}
.paper-topline,.paper-bottomline{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  border-bottom:1px solid #c8cdbf;
  padding-bottom:1rem;
  margin-bottom:1.5rem}
.paper-bottomline{
  border-top:1px solid #c8cdbf;
  border-bottom:0;
  margin:1.5rem 0 0;
  padding:1rem 0 0}
.paper-question{
  font:400 clamp(1.2rem,1.7vw,1.65rem)/1.4 Georgia,serif;
  margin-bottom:1.5rem!important}
.paper-pair{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:1.4rem}
.paper-pair p{
  font-size:1rem;
  line-height:1.6}
.paper-original s{
  text-decoration-color:#a33c28;
  text-decoration-thickness:2px}
.paper-note{
  color:#9c3829;
  font:italic 1rem/1.4 Georgia,serif!important;
  margin-top:1rem!important}
.paper-revised{
  border-left:2px solid #2b715c;
  padding-left:1.4rem}
.paper-pending{
  font:500 .78rem/1.5 system-ui,sans-serif!important;
  background:#f1e4c7;
  color:#5b421e;
  padding:.7rem .8rem;
  margin-top:1rem!important;
  border-left:2px solid #977034}
.scene-display{
  font:400 clamp(2.5rem,4vw,4.2rem)/1.05 Georgia,serif;
  letter-spacing:-.04em;
  display:block;
  margin:1rem 0 2rem}
.grant-spread{
  background:#284738;
  color:#fff9e9;
  padding:2rem 2.5rem;
  box-shadow:18px 18px 0 #d6bf8b}
.grant-chain{
  display:grid;
  grid-template-columns:1fr;
  gap:.65rem}
.grant-chain article{
  display:grid;
  grid-template-columns:7rem 1fr;
  gap:1rem;
  border-top:1px solid #ffffff30;
  padding-top:.8rem}
.grant-chain p{
  font-size:.92rem;
  line-height:1.5;
  margin:0}
.grant-chain>span{
  color:#d6bf8b;
  margin-left:7.5rem}
.grant-proof{
  color:#e4d4ac}
.scene-footnote{
  font-size:.75rem!important;
  line-height:1.5!important;
  margin-top:1.5rem!important;
  opacity:.8}
.tender-pack{
  padding:2.3rem;
  background:#173332;
  color:#eef7f0;
  box-shadow:-12px 12px 0 #b6ccbd}
.tender-pack ol,.working-month ol{
  padding:0;
  list-style:none}
.tender-pack li{
  display:flex;
  gap:1.4rem;
  border-top:1px solid #ffffff35;
  padding:1rem 0}
.tender-pack li>span{
  font:2rem Georgia;
  color:#9fc8b7}
.tender-pack p{
  margin:.3rem 0 0;
  font-size:.92rem}
.writing-desk{
  padding:2rem 1rem}
.evidence-slip{
  margin-right:15%;
  background:#e9dbc1;
  color:#453b29;
  padding:1.5rem;
  transform:rotate(-3deg);
  box-shadow:0 10px 30px #0001}
.evidence-slip span,.written-sheet>span{
  font:600 .65rem system-ui;
  letter-spacing:.13em}
.evidence-slip p{
  font:1.15rem/1.5 Georgia;
  margin-top:.7rem}
.writing-connector{
  font-size:2rem;
  text-align:center;
  color:var(--brand);
  margin:.5rem}
.written-sheet{
  margin-left:12%;
  background:#fffdf5;
  color:#1e322c;
  padding:1.7rem;
  transform:rotate(2deg);
  box-shadow:0 15px 35px #0002}
.written-sheet p{
  font:1.4rem/1.5 Georgia;
  margin:.8rem 0}
.written-sheet small{
  display:block;
  border-top:1px solid #b7bdb1;
  padding-top:.8rem;
  color:#786140}
.working-month{
  background:#e2e9df;
  color:#25382d;
  padding:2.2rem;
  border:1px solid #bfcbbc}
.month-title{
  display:flex;
  justify-content:space-between;
  font:2.8rem/1.05 Georgia;
  margin-bottom:1.8rem;
  letter-spacing:-.03em}
.working-month li{
  position:relative;
  border-left:1px solid #859a80;
  padding:0 0 1.6rem 1.5rem;
  margin-left:.35rem}
.working-month li:last-child{
  padding-bottom:0}
.month-dot{
  position:absolute;
  left:-.3rem;
  top:.25rem;
  width:.55rem;
  height:.55rem;
  background:#365d46;
  border-radius:50%}
.working-month li p{
  font-size:.95rem;
  margin:.4rem 0}
.working-month small{
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.06em}
.priced-work{
  display:grid;
  gap:1rem}
.priced-work>a{
  display:grid;
  grid-template-columns:5.5rem 1fr;
  gap:1.4rem;
  padding:1.2rem;
  background:var(--surface);
  border:1px solid var(--rule);
  text-decoration:none}
.price-art{
  background:var(--brand-wash);
  color:var(--brand);
  display:grid;
  place-items:center;
  font:2.5rem Georgia;
  position:relative;
  min-height:6rem;
  min-width:0;
  overflow:hidden;
  overflow-wrap:anywhere}
.price-art > * { max-width:100%; }
.price-art-sheet { padding:.4rem; }
.price-art-sheet svg { display:block; width:100%; height:auto; max-height:6rem; }
.priced-work > a > div { min-width:0; }
.priced-work .price-art-extract b { font:.72rem/1.3 Georgia,serif; }
.price-art span{
  position:absolute;
  right:.4rem;
  bottom:.4rem;
  font-size:1rem}
.priced-work b{
  font:1.45rem Georgia}
.priced-work p{
  font-size:.9rem;
  line-height:1.5;
  margin:.5rem 0}
.price-see{
  font-size:.78rem;
  font-weight:650;
  color:var(--brand)}
.guide-library{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.2rem;
  align-items:center}
.guide-cover{
  display:flex;
  flex-direction:column;
  min-height:28rem;
  padding:1.5rem;
  text-decoration:none!important;
  box-shadow:0 20px 25px -15px #0005;
  transition:translate .25s}
.guide-cover:hover{
  translate:0 -5px}
.guide-cover>span{
  font-size:.66rem;
  letter-spacing:.1em}
.guide-cover strong{
  font:clamp(1.7rem,2.5vw,2.9rem)/1.1 Georgia;
  margin-top:2rem}
.guide-cover .cover-symbol{
  font:6rem Georgia;
  margin:auto 0}
.cover-one{
  background:#173f33;
  color:#fff3d9!important;
  transform:rotate(-3deg)}
.cover-two{
  background:#ddbd7b;
  color:#273e32!important;
  transform:rotate(4deg);
  margin-top:3rem}
.document-journey{
  background:var(--ground-deep);
  color:var(--on-deep);
  padding:5rem 0}
.journey-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:6rem;
  align-items:start}
.journey-fixed{
  position:sticky;
  top:6rem}
.journey-fixed h2{
  font:400 clamp(2.4rem,3.6vw,4rem)/1.05 Georgia;
  color:inherit;
  letter-spacing:-.04em;
  margin-bottom:1rem}
.journey-focus{
  padding:1.8rem;
  background:#fffdf5;
  color:#20382c;
  margin:1.5rem 0;
  box-shadow:10px 10px 0 #ffffff12}
.journey-focus>span{
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.1em}
.journey-focus blockquote{
  font:1.6rem/1.45 Georgia;
  margin:1rem 0;
  border:0;
  padding:0;
  color:inherit}
.journey-nav{
  display:flex;
  gap:.4rem;
  margin:1.7rem 0}
.journey-nav a{
  display:flex;
  gap:.4rem;
  align-items:center;
  border:1px solid #ffffff50;
  padding:.5rem;
  color:inherit;
  text-decoration:none;
  font-size:.8rem}
.journey-nav a[aria-current="step"]{
  background:#e1c282;
  color:#20382c;
  border-color:#e1c282}
.journey-nav span{
  font-size:.62rem}
.journey-fixed .btn-primary{
  background:#e1c282;
  color:#20382c;
  border-color:#e1c282}
.journey-scope{
  font-size:.75rem;
  color:var(--on-deep-soft);
  margin-top:1rem}
.journey-step{
  min-height:26rem;
  padding:2.5rem 0 5rem;
  border-top:1px solid #ffffff30;
  scroll-margin-top:8rem}
.step-number{
  font:3.5rem Georgia;
  color:#d4bb86}
.journey-step h3{
  font:2rem/1.2 Georgia;
  color:inherit;
  margin:1rem 0}
.journey-step>p{
  font-size:1rem;
  color:var(--on-deep-soft)}
.journey-step blockquote{
  font:1.15rem/1.5 Georgia;
  border-left:2px solid #cbb47a;
  padding-left:1rem;
  margin:1.5rem 0;
  color:inherit}
.navigation-reading:has(.creative-opening)>.band{
  padding-block:3rem}
.navigation-reading:has(.creative-opening)>.band>.wrap>h2{
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(1.8rem,3vw,2.7rem);
  max-width:24ch}
.navigation-reading:has(.creative-opening)>.band>.wrap>p{
  max-width:65ch}


@media(min-width:1000px){
  .navigation-reading:has(.creative-opening)>.band>.wrap{
  max-width:76rem}
.navigation-reading:has(.creative-opening)>.band>.wrap:has(>h2):not(:has(>h2 ~ h2,form,.ix,table,.cards,.fee-table,.bc-service-lanes,.evidence-story,.offer-grid,.plan-grid,.proof-composition,.review-deliverables,.writing-flow,.evidence-triptych,.retained-cycle,.payment-ledger,.tender-tests,.evidence-spread,.founding-grid,.free-paid,.writer-profile)){
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  column-gap:4rem}
.navigation-reading:has(.creative-opening)>.band>.wrap:has(>h2):not(:has(>h2 ~ h2,form,.ix,table,.cards,.fee-table,.bc-service-lanes,.evidence-story,.offer-grid,.plan-grid,.proof-composition,.review-deliverables,.writing-flow,.evidence-triptych,.retained-cycle,.payment-ledger,.tender-tests,.evidence-spread,.founding-grid,.free-paid,.writer-profile))>h2{
  grid-column:1;
  grid-row:1 / span 2}
.navigation-reading:has(.creative-opening)>.band>.wrap:has(>h2):not(:has(>h2 ~ h2,form,.ix,table,.cards,.fee-table,.bc-service-lanes,.evidence-story,.offer-grid,.plan-grid,.proof-composition,.review-deliverables,.writing-flow,.evidence-triptych,.retained-cycle,.payment-ledger,.tender-tests,.evidence-spread,.founding-grid,.free-paid,.writer-profile))>:not(h2){
  grid-column:2}
}

@media(max-width:900px){
  .creative-wrap{
  width:calc(100% - 2.5rem)}
.creative-opening .creative-wrap{
  grid-template-columns:1fr;
  gap:2.5rem}
.creative-opening h1{
  font-size:clamp(2.5rem,8vw,4rem);
  max-width:16ch}
.opening-intro{
  max-width:50ch}
.opening-art{
  max-width:42rem;
  width:100%;
  margin-inline:auto}
.opening-copy{
  max-width:42rem}
.journey-grid{
  grid-template-columns:1fr;
  gap:2rem}
.journey-fixed{
  position:static}
.journey-steps{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem}
.journey-step{
  min-height:0;
  padding:1.5rem 0}
.journey-focus blockquote{
  font-size:1.4rem}
.document-journey{
  padding:3rem 0}
.guide-cover{
  min-height:23rem}
.creative-opening{
  padding-bottom:3.5rem}
}

@media(max-width:520px){
  .creative-wrap{
  width:calc(100% - 2rem)}
.paper-pair{
  grid-template-columns:1fr;
  gap:1rem}
.paper-revised{
  padding-left:1rem}
.marked-page{
  transform:none;
  padding:1.3rem}
.paper-question{
  font-size:1.15rem}
.paper-pair p{
  font-size:.92rem}
.paper-topline{
  margin-bottom:1rem}
.journey-steps{
  grid-template-columns:1fr}
.journey-nav{
  flex-wrap:wrap}
.grant-spread,.tender-pack,.working-month{
  padding:1.5rem;
  box-shadow:7px 7px 0 #bdc8b7}
.grant-chain article{
  grid-template-columns:1fr;
  gap:.3rem}
.grant-chain>span{
  margin-left:0}
.guide-library{
  gap:.7rem}
.guide-cover{
  padding:1rem;
  min-height:22rem}
.guide-cover strong{
  font-size:1.8rem}
.priced-work>a{
  grid-template-columns:4rem 1fr;
  gap:1rem}
.written-sheet{
  margin-left:3%;
  padding:1.2rem}
.evidence-slip{
  margin-right:4%}
.written-sheet p{
  font-size:1.2rem}
.opening-terms{
  font-size:.8rem}
.journey-focus{
  padding:1.3rem}
}

@media(prefers-reduced-motion:reduce){
  .guide-cover{
  transition:none}
.journey-fixed{
  position:static}
.journey-step{
  min-height:0;
  padding:2rem 0}
}

@media(max-height:760px) and (min-width:901px){
  .journey-fixed{
  position:static}
}

@media print{
  .creative-opening,.document-journey{
  background:white;
  color:black}
.journey-fixed{
  position:static}
.journey-grid,.creative-opening .creative-wrap{
  display:block}
.journey-step{
  min-height:0;
  break-inside:avoid}
.journey-nav{
  display:none}
.marked-page,.grant-spread,.tender-pack{
  box-shadow:none;
  transform:none}
}


.opening-context{
  padding:2rem 0;
  border-bottom:1px solid var(--rule)}
.opening-context p{
  max-width:65ch;
  font-size:1rem;
  line-height:1.7}
.navigation-reading:has(#enquiry)>.hero-tool{
  padding-block:2.2rem}
.navigation-reading:has(#enquiry)>.hero-tool h1{
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(2.6rem,5vw,4.5rem)}
.navigation-reading:has(#enquiry)>.page-index{
  display:none}
#enquiry{
  scroll-margin-top:6rem}
#enquiry>.wrap{
  max-width:65rem}
#enquiry .form{
  background:var(--surface);
  border:1px solid var(--rule);
  padding:clamp(1.2rem,3vw,2.5rem);
  box-shadow:var(--shadow)}


.price-art-extract{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:.65rem;
  padding:.7rem;
  font: .8rem/1.3 Georgia}
.price-art-extract s{
  text-decoration-color:#963c2b}
.price-art-extract i{
  font-size:.7rem;
  color:#75522a}
.price-art-extract .mini-rule{
  display:block;
  position:static;
  width:100%;
  height:4px;
  border-top:1px solid currentColor;
  border-bottom:1px solid currentColor}
.price-art-month{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.6rem;
  padding:.7rem}
.price-art-month i{
  font:600 .6rem/1.3 system-ui;
  border-bottom:1px solid currentColor;
  padding-bottom:.3rem}
.priced-work .price-see{
  display:block;
  line-height:1.5}
.opening-copy .person-routes{
  font-size:.82rem;
  flex-basis:100%}

@media(max-width:600px){
  .creative-opening{
  padding-top:1.3rem}
.creative-opening .creative-wrap{
  gap:1.15rem;
  display:flex;
  flex-direction:column;
  align-items:stretch}
.opening-copy{
  display:contents}
.opening-copy>.eyebrow{
  order:0;
  margin:0}
.creative-opening h1{
  order:1;
  font-size:2.65rem;
  max-width:17ch;
  margin:0;
  line-height:1.04}
.opening-copy>.hero-actions{
  order:2;
  margin:0}
.opening-art{
  order:3;
  margin-top:.5rem}
.opening-intro{
  order:4;
  font-size:1rem}
.opening-text-link{
  order:5;
  margin:0}
.opening-terms{
  order:6;
  margin-top:0}
.opening-home .paper-question,.opening-review .paper-question{
  font-size:1rem}
.paper-pair .scene-label{
  margin-bottom:.4rem!important}
.paper-pair p{
  font-size:.88rem}
.paper-topline{
  margin-bottom:.75rem;
  padding-bottom:.7rem}
.paper-bottomline{
  margin-top:.8rem;
  padding-top:.8rem}
.opening-home .paper-pair,.opening-review .paper-pair{
  gap:.75rem}
.opening-art .marked-page{
  padding:1.1rem}
}


.guide-index-art{
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:6rem;
  margin:.7rem 0 1.2rem;
  padding:1rem;
  background:var(--brand-wash);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule)}
.guide-index-art>span{
  font:600 .66rem system-ui;
  letter-spacing:.15em}
.guide-index-art>b{
  font:3rem Georgia;
  color:var(--brand)}
.guide-index-art-1,.guide-index-art-3,.guide-index-art-5,.guide-index-art-7{
  background:var(--ground-warm)}
.enquiry-audience{
  max-width:24rem;
  margin-bottom:1.5rem}
.enquiry-audience select{
  width:100%;
  padding:.8rem;
  background:var(--ground);
  color:var(--ink);
  border:1px solid var(--rule-strong);
  font:inherit}


/* Review fold: make the offer and the requirement persist through the visual. */
.opening-service{font-size:1rem;line-height:1.45;color:var(--ink);font-weight:600;max-width:42ch;margin:0 0 1rem}.journey-question{font-size:.88rem;line-height:1.45;padding-left:1rem;border-left:2px solid #d4bb86;max-width:52ch}.journey-question>span{display:block;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:#d4bb86;margin-bottom:.4rem}.journey-fixed h2{font-size:clamp(2rem,3vw,3rem)}.journey-exit{display:block;color:var(--on-deep);font-size:.85rem;margin-top:1rem;min-height:44px;padding:.6rem 0}.writing-desk mark{background:#ead887;color:#25382d;padding:.05em .15em}.opening-home+.page-index .wrap,.opening-review+.page-index .wrap{padding-block:.7rem}.opening-home+.page-index .kicker,.opening-review+.page-index .kicker{display:none}
@media(max-width:600px){.opening-service{order:1;margin:0;font-size:.95rem}.page-index-links{display:flex;flex-wrap:wrap;gap:.1rem 1rem}}

/* Hosted visual fold: legible opening label and motion-aware fallback. */
.creative-opening .eyebrow{color:#496359}
.document-journey:not([data-can-pin="true"]) .journey-step{min-height:0}
@media(prefers-reduced-motion:reduce){.guide-cover:hover{translate:none}}

.client-understanding{padding:3rem 0;background:#f0ece2}.client-understanding h2{max-width:28ch;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.1}.client-understanding-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin:2rem 0}.client-understanding-grid article{border-top:2px solid #9c3829;padding-top:1rem}.client-understanding-grid span{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.client-understanding-grid h3{font-size:1.35rem;margin:.7rem 0}.client-understanding-grid p{font-size:1rem;line-height:1.55}.journey-nav a:hover,.journey-nav a:focus-visible{background:#e8d9bd;outline:2px solid #9c3829;outline-offset:2px}@media(max-width:700px){.client-understanding-grid{grid-template-columns:1fr;gap:1.5rem}}

/* A visible invitation to practise evaluation, not a predicted award. */
.scorecard-invitation{border:2px solid #277c76;border-radius:16px;background:#eaf3ec;overflow:hidden;margin:28px 0}.scorecard-invitation>summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:200px 1fr;gap:30px;align-items:center;padding:30px}.scorecard-invitation>summary::-webkit-details-marker{display:none}.scorecard-invitation summary strong{display:block;font-size:clamp(26px,4vw,42px);line-height:1.1;color:#173e39}.scorecard-invitation summary small{display:block;font-size:16px;margin-top:12px;color:#365650}.scorecard-start{display:inline-flex;background:#174f49;color:#fff;padding:14px 20px;border-radius:8px;margin-top:18px;font-size:15px;font-weight:700}.scorecard-visual{height:140px;display:flex;align-items:flex-end;justify-content:center;gap:10px;position:relative;padding:22px 12px 0;border-bottom:2px solid #466d62}.scorecard-visual i{font:600 15px sans-serif;width:30px;border-radius:5px 5px 0 0;text-align:center;padding-top:8px;background:#d28f3e;color:#2f281d;height:44%}.scorecard-visual i:nth-child(2){height:70%;background:#609ac1}.scorecard-visual i:nth-child(3){height:53%;background:#b4a455}.scorecard-visual i:nth-child(4){height:89%;background:#389a80}.scorecard-visual b{position:absolute;right:0;top:0;border-radius:50%;background:#fff;color:#174f49;width:36px;height:36px;text-align:center;font-size:24px}.scorecard-explainer{padding:0 28px;font-size:15px}.scorecard-invitation #ix-tender-evaluation{margin:24px}.scorecard-invitation summary:hover .scorecard-start{background:#26796f}.scorecard-invitation summary:focus-visible{outline:3px solid #a76026;outline-offset:-5px}@media(max-width:600px){.scorecard-invitation>summary{grid-template-columns:1fr;padding:22px;gap:18px}.scorecard-visual{height:110px;max-width:230px}.scorecard-invitation #ix-tender-evaluation{margin:12px}}

.evidence-picture{margin:30px 0 36px;border:1px solid #c6c9b9;border-radius:16px;background:radial-gradient(ellipse at top,#edf0df,#f6f1e5);overflow:hidden}.evidence-picture svg{width:100%;max-height:320px;display:block;padding:16px 8px;box-sizing:border-box}.evidence-picture figcaption{padding:20px 26px;background:#fffdf5;border-top:1px solid #d1d5c5}.evidence-picture strong{display:block;font-size:clamp(20px,2.6vw,28px);line-height:1.2;color:#204c40}.evidence-picture figcaption span{display:block;font-size:15px;line-height:1.6;margin-top:8px;color:#4c5e51}@media(max-width:600px){.evidence-picture svg{padding:8px 0;min-height:150px}.evidence-picture figcaption{padding:18px}.evidence-picture figcaption span{font-size:14px}}

@media(min-width:1000px){.band>.wrap:has(>.evidence-picture){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:42px;align-items:start}.band>.wrap:has(>.evidence-picture)>h2{grid-column:1/-1}.band>.wrap:has(>.evidence-picture)>.evidence-picture{grid-column:1;grid-row:2/span 40;position:sticky;top:100px;margin-top:12px}.band>.wrap:has(>.evidence-picture)>:not(h2):not(.evidence-picture){grid-column:2}.band>.wrap:has(>.evidence-picture)>.evidence-picture svg{padding:18px 4px}.band>.wrap:has(>.evidence-picture)>.evidence-picture figcaption{padding:20px}}@media(prefers-reduced-motion:reduce),print{.band>.wrap:has(>.evidence-picture)>.evidence-picture{position:static}}
/* Dedicated columns keep the story copy outside the sticky visual's grid area. */
.evidence-story{margin-top:2rem}.evidence-visual{min-width:0}.evidence-copy{min-width:0}.evidence-scroll-cue{font:600 .75rem/1.5 system-ui;letter-spacing:.04em;color:var(--ink);margin-bottom:.75rem}.evidence-story .evidence-picture{margin:0}.evidence-copy>p{margin-top:1.5rem}
@media(min-width:1000px){
.navigation-reading:has(.creative-opening)>.band>.wrap:has(>.evidence-story){display:block}
.evidence-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;align-items:start}
.evidence-visual{position:sticky;top:100px}
.evidence-copy{min-height:140svh;display:flex;flex-direction:column;justify-content:space-around;gap:2rem;padding:1rem 0 4rem}
.evidence-story .evidence-picture svg{padding:16px 4px}.evidence-story .evidence-picture figcaption{padding:20px}
}
@media(prefers-reduced-motion:reduce),print{.evidence-visual{position:static}.evidence-copy{min-height:0;gap:1rem;padding:0}.evidence-scroll-cue{display:none}}

.document-journey[data-can-pin="true"] .journey-pin{position:sticky;top:80px;height:calc(100svh - 104px)}
.document-journey[data-can-pin="true"] .journey-fixed{position:static;transform-origin:top left}
@media(prefers-reduced-motion:reduce),print{.document-journey .journey-pin{position:static!important;height:auto!important}.document-journey .journey-fixed{transform:none!important}}

/* Clear invitations for native FAQs, with generous inset on the whole surface. */
.faq { margin-block:.75rem; border:1px solid var(--rule); border-radius:10px; background:var(--ground); }
.faq summary { padding:1.25rem 3rem 1.25rem 1.25rem; }
.faq summary:hover { background:#eaf3ec; border-radius:10px; }
.faq summary:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.faq summary::after { right:1.25rem; }
.faq-body { padding:0 1.25rem 1.25rem; }
.faq-invitation-cue { display:block; margin-top:.6rem; font-size:.75rem; color:var(--brand); text-decoration:underline; text-underline-offset:3px; }
.faq .when-open { display:none; }
.faq[open] .when-open { display:inline; }
.faq[open] .when-closed { display:none; }
/* Enquiry: required details first, optional depth without an extra journey. */
.compact-enquiry.form{max-width:52rem;gap:1rem}
.compact-enquiry .form-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.compact-enquiry fieldset{padding:1.2rem 1.4rem;min-width:0}
.compact-enquiry legend{font-size:1rem}
.compact-enquiry .field{min-width:0}
.compact-enquiry .field label{font-size:.9rem}
.compact-enquiry .radio-row{grid-template-columns:1fr 1fr;gap:.5rem}
.compact-enquiry .radio-row label{padding:.7rem .8rem;min-height:48px;border:1px solid var(--rule);border-radius:6px;align-items:center;background:var(--surface)}
.compact-enquiry .radio-row label:has(input:checked){border-color:var(--brand);background:#e7eddf}
.compact-enquiry .radio-row input{flex:0 0 auto;margin:0;accent-color:var(--brand)}
.compact-enquiry .form-step #f-detail{min-height:5rem}
.enquiry-extra{border:1px solid var(--rule);border-radius:8px;background:var(--surface);padding:.9rem 1.1rem}
.enquiry-extra summary{cursor:pointer;font-weight:600;min-height:30px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.enquiry-extra summary span{font-size:.73rem;color:var(--ink-faint);font-weight:400}
.enquiry-extra[open]>summary{margin-bottom:1rem}
.enquiry-extra .hint{line-height:1.45}
.form-next{padding:1rem 1.2rem;border-left:3px solid var(--accent);background:#eee8d8}
.form-next p{font-size:.93rem;line-height:1.45;margin:.35rem 0}
.compact-enquiry .form-privacy{margin:0}
.compact-enquiry .form-contact>.hint{margin:0}
@media(max-width:600px){.compact-enquiry .form-pair,.compact-enquiry .radio-row{grid-template-columns:1fr}.compact-enquiry fieldset{padding:1rem}.enquiry-extra summary{align-items:flex-start;flex-direction:column;gap:.3rem}.compact-enquiry .btn{width:100%}}
/* One active document and one matching lesson, without scaling the text. */
.document-journey[data-enhanced="true"]{padding:3rem 0;--story-progress:0}
.document-journey[data-can-pin="true"]{min-height:210svh}
.document-journey[data-can-pin="true"] .journey-grid{position:sticky;top:80px}
.document-journey[data-enhanced="true"] .journey-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.document-journey[data-enhanced="true"] .journey-pin{position:static;height:auto}
.document-journey[data-enhanced="true"] .journey-fixed{position:static;transform:none!important}
.document-journey[data-enhanced="true"] .journey-step{min-height:0;padding:1.5rem 0;border:0}
.document-journey .journey-step[hidden]{display:none!important}
.document-journey[data-enhanced="true"] .journey-steps{display:block}
.document-journey .journey-instruction{font-size:.82rem;color:#d3dcca;margin:.5rem 0}
.document-journey[data-enhanced="true"] .answer-sheet{display:block;min-height:255px;padding:1.1rem 1.3rem;margin:.8rem 0}
.document-journey[data-enhanced="true"] .answer-sheet .sheet-question{font-size:1rem;margin:.5rem 0;padding:.6rem}
.document-journey[data-enhanced="true"] .answer-sheet .sheet-draft p,.document-journey[data-enhanced="true"] .answer-sheet .sheet-source p,.document-journey[data-enhanced="true"] .answer-sheet .sheet-revision p{font-size:1.06rem;line-height:1.5}
.document-journey[data-enhanced="true"] .sheet-draft,.document-journey[data-enhanced="true"] .sheet-source,.document-journey[data-enhanced="true"] .sheet-revision{display:none;padding:.8rem;margin:.6rem 0;animation:answer-enter .4s ease both}
.document-journey[data-active-beat="0"] .sheet-question{min-height:135px;font-size:1.2rem!important}
.document-journey[data-active-beat="1"] .sheet-draft,.document-journey[data-active-beat="2"] .sheet-source,.document-journey[data-active-beat="3"] .sheet-revision{display:block}
.document-journey[data-enhanced="true"] .sheet-pending{font-size:.8rem!important;margin:.6rem 0 0!important}
.document-journey .journey-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.document-journey .journey-nav a{min-height:48px;min-width:44px;padding:.55rem;align-items:center;justify-content:center}
.document-journey .journey-nav span{font-size:.7rem}
.document-journey .journey-step h3{font-size:clamp(1.7rem,2.7vw,2.7rem);max-width:18ch}
.document-journey .journey-step p{font-size:1.04rem;line-height:1.65;max-width:34ch}
.document-journey .step-number small{font:400 .9rem system-ui;color:#d3dcca}
.document-journey[data-can-pin="true"] .journey-grid:before{content:"";position:absolute;top:-14px;left:0;right:0;height:3px;background:linear-gradient(to right,#d4bb86 calc(var(--story-progress)*100%),#ffffff25 0)}
.document-journey .journey-exit{min-height:44px;display:inline-flex;align-items:center;margin:.25rem 0 0 1rem}
.document-journey .journey-scope{max-width:65ch;font-size:.75rem}
@keyframes answer-enter{from{opacity:.45;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.document-journey[data-enhanced="true"] .journey-grid{grid-template-columns:1fr;gap:1rem}.document-journey[data-enhanced="true"] .journey-steps{grid-row:1}.document-journey[data-enhanced="true"] .journey-step{padding:0}.document-journey .journey-step .step-number{font-size:1.7rem}.document-journey .journey-step h3{margin:.4rem 0;font-size:1.8rem}.document-journey .journey-step p{max-width:50ch;margin:.5rem 0}.document-journey .journey-fixed>h2,.document-journey .journey-fixed>.eyebrow{display:none}.document-journey .journey-nav a{flex-direction:column;gap:.1rem}.document-journey .journey-exit{margin-left:0;display:flex}}
@media(prefers-reduced-motion:reduce){.document-journey[data-can-pin] .journey-grid{position:static}.document-journey .sheet-draft,.document-journey .sheet-source,.document-journey .sheet-revision{animation:none!important}}
@media print{.document-journey[data-can-pin]{min-height:0}.document-journey[data-can-pin] .journey-grid{position:static}.document-journey .sheet-draft,.document-journey .sheet-source,.document-journey .sheet-revision,.document-journey .journey-step[hidden]{display:block!important}}
/* Keep the useful promise visible on small screens as well as desktop. */
@media(max-width:700px){.creative-opening .opening-intro,.creative-opening .opening-terms{display:block}.creative-opening .opening-intro{font-size:1rem;line-height:1.55}.creative-opening .opening-terms{font-size:.8rem;line-height:1.5;margin-top:1rem}}
.document-journey{overflow-anchor:none}
.document-journey .journey-nav a:hover,.document-journey .journey-nav a:focus-visible{color:#20382c}
/* Comparisons need the width of the page, not the old prose column. */
.navigation-reading .band:has(.offer-grid,.plan-grid,.proof-composition,.review-deliverables,.writing-flow,.evidence-triptych,.retained-cycle,.payment-ledger,.tender-tests,.evidence-spread,.founding-grid,.free-paid,.writer-profile)>.wrap{display:block;max-width:74rem}
.navigation-reading .band:has(.offer-grid,.plan-grid,.review-deliverables,.writing-flow,.evidence-triptych,.retained-cycle,.payment-ledger)>.wrap>h2{max-width:30ch;margin-bottom:1.5rem}
@media(max-width:700px){
  .navigation-reading .prices,.navigation-reading .award-grid .compare{display:block;min-width:0;width:100%;border:0}
  .navigation-reading .prices caption,.navigation-reading .award-grid .compare caption{display:block}
  .navigation-reading .prices thead,.navigation-reading .award-grid .compare thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .navigation-reading .prices tbody,.navigation-reading .award-grid .compare tbody{display:grid;gap:1rem}
  .navigation-reading .prices tr{display:flex;flex-direction:column;padding:1.25rem;background:var(--surface);border:1px solid var(--rule-strong)}
  .navigation-reading .prices th,.navigation-reading .prices td{display:block;padding:0;border:0;width:auto;white-space:normal}
  .navigation-reading .prices td.price{order:-1;font-size:1.4rem;line-height:1.35;margin-bottom:.6rem;color:var(--brand)}
  .navigation-reading .prices th{font-size:1.05rem;line-height:1.5}
  .navigation-reading .prices .detail{font-size:.97rem;line-height:1.6;margin-top:.65rem}
  .navigation-reading .award-grid .compare tr{display:block;padding:1rem;background:var(--surface);border:1px solid var(--rule)}
  .navigation-reading .award-grid .compare th,.navigation-reading .award-grid .compare td{display:block;padding:.4rem 0;width:auto;border:0;white-space:normal}
  .navigation-reading .award-grid .compare td:before{content:attr(data-label) ': ';font-weight:650;color:var(--ink)}
}
/* The evidence itself supplies the visual, with its published provenance. */
.proof-findings .budget-proof{display:block;background:#faf7ec;padding:1.4rem;border:1px solid #c8c0a9;box-shadow:6px 6px 0 #e5e9df;margin:0 6px 1rem 0;transform:rotate(-.6deg)}
.proof-findings .budget-proof .budget-proof-label{font:.65rem/1.5 system-ui;text-transform:uppercase;letter-spacing:.08em;margin:0 0 .7rem;color:#596458}
.proof-findings .budget-proof h3{font:1.5rem/1.2 Georgia,serif}
.budget-proof dl{margin:1rem 0}.budget-proof dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem 0;border-bottom:1px solid #d9d3c4}.budget-proof dt{font-size:.9rem}.budget-proof dd{margin:0;font:1.6rem/1.2 Georgia,serif;font-variant-numeric:tabular-nums}
.budget-proof-gap{display:flex;gap:1rem;align-items:center;padding:.85rem;background:#f3e4dc;border-left:3px solid #9c3829}.budget-proof-gap strong{font:2rem/1 Georgia,serif;color:#873124}.budget-proof-gap span{font:.85rem/1.4 system-ui}
.opening-award{font-size:.78rem;line-height:1.5;margin:.5rem 0 0}.opening-award a{text-underline-offset:.2em}
@media(max-width:520px){.proof-findings .budget-proof{padding:1.1rem}.budget-proof dd{font-size:1.45rem}.budget-proof-gap{gap:.8rem}.budget-proof-gap strong{font-size:1.75rem}}
.budget-proof-pair{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.7rem;margin:1.1rem 0}.budget-proof-pair>span{border:1px solid #d9d3c4;background:#fffef8;padding:1rem .7rem;font:1.05rem/1.3 Georgia,serif}.budget-proof-pair small{display:block;font:.72rem/1.5 system-ui;color:#596458;margin-top:.45rem}.budget-proof-pair>b{font:2rem/1 Georgia,serif;color:#873124}

/* Audit repair BC-001: a fee decision before the mobile illustration. */
.creative-opening .opening-terms{font-size:1rem;line-height:1.5}
@media(max-width:600px){
  .creative-opening .opening-terms{order:3;margin:0;font-size:1rem;line-height:1.5}
  .creative-opening .opening-art{order:4}
  .creative-opening .opening-intro{order:5}
  .creative-opening .opening-text-link{order:6}
}

/* BC-027: keep the intake in the opening view. */
.contact-opening{padding:2rem 0 1rem}
.contact-opening .wrap{max-width:1120px;margin:auto;padding:0 1.5rem}
.contact-opening h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1.08;margin:.4rem 0 .7rem}
.contact-opening p{max-width:65ch;margin-bottom:0}
.contact-form-band{padding-top:1rem}
.contact-intake{display:grid;grid-template-columns:minmax(0,2fr) minmax(15rem,1fr);gap:3rem;align-items:start}
.contact-promise{margin:0 0 1rem}
.contact-next{padding:1.3rem;background:var(--paper,#f6f2e8);border:1px solid #d9d2c2}
.contact-next h2{font-size:1.6rem;margin-top:0}
.contact-next .person-routes{display:flex;flex-wrap:wrap;gap:.5rem}
@media(max-width:800px){.contact-intake{grid-template-columns:1fr;gap:1.5rem}.contact-opening{padding-top:1.2rem}.contact-opening .wrap{padding:0 1.25rem}.contact-form-band{padding-top:.4rem}}

.enquiry-context{padding:1.25rem;border:1px solid #a9b8a4;background:#f2f5ed;margin-bottom:1.5rem}.enquiry-context select{max-width:100%}.enquiry-context .field{margin-bottom:1rem}

.founding-comparison{margin:1rem 0 0}.founding-comparison>div{padding:1rem 0;border-top:1px solid #ccc6b5}.founding-comparison dt{font-weight:700;margin-bottom:.35rem}.founding-comparison dd{margin:0;line-height:1.55}
/* Keep progressive actions out of the focus order until a result exists. */
#estimator-enquire[hidden]{display:none}
.creative-opening .opening-award{font-size:1rem;line-height:1.5}
.contact-opening .eyebrow{color:#52665b}

.review-opening-facts p{margin:0 0 .5rem}.review-opening-facts p:last-child{margin-bottom:0}
@media(max-width:600px){
 .creative-opening .opening-copy>.hero-actions{display:contents}
 .creative-opening .hero-actions>.btn{order:2;align-self:flex-start;margin:0}
 .creative-opening .hero-actions>.person-routes{order:7;margin:0}
}

/* Batch 2: decision comparisons and task-led reading, preserving service pins. */
.payment-comparison{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;margin-top:1.5rem;align-items:start}
.payment-comparison>article{min-width:0;padding:1.5rem;border:1px solid var(--line,#d5cec0);border-top:4px solid var(--rust,#a6471d);border-radius:6px;background:var(--paper,#fffdf6)}
.payment-comparison h3{margin:.5rem 0 1.5rem}.payment-comparison h4{margin:1.5rem 0 .75rem}
.payment-work{margin:0;border-bottom:1px solid var(--line,#d5cec0)}
.payment-work>div{display:grid;grid-template-columns:8rem 1fr;gap:.8rem;padding:.8rem 0;border-top:1px solid var(--line,#d5cec0)}
.payment-work dt,.award-bands dt{font-weight:650}.payment-work dd,.award-bands dd{margin:0}
.award-bands>div{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line,#d5cec0)}
.award-bands dt{font-size:1rem;min-width:6rem}.award-bands dd{font-size:1rem;font-weight:400}.payment-terms{margin-top:1.5rem;max-width:74ch}
.guide-task-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0 3rem}
.guide-task-nav a{display:grid;gap:.6rem;padding:1.25rem;border:1px solid var(--line,#d5cec0);border-radius:6px;text-decoration:none;background:var(--paper,#fffdf6)}
.guide-task-nav span{font-size:.85rem}.guide-task-nav strong{font-size:1.5rem}.guide-task-nav small{font-size:1rem;line-height:1.5}
.guide-task-group{margin-top:3rem;scroll-margin-top:6rem}.guide-task-group>header{margin-bottom:1.25rem;border-bottom:1px solid var(--line,#d5cec0);padding-bottom:.75rem}.guide-task-group h3{font-size:2rem;margin:.4rem 0}
.guide-cue{display:block;font-size:.85rem;line-height:1.5;font-weight:650;margin-bottom:.7rem;color:var(--ink,#26332a)}
.writing-source-notes{margin:.8rem 0 0}.writing-source-notes>div{display:grid;grid-template-columns:7rem 1fr;gap:.7rem;margin:.5rem 0}.writing-source-notes dt{font-size:.82rem;font-weight:650}.writing-source-notes dd{margin:0;font-size:1rem;line-height:1.4}
@media(max-width:700px){.payment-comparison,.guide-task-nav{grid-template-columns:1fr}.payment-comparison>article{padding:1.15rem}.payment-work>div{grid-template-columns:1fr;gap:.3rem}.guide-task-nav{gap:.6rem;margin-bottom:2rem}.guide-task-nav a{grid-template-columns:2rem 1fr;padding:1rem}.guide-task-nav small{grid-column:2}.writing-source-notes>div{grid-template-columns:max-content minmax(0,1fr);gap:.75rem}}

.navigation-reading .payment-comparison .compare{min-width:0;width:100%;table-layout:fixed}
.navigation-reading .payment-comparison .compare th,.navigation-reading .payment-comparison .compare td{white-space:normal;overflow-wrap:anywhere;padding:.7rem;font-size:1rem}

.enquiry-context [hidden]{display:none}

/* Decision-first page compositions. Uses the site's existing light/dark tokens. */
.decision-band .wrap,.proof-band .wrap,.commercial-ledger-band .wrap{max-width:74rem}
.offer-grid,.plan-grid,.evidence-triptych,.review-deliverables,.retained-cycle,.writing-flow,.payment-ledger{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin:2rem 0}
.offer-card{display:flex;flex-direction:column;gap:.75rem;padding:1.7rem 1.6rem;border:1px solid var(--rule-strong);border-top:4px solid var(--brand);background:var(--surface);min-width:0}
.offer-card:nth-child(2){border-top-color:#a37b39}.offer-card:nth-child(3){border-top-color:var(--ink-soft)}
.offer-card h3,.offer-card p,.offer-card .kicker{margin:0}.offer-card h3{font-size:1.65rem;line-height:1.15}.offer-card .offer-price{font:600 1.2rem/1.4 system-ui;color:var(--brand)}
.offer-card .offer-scope{margin-top:auto;padding-top:.6rem;border-top:1px solid var(--rule);font-size:.9rem;color:var(--ink-soft)}
.offer-link{display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;font-weight:650;text-underline-offset:.2em}.offer-card .offer-link{width:100%;margin-top:.35rem}
.commercial-note{max-width:none;padding:1.05rem 1.3rem;border-left:3px solid #a37b39;background:var(--brand-wash);font-size:.94rem}.audience-links{font-size:.95rem}
.proof-composition{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:start}.proof-intro h2{max-width:13ch}.proof-intro>p{max-width:42rem}
.proof-quote{margin:1.7rem 0;padding:0 0 0 1.25rem;border-left:3px solid #a37b39}.proof-quote p{font:italic 1.4rem/1.45 Georgia,serif}.proof-quote footer{font:.8rem/1.6 system-ui;color:var(--ink-soft);margin-top:.8rem}
.proof-person{font-size:.9rem}.proof-findings{display:grid;gap:0;border-top:1px solid var(--rule-strong)}.proof-findings article{display:grid;grid-template-columns:1fr 1.4fr;gap:.1rem 1rem;border-bottom:1px solid var(--rule-strong);padding:1.4rem 0}.proof-findings article h3{font-size:1.05rem;line-height:1.35;margin:0}.proof-findings article p{grid-column:2;font-size:.92rem;margin:.35rem 0 0}.finding-number{grid-row:span 2;font:2rem/1.1 Georgia,serif;color:var(--brand)}.finding-label{grid-row:span 2;font:.75rem/1.5 system-ui;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.proof-boundary{font-size:.82rem;color:var(--ink-soft);margin-top:1rem}
.evidence-triptych article,.retained-cycle article{padding:1.3rem 1.2rem 1.3rem 0;border-top:1px solid var(--rule-strong)}.evidence-triptych span,.retained-cycle span,.payment-ledger>div>span{font:.72rem/1.5 system-ui;letter-spacing:.07em;text-transform:uppercase;color:var(--brand)}.evidence-triptych h3,.retained-cycle h3{font-size:1.45rem;margin:.65rem 0}.evidence-triptych p,.retained-cycle p{font-size:1rem}
.evidence-spread,.scope-split,.tender-tests,.founding-grid,.award-grid,.free-paid,.writer-profile{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);margin:2rem 0;align-items:start}
.source-stack{padding:1.8rem;background:var(--ground-deep);color:var(--on-deep)}.source-stack .kicker,.source-stack h3,.source-stack p{color:inherit}.source-stack>div{padding:1rem 0;border-top:1px solid #ffffff30;font:1.35rem/1.2 Georgia,serif}.source-stack>div span{display:block;font:.82rem/1.5 system-ui;opacity:.75;margin-top:.4rem}.response-sheet,.decision-sheet{padding:1.8rem;background:var(--surface);border:1px solid var(--rule-strong);box-shadow:7px 7px 0 var(--rule)}.response-sheet h3,.decision-sheet h3{font-size:1.5rem;margin:.8rem 0}.gap-note{padding:.85rem 1rem;border-left:3px solid #a37b39;background:var(--ground-warm);font-size:.95rem}.scope-price{font:3.6rem/1.1 Georgia,serif;color:var(--brand);margin:0 0 .5rem}.scope-split>div+div{border-left:1px solid var(--rule-strong);padding-left:2rem}
.monthly-summary{display:flex;flex-direction:column;gap:.7rem;padding:1.5rem 1.7rem;border-left:4px solid var(--brand);background:var(--surface);margin:1.4rem 0}.monthly-summary strong{font:1.65rem/1.2 Georgia,serif}.monthly-summary span{font-size:.95rem}.monthly-summary a{min-height:44px;display:flex;align-items:center}
.tender-tests{gap:0;border:1px solid var(--rule-strong)}.tender-tests article{padding:1.7rem}.tender-tests article+article{border-left:1px solid var(--rule-strong);background:var(--brand-wash)}.test-label{font:.73rem/1.5 system-ui;text-transform:uppercase;letter-spacing:.04em}.tender-tests h3{font-size:1.7rem;margin:.8rem 0}
.plan-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-card{background:var(--surface);padding:1.6rem;border:1px solid var(--rule-strong)}.plan-card h3{font:2.1rem/1.2 Georgia,serif;margin:.6rem 0}.plan-card h3 small{font:.9rem/1.4 system-ui;white-space:nowrap}.plan-capacity{font-weight:650}.plan-card .offer-scope{font-size:.85rem;color:var(--ink-soft)}.founding-grid article{border-top:3px solid #a37b39;padding-top:1.1rem}.founding-grid h3{font-size:1.65rem;margin:.7rem 0}.founding-grid p{font-size:1rem}
.review-deliverables article{padding:1.6rem;background:var(--surface);border:1px solid var(--rule)}.review-deliverables article>span{font:2.5rem/1 Georgia,serif;color:var(--brand);opacity:.65}.review-deliverables h3{font-size:1.45rem;margin:1rem 0 .6rem}.scope-contract{padding-top:1rem;border-top:1px solid var(--rule-strong)}.scope-contract h3{font-size:1.4rem}.scope-contract>p{max-width:65rem}.writing-flow{align-items:stretch}.writing-flow>article{margin:0}.writing-flow h3{font-size:1.5rem}.writing-flow p{font-size:.98rem}.payment-ledger>div{border-top:3px solid var(--brand);padding-top:1rem}.payment-ledger h3{font-size:1.45rem}.payment-ledger p{font-size:.97rem}.award-grid>article{min-width:0;padding:1.4rem;background:var(--ground-warm)}.award-grid h3{font-size:1.55rem}.award-grid .table-scroll{max-width:100%}.pricing-examples{margin-top:1.5rem;border-top:1px solid var(--rule-strong);padding:1rem 0}.pricing-examples summary{min-height:44px;cursor:pointer;font-weight:600}.free-paid article{padding:1.5rem;border-left:3px solid var(--brand);background:var(--surface)}
.writer-profile{grid-template-columns:.7fr 1.3fr}.writer-nameplate{background:var(--ground-deep);color:var(--on-deep);padding:2.1rem;position:relative}.writer-nameplate h2{font-size:3rem;margin:2rem 0 .8rem;color:inherit}.writer-nameplate p,.writer-nameplate a{color:inherit}.writer-nameplate a{display:block;margin-top:2.4rem;padding-top:1rem;border-top:1px solid #ffffff40;min-height:44px}.company-record{margin:2rem 0}.company-record>div{display:grid;grid-template-columns:12rem 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--rule)}.company-record dt{font-size:.9rem;color:var(--ink-soft)}.company-record dd{margin:0}.faq-jumps{display:flex;flex-wrap:wrap;gap:.7rem}.faq-jumps a{padding:.7rem 1rem;border:1px solid var(--rule-strong);min-height:44px;text-decoration:none}.faq-group{padding-top:2rem;padding-bottom:2rem}.enquiry-promise{padding:1rem 1.3rem;background:var(--brand-wash);border-left:3px solid var(--brand);margin-bottom:1.4rem}.enquiry-promise p{margin:.25rem 0 0}
@media(max-width:850px){.offer-grid{grid-template-columns:1fr}.offer-card{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.5rem;padding:1.4rem}.offer-card .kicker,.offer-card h3,.offer-card .offer-price{grid-column:1}.offer-card>p:not(.kicker):not(.offer-price){grid-column:2}.offer-card>p:nth-of-type(3){grid-row:1 / span 2}.offer-card .offer-scope{margin:0}.offer-card .offer-link{grid-column:1 / -1}.proof-composition{grid-template-columns:1fr}.proof-intro h2{max-width:22ch}.plan-grid{grid-template-columns:1fr}.plan-card{display:grid;grid-template-columns:1fr 1fr;column-gap:1.5rem}.plan-card .kicker,.plan-card h3{grid-column:1}.plan-card .plan-capacity{grid-column:2;grid-row:1 / span 2}.plan-card .offer-link{grid-column:1 / -1}.evidence-triptych,.review-deliverables,.retained-cycle,.writing-flow,.payment-ledger{grid-template-columns:1fr}.review-deliverables article{display:grid;grid-template-columns:2.8rem 1fr;column-gap:1rem}.review-deliverables h3{margin:0}.review-deliverables p{grid-column:2;margin:.5rem 0 0}.evidence-spread,.tender-tests,.founding-grid,.award-grid,.free-paid,.writer-profile{grid-template-columns:1fr}.tender-tests article+article{border-left:0;border-top:1px solid var(--rule-strong)}.writer-nameplate h2{margin:1rem 0}.writer-nameplate a{margin-top:1.4rem}.scope-split{grid-template-columns:1fr}.scope-split>div+div{border-left:0;border-top:1px solid var(--rule-strong);padding:1.4rem 0 0}.scope-price{font-size:3rem}}
@media(max-width:520px){.offer-card{display:flex;padding:1.35rem}.offer-card h3{font-size:1.5rem}.offer-card .offer-price{font-size:1.1rem}.offer-card .offer-scope{padding-top:.75rem;margin-top:.25rem}.plan-card{display:block}.plan-card h3{font-size:2.3rem}.proof-findings article{grid-template-columns:1fr 1.45fr}.finding-number{font-size:1.7rem}.proof-quote p{font-size:1.2rem}.response-sheet,.decision-sheet,.source-stack{padding:1.3rem}.company-record>div{grid-template-columns:1fr;gap:.3rem}.commercial-note{font-size:.9rem}.faq-jumps{display:grid;grid-template-columns:1fr}.writer-nameplate h2{font-size:2.4rem}}
@media(prefers-reduced-motion:no-preference){.offer-card{transition:transform .18s ease,border-color .18s ease}.offer-card:focus-within,.offer-card:hover{transform:translateY(-3px);border-color:var(--brand)}}
/* Audience pages already present the service choices above. Keep later routes compact. */
.service-route-band{padding-block:2.5rem}.service-route-band h2{font-size:clamp(1.65rem,2.7vw,2.3rem);margin-bottom:1rem}.service-route-summary{display:grid;grid-template-columns:1fr 1.4fr;gap:2.5rem;align-items:start}.service-route-summary p{font-size:.98rem;margin-top:0}.service-route-summary .offer-link{font-size:.95rem}.retained-route-summary{max-width:65rem}.retained-route-summary a{display:inline-block;min-height:44px;padding-block:.55rem}.inline-plan-list{margin:1rem 0;padding-left:1.25rem}.inline-plan-list li{padding:.2rem 0}
@media(max-width:700px){.service-route-band{padding-block:2rem}.service-route-summary{grid-template-columns:1fr;gap:1rem}.service-route-summary .offer-link{margin-top:0}.service-route-band h2{font-size:1.75rem}}

/* Readable pin geometry: the paper is designed for the window, never scaled down. */
.document-journey[data-can-pin="true"]{min-height:360svh;padding:2rem 0}
.document-journey[data-can-pin="true"] .journey-grid{align-items:center;top:var(--story-pin-top,12px)}
.document-journey[data-enhanced="true"] .journey-fixed{position:relative!important}
.story-reading{min-height:44px;padding:.55rem .75rem;border:1px solid #ffffff60;background:transparent;color:inherit;font:inherit;font-size:.8rem;cursor:pointer;margin:.35rem 0}
.document-journey:not([data-enhanced="true"]) .journey-nav{display:none}
@media(min-width:901px) and (max-height:800px){
 .document-journey[data-enhanced="true"] .journey-grid{gap:3rem}
 .document-journey[data-enhanced="true"] .journey-fixed>h2{font-size:1.7rem;margin:.15rem 0}
 .document-journey[data-enhanced="true"] .journey-fixed>.eyebrow{display:none}
 .document-journey[data-enhanced="true"] .journey-instruction{margin:.3rem 0;font-size:.8rem}
 .document-journey[data-enhanced="true"] .answer-sheet{min-height:225px;margin:.5rem 0;padding:.8rem 1rem}
 .document-journey[data-enhanced="true"]:not([data-active-beat="0"]) .sheet-question{display:none}
 .document-journey[data-enhanced="true"] .sheet-question{min-height:0;font-size:1.05rem!important;line-height:1.4}
 .document-journey[data-enhanced="true"] .sheet-draft,.document-journey[data-enhanced="true"] .sheet-source,.document-journey[data-enhanced="true"] .sheet-revision{margin:.4rem 0;padding:.6rem}
 .document-journey[data-enhanced="true"] .journey-nav{margin:.5rem 0}
 .document-journey[data-enhanced="true"] .journey-nav a{min-height:44px}
 .document-journey[data-enhanced="true"] .journey-scope{font-size:.72rem;line-height:1.4;margin:.3rem 0}
 .document-journey[data-enhanced="true"] .journey-step h3{font-size:2rem}
 .document-journey[data-enhanced="true"] .journey-step p{font-size:1rem;line-height:1.5}
 .document-journey[data-enhanced="true"] .story-reading{position:absolute;left:calc(100% + 3rem);top:calc(100% - 4rem);width:15rem}
}
.fee-option,.estimator button,nav summary,summary.nav-toggle,.nav-toggle,.menu-toggle{min-height:44px}
.conversion-story{--conversion-progress:0;background:#153a31;color:#f8f4e8;padding:2rem 0;position:relative}
.conversion-shell{width:calc(100% - 5rem);max-width:74rem;margin:auto;padding:1.25rem 0}
.conversion-story[data-pinned="true"]{min-height:360svh}
.conversion-story[data-pinned="true"] .conversion-shell{position:sticky;top:var(--story-pin-top,12px)}
.conversion-shell:before{content:"";display:block;height:5px;background:linear-gradient(to right,#e1c282 calc(var(--conversion-progress)*100%),#ffffff30 0);margin-bottom:1rem;border-radius:4px}
.conversion-shell h2{font:400 clamp(1.75rem,3vw,2.8rem)/1.12 Georgia,serif;letter-spacing:-.025em;color:inherit;margin:.25rem 0 .5rem}
.conversion-shell header>p,.conversion-shell>.conversion-context{font-size:.9rem;line-height:1.45;margin:.35rem 0;color:#d3dfd6}
.conversion-stage{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;margin:1rem 0}
.conversion-panels{min-width:0}
.conversion-story[data-enhanced="true"] .conversion-panels{height:310px;display:grid;align-items:stretch}
.conversion-story[data-enhanced="true"] .conversion-captions{min-height:180px}
[data-conversion-panel]{background:#fffdf5;color:#20382c;border:1px solid #c9cebd;box-shadow:8px 8px 0 #ffffff12;padding:1.35rem;margin:1rem 0;min-width:0}
.conversion-story[data-enhanced="true"] [data-conversion-panel]{margin:0;animation:conversion-paper-in .4s ease both}
[data-conversion-panel][hidden],[data-conversion-step][hidden]{display:none!important}
[data-conversion-panel] h3{font:400 1.55rem/1.15 Georgia,serif;margin:.4rem 0 .8rem}
[data-conversion-panel] p,[data-conversion-panel] li,[data-conversion-panel] dd{font-size:1rem;line-height:1.45}
[data-conversion-panel] p{margin:.5rem 0}
[data-conversion-panel] small{font-size:.72rem;line-height:1.4}
[data-conversion-panel] dl{margin:.5rem 0}
[data-conversion-panel] dl>div{display:grid;grid-template-columns:1fr 1.5fr;gap:.8rem;border-bottom:1px solid #d9ddcf;padding:.6rem 0}
[data-conversion-panel] dt{font-size:.8rem;font-weight:650}
[data-conversion-panel] dd{margin:0}
[data-conversion-step] h3{font:400 clamp(1.5rem,2.7vw,2.25rem)/1.1 Georgia,serif;color:inherit;margin:.5rem 0 .8rem}
[data-conversion-step] p{max-width:32ch;font-size:1.05rem;line-height:1.5;margin:.4rem 0}
.conversion-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:1rem 0 .6rem}
.conversion-nav button{min-height:48px;border:1px solid #ffffff60;padding:.5rem;background:transparent;color:#fff9eb;font:500 .85rem/1.3 system-ui;cursor:pointer}
.conversion-nav button[aria-pressed="true"]{background:#e1c282;color:#20382c;border-color:#e1c282}
.conversion-nav button:hover,.conversion-nav button:focus-visible{outline:2px solid #e1c282;outline-offset:3px}
.conversion-story:not([data-enhanced="true"]) .conversion-nav{display:none}
.conversion-shell a{color:inherit;text-underline-offset:.2em}
.conversion-shell .btn{background:#e1c282;color:#20382c;border-color:#e1c282;min-height:44px}
[data-conversion-reading]{min-height:44px;background:transparent;color:inherit;border:1px solid #ffffff50;padding:.6rem .8rem;font:inherit;font-size:.8rem;cursor:pointer}
.conversion-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.conversion-actions>a:not(.btn){display:inline-flex;align-items:center;min-height:44px;font-size:.8rem}
@keyframes conversion-paper-in{from{opacity:.35;transform:translateX(18px) rotate(.4deg)}to{opacity:1;transform:none}}
@media(min-width:901px) and (max-height:800px){.conversion-shell{padding:.3rem 0}.conversion-shell h2{font-size:1.7rem}.conversion-shell:before{margin-bottom:.6rem}.conversion-stage{margin:.65rem 0}.conversion-story[data-enhanced="true"] .conversion-panels{height:250px}[data-conversion-panel]{padding:1rem}[data-conversion-panel] h3{font-size:1.3rem}.conversion-nav{margin:.6rem 0}.conversion-shell header>p{margin:.2rem 0}.conversion-shell .kicker{display:none}}
@media(max-width:900px){.conversion-shell{width:calc(100% - 2.5rem)}.conversion-stage{grid-template-columns:1fr;gap:1rem}.conversion-story[data-enhanced="true"] .conversion-panels{height:280px}.conversion-story[data-enhanced="true"] .conversion-captions{min-height:115px}.conversion-shell h2{font-size:1.65rem}[data-conversion-step] h3{font-size:1.35rem;margin:.2rem 0 .4rem}[data-conversion-step] p{font-size:.95rem;max-width:45ch}.conversion-nav button{font-size:.72rem;min-height:48px}.conversion-shell{padding:.5rem 0}.conversion-shell:before{margin-bottom:.7rem}.conversion-stage{margin:.6rem 0}.conversion-nav{margin:.6rem 0}.conversion-actions{gap:.4rem .8rem}.conversion-actions .btn{font-size:.85rem;padding:.6rem .8rem}.conversion-shell header .kicker{display:none}}
@media(prefers-reduced-motion:reduce){.conversion-story{min-height:0!important}.conversion-shell{position:static!important}[data-conversion-panel]{animation:none!important}}
@media print{.conversion-story{min-height:0!important;background:white;color:black}.conversion-shell{position:static!important}.conversion-stage{display:block}.conversion-panels,.conversion-captions{height:auto!important;min-height:0!important}[data-conversion-panel][hidden],[data-conversion-step][hidden]{display:block!important}.conversion-nav,.conversion-actions{display:none}}
.menu-btn{min-height:44px}
.conversion-paper-meta{display:flex;justify-content:space-between;gap:.6rem;font:600 .63rem/1.4 system-ui;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid #c9cebd;padding-bottom:.5rem;margin-bottom:.6rem}
.conversion-outcome-chain{list-style:none;margin:.6rem 0;padding:0;display:grid;gap:.6rem}.conversion-outcome-chain li{display:grid;grid-template-columns:7rem 1fr;gap:.7rem;padding:.6rem .7rem;background:#eaf0e4;border-left:3px solid #658578}.conversion-outcome-chain span{font:.68rem/1.4 system-ui;text-transform:uppercase;letter-spacing:.04em;color:#526551}.conversion-outcome-chain strong{font:500 1.02rem/1.3 Georgia,serif}
.conversion-annotation{padding:.6rem .75rem;border-left:3px solid #a27434;background:#f3e9d0;font-size:.9rem!important;line-height:1.4!important}.conversion-draft blockquote{padding:.75rem;margin:.5rem 0;border-left:3px solid #548575;background:#edf1e8;font:400 1.15rem/1.45 Georgia,serif;color:#20382c}.conversion-paper-label{font-size:.68rem!important;text-transform:uppercase;letter-spacing:.05em}.conversion-margin-notes>div{border-left:3px solid #a55741;padding-left:.7rem!important}.conversion-pipeline{list-style:none;padding:0;display:grid;gap:.7rem;margin:.7rem 0}.conversion-pipeline li{border:1px solid #d3d8c9;padding:.7rem .8rem;background:#f3f4ed}.conversion-pipeline li>span{display:inline-block;background:#dce8d7;color:#294431;font:650 .68rem/1.4 system-ui;padding:.2rem .45rem;text-transform:uppercase}.conversion-pipeline li[data-pipeline-status="Hold"]>span,.conversion-pipeline li[data-pipeline-status="Set aside"]>span,.conversion-pipeline li[data-pipeline-status="Still open"]>span{background:#f0dfcc;color:#764627}.conversion-pipeline h4{font:500 1.1rem/1.3 Georgia,serif;margin:.4rem 0}.conversion-pipeline li p{margin:.25rem 0;font-size:.9rem;line-height:1.4}
.conversion-story[data-enhanced="true"] .conversion-panels{height:360px}.case-context-band{padding-top:1.6rem;padding-bottom:1.6rem}.case-context{padding:1rem 1.3rem;border-left:3px solid #a37b39;background:var(--brand-wash);max-width:65rem;font-size:.95rem}.case-context p{margin:.3rem 0}.review-sample-details{border:1px solid var(--rule-strong);padding:1.2rem;background:var(--surface);margin:2rem 0}.review-sample-details summary{cursor:pointer;min-height:64px;display:flex;flex-direction:column;justify-content:center;gap:.5rem}.review-sample-details summary strong{font:400 1.65rem/1.2 Georgia,serif}.review-sample-details summary span{font-size:.95rem;color:var(--brand)}
@media(min-width:901px) and (max-height:800px){.conversion-story[data-enhanced="true"] .conversion-panels{height:280px}.conversion-story[data-enhanced="true"] .conversion-heading>p:not(.conversion-instruction){display:none}.conversion-story[data-enhanced="true"] .conversion-outcome-chain li{padding:.4rem .6rem}.conversion-story[data-enhanced="true"] .conversion-pipeline li{padding:.45rem .65rem}.conversion-story[data-enhanced="true"] .conversion-pipeline h4{margin:.25rem 0}.conversion-story[data-enhanced="true"] .conversion-draft blockquote{font-size:1.05rem;padding:.5rem}.conversion-story[data-enhanced="true"] .conversion-paper-meta{margin-bottom:.3rem}.conversion-story[data-enhanced="true"] .conversion-paper h3{margin:.3rem 0 .5rem}}
@media(max-width:900px){.conversion-story[data-enhanced="true"] .conversion-panels{height:330px}.conversion-heading>.eyebrow,.conversion-story[data-enhanced="true"] .conversion-heading>p:not(.conversion-instruction){display:none}.conversion-outcome-chain li{grid-template-columns:5.6rem 1fr;padding:.5rem}.conversion-paper{padding:1rem}.conversion-paper h3{font-size:1.3rem}.conversion-draft blockquote{font-size:1.05rem}.conversion-paper dl>div{grid-template-columns:.8fr 1.5fr;padding:.45rem 0}.conversion-paper dl dd{font-size:.9rem}.conversion-actions [data-conversion-reading]{font-size:.75rem}.conversion-pipeline li{padding:.6rem}.conversion-pipeline h4{margin:.25rem 0}.conversion-heading .conversion-instruction{font-size:.78rem}}

@media(min-width:901px) and (max-height:650px){.conversion-shell h2{font-size:1.5rem}.conversion-story[data-enhanced="true"] .conversion-panels{height:270px}.conversion-shell{padding:0}.conversion-shell:before{margin-bottom:.4rem}.conversion-heading .conversion-instruction{font-size:.8rem}.conversion-stage{margin:.5rem 0}.conversion-nav{margin:.5rem 0}.conversion-actions{gap:.5rem}.conversion-actions .btn{padding:.5rem .8rem}.conversion-paper-meta{font-size:.6rem}.conversion-story[data-enhanced="true"] .conversion-paper{padding:.7rem}.conversion-paper h3{font-size:1.2rem}.conversion-pipeline li p{font-size:.85rem}}

.conversion-stage{display:block}.conversion-beat{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:center}.conversion-beat[hidden]{display:none!important}.conversion-story[data-enhanced="true"] .conversion-paper{height:360px;box-sizing:border-box}.conversion-story:not([data-enhanced="true"]) .conversion-beat{margin-bottom:2rem}
@media(min-width:901px) and (max-height:800px){.conversion-story[data-enhanced="true"] .conversion-paper{height:300px}.conversion-paper p,.conversion-paper li,.conversion-paper dd{font-size:.9rem;line-height:1.3}.conversion-paper dl>div{padding:.35rem 0}.conversion-annotation{padding:.4rem .6rem}.conversion-draft blockquote{font-size:1rem;line-height:1.3}.conversion-pipeline{gap:.4rem}.conversion-pipeline li{padding:.4rem .6rem}.conversion-pipeline li h4{font-size:1rem;margin:.2rem 0}}
@media(min-width:901px) and (max-height:650px){.conversion-story[data-enhanced="true"] .conversion-paper{height:290px}.conversion-paper h3{font-size:1.2rem}.conversion-paper-meta{padding-bottom:.25rem}.conversion-paper .conversion-annotation{font-size:.85rem!important;margin:.35rem 0}.conversion-paper dl{margin:.25rem 0}}
@media(max-width:900px){.conversion-beat{grid-template-columns:1fr;gap:1rem}.conversion-story[data-enhanced="true"] .conversion-paper{height:350px}.conversion-caption{min-height:115px}}
@media print{.conversion-beat[hidden]{display:block!important}.conversion-paper{height:auto!important}}

.document-journey[data-enhanced="true"] .journey-fixed{top:0!important} @media(max-width:900px){.conversion-story[data-enhanced="true"] .conversion-paper{height:auto;min-height:330px}}

.document-journey[data-can-pin="true"] .journey-grid:before{top:0}
/* Compact pinned story: the key record stays visible, full detail remains a choice. */
.conversion-compact{display:none}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-shell{width:calc(100% - 2rem);padding:.4rem 0}

.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-heading>p:not(.conversion-instruction){display:none}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-heading h2{font-size:1.25rem;line-height:1.12;margin:.2rem 0}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-instruction{font-size:.75rem;margin:.25rem 0}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-shell:before{margin-bottom:.35rem}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-beat{grid-template-columns:1fr;gap:.5rem}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-stage{margin:.5rem 0}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-nav{margin:.5rem 0;gap:.3rem}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-nav button{font-size:.72rem;min-height:44px;padding:.3rem}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-paper{height:174px;min-height:0;padding:.65rem .8rem}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-paper>h3,.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-detail{display:none}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-paper-meta{font-size:.6rem;margin:0 0 .3rem;padding-bottom:.3rem}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-compact{display:grid;gap:.35rem;margin:0}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-compact>div{display:grid;grid-template-columns:6rem 1fr;gap:.6rem;padding:.45rem .5rem;border:0;border-left:3px solid #658578;background:#eaf0e4}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-compact dt{font-size:.7rem;line-height:1.3}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-compact dd{font-size:.9rem;line-height:1.3}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-caption{min-height:90px}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-caption .kicker{display:none}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-caption h3{font-size:1.1rem;line-height:1.15;margin:.1rem 0 .35rem}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-caption p{font-size:.85rem;line-height:1.35;margin:0;max-width:none}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-actions{gap:.3rem .5rem}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-actions .btn,.conversion-story[data-enhanced="true"][data-compact="true"] [data-conversion-reading]{font-size:.7rem;padding:.4rem .5rem;min-height:44px}
.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-exit{font-size:.7rem}
@media print{.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-detail,.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-paper>h3{display:block}.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-compact{display:none}.conversion-story[data-enhanced="true"][data-compact="true"] .conversion-paper{height:auto;min-height:0}.conversion-story[data-pinned="true"][data-compact="true"] .conversion-shell{position:static}}

/* Anchor entry uses the same measured clearance as the pinned shell. */
.conversion-story,.document-journey{scroll-margin-top:var(--story-pin-top,12px)}
