/* Fonts: Hanken Grotesk and Frank Ruhl Libre, SIL Open Font License, self-hosted. */
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/assets/fonts/hanken-grotesk-latin-wght-normal.woff2') format('woff2'); }
@font-face { font-family: 'Hanken Grotesk'; font-style: italic; font-weight: 100 900; font-display: swap; src: url('/assets/fonts/hanken-grotesk-latin-wght-italic.woff2') format('woff2'); }
@font-face { font-family: 'Frank Ruhl Libre'; font-style: normal; font-weight: 300 900; font-display: swap; src: url('/assets/fonts/frank-ruhl-libre-latin-wght-normal.woff2') format('woff2'); }
/*
 * site.css
 * The stylesheet for wardmorehealth.com: tokens, type, the page shell
 * (utility bar, masthead, breadcrumbs, footer), components and drawings.
 * The build prepends the @font-face rules for the self-hosted fonts.
 *
 * Created: 2026-11-04
 * Last modified: 2026-11-04
 */

:root {
  --paper: #ffffff;
  --mist: #f1f3f4;
  --mist-deep: #e3e7ea;
  --line: #d3d9de;
  --line-strong: #9aa4ad;
  --ink: #1d2329;
  --ink-soft: #4b5560;
  --garnet: #8c1d32;
  --garnet-deep: #5f1222;
  --garnet-tint: #f8edef;
  --sand: #c7a76c;
  --sand-tint: #f6f0e4;
  --slate: #56636f;
  --night: #171c21;
  --night-soft: #b9c1c8;
  --focus-dark: #f0c4cc;
  --sans: 'Hanken Grotesk', 'Helvetica Neue', Arial, sans-serif;
  --serif: 'Frank Ruhl Libre', Georgia, 'Times New Roman', serif;
  --frame: 1200px;
  --gutter: 32px;
  --side: 20px;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1.09375rem;
  line-height: 1.6;
  font-feature-settings: 'kern';
}

img, svg { max-width: 100%; height: auto; }

a { color: var(--garnet); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--garnet-deep); text-decoration-thickness: 2px; }

:focus-visible { outline: 3px solid var(--garnet); outline-offset: 2px; }

h1, h2, h3, h4 { margin: 0 0 0.5em; font-weight: 640; letter-spacing: -0.01em; line-height: 1.2; color: var(--ink); }
h1 { font-size: clamp(2rem, 1.2rem + 2.4vw, 2.75rem); letter-spacing: -0.015em; line-height: 1.1; }
h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); font-weight: 620; }
h3 { font-size: clamp(1.1875rem, 1.1rem + 0.3vw, 1.3125rem); line-height: 1.3; }
h4 { font-size: 1.0625rem; }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.25em; }
li { margin-bottom: 0.35em; }
strong { font-weight: 650; }
small, .small { font-size: 0.84375rem; line-height: 1.55; }
hr { border: 0; border-top: 1px solid var(--line); margin: 2.5rem 0; }

.frame { width: 100%; max-width: calc(var(--frame) + 2 * var(--side)); margin: 0 auto; padding: 0 var(--side); }
@media (min-width: 900px) { :root { --side: 32px; } }

.skip-link { position: absolute; left: 1rem; top: -4rem; background: var(--paper); color: var(--garnet); padding: 0.6rem 1rem; z-index: 20; border: 2px solid var(--garnet); font-weight: 650; }
.skip-link:focus { top: 1rem; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Utility bar ---------- */

.utility { background: var(--garnet-deep); color: #fff; font-size: 0.8125rem; }
.utility a { color: #fff; text-decoration: none; }
.utility a:hover { text-decoration: underline; }
.utility a:focus-visible { outline-color: var(--focus-dark); }
.utility__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1.5rem; padding-top: 0.45rem; padding-bottom: 0.45rem; }
.utility ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.utility li { margin: 0; }
.utility .utility__audiences, .utility .utility__wide { display: none; }
.utility__phone { opacity: 0.92; }
@media (min-width: 640px) { .utility .utility__wide { display: list-item; } }
@media (min-width: 900px) { .utility .utility__audiences { display: flex; } }

/* ---------- Masthead ---------- */

.masthead { background: var(--paper); border-bottom: 1px solid var(--line); }
.masthead__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 76px; }
.wordmark { display: inline-flex; align-items: center; gap: 0.7rem; color: var(--ink); text-decoration: none; }
.wordmark:hover { color: var(--ink); }
.wordmark__mark { width: 34px; height: 34px; color: var(--garnet); flex: none; }
.wordmark__text { display: flex; flex-direction: column; line-height: 1; }
.wordmark__name { font-size: 1.4375rem; font-weight: 680; letter-spacing: -0.02em; }
.wordmark__descriptor { font-size: 0.625rem; font-weight: 650; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-soft); margin-top: 0.3rem; }

