@font-face {
  font-family: Onest;
  src: url("/assets/onest.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: Newsreader;
  src: url("/assets/newsreader-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
}
:root {
  --paper: #f6f4ec;
  --white: #fffcf5;
  --ink: #152c28;
  --muted: #4e625a;
  --ocean: #103d39;
  --deep: #103530;
  --signal: #e0edac;
  --rule: #c6cec1;
  --field-border: #77887c;
  --chart-rule: #678d7b;
  --qualified-rule: #a8b78e;
  --focus: #8d3c26;
  --error: #922e22;
  --gutter: clamp(1.25rem, 5vw, 5rem);
  --section: clamp(4rem, 8vw, 7.75rem);
  --display: clamp(2.6rem, 5.22vw, 4.85rem);
  --heading: clamp(2.3rem, 4.5vw, 4.5rem);
  --serif: Newsreader, Georgia, serif;
  --ease: cubic-bezier(.2,.75,.2,1);
  font-family: Onest, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 2rem; }
body { margin: 0; font-size: 1rem; line-height: 1.6; }
main { min-height: 65vh; }
::selection { background: var(--signal); color: var(--ink); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
h1, h2, h3, p, figure, dl, dd { margin: 0; }
h1, h2, h3 { text-wrap: balance; }
h1, h2 { letter-spacing: -.04em; font-weight: 650; }
h1 { font-size: var(--display); line-height: 1.01; }
h2 { font-size: var(--heading); line-height: 1.06; }
h3 { font-weight: 650; line-height: 1.24; letter-spacing: -.02em; }
em { font: italic 450 1.11em/.85 var(--serif); }
p { text-wrap: pretty; }
a { color: inherit; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
svg { display: block; }
[hidden] { display: none !important; }
.shell { width: min(calc(100% - 2 * var(--gutter)), 82rem); margin-inline: auto; }
.section-space { padding-block: var(--section); }
.skip-link {
  position: absolute;
  top: .6rem;
  left: 1rem;
  z-index: 5;
  transform: translateY(-200%);
  padding: .65rem 1rem;
  background: var(--white);
}
.skip-link:focus { transform: none; }

.site-header { border-bottom: 1px solid var(--rule); }
.header-inner { display: flex; min-height: 5.25rem; align-items: center; justify-content: space-between; gap: 1.25rem; }
.wordmark { display: inline-flex; align-items: center; gap: .48rem; color: var(--ocean); text-decoration: none; }
.wordmark > span { display: grid; gap: .17rem; line-height: .92; font-size: 1.21rem; font-weight: 770; letter-spacing: -.03em; }
.wordmark > span > span { font-size: .71rem; line-height: 1; font-weight: 670; letter-spacing: .105em; text-transform: uppercase; }
.site-nav { display: flex; align-items: center; gap: clamp(1.1rem, 3.4vw, 3.2rem); font-size: .9rem; font-weight: 560; }
.nav-link { text-decoration: none; }
.nav-link:hover { text-decoration: underline; }
.nav-request {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  min-height: 2.75rem;
  padding: .45rem .7rem .45rem .9rem;
  border: 1px solid var(--rule);
  text-decoration: none;
  transition: background-color .2s, border-color .2s;
}
.nav-request:hover, .nav-request[aria-current] { background: var(--signal); border-color: var(--signal); }
.nav-request svg, .button svg { width: 1.16rem; height: 1.16rem; flex: none; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: .85rem;
  min-height: 3.25rem;
  border: 1px solid var(--ocean);
  border-radius: 2px;
  padding: .72rem 1.05rem;
  background: var(--ocean);
  color: var(--white);
  font: inherit;
  font-size: .94rem;
  font-weight: 630;
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .22s, border-color .22s, color .22s;
}
.button:hover { background: #20564b; border-color: #20564b; }
.button-outline { border-color: #a2b1a5; background: transparent; color: var(--ocean); }
.button-outline:hover { border-color: var(--ocean); background: #e9eee3; }
.button:disabled { opacity: .58; cursor: default; }

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(2.25rem, 4vw, 4.25rem);
  padding-block: clamp(3.5rem, 6.3vw, 6rem);
}
.hero h1 { text-wrap: initial; }
.hero h1 em { display: block; margin-top: .13em; color: var(--ocean); }
.hero-lead { max-width: 49ch; margin-top: 1.5rem; color: var(--muted); font-size: clamp(1rem, 1.46vw, 1.22rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.9rem; }
.hero-note { margin-top: 1.4rem; color: var(--muted); font-size: .9rem; }

.scope { background: #e7ece0; border-block: 1px solid #dce3d5; }
.scope-inner { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: clamp(1.7rem, 6vw, 6rem); padding-block: clamp(2.6rem, 5.6vw, 5.5rem); }
.scope h2 { max-width: 18ch; font-size: clamp(1.95rem, 3.3vw, 3.5rem); }
.scope h2 em { color: var(--ocean); }
.market-list dt { font-weight: 690; }
.scope-inner > p, .market-list dd { color: var(--muted); margin-top: .16rem; }
.section-intro h2 { max-width: 14ch; }
.section-intro p, .fit p, .closing p { max-width: 49ch; margin-top: 1.15rem; color: var(--muted); font-size: 1.06rem; }
.step-number { grid-row: span 2; align-self: start; color: #386348; font-size: 1rem; font-weight: 620; font-variant-numeric: tabular-nums; }
.market { background: var(--white); border-top: 1px solid var(--rule); }
.market-inner { display: grid; grid-template-columns: minmax(0, .83fr) minmax(0, 1.17fr); align-items: center; gap: clamp(1.7rem, 6vw, 6rem); }
.list-label { margin-bottom: .65rem; font-size: .84rem; color: var(--muted); font-weight: 620; }
.market-list { border-top: 1px solid var(--rule); }
.market-list > div { display: grid; grid-template-columns: 1fr 1.15fr; align-items: baseline; gap: .65rem 1rem; padding-block: 1rem; border-bottom: 1px solid var(--rule); }
.market-list dd { margin: 0; }

.qualification { background: var(--deep); color: var(--white); }
.qualification-intro { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: clamp(1.15rem, 5vw, 4.25rem); }
.qualification-intro h2 { max-width: 14ch; }
.qualification-intro em { color: var(--signal); }
.qualification-intro p { max-width: 49ch; color: #c9dcd1; }

.fit { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(1rem, 5vw, 4rem); }
.fit h2 { max-width: 17ch; font-size: clamp(2.15rem, 3.8vw, 3.8rem); }
.fit p:first-child { margin-top: 0; }
.closing { background: var(--signal); }
.closing-inner { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem 4rem; padding-block: clamp(2.75rem, 6vw, 5.5rem); }
.closing h2 { max-width: 21ch; text-wrap: initial; }
.closing h2 em { white-space: nowrap; }
.closing p { max-width: 56ch; color: var(--ink); }
.closing .button { flex-shrink: 0; }
.site-footer { border-top: 1px solid var(--rule); }
.footer-inner { min-height: 6.8rem; display: flex; flex-wrap: wrap; gap: 1rem 2.25rem; align-items: center; padding-block: 1.45rem; }
.footer-inner p, .footer-inner nav { color: var(--muted); font-size: .9rem; }
.footer-inner nav { display: flex; flex-wrap: wrap; gap: .3rem 1.3rem; margin-left: auto; }
.footer-inner nav a { padding-block: .45rem; }

.contact { display: grid; grid-template-columns: minmax(0, .87fr) minmax(0, 1.13fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.contact h1 { font-size: clamp(2.45rem, 4vw, 4rem); text-wrap: balance; }
.contact h1 em { display: block; margin-top: .12em; color: var(--ocean); }
.contact-intro > p { max-width: 47ch; margin-top: 1.3rem; color: var(--muted); font-size: 1.06rem; }
.sample-note { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--rule); max-width: 46ch; }
.sample-note h2, .sample-form h2 { font-size: 1.28rem; letter-spacing: -.02em; }
.sample-note p { margin-top: .5rem; color: var(--muted); }
.form-note a { overflow-wrap: anywhere; }
.sample-form { min-width: 0; padding: clamp(1rem, 2.6vw, 2.35rem); border: 1px solid var(--rule); background: var(--white); }
.form-note, .field-error, .form-error { font-size: .9rem; }
.form-note { color: var(--muted); margin-top: .45rem; }
.form-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-block: 1.35rem; }
.form-fields label { min-width: 0; font-size: .94rem; font-weight: 620; }
.full-field { grid-column: 1 / -1; }
.optional { font-weight: 450; color: var(--muted); }
input, textarea {
  display: block;
  width: 100%;
  min-height: 2.85rem;
  margin-top: .28rem;
  padding: .65rem .7rem;
  border: 1px solid var(--field-border);
  border-radius: 2px;
  background: var(--white);
  color: var(--ink);
  caret-color: var(--ocean);
  font: inherit;
  font-size: 1rem;
  font-weight: 460;
}
textarea { resize: vertical; }
input[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--error); }
.field-error, .form-error { color: var(--error); }
.field-error { display: block; margin-top: .25rem; font-weight: 500; }
.form-error:not(:empty), .form-status:not(:empty) { margin-top: .75rem; }
.privacy-note { margin-bottom: 1rem; }
.form-error:not(:empty) { margin-bottom: .75rem; }
.form-status { color: var(--ocean); font-size: .94rem; font-weight: 620; }
.form-trap { position: absolute; overflow: hidden; width: 1px; height: 1px; clip-path: inset(50%); }
.text-page { max-width: 49rem; }
.text-page h1 { font-size: clamp(2.8rem, 6vw, 5.25rem); }
.text-intro { font-size: 1.15rem; margin-top: 1rem; color: var(--muted); }
.text-page h2 { font-size: clamp(1.4rem, 3vw, 1.95rem); margin: 2.2rem 0 .65rem; letter-spacing: -.02em; }
.text-page a { overflow-wrap: anywhere; }
.text-page > .button { margin-top: 1.25rem; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
@media (max-width: 62rem) {
  .hero { gap: clamp(1.5rem, 3.3vw, 2.5rem); }
  .hero h1 { font-size: clamp(2.3rem, 5.1vw, 4.8rem); }
}
@media (max-width: 49rem) {
  .hero, .scope-inner, .market-inner, .qualification-intro, .fit, .contact { grid-template-columns: 1fr; }
  .hero { padding-block: 3.15rem 2.7rem; gap: 1.9rem; }
  .hero h1 { font-size: clamp(1.98rem, 9.55vw, 4.75rem); }
  .hero-lead { margin-top: 1.15rem; }
  .hero-actions { margin-top: 1.35rem; }
  .hero-note { margin-top: 1rem; }
  .section-intro h2, .scope h2, .fit h2 { max-width: 18ch; }
  .fit { gap: 1.25rem; }
  .contact { gap: 2rem; }
}
@media (max-width: 37rem) {
  .header-inner { min-height: 4.5rem; }
  .nav-request { font-size: .83rem; gap: .34rem; }
  .closing-inner { align-items: flex-start; flex-direction: column; }
  .closing h2 em { white-space: normal; }
  .market-list > div { grid-template-columns: 1fr; gap: .17rem; padding-block: .8rem; }
  .footer-inner { display: grid; gap: .55rem; }
  .footer-inner nav { margin-left: 0; }
}
@media (max-width: 27rem) {
  .hero-actions .button { font-size: .87rem; padding-inline: .7rem; gap: .42rem; }
  .hero-actions .button svg { width: 1rem; }
  .form-fields { grid-template-columns: 1fr; }
}
@media (max-width: 22rem) {
  .header-inner { gap: .5rem; }
  .site-header .wordmark img { width: 2.05rem; height: 2.05rem; }
  .nav-request { white-space: nowrap; padding-inline: .45rem; }
  .nav-request svg { width: .9rem; }
  .chart-head { letter-spacing: .035em; }
  .hero-actions .button { flex: 1; }
}
@media (forced-colors: active) {
  .chart-route path { stroke: CanvasText; }
  .waypoint { border-color: CanvasText; }
  .button { border-color: ButtonText; }
}

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.mobile-nav { display: none; }
.nav-pages { display: flex; align-items: center; gap: clamp(1rem, 2.6vw, 2.45rem); }
.nav-link[aria-current] { text-decoration: underline; text-decoration-color: #588371; text-decoration-thickness: 2px; }
.nav-link, .nav-request { min-height: 2.75rem; align-content: center; }
.site-nav { gap: clamp(1.1rem, 2.7vw, 2.6rem); }

.field-chart, .hero-network {
  min-width: 0;
  padding: clamp(1rem, 2.5vw, 2.35rem);
  background: var(--deep);
  color: var(--white);
}
.hero-network { display: block; text-decoration: none; }
.hero-network-label {
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.hero-network img { display: block; width: 100%; height: auto; margin-block: .6rem; }
.hero-network-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  border-top: 1px solid var(--chart-rule);
  padding-top: .8rem;
  color: var(--signal);
  font-size: .92rem;
  font-weight: 580;
}
.hero-network-link svg, .text-action svg { width: 1.2rem; flex: none; }
.hero-network:hover .hero-network-link > span { text-decoration: underline; }
.chart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
  font-size: .78rem;
  letter-spacing: .065em;
  text-transform: uppercase;
  font-weight: 650;
}
.chart-head span:last-child { color: #b2cbbd; text-align: right; }
.chart-map {
  position: relative;
  overflow: hidden;
  aspect-ratio: 500 / 320;
  margin-block: 1rem;
  border: 1px solid #6b8e7f;
  background: #18493f;
}
.chart-contours {
  position: absolute;
  inset: -2%;
  background: url("/assets/field-contours.svg") center / 100% 100% no-repeat;
  transform: translate(var(--contour-x, 0), var(--contour-y, 0));
}
.chart-route { position: relative; width: 100%; height: 100%; fill: none; }
.chart-route path { stroke: var(--signal); stroke-width: 1.5; }
.route-base { opacity: .59; stroke-dasharray: 3 6; vector-effect: non-scaling-stroke; }
.route-progress { stroke-dasharray: 1 1; stroke-dashoffset: 1; }
.route-progress[data-reached] { stroke-dashoffset: 0; }
.waypoint {
  position: absolute;
  display: grid;
  place-items: center;
  width: clamp(1.8rem, 3.3vw, 2.75rem);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border: 1px solid #8db09f;
  border-radius: 50%;
  background: var(--deep);
  color: var(--white);
  font-size: .82rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
.waypoint[data-node="0"] { left: 12.4%; top: 79.375%; }
.waypoint[data-node="1"] { left: 37%; top: 57.5%; }
.waypoint[data-node="2"] { left: 60.2%; top: 34.6875%; }
.waypoint[data-node="3"] { left: 88%; top: 19.375%; }
.waypoint[data-state="active"] { border-color: var(--signal); background: var(--signal); color: var(--deep); }
.waypoint[data-state="complete"] { border-color: var(--signal); color: var(--signal); }
.journey[data-stage="1"] { --contour-x: .7%; --contour-y: -.4%; }
.journey[data-stage="2"] { --contour-x: 1.4%; --contour-y: -.9%; }
.journey[data-stage="3"] { --contour-x: 1.8%; --contour-y: -1.25%; }

.detail-heading { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .8fr); align-items: end; gap: 1.1rem clamp(1.6rem, 6vw, 6rem); margin-bottom: clamp(1.7rem, 4vw, 3rem); }
.detail-heading h2 { max-width: 20ch; }
.detail-heading h2 em, .supporting-hero h1 em, .about-hero h1 em { color: var(--ocean); }
.detail-heading p, .scope-inner > p { max-width: 50ch; font-size: 1.05rem; }
.detail-heading p { color: var(--muted); }
.journey { --chart-copy: #c9dcd1; }
.journey .chart-head { border-bottom: 1px solid var(--chart-rule); padding-bottom: .9rem; }
.journey-body { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(1.2rem, 3.7vw, 3.8rem); padding-block: 1.2rem; }
.journey-visual .chart-map { margin-top: 0; }
.chart-key { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem .7rem; }
.chart-key a {
  display: flex;
  align-items: center;
  gap: .48rem;
  min-height: 2.75rem;
  padding: .4rem .55rem;
  border-bottom: 1px solid var(--chart-rule);
  color: var(--white);
  font-size: clamp(.82rem, 1.15vw, .96rem);
  line-height: 1.25;
  text-decoration: none;
}
.chart-key a:hover { background: #20564b; }
.chart-key a[aria-selected="true"] { border-color: var(--signal); background: var(--signal); color: var(--deep); font-weight: 670; }
.chart-index { color: #c9e0a9; font-size: .75rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.chart-key a[aria-selected="true"] .chart-index { color: inherit; }
.journey-details { display: flex; flex-direction: column; min-width: 0; gap: 1rem; }
.journey-panel { min-width: 0; }
.journey-panel + .journey-panel:not([hidden]) { margin-top: 1rem; border-top: 1px solid var(--chart-rule); padding-top: 1rem; }
.journey[data-enhanced] .journey-panel { margin-top: 0; border-top: 0; padding-top: 0; }
.journey-panel h3 { font-size: clamp(1.55rem, 2.4vw, 2.4rem); text-wrap: initial; }
.journey-summary { margin-top: .55rem; color: var(--chart-copy); max-width: 50ch; }
.stage-record { margin-top: 1.15rem; padding: .85rem 1rem; background: var(--white); color: var(--ink); }
.stage-status { padding-bottom: .55rem; border-bottom: 1px solid var(--rule); font-size: .95rem; font-weight: 650; }
.stage-status.is-qualified { border-color: var(--qualified-rule); color: var(--ocean); }
.stage-status.is-qualified::before { content: ""; display: inline-block; width: .55rem; height: .55rem; margin-right: .45rem; border-radius: 50%; background: #427757; vertical-align: .06rem; }
.stage-record dl { display: grid; gap: .38rem; margin-top: .55rem; }
.stage-record dl div { display: grid; grid-template-columns: minmax(6rem, .7fr) minmax(0, 1fr); gap: .12rem .7rem; font-size: .9rem; line-height: 1.4; }
.stage-record dt { color: var(--muted); }
.stage-record dd { font-weight: 550; }
.journey-explanation { margin-top: .85rem; color: var(--chart-copy); }
.stage-action { display: inline-flex; min-height: 2.75rem; align-items: center; margin-top: .45rem; color: var(--signal); }
.journey-controls { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .55rem; }
.journey-count { margin-right: auto; color: var(--chart-copy); font-size: .84rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.journey-controls button {
  min-height: 2.75rem;
  padding: .4rem .8rem;
  border: 1px solid var(--chart-rule);
  background: transparent;
  color: var(--white);
  font: inherit;
  font-size: .9rem;
  cursor: pointer;
}
.journey-controls button:enabled:hover { background: #20564b; }
.journey-controls button:disabled { color: #a8bdb1; cursor: default; }
.journey-controls button[data-next] { border-color: var(--signal); color: var(--signal); }
.journey :focus-visible, .about-approach :focus-visible { outline-color: var(--signal); }
.journey-caption { border-top: 1px solid var(--chart-rule); padding-top: .8rem; color: var(--chart-copy); font-size: .86rem; }
.text-action { display: inline-flex; align-items: center; gap: .48rem; margin-top: 1.15rem; min-height: 2.75rem; color: var(--ocean); font-weight: 650; }

.receive, .process-detail { background: var(--white); border-block: 1px solid var(--rule); }
.receive-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid var(--rule); }
.receive-list > div { padding: 1.2rem clamp(.85rem, 2vw, 1.8rem) 1.4rem; }
.receive-list > div + div { border-left: 1px solid var(--rule); }
.receive-list > div:first-child { padding-left: 0; }
.receive-list dt, .handover-list dt { font-size: 1.2rem; font-weight: 650; }
.receive-list dd, .handover-list dd { color: var(--muted); margin-top: .35rem; }
.qualification-note { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--chart-rule); color: var(--white); }
.qualification-note strong { color: var(--signal); font-weight: 650; }
.faq { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 1.25rem clamp(1.8rem, 6vw, 6rem); border-top: 1px solid var(--rule); }
.faq h2 { max-width: 12ch; }
.faq-list { border-top: 1px solid var(--rule); }
.faq-list details { border-bottom: 1px solid var(--rule); }
.faq-list summary { display: flex; min-height: 3.35rem; align-items: center; justify-content: space-between; gap: 1rem; list-style: none; padding-block: .7rem; font-weight: 650; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary:hover { color: #326b53; }
.faq-list summary span { position: relative; flex: none; width: 1rem; height: 1rem; }
.faq-list summary span::before, .faq-list summary span::after { content: ""; position: absolute; background: currentColor; inset: calc(50% - .5px) 0 auto; height: 1px; }
.faq-list summary span::after { transform: rotate(90deg); }
.faq-list details[open] summary span::after { transform: none; }
.faq-list p { color: var(--muted); padding-bottom: 1rem; max-width: 64ch; }

.supporting-hero, .about-hero, .handover {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr);
  align-items: end;
  gap: 1.5rem clamp(1.6rem, 6vw, 6rem);
}
.supporting-hero h1, .about-hero h1 { max-width: 17ch; }
.supporting-hero > div > p, .about-copy p, .handover > div > p { margin-top: 1.1rem; color: var(--muted); max-width: 57ch; font-size: 1.06rem; }
.supporting-aside { padding-block: 1rem; border-block: 1px solid var(--rule); color: var(--muted); }
.supporting-aside strong { color: var(--ink); }
.supporting-aside a { display: inline-block; margin-top: .65rem; color: var(--ocean); font-weight: 650; }
.detail-steps, .service-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--rule); }
.detail-steps li {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, .72fr) minmax(0, 1.28fr);
  gap: .35rem clamp(.75rem, 2.2vw, 2.2rem);
  padding-block: 1.4rem;
  border-bottom: 1px solid var(--rule);
}
.detail-steps h3, .service-list h3 { font-size: clamp(1.18rem, 2vw, 1.55rem); text-wrap: initial; }
.detail-steps p, .service-list p { color: var(--muted); max-width: 59ch; }
.detail-steps p + p { margin-top: .35rem; }
.service-section { background: #e7ece0; }
.service-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1.4rem, 6vw, 5rem); }
.service-list li { border-bottom: 1px solid #b3c1b1; padding-block: 1.2rem; }
.service-list p { margin-top: .5rem; }
.handover { align-items: start; }
.handover h2 { max-width: 15ch; }
.handover-list > div { padding-block: .8rem; border-top: 1px solid var(--rule); }
.handover-list > div:last-child { border-bottom: 1px solid var(--rule); }
.about-hero { align-items: start; }
.about-copy p:first-child { margin-top: 0; color: var(--ink); }
.about-copy .founder-line { border-top: 1px solid var(--rule); padding-top: .85rem; color: var(--ink); }
.about-approach { background: var(--deep); color: var(--white); }
.about-approach h2 { max-width: 21ch; }
.about-approach h2 em { color: var(--signal); }
.about-approach p { max-width: 53ch; margin-top: 1.1rem; color: #c9dcd1; }
.button-signal { border-color: var(--signal); background: var(--signal); color: var(--deep); margin-top: 1.25rem; }
.button-signal:hover { background: var(--white); color: var(--deep); }

.contact { row-gap: 1.6rem; }
.contact .sample-form { grid-column: 2; grid-row: 1 / span 2; }
.sample-note { margin-top: 0; }
.sample-note ol { margin: .65rem 0; padding-left: 1.25rem; color: var(--muted); }
.sample-note li + li { margin-top: .3rem; }
.draft-copy { display: block; margin-top: 1rem; font-size: .95rem; font-weight: 600; }
.draft-copy summary { min-height: 2.75rem; align-content: center; color: var(--ocean); cursor: pointer; }
.draft-copy label { display: block; margin-top: .4rem; }

@media (prefers-reduced-motion: no-preference) {
  .journey[data-enhanced] .route-progress { transition: stroke-dashoffset .52s var(--ease); }
  .journey[data-enhanced] .chart-contours { transition: transform .64s var(--ease); }
  .journey[data-enhanced] .waypoint { transition: background-color .24s, border-color .24s, color .24s; }
  .journey[data-enhanced] .journey-panel:not([hidden]) { animation: chart-panel-in .27s var(--ease); }
  @keyframes chart-panel-in { from { opacity: .73; transform: translateY(.27rem); } to { opacity: 1; transform: none; } }
}

@media (max-width: 49rem) {
  .detail-heading, .supporting-hero, .about-hero, .handover, .faq { grid-template-columns: 1fr; }
  .journey-body { grid-template-columns: minmax(0, 1fr); }
  .hero-network { width: min(100%, 34rem); }
  .journey-visual .chart-map { max-height: 24rem; }
  .supporting-hero, .about-hero { gap: 1.75rem; }
  .contact .sample-form { grid-column: auto; grid-row: auto; }
}
@media (max-width: 41rem) {
  .header-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 .4rem; padding-top: .45rem; }
  .site-nav { display: none; }
  .mobile-nav { display: contents; }
  .mobile-nav .nav-request { justify-self: end; white-space: nowrap; }
  .mobile-nav .nav-pages { grid-column: 1 / -1; justify-content: space-between; gap: .22rem; margin-top: .36rem; border-top: 1px solid var(--rule); font-size: .83rem; font-weight: 600; }
  .mobile-nav .nav-link { display: flex; align-items: center; padding-inline: .15rem; }
  .receive-list { grid-template-columns: 1fr; }
  .receive-list > div { padding-inline: 0; }
  .receive-list > div + div { border-left: 0; border-top: 1px solid var(--rule); }
  .service-list { grid-template-columns: 1fr; }
  .detail-steps li { grid-template-columns: 1.85rem minmax(0, 1fr); }
  .detail-steps li > div { grid-column: 2; }
  .journey-visual .chart-map { max-height: none; }
  .contact h1 { font-size: clamp(2.15rem, 7.75vw, 3rem); }
}
@media (max-width: 22rem) {
  .chart-head { font-size: .73rem; letter-spacing: .035em; }
  .stage-record dl div { grid-template-columns: 1fr; }
  .chart-key { column-gap: .35rem; }
  .chart-key a { padding-inline: .35rem; gap: .32rem; }
}
@media (forced-colors: active) {
  .chart-route path { stroke: CanvasText; }
  .waypoint { border-color: CanvasText; }
  .waypoint[data-state="active"], .chart-key a[aria-selected="true"] { color: HighlightText; background: Highlight; forced-color-adjust: none; }
}