.primary-nav { display: none; }
.primary-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 0.25rem; }
.primary-nav li { margin: 0; }
.primary-nav a { display: block; padding: 0.55rem 0.7rem; color: var(--ink); text-decoration: none; font-weight: 560; font-size: 0.96875rem; border-bottom: 2px solid transparent; }
.primary-nav a:hover { color: var(--garnet); border-bottom-color: var(--line-strong); }
.primary-nav a[aria-current="page"] { color: var(--garnet); border-bottom-color: var(--garnet); }
.primary-nav .nav-contact { margin-left: 0.75rem; border: 2px solid var(--garnet); color: var(--garnet); padding: 0.45rem 0.9rem; }
.primary-nav .nav-contact:hover { background: var(--garnet); color: #fff; border-bottom-color: var(--garnet); }

.menu { position: relative; }
.menu__button { list-style: none; cursor: pointer; font-weight: 650; font-size: 0.9375rem; border: 2px solid var(--ink); padding: 0.4rem 0.85rem; }
.menu__button::-webkit-details-marker { display: none; }
.menu[open] .menu__button { background: var(--ink); color: #fff; }
.menu__panel { position: absolute; right: 0; top: calc(100% + 10px); width: min(320px, calc(100vw - 2 * var(--side))); background: var(--paper); border: 1px solid var(--line-strong); z-index: 10; padding: 0.5rem 0; }
.menu__panel ul { list-style: none; margin: 0; padding: 0; }
.menu__panel li { margin: 0; }
.menu__panel a { display: block; padding: 0.7rem 1.1rem; color: var(--ink); text-decoration: none; font-weight: 560; border-left: 3px solid transparent; }
.menu__panel a[aria-current="page"] { border-left-color: var(--garnet); color: var(--garnet); }
.menu__panel a:hover { background: var(--mist); }
.menu__panel .menu__secondary { border-top: 1px solid var(--line); margin-top: 0.4rem; padding-top: 0.4rem; }
.menu__panel .menu__secondary a { font-weight: 400; font-size: 0.9375rem; padding-top: 0.5rem; padding-bottom: 0.5rem; }

@media (min-width: 1120px) {
  .primary-nav { display: block; }
  .menu { display: none; }
}

/* ---------- Breadcrumbs ---------- */

.breadcrumbs { font-size: 0.84375rem; padding-top: 1rem; padding-bottom: 0.25rem; color: var(--ink-soft); }
.breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.2rem 0; }
.breadcrumbs li { margin: 0; }
.breadcrumbs li + li::before { content: '/'; margin: 0 0.5rem; color: var(--line-strong); }
.breadcrumbs a { color: var(--ink-soft); }

main:focus { outline: none; }

/* ---------- Page heads ---------- */

.eyebrow { display: block; font-size: 0.78125rem; font-weight: 650; letter-spacing: 0.1em; text-transform: uppercase; color: var(--garnet); margin: 0 0 0.9rem; }
.standfirst { font-size: clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem); line-height: 1.5; color: var(--ink-soft); max-width: 46rem; }

.page-head { padding: 2rem 0 2.75rem; border-bottom: 1px solid var(--line); }
.page-head__grid { display: grid; gap: 2rem; }
.page-head h1 { max-width: 18em; }
@media (min-width: 900px) {
  .page-head { padding: 2.5rem 0 3.25rem; }
  .page-head__grid--aside { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--gutter) 4rem; align-items: start; }
}

.section { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.section--tight { padding-top: 2.25rem; padding-bottom: 2.25rem; }
.section--mist { background: var(--mist); }
.section--rule { border-top: 1px solid var(--line); }
.section__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.5rem 2rem; margin-bottom: 1.75rem; }
.section__head h2 { margin: 0; }
.section__head p { margin: 0; color: var(--ink-soft); }
.section__more { font-weight: 600; white-space: nowrap; }
@media (min-width: 900px) { .section { padding-top: 4.5rem; padding-bottom: 4.5rem; } }

/* ---------- Home hero ---------- */

.hero { padding: 2.5rem 0 3rem; border-bottom: 1px solid var(--line); }
.hero__grid { display: grid; gap: 2.5rem; align-items: center; }
.hero h1 { font-size: clamp(2.25rem, 1.3rem + 3vw, 3.5rem); line-height: 1.05; letter-spacing: -0.02em; max-width: 11.5em; margin-bottom: 1.25rem; }
.hero .standfirst { margin-bottom: 1.75rem; }
.hero__link { font-weight: 650; font-size: 1.0625rem; }
.hero__figure { margin: 0; }
@media (min-width: 1000px) {
  .hero { padding: 3.5rem 0 4rem; }
  .hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 4rem; }
}

/* ---------- The bed-hour grid ---------- */

.grid-figure { margin: 0; border: 1px solid var(--line); padding: 1.1rem 1.1rem 0.9rem; background: var(--paper); }
.grid-figure svg { display: block; width: 100%; height: auto; }
.grid-figure figcaption { font-size: 0.84375rem; color: var(--ink-soft); margin-top: 0.8rem; line-height: 1.5; }
.grid-figure__legend { display: flex; flex-wrap: wrap; gap: 0.3rem 1.25rem; font-size: 0.8125rem; color: var(--ink-soft); margin: 0 0 0.75rem; padding: 0; list-style: none; }
.grid-figure__legend li { margin: 0; display: inline-flex; align-items: center; gap: 0.45rem; }
.swatch { display: inline-block; width: 11px; height: 11px; background: var(--garnet); }
.swatch--empty { background: var(--mist-deep); }
.swatch--sand { background: var(--sand); }
.swatch--slate { background: var(--slate); }
.bh-label { font-family: var(--sans); font-size: 11px; fill: var(--ink-soft); }
.bh-day { font-family: var(--sans); font-size: 11px; font-weight: 650; fill: var(--ink); }
.bh-cell { fill: var(--mist-deep); }
.bh-cell--on { fill: var(--garnet); }
.bh-rule { stroke: var(--ink); stroke-width: 1; }
.bh-gap { stroke: var(--paper); stroke-width: 1; fill: none; }

/* ---------- Stat row ---------- */

.stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1.5rem; }
.stats li { margin: 0; border-top: 3px solid var(--garnet); padding-top: 0.9rem; }
.stats__figure { display: block; font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.05; }
.stats__label { display: block; color: var(--ink-soft); font-size: 0.9375rem; margin-top: 0.4rem; line-height: 1.4; }
.stats sup a { text-decoration: none; font-size: 0.75rem; }
@media (min-width: 900px) { .stats { grid-template-columns: repeat(5, minmax(0, 1fr)); } .stats--four { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- Tables ---------- */

.table-wrap { overflow-x: auto; margin: 0 0 1.25rem; -webkit-overflow-scrolling: touch; }
.table-wrap:focus-visible { outline: 3px solid var(--garnet); }
table { border-collapse: collapse; width: 100%; font-size: 0.9375rem; line-height: 1.45; }
caption { text-align: left; font-weight: 650; padding: 0 0 0.6rem; font-size: 0.96875rem; }
th, td { text-align: left; vertical-align: top; padding: 0.65rem 0.9rem 0.65rem 0; border-bottom: 1px solid var(--line); }
th:last-child, td:last-child { padding-right: 0; }
thead th { background: var(--mist); font-size: 0.8125rem; font-weight: 650; letter-spacing: 0.02em; color: var(--ink); padding: 0.6rem 0.9rem; border-bottom: 2px solid var(--ink); vertical-align: bottom; }
thead th:first-child { padding-left: 0.75rem; }
tbody th, tbody td:first-child { padding-left: 0.75rem; }
tbody th { font-weight: 600; }
td.num, th.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
tr.is-total td, tr.is-total th { font-weight: 650; border-top: 2px solid var(--ink); }
.table-note { font-size: 0.84375rem; color: var(--ink-soft); margin-top: -0.4rem; }
.table--compare th[scope="row"] { width: 22%; }
.table--compare td { min-width: 11rem; }

/* ---------- Comparison of payment structures ---------- */

.ways { display: grid; gap: 0; border-top: 2px solid var(--ink); }
.way { display: grid; gap: 0.4rem 2rem; padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.way h3 { margin: 0; }
.way h3 a { color: var(--ink); text-decoration: none; }
.way h3 a:hover { color: var(--garnet); text-decoration: underline; }
.way__pay { font-weight: 600; color: var(--garnet); margin: 0; }
.way p { margin: 0; color: var(--ink-soft); }
.way dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 0.15rem 0.9rem; font-size: 0.875rem; }
.way dt { color: var(--ink-soft); }
.way dd { margin: 0; }
@media (min-width: 900px) { .way { grid-template-columns: 3fr 4fr 3fr; align-items: start; } }

/* ---------- Equipment strip ---------- */

.equipment-strip { display: grid; gap: 1.5rem; }
.equipment-item { border-top: 1px solid var(--line-strong); padding-top: 1rem; }
.equipment-item figure { margin: 0 0 0.75rem; background: var(--mist); padding: 1rem; }
.equipment-item svg { display: block; width: 100%; height: auto; max-height: 260px; }
.equipment-item h3 { margin-bottom: 0.3rem; }
.equipment-item h3 a { color: var(--ink); text-decoration: none; }
.equipment-item h3 a:hover { color: var(--garnet); text-decoration: underline; }
.equipment-item p { color: var(--ink-soft); font-size: 0.96875rem; margin: 0; }
@media (min-width: 900px) {
  .equipment-strip { grid-template-columns: 6fr 3fr 3fr; gap: var(--gutter); }
}

/* ---------- Drawings ---------- */

.dw-line { fill: none; stroke: var(--slate); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.dw-thin { fill: none; stroke: var(--slate); stroke-width: 1; }
.dw-fill { fill: var(--paper); stroke: var(--slate); stroke-width: 1.6; stroke-linejoin: round; }
.dw-soft { fill: var(--mist-deep); stroke: var(--slate); stroke-width: 1.2; }
.dw-accent { fill: none; stroke: var(--garnet); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dw-accent-fill { fill: var(--garnet); }
.dw-sand { fill: var(--sand); }
.dw-screen { fill: var(--ink); }
.dw-wave { fill: none; stroke: #9be0b4; stroke-width: 1.4; }
.dw-wave--sand { stroke: var(--sand); }
.dw-wave--red { stroke: #ff9a9a; }
.dw-leader { fill: none; stroke: var(--garnet); stroke-width: 1; }
.dw-tag { fill: var(--garnet); }
.dw-tag-text { font-family: var(--sans); font-size: 11px; font-weight: 700; fill: #fff; }
.dw-text { font-family: var(--sans); font-size: 12px; fill: var(--ink-soft); }
.dw-ground { stroke: var(--line-strong); stroke-width: 1; stroke-dasharray: 3 3; }

/* ---------- Case studies ---------- */

.cases { display: grid; gap: var(--gutter); }
.case-card { border-top: 3px solid var(--ink); padding-top: 1.1rem; }
.case-card__meta { font-size: 0.8125rem; color: var(--ink-soft); margin: 0 0 0.5rem; letter-spacing: 0.02em; }
.case-card h3 a { color: var(--ink); text-decoration: none; }
.case-card h3 a:hover { color: var(--garnet); text-decoration: underline; }
.case-card p { color: var(--ink-soft); }
.case-card__result { font-size: 1.75rem; font-weight: 600; letter-spacing: -0.02em; color: var(--garnet); line-height: 1.1; margin: 0.25rem 0 0.25rem; }
.case-card__result-label { font-size: 0.875rem; color: var(--ink-soft); margin: 0 0 0.9rem; }
.case-card--featured { background: var(--mist); border-top-color: var(--garnet); padding: 1.5rem; }
.case-card--featured h3 { font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.625rem); }
.case-card--featured .case-card__body { display: grid; gap: 1.5rem; }
@media (min-width: 900px) {
  .cases { grid-template-columns: 6fr 3fr 3fr; }
  .case-card--featured .case-card__body { grid-template-columns: 1fr 1fr; align-items: start; }
}

/* ---------- Statement band ---------- */

.statement { font-family: var(--serif); font-size: clamp(1.625rem, 1.3rem + 1.1vw, 2.125rem); font-weight: 420; line-height: 1.28; letter-spacing: -0.005em; margin: 0 0 1.25rem; max-width: 30em; }
.band { display: grid; gap: 2rem; }
@media (min-width: 900px) { .band { grid-template-columns: 7fr 5fr; gap: 4rem; align-items: start; } }

/* ---------- Notices, panels and facts ---------- */

.notice { border-left: 4px solid var(--garnet); background: var(--garnet-tint); padding: 1rem 1.25rem; margin: 0 0 1.5rem; }
.notice p:last-child { margin-bottom: 0; }
.notice__title { font-weight: 650; margin-bottom: 0.35rem; }

.panel { background: var(--mist); padding: 1.4rem 1.5rem; }
.panel h2, .panel h3 { font-size: 1.0625rem; margin-bottom: 0.75rem; }
.panel p:last-child, .panel ul:last-child { margin-bottom: 0; }

.facts { margin: 0; padding: 0; }
.facts div { display: grid; grid-template-columns: minmax(7.5rem, 2fr) 3fr; gap: 0.75rem; padding: 0.55rem 0; border-bottom: 1px solid var(--line); font-size: 0.9375rem; }
.facts div:first-child { border-top: 1px solid var(--line); }
.facts dt { color: var(--ink-soft); }
.facts dd { margin: 0; font-weight: 550; }

.small-print { font-size: 0.84375rem; line-height: 1.55; color: var(--ink-soft); }
.small-print p { margin-bottom: 0.7em; }

/* ---------- Body layout with sidebar ---------- */

.body-grid { display: grid; gap: 2.5rem; padding-top: 2.75rem; padding-bottom: 4rem; }
.body-grid__main { min-width: 0; max-width: 46rem; }
.body-grid__main > h2 { margin-top: 2.5rem; }
.body-grid__main > h2:first-child { margin-top: 0; }
.body-grid__main > h3 { margin-top: 1.75rem; }
.body-grid__aside { min-width: 0; display: grid; gap: 1.5rem; align-content: start; }
@media (min-width: 900px) {
  .body-grid { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--gutter) 4rem; }
  .body-grid--wide .body-grid__main { max-width: none; }
}

.section-nav { border-top: 3px solid var(--garnet); padding-top: 0.9rem; }
.section-nav h2 { font-size: 0.78125rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 0.6rem; }
.section-nav ul { list-style: none; margin: 0; padding: 0; }
.section-nav li { margin: 0; border-bottom: 1px solid var(--line); }
.section-nav a { display: block; padding: 0.55rem 0; color: var(--ink); text-decoration: none; font-size: 0.96875rem; }
.section-nav a:hover { color: var(--garnet); text-decoration: underline; }
.section-nav a[aria-current="page"] { color: var(--garnet); font-weight: 650; }

/* ---------- Steps ---------- */

.steps { list-style: none; counter-reset: step; margin: 0 0 1.5rem; padding: 0; }
.steps li { counter-increment: step; position: relative; padding: 0 0 1.25rem 3rem; margin: 0; }
.steps li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 2rem; height: 2rem; border: 2px solid var(--garnet); color: var(--garnet); font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: 0.9375rem; }
.steps h3 { margin-bottom: 0.25rem; font-size: 1.0625rem; }
.steps p { margin: 0; color: var(--ink-soft); }

/* ---------- Documents ---------- */

.doc-list { list-style: none; margin: 0 0 1.5rem; padding: 0; border-top: 1px solid var(--line); }
.doc-list li { margin: 0; padding: 0.7rem 0; border-bottom: 1px solid var(--line); display: grid; gap: 0.1rem; }
.doc-list a { font-weight: 600; }
.doc-list span { font-size: 0.84375rem; color: var(--ink-soft); }

/* ---------- News and insights lists ---------- */

.news-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.news-list li { margin: 0; padding: 1rem 0; border-bottom: 1px solid var(--line); display: grid; gap: 0.25rem; }
.news-list time, .news-list .news-list__kind { font-size: 0.8125rem; color: var(--ink-soft); }
.news-list a { color: var(--ink); text-decoration: none; font-weight: 600; font-size: 1.0625rem; line-height: 1.35; }
.news-list a:hover { color: var(--garnet); text-decoration: underline; }
.news-list p { margin: 0; color: var(--ink-soft); font-size: 0.9375rem; }
@media (min-width: 900px) { .news-list--dated li { grid-template-columns: 9.5rem 1fr; gap: 0.25rem 1.5rem; } .news-list--dated li > :not(time) { grid-column: 2; } }

.two-col { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .two-col { grid-template-columns: 7fr 5fr; gap: 4rem; } }

/* ---------- Articles (news and insights) ---------- */

.article-head { padding: 2rem 0 2.25rem; border-bottom: 1px solid var(--line); }
.article-head h1 { max-width: 22em; }
.article-head__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; font-size: 0.875rem; color: var(--ink-soft); margin: 0; }
.dateline { font-weight: 650; color: var(--ink); }
.prose { max-width: 42rem; }
.prose--serif { font-family: var(--serif); font-size: 1.1875rem; line-height: 1.65; }
.prose--serif h2, .prose--serif h3 { font-family: var(--sans); }
.prose h2 { margin-top: 2.25rem; font-size: 1.375rem; }
.prose blockquote { margin: 1.5rem 0; padding: 0 0 0 1.25rem; border-left: 3px solid var(--garnet); font-family: var(--serif); font-size: 1.25rem; line-height: 1.5; }
.prose blockquote p:last-child { margin-bottom: 0; }
.prose blockquote footer { font-family: var(--sans); font-size: 0.875rem; color: var(--ink-soft); margin-top: 0.5rem; }
.about-box { border-top: 1px solid var(--line); margin-top: 2.5rem; padding-top: 1.25rem; font-size: 0.9375rem; color: var(--ink-soft); }
.about-box h2 { font-size: 0.9375rem; margin: 0 0 0.4rem; color: var(--ink); }
.contact-box { font-size: 0.9375rem; }
.contact-box h2 { font-size: 0.9375rem; margin: 0 0 0.4rem; }

/* ---------- Footnotes ---------- */

.footnotes { border-top: 1px solid var(--line); padding-top: 1.25rem; padding-bottom: 2rem; margin-top: 2rem; font-size: 0.8125rem; color: var(--ink-soft); }
.footnotes ol { margin: 0; padding-left: 1.25rem; }
.footnotes li { margin-bottom: 0.3rem; }
sup { line-height: 0; }
sup a { text-decoration: none; font-weight: 650; }

/* ---------- Investors ---------- */

.trust-band { display: grid; gap: 2rem; }
@media (min-width: 900px) { .trust-band { grid-template-columns: 4fr 8fr; gap: 4rem; } }
.ratings-note { font-size: 0.84375rem; color: var(--ink-soft); }
.waterfall { list-style: none; counter-reset: wf; margin: 0 0 1.5rem; padding: 0; border-left: 2px solid var(--garnet); }
.waterfall li { counter-increment: wf; margin: 0; padding: 0.45rem 0 0.45rem 2.4rem; position: relative; font-size: 0.9375rem; }
.waterfall li::before { content: counter(wf, lower-roman); position: absolute; left: 0.8rem; color: var(--garnet); font-weight: 700; font-size: 0.8125rem; top: 0.55rem; }

.chart { margin: 0 0 1.5rem; }
.chart svg { display: block; width: 100%; height: auto; }
.chart figcaption { font-size: 0.84375rem; color: var(--ink-soft); margin-top: 0.5rem; }
.ch-axis { stroke: var(--line-strong); stroke-width: 1; }
.ch-grid { stroke: var(--line); stroke-width: 1; }
.ch-label { font-family: var(--sans); font-size: 11px; fill: var(--ink-soft); }
.ch-area { fill: var(--garnet-tint); }
.ch-line { fill: none; stroke: var(--garnet); stroke-width: 2; }
.ch-line--sand { stroke: var(--sand); }
.ch-bar { fill: var(--garnet); }
.ch-bar--sand { fill: var(--sand); }
.ch-bar--slate { fill: var(--slate); }

/* ---------- Report pages ---------- */

.report-head { display: grid; gap: 1rem; }
.report-grid { display: grid; gap: 2rem; }
@media (min-width: 900px) { .report-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem 4rem; } }
.report-grid > div { min-width: 0; }

/* ---------- Buttons and forms ---------- */

.button { display: inline-block; border: 2px solid var(--garnet); background: var(--garnet); color: #fff; font-weight: 650; padding: 0.65rem 1.2rem; text-decoration: none; font-size: 1rem; cursor: pointer; font-family: var(--sans); }
.button:hover { background: var(--garnet-deep); border-color: var(--garnet-deep); color: #fff; }
.button--quiet { background: transparent; color: var(--garnet); }
.button--quiet:hover { background: var(--garnet-tint); color: var(--garnet-deep); }

/* ---------- Footer ---------- */

.footer { background: var(--night); color: var(--night-soft); font-size: 0.9375rem; border-top: 4px solid var(--garnet); margin-top: 0; }
.footer a { color: #fff; text-decoration: none; }
.footer a:hover { text-decoration: underline; }
.footer a:focus-visible { outline-color: var(--focus-dark); }
.footer__top { display: grid; gap: 1.5rem; padding: 2.75rem 0 2rem; border-bottom: 1px solid #343c44; }
.footer__brand { display: inline-flex; align-items: center; gap: 0.65rem; color: #fff; font-size: 1.3125rem; font-weight: 680; letter-spacing: -0.02em; }
.footer__mark { width: 30px; height: 30px; color: #e1a3ae; }
.footer__line { margin: 0.5rem 0 0; }
.footer__continuity { border-left: 3px solid #e1a3ae; padding-left: 1rem; }
.footer__continuity p { margin: 0; }
.footer__continuity strong { color: #fff; }
.footer__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; padding: 2.25rem 0; border-bottom: 1px solid #343c44; }
.footer__heading { font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: #fff; margin-bottom: 0.8rem; font-weight: 650; }
.footer__grid ul { list-style: none; margin: 0; padding: 0; }
.footer__grid li { margin: 0 0 0.45rem; }
.footer__offices { display: grid; gap: 1.5rem; padding: 2rem 0; border-bottom: 1px solid #343c44; }
.footer__offices address { font-style: normal; }
.footer__small { padding: 1.5rem 0 2.5rem; font-size: 0.8125rem; line-height: 1.55; }
.footer__small p { margin: 0 0 0.6rem; max-width: 70rem; }
@media (min-width: 700px) { .footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .footer__offices { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .footer__top { grid-template-columns: 1fr 1fr; align-items: end; } .footer__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }

@media print { .utility, .primary-nav, .menu, .footer__grid, .skip-link { display: none; } }

.aside-heading { font-size: 1.0625rem; margin-bottom: 0.6rem; }
.after-ways { margin-top: 1rem; }
.trust-band > *, .two-col > *, .band > *, .hero__grid > *, .cases > *, .equipment-strip > *, .page-head__grid > * { min-width: 0; }
.footer p a, .footer address a { text-decoration: underline; text-underline-offset: 0.18em; }
.case-quote { margin: 2rem 0; padding-left: 1.25rem; border-left: 3px solid var(--garnet); font-family: var(--serif); font-size: 1.25rem; line-height: 1.5; }
.case-quote footer { font-family: var(--sans); color: var(--ink-soft); margin-top: 0.4rem; }
.after-cases { margin-top: 2.5rem; }
.h3 { font-size: clamp(1.1875rem, 1.1rem + 0.3vw, 1.3125rem); line-height: 1.3; }
.person-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--line); }
.person-list li { margin: 0; padding: 1rem 0; border-bottom: 1px solid var(--line); display: grid; gap: 0.2rem; }
.person-list a { font-weight: 650; font-size: 1.0625rem; }
.person-list span { color: var(--ink-soft); font-size: 0.9375rem; }
@media (min-width: 700px) { .person-list { grid-template-columns: 1fr 1fr; column-gap: 2.5rem; } }
.monogram { display: inline-flex; width: 64px; height: 64px; align-items: center; justify-content: center; background: var(--garnet-tint); color: var(--garnet); font-weight: 700; font-size: 1.375rem; letter-spacing: 0.02em; margin-bottom: 1rem; border-bottom: 3px solid var(--garnet); }
.timeline { list-style: none; margin: 0 0 2rem; padding: 0; border-left: 2px solid var(--line-strong); }
.timeline li { margin: 0; padding: 0 0 1.4rem 1.5rem; position: relative; }
.timeline li::before { content: ''; position: absolute; left: -7px; top: 0.45rem; width: 12px; height: 12px; background: var(--garnet); }
.timeline__year { font-weight: 700; color: var(--garnet); display: block; }
.form { display: grid; gap: 0.9rem; max-width: 36rem; }
.form label { font-weight: 600; font-size: 0.9375rem; display: block; margin-bottom: 0.25rem; }
.form input, .form select, .form textarea { width: 100%; font: inherit; font-size: 1rem; padding: 0.6rem 0.7rem; border: 1px solid var(--line-strong); background: var(--paper); color: var(--ink); border-radius: 0; }
.form textarea { min-height: 8rem; }
.form__hint { font-size: 0.84375rem; color: var(--ink-soft); }
.form__done { border-left: 4px solid var(--garnet); background: var(--garnet-tint); padding: 1rem 1.25rem; }

/* ---------- Lender portal ---------- */

.p-page { background: var(--mist); min-height: 100vh; display: flex; flex-direction: column; }
.p-bar { background: var(--garnet-deep); color: #fff; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; padding: 0.6rem var(--side); }
.p-bar a, .p-bar button { color: #fff; }
.p-bar a:focus-visible, .p-bar button:focus-visible { outline-color: var(--focus-dark); }
.p-bar__brand { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 700; text-decoration: none; }
.p-bar__mark { width: 22px; height: 22px; color: #f0c4cc; }
.p-bar__title { font-size: 0.9375rem; opacity: 0.92; }
.p-bar__account { margin-left: auto; font-size: 0.875rem; }
.p-bar__signout { background: transparent; border: 1px solid #f0c4cc; font: inherit; font-size: 0.875rem; padding: 0.25rem 0.7rem; cursor: pointer; }
.p-shell { flex: 1; width: 100%; max-width: 1200px; margin: 0 auto; padding: 1.5rem var(--side) 3rem; }
.p-main:focus { outline: none; }
.p-signin { background: var(--paper); border: 1px solid var(--line); padding: 1.5rem; max-width: 34rem; }
.p-note { font-size: 0.9375rem; color: var(--ink-soft); }
.p-check { font-weight: 400 !important; display: inline-flex !important; gap: 0.5rem; align-items: center; }
.p-check input { width: auto !important; }
.p-status { min-height: 1.5em; margin: 0; }
.p-error { color: var(--garnet); font-weight: 600; }
.p-app { display: grid; gap: 1.5rem; }
.p-app[hidden] { display: none; }
@media (min-width: 900px) { .p-app { grid-template-columns: 15rem minmax(0, 1fr); align-items: start; } }
.p-nav ul { list-style: none; margin: 0; padding: 0; background: var(--paper); border: 1px solid var(--line); }
.p-nav li { margin: 0; border-bottom: 1px solid var(--line); }
.p-nav li:last-child { border-bottom: 0; }
.p-nav a { display: block; padding: 0.65rem 0.9rem; color: var(--ink); text-decoration: none; font-size: 0.9375rem; }
.p-nav a[aria-current="page"] { background: var(--garnet-tint); color: var(--garnet); font-weight: 650; border-left: 3px solid var(--garnet); }
.p-view { background: var(--paper); border: 1px solid var(--line); padding: 1.5rem; min-width: 0; }
.p-view h1 { font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); }
.p-view h1:focus { outline: none; }
.p-view h2 { font-size: 1.125rem; margin-top: 1.75rem; }
.p-kicker { font-size: 0.78125rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--garnet); font-weight: 650; margin-bottom: 0.4rem; }
.p-head { margin-bottom: 1.5rem; }
.p-body { max-width: 46rem; }
.p-signed { font-style: italic; border-top: 1px solid var(--line); padding-top: 0.6rem; }
.p-lines { margin: 0 0 1.25rem; }
.p-lines div { padding: 0.7rem 0; border-bottom: 1px solid var(--line); }
.p-lines dt { font-weight: 650; }
.p-lines dd { margin: 0.2rem 0 0; }
.p-index { list-style: none; margin: 0 0 1.25rem; padding: 0; border-top: 1px solid var(--line); }
.p-index li { margin: 0; padding: 0.55rem 0; border-bottom: 1px solid var(--line); }
.p-index span { color: var(--ink-soft); font-size: 0.875rem; }
.p-back { margin-top: 2rem; }
.p-foot { padding: 1rem var(--side); font-size: 0.8125rem; color: var(--ink-soft); }
.review-comments { list-style: none; margin: 0; padding: 0; }
.review-comments li { margin: 0 0 1rem; padding: 0.9rem 1rem; background: var(--sand-tint); border-left: 3px solid var(--sand); }
.review-comments p { margin: 0; }
.review-comments__who { font-weight: 650; font-size: 0.875rem; margin-bottom: 0.3rem !important; }
