/* ===========================================================================
   Humvance — public site v2 (roadmap step 5, 2026-09-30)
   Shared by the public pages (home, services, how we work). Monochrome
   identity: paper, ink, one ink band; no gradients, no shadows. Every class is
   prefixed h2- so nothing here can reach the internal screens.
   =========================================================================== */
/* Home v2 (roadmap step 5, 2026-09-30). Monochrome identity: paper, ink,
   one ink band. No gradients, no shadows. Everything is page-scoped (h2-);
   the shared chrome (header, footer) still comes from hv.css. */
.h2-wrap { max-width: var(--hv-maxw); margin-inline: auto; padding-inline: clamp(16px, 4vw, 40px); }
.h2-hero { padding-block: clamp(44px, 7vw, 104px) clamp(56px, 8vw, 104px); }
.h2-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(36px, 6vw, 84px); align-items: center; }
@media (max-width: 940px) { .h2-hero-grid { grid-template-columns: 1fr; } }
.h2-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: .88rem; color: var(--hv-ink-3); margin-block-end: 20px; }
.h2-eyebrow::before { content: ""; width: 26px; height: 1.5px; background: currentColor; }
.h2-h1 { font-size: clamp(2.2rem, 1.3rem + 3.4vw, 3.9rem); line-height: 1.18; font-weight: 700; max-width: 18ch; }
body[data-lang="en"] .h2-h1 { letter-spacing: -.025em; line-height: 1.08; font-size: clamp(2.1rem, 1.3rem + 2.9vw, 3.4rem); max-width: 20ch; }
.h2-h1 span { display: block; }
.h2-h1 span + span { color: var(--hv-ink-3); font-weight: 500; }
.h2-lead { font-size: var(--hv-t-lead); color: var(--hv-ink-2); max-width: 42ch; margin-block-start: 22px; }
.h2-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-block-start: 34px; }
.h2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding-inline: 26px; border-radius: 999px; font-weight: 600; font-size: 1rem; text-decoration: none; border: 1.5px solid var(--hv-ink); transition: transform .15s var(--hv-ease), background .15s, color .15s; }
.h2-btn-p { background: var(--hv-ink); color: var(--hv-paper); }
.h2-btn-p:hover { transform: translateY(-1px); }
.h2-btn-g { background: transparent; color: var(--hv-ink); }
.h2-btn-g:hover { background: var(--hv-ink); color: var(--hv-paper); }
.h2-btn svg { flex: none; }
.h2-note { margin-block-start: 18px; font-size: .88rem; color: var(--hv-ink-3); }
.h2-limited { display: inline-flex; align-items: center; gap: 8px; margin-block-start: 10px; font-size: .84rem; font-weight: 600; color: var(--hv-ink-2); }
.h2-limited::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--hv-ink); }

/* The duel: one question, two answers */
.h2-duel { display: grid; gap: 12px; margin: 0; }
.h2-ask { background: var(--hv-surface); border: 1px solid var(--hv-line); border-radius: 16px; padding: 14px 18px; font-weight: 500; line-height: 1.6; }
.h2-who, .h2-side-h { display: block; font-size: .76rem; font-weight: 600; color: var(--hv-ink-3); margin-block-end: 6px; }
.h2-side { border-radius: 16px; padding: 18px 20px; }
.h2-side-ai { border: 1.5px dashed var(--hv-line-2); color: var(--hv-ink-3); }
.h2-side-ai p { font-size: .95rem; line-height: 1.7; }
.h2-side-hv { background: var(--hv-ink); color: var(--hv-paper); }
.h2-side-hv .h2-side-h { color: color-mix(in srgb, var(--hv-paper) 62%, transparent); }
.h2-side-hv ol { list-style: none; display: grid; gap: 10px; counter-reset: d; margin: 0; padding: 0; }
.h2-side-hv li { counter-increment: d; display: grid; grid-template-columns: 24px 1fr; gap: 10px; font-size: .95rem; line-height: 1.65; }
.h2-side-hv li::before { content: counter(d); font-family: var(--hv-font-en); font-size: .72rem; font-weight: 600; width: 22px; height: 22px; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--hv-paper) 50%, transparent); display: grid; place-items: center; margin-block-start: 2px; }
.h2-side-hv b { font-weight: 600; }
.h2-verdict { display: inline-flex; align-items: center; gap: 8px; margin-block-start: 14px; font-size: .8rem; font-weight: 600; padding: 5px 12px; border-radius: 999px; }
.h2-v-bad { border: 1px solid var(--hv-line-2); color: var(--hv-ink-2); }
.h2-v-good { background: var(--hv-paper); color: var(--hv-ink); }
.h2-duel figcaption { font-size: .78rem; color: var(--hv-ink-3); text-align: end; }

/* Sections */
.h2-sec { padding-block: clamp(64px, 9vw, 120px); }
.h2-rule { border-block-start: 1px solid var(--hv-line); }
.h2-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 32px; align-items: end; margin-block-end: clamp(32px, 5vw, 56px); }
@media (max-width: 860px) { .h2-head { grid-template-columns: 1fr; gap: 12px; } }
.h2-kicker { font-size: .85rem; color: var(--hv-ink-3); display: flex; align-items: center; gap: 10px; margin-block-end: 12px; }
.h2-kicker b { font-family: var(--hv-font-en); font-weight: 600; color: var(--hv-ink); }
.h2-h2 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.5rem); line-height: 1.3; font-weight: 700; }
.h2-h2 span { display: block; }
.h2-head p { color: var(--hv-ink-2); font-size: var(--hv-t-lead); max-width: 46ch; }

.h2-sym { display: grid; grid-template-columns: repeat(4, 1fr); border-block-start: 1.5px solid var(--hv-ink); }
@media (max-width: 940px) { .h2-sym { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .h2-sym { grid-template-columns: 1fr; } }
.h2-sym div { padding-block: 26px 28px; padding-inline-end: 22px; border-block-end: 1px solid var(--hv-line); }
@media (min-width: 941px) { .h2-sym div + div { border-inline-start: 1px solid var(--hv-line); padding-inline-start: 24px; } }
.h2-sym .n { font-family: var(--hv-font-en); font-size: .8rem; color: var(--hv-ink-3); display: block; margin-block-end: 22px; }
@media (max-width: 520px) { .h2-sym div { padding-block: 20px; } .h2-sym .n { margin-block-end: 8px; } }
.h2-sym p { font-size: 1.12rem; font-weight: 500; line-height: 1.6; }

.h2-cmp { border-block-start: 1.5px solid var(--hv-ink); }
.h2-cmp-row { display: grid; grid-template-columns: 170px 1fr 1.25fr; gap: 24px; padding-block: 18px; border-block-end: 1px solid var(--hv-line); align-items: start; }
.h2-cmp-row > b { font-weight: 600; }
.h2-cmp-ai { color: var(--hv-ink-3); font-size: .95rem; }
.h2-cmp-ai i { display: none; font-style: normal; font-weight: 600; }
.h2-cmp-hv { font-weight: 500; padding-inline-start: 22px; position: relative; }
.h2-cmp-hv::before { content: ""; position: absolute; inset-inline-start: 0; top: .62em; width: 10px; height: 10px; border-radius: 50%; background: var(--hv-ink); }
.h2-cmp-head { padding-block: 12px; font-size: .82rem; font-weight: 600; color: var(--hv-ink-3); }
.h2-cmp-head span:last-child { color: var(--hv-ink); font-family: var(--hv-font-en); }
@media (max-width: 760px) {
  .h2-cmp-head { display: none; }
  .h2-cmp-row { grid-template-columns: 1fr; gap: 6px; }
  .h2-cmp-ai i { display: inline; }
  .h2-cmp-hv { margin-block-start: 4px; }
}

.h2-band { background: var(--hv-ink); color: var(--hv-paper); }
.h2-band .h2-h2, .h2-band .h2-kicker b { color: var(--hv-paper); }
.h2-band .h2-kicker, .h2-band .h2-head p { color: color-mix(in srgb, var(--hv-paper) 66%, transparent); }
.h2-steps { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; }
.h2-steps li { padding-block: 26px 8px; padding-inline-end: 22px; border-block-start: 1px solid color-mix(in srgb, var(--hv-paper) 20%, transparent); }
@media (min-width: 941px) { .h2-steps li + li { padding-inline-start: 22px; border-inline-start: 1px solid color-mix(in srgb, var(--hv-paper) 20%, transparent); } }
@media (max-width: 940px) { .h2-steps { grid-template-columns: 1fr; } .h2-steps li { display: grid; grid-template-columns: 52px 1fr; padding-block: 22px; } }
.h2-num { font-family: var(--hv-font-en); font-weight: 600; font-size: .82rem; display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--hv-paper) 55%, transparent); margin-block-end: 22px; }
.h2-steps h3 { font-size: 1.08rem; font-weight: 600; margin-block-end: 6px; color: var(--hv-paper); }
.h2-steps p { font-size: .93rem; color: color-mix(in srgb, var(--hv-paper) 66%, transparent); line-height: 1.7; }
.h2-pill { display: inline-block; margin-block-start: 10px; font-size: .76rem; border: 1px solid color-mix(in srgb, var(--hv-paper) 55%, transparent); border-radius: 999px; padding: 2px 10px; }

.h2-deliver { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
@media (max-width: 940px) { .h2-deliver { grid-template-columns: 1fr; } }
.h2-dlist { list-style: none; margin: 28px 0 0; padding: 0; border-block-start: 1px solid var(--hv-line); }
.h2-dlist li { display: grid; grid-template-columns: 28px 1fr; gap: 14px; padding-block: 18px; border-block-end: 1px solid var(--hv-line); }
.h2-dlist b { display: block; font-weight: 600; margin-block-end: 2px; }
.h2-dlist span { color: var(--hv-ink-2); font-size: .95rem; }
.h2-dlist svg { margin-block-start: 5px; }
.h2-report { background: var(--hv-surface); border: 1px solid var(--hv-line); border-radius: 20px; overflow: hidden; }
.h2-report-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 22px; border-block-end: 1px solid var(--hv-line); font-size: .82rem; color: var(--hv-ink-3); }
.h2-syn { border: 1px dashed var(--hv-line-2); border-radius: 999px; padding: 2px 10px; }
.h2-report-body { padding: 24px 22px 20px; }
.h2-lbl { font-size: .78rem; font-weight: 600; color: var(--hv-ink-3); margin-block-end: 6px; display: block; }
.h2-dec { font-size: 1.04rem; font-weight: 600; line-height: 1.65; }
.h2-concl { background: var(--hv-paper); border-radius: 12px; padding: 14px 16px; font-size: .95rem; margin-block-start: 10px; }
.h2-block { padding-block-start: 18px; border-block-start: 1px solid var(--hv-line); margin-block-start: 18px; }
.h2-rlist { list-style: none; display: grid; gap: 10px; margin: 6px 0 0; padding: 0; }
.h2-rlist li { font-size: .93rem; color: var(--hv-ink-2); padding-inline-start: 18px; position: relative; }
.h2-rlist li::before { content: ""; position: absolute; inset-inline-start: 0; top: .72em; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid var(--hv-ink-3); }
.h2-rlist.known li::before { background: var(--hv-ink); border-color: var(--hv-ink); }
.h2-status { font-size: .74rem; color: var(--hv-ink-3); }
.h2-check { margin-block-start: 10px; border: 1.5px solid var(--hv-ink); border-radius: 12px; padding: 14px 16px; }
.h2-check b { display: block; margin-block-end: 4px; }
.h2-check p { font-size: .93rem; color: var(--hv-ink-2); }

.h2-not { display: grid; grid-template-columns: auto 1fr; gap: clamp(20px, 4vw, 56px); align-items: start; border: 1.5px solid var(--hv-ink); border-radius: 20px; padding: clamp(24px, 4vw, 44px); }
@media (max-width: 720px) { .h2-not { grid-template-columns: 1fr; } }
.h2-not h2 { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.75rem); font-weight: 700; }
.h2-not ul { list-style: none; display: grid; gap: 12px; margin: 0; padding: 0; }
.h2-not li { display: flex; gap: 12px; align-items: flex-start; }
.h2-not li svg { flex: none; margin-block-start: 6px; }

.h2-faq { max-width: 820px; }
.h2-faq details { border-block-end: 1px solid var(--hv-line); }
.h2-faq details:first-child { border-block-start: 1.5px solid var(--hv-ink); }
.h2-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-block: 22px; font-size: 1.08rem; font-weight: 600; }
.h2-faq summary::-webkit-details-marker { display: none; }
.h2-pm { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--hv-line-2); display: grid; place-items: center; flex: none; transition: transform .2s; font-family: var(--hv-font-en); }
.h2-faq details[open] .h2-pm { transform: rotate(45deg); }
.h2-faq details p { color: var(--hv-ink-2); padding-block-end: 22px; max-width: 62ch; }

.h2-final { text-align: center; }
.h2-final .h2-h2 { font-size: clamp(1.9rem, 1.3rem + 2.6vw, 3.2rem); max-width: 18ch; margin-inline: auto; }
.h2-final p { color: var(--hv-ink-2); margin: 18px auto 0; max-width: 46ch; font-size: var(--hv-t-lead); }
.h2-final .h2-cta { justify-content: center; }
@media (prefers-reduced-motion: reduce) { .h2-btn, .h2-pm { transition: none; } }

/* ── Inner pages ─────────────────────────────────────────────────────────── */
.h2-page-hero { padding-block: clamp(44px, 6vw, 88px) clamp(40px, 6vw, 72px); }
.h2-page-hero .h2-h1 { font-size: clamp(2rem, 1.3rem + 2.8vw, 3.4rem); max-width: 24ch; }
body[data-lang="en"] .h2-page-hero .h2-h1 { font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3.1rem); }

.h2-inc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; list-style: none; margin: 0; padding: 0; counter-reset: inc; }
@media (max-width: 940px) { .h2-inc { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .h2-inc { grid-template-columns: 1fr; } }
.h2-inc li { counter-increment: inc; background: var(--hv-surface); border: 1px solid var(--hv-line); border-radius: 16px; padding: 24px 22px; }
.h2-inc li::before { content: counter(inc, decimal-leading-zero); display: block; font-family: var(--hv-font-en); font-size: .8rem; font-weight: 600; color: var(--hv-ink-3); margin-block-end: 18px; }
.h2-inc b { display: block; font-size: 1.08rem; font-weight: 600; margin-block-end: 6px; }
.h2-inc span { color: var(--hv-ink-2); font-size: .95rem; }

.h2-fit { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 32px; list-style: none; margin: 0; padding: 0; border-block-start: 1.5px solid var(--hv-ink); }
@media (max-width: 720px) { .h2-fit { grid-template-columns: 1fr; } }
.h2-fit li { padding-block: 20px; border-block-end: 1px solid var(--hv-line); font-size: 1.08rem; font-weight: 500; display: grid; grid-template-columns: 26px 1fr; gap: 10px; }
.h2-fit li::before { content: "؟"; font-weight: 700; color: var(--hv-ink-3); }
body[data-lang="en"] .h2-fit li::before { content: "?"; }

.h2-two { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 760px) { .h2-two { grid-template-columns: 1fr; } }
.h2-box { border: 1px solid var(--hv-line); background: var(--hv-surface); border-radius: 20px; padding: clamp(22px, 3vw, 34px); }
.h2-box.h2-box-ink { border: 1.5px solid var(--hv-ink); background: transparent; }
.h2-box h2, .h2-box h3 { font-size: clamp(1.2rem, 1.05rem + .6vw, 1.5rem); font-weight: 700; margin-block-end: 14px; }
.h2-box p { color: var(--hv-ink-2); }
.h2-box ul { list-style: none; display: grid; gap: 12px; margin: 0; padding: 0; }
.h2-box li { display: flex; gap: 12px; align-items: flex-start; }
.h2-box li svg { flex: none; margin-block-start: 6px; }

/* How we work: the flow, with "your part" and "what we do" side by side */
.h2-flow { list-style: none; margin: 0; padding: 0; border-block-start: 1.5px solid var(--hv-ink); }
.h2-flow > li { display: grid; grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.3fr); gap: 24px; padding-block: 26px; border-block-end: 1px solid var(--hv-line); align-items: start; }
@media (max-width: 900px) { .h2-flow > li { grid-template-columns: 48px 1fr; gap: 10px 16px; } .h2-flow > li > .h2-col { grid-column: 2; } }
.h2-flow .h2-num { border-color: var(--hv-ink); color: var(--hv-ink); margin: 0; }
.h2-flow h3 { font-size: 1.12rem; font-weight: 600; }
.h2-col-l { display: block; font-size: .76rem; font-weight: 600; color: var(--hv-ink-3); margin-block-end: 4px; }
.h2-col p { color: var(--hv-ink-2); font-size: .96rem; }
.h2-col.h2-we p { color: var(--hv-ink); }

.h2-callout { background: var(--hv-ink); color: var(--hv-paper); border-radius: 24px; padding: clamp(28px, 5vw, 56px); display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(20px, 4vw, 56px); align-items: start; }
@media (max-width: 860px) { .h2-callout { grid-template-columns: 1fr; } }
.h2-callout .h2-kicker { color: color-mix(in srgb, var(--hv-paper) 62%, transparent); }
.h2-callout .h2-h2 { color: var(--hv-paper); }
.h2-callout p { color: color-mix(in srgb, var(--hv-paper) 80%, transparent); font-size: var(--hv-t-lead); }

.h2-box .h2-points, .h2-points { display: flex; flex-wrap: wrap; gap: 8px; margin-block-start: 16px; list-style: none; padding: 0; }
.h2-points li { border: 1px solid var(--hv-line-2); border-radius: 999px; padding: 4px 12px; font-size: .86rem; font-weight: 500; }

/* ── Decision report document (/sample-report, /v2-report) — moved from
   sample-report.html so both pages share it (6.4c, 2026-09-30). ── */
/* Sample report (roadmap 5.6, 2026-09-30): a document, not a page of cards. */
.sr-doc { max-width: 880px; margin-inline: auto; background: var(--hv-surface); border: 1px solid var(--hv-line); border-radius: 24px; padding: clamp(22px, 4vw, 52px); }
.sr-banner { display: flex; gap: 10px; align-items: flex-start; border: 1px dashed var(--hv-line-2); border-radius: 12px; padding: 12px 14px; font-size: .88rem; color: var(--hv-ink-2); margin-block-end: 28px; }
.sr-sec { padding-block: 22px; border-block-start: 1px solid var(--hv-line); }
.sr-sec:first-of-type { border-block-start: 0; padding-block-start: 0; }
.sr-h { font-size: .8rem; font-weight: 700; color: var(--hv-ink-3); margin-block-end: 10px; letter-spacing: .02em; }
.sr-dec { font-size: clamp(1.1rem, 1rem + .5vw, 1.35rem); font-weight: 600; line-height: 1.6; }
.sr-concl { background: var(--hv-paper); border-radius: 14px; padding: 16px 18px; }
.sr-list { list-style: none; display: grid; gap: 12px; margin: 0; padding: 0; }
.sr-list li { display: grid; gap: 4px; padding-inline-start: 20px; position: relative; color: var(--hv-ink-2); }
.sr-list li::before { content: ""; position: absolute; inset-inline-start: 0; top: .7em; width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--hv-ink-3); }
.sr-list.known li::before { background: var(--hv-ink); border-color: var(--hv-ink); }
.sr-tag { justify-self: start; font-size: .72rem; font-weight: 600; border: 1px solid var(--hv-line-2); border-radius: 999px; padding: 1px 9px; color: var(--hv-ink-3); }
.sr-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 720px) { .sr-opts { grid-template-columns: 1fr; } }
.sr-opt { border: 1px solid var(--hv-line); border-radius: 16px; padding: 18px; }
.sr-opt.key { border: 1.5px solid var(--hv-ink); }
.sr-opt h3 { font-size: 1.02rem; font-weight: 600; margin-block-end: 6px; }
.sr-opt > p { color: var(--hv-ink-2); font-size: .94rem; }
.sr-small { font-size: .88rem; color: var(--hv-ink-3); }
.sr-opt dl { margin: 12px 0 0; display: grid; gap: 8px; font-size: .88rem; }
.sr-opt dt { font-weight: 600; font-size: .76rem; color: var(--hv-ink-3); }
.sr-opt dd { margin: 0; color: var(--hv-ink-2); }
.sr-rec { font-weight: 600; }
@media print { .sr-noprint { display: none !important; } .sr-doc { border: 0; padding: 0; } body { background: #fff; } }
/* 6.23 — the client's diagnostic report (hv-report.js clientDoc). */
.rp-cover { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; flex-wrap: wrap; padding-block-end: 22px; border-block-end: 2px solid var(--hv-signal); margin-block-end: 22px; }
.rp-brand { display: flex; align-items: center; gap: 12px; }
.rp-brand b { display: block; font-family: var(--hv-font-en); font-size: 1.35rem; letter-spacing: -.01em; }
.rp-brand small { display: block; color: var(--hv-signal); font-weight: 600; font-size: .9rem; }
.rp-logo { display: inline-flex; width: 46px; color: var(--hv-signal); }
.rp-logo svg { width: 100%; height: auto; }
.rp-logo.sm { width: 26px; }
.rp-meta { display: flex; gap: 22px; flex-wrap: wrap; margin: 0; font-size: .86rem; }
.rp-meta dt { color: var(--hv-ink-3); font-size: .74rem; }
.rp-meta dd { margin: 0; font-weight: 600; }
.rp-q { margin-block-end: 22px; }
.rp-q span { font-size: .78rem; font-weight: 700; color: var(--hv-ink-3); }
.rp-q p { margin: 4px 0 0; font-size: 1.05rem; font-weight: 500; line-height: 1.7; color: var(--hv-ink-2); }
.rp-h { display: flex; align-items: center; gap: 10px; font-size: 1.12rem; font-weight: 700; margin: 0 0 14px; }
.rp-n { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--hv-signal); color: #fff; font-size: .85rem; font-family: var(--hv-font-en); flex: none; }
.rp-diag { background: var(--hv-signal-soft); border: 1px solid var(--hv-signal-line); border-radius: 18px; padding: clamp(18px, 3vw, 28px); margin-block-end: 8px; }
.rp-head { font-size: clamp(1.25rem, 1.1rem + .8vw, 1.6rem); font-weight: 700; line-height: 1.55; margin: 0 0 10px; color: var(--hv-signal-ink); }
.rp-read { font-size: 1.02rem; line-height: 1.9; margin: 0 0 14px; }
.rp-conf { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: .9rem; color: var(--hv-ink-2); padding-block-start: 12px; border-block-start: 1px solid var(--hv-signal-line); }
.rp-meter { display: inline-flex; gap: 4px; }
.rp-meter i { width: 22px; height: 8px; border-radius: 4px; background: var(--hv-line-2); }
.rp-meter i.on { background: var(--hv-signal); }
.rp-sec { padding-block: 24px; border-block-start: 1px solid var(--hv-line); }
.rp-diag + .rp-sec { border-block-start: 0; }
.rp-acts { display: grid; gap: 12px; }
.rp-act { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; border: 1px solid var(--hv-line); border-radius: 16px; padding: 16px 18px; break-inside: avoid; }
.rp-act.first { border: 1.5px solid var(--hv-signal); }
.rp-act-n { width: 30px; height: 30px; border-radius: 9px; background: var(--hv-paper); display: grid; place-items: center; font-weight: 700; font-family: var(--hv-font-en); }
.rp-act.first .rp-act-n { background: var(--hv-signal); color: #fff; }
.rp-act h3 { font-size: 1.02rem; font-weight: 600; line-height: 1.7; margin: 2px 0 8px; }
.rp-act dl { display: grid; gap: 6px; margin: 0; font-size: .9rem; }
.rp-act dt { font-size: .75rem; font-weight: 700; color: var(--hv-ink-3); }
.rp-act dd { margin: 0 0 4px; color: var(--hv-ink-2); line-height: 1.7; }
.rp-p { line-height: 1.85; color: var(--hv-ink-2); margin: 0 0 12px; }
.rp-sub { font-size: .85rem; font-weight: 700; color: var(--hv-ink-3); margin: 14px 0 8px; }
.rp-qa { padding-block: 10px; border-block-end: 1px solid var(--hv-line); break-inside: avoid; }
.rp-qq { font-weight: 600; margin: 0 0 4px; }
.rp-aa { margin: 0; color: var(--hv-ink-2); line-height: 1.8; white-space: pre-line; }
.rp-foot { display: flex; gap: 10px; align-items: center; padding-block-start: 18px; border-block-start: 2px solid var(--hv-signal); font-size: .8rem; color: var(--hv-ink-3); }
.rp-foot .rp-logo { color: var(--hv-signal); }
.rp-one { background: var(--hv-surface-2); border: 1.5px solid var(--hv-signal); border-radius: 20px; padding: clamp(18px, 3.4vw, 32px); display: grid; gap: 20px; break-inside: avoid; }
.rp-kicker { display: block; font-size: .8rem; font-weight: 700; color: var(--hv-signal); margin-block-end: 6px; }
.rp-one .rp-head { margin: 0; color: var(--hv-ink); font-size: clamp(1.35rem, 1.15rem + 1vw, 1.8rem); line-height: 1.5; }
.rp-chain { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; counter-reset: c; }
.rp-chain li { position: relative; flex: 1 1 130px; min-width: 0; background: var(--hv-surface); border: 1px solid var(--hv-line-2); border-radius: 12px; padding: 12px 12px 12px 14px; font-size: .92rem; font-weight: 500; display: flex; flex-direction: column; gap: 6px; justify-content: center; }
.rp-chain li:not(:last-child)::after { content: "←"; position: absolute; inset-inline-end: -14px; top: 50%; transform: translateY(-50%); color: var(--hv-ink-3); font-size: 1rem; z-index: 1; background: var(--hv-surface-2); line-height: 1; }
body[data-lang="en"] .rp-chain li:not(:last-child)::after { content: "→"; }
.rp-chain li.stuck { background: var(--hv-clay-soft); border: 2px solid var(--hv-clay); color: var(--hv-ink); }
.rp-chain li b { font-size: .74rem; color: var(--hv-clay); }
.rp-why p, .rp-fixed p { margin: 0; line-height: 1.85; font-size: 1rem; }
.rp-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rp-steps li { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; line-height: 1.7; }
.rp-sn { flex: none; width: 26px; height: 26px; border-radius: 8px; background: var(--hv-signal); color: #fff; display: grid; place-items: center; font-size: .82rem; font-family: var(--hv-font-en); margin-top: 2px; }
.rp-fixed { background: var(--hv-verified-soft); border-radius: 12px; padding: 12px 14px; }
.rp-fixed .rp-kicker { color: var(--hv-verified); }
.rp-one .rp-conf { margin: 0; padding: 0; border: 0; font-size: .86rem; color: var(--hv-ink-3); }
.rp-basis { margin: 10px 0 0; font-size: .8rem; font-weight: 600; display: inline-block; border-radius: 999px; padding: 2px 10px; background: var(--hv-paper); color: var(--hv-ink-3); }
.rp-basis.rp-strong, .rp-basis.rp-moderate { background: var(--hv-verified-soft); color: var(--hv-verified); }
.rp-one + .rp-sec { border-block-start: 0; margin-block-start: 8px; }
@media print { .rp-one, .rp-chain li.stuck, .rp-sn, .rp-fixed { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
@media print { .rp-diag, .rp-n, .rp-meter i, .rp-act.first .rp-act-n { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
/* 6.29 — the cover page and the printed document. */
.rp-coverpage { background: #0B3E42; color: #E6EEEE; border-radius: 18px; padding: clamp(22px, 4vw, 40px); display: flex; flex-direction: column; gap: 26px; margin-block-end: 24px; }
.rp-cv-top { display: flex; align-items: center; gap: 12px; }
.rp-cv-top .rp-logo { width: 44px; color: #B9CFCF; }
.rp-cv-top b { font-family: var(--hv-font-en); font-size: 1.3rem; color: #fff; }
.rp-cv-kicker { display: inline-block; font-size: .85rem; font-weight: 700; color: #0B3E42; background: #B9CFCF; border-radius: 999px; padding: 3px 12px; }
.rp-cv-company { margin: 12px 0 0; font-size: clamp(1.7rem, 1.3rem + 2vw, 2.6rem); line-height: 1.3; color: #fff; }
.rp-cv-q { margin-top: 18px; border-inline-start: 3px solid #7BC4C4; padding-inline-start: 14px; }
.rp-cv-q span { font-size: .8rem; color: #8FB3B3; font-weight: 600; }
.rp-cv-q p { margin: 4px 0 0; font-size: 1.08rem; line-height: 1.8; color: #E6EEEE; }
.rp-cv-meta { display: flex; flex-wrap: wrap; gap: 28px; margin: 0; font-size: .88rem; }
.rp-cv-meta dt { color: #8FB3B3; font-size: .75rem; } .rp-cv-meta dd { margin: 2px 0 0; font-weight: 600; color: #fff; }
.rp-cv-conf { margin: 0; font-size: .78rem; color: #8FB3B3; }
.rp-one-title { margin: 0; font-size: 1.3rem; }
.rp-runfoot { display: none; }
@media print {
  @page { size: A4; margin: 0; }
  html, body { background: #fff !important; }
  .sr-doc { max-width: none; border: 0; border-radius: 0; padding: 18mm 16mm 22mm; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
  .rp-coverpage { -webkit-print-color-adjust: exact; print-color-adjust: exact; box-sizing: border-box; border-radius: 6mm; margin: 0; padding: 20mm 16mm; height: 236mm; justify-content: space-between; break-after: page; overflow: hidden; }
  .rp-cv-company { font-size: 30pt; } .rp-cv-q p { font-size: 14pt; }
  .rp-runfoot { display: flex; justify-content: space-between; position: fixed; bottom: 8mm; left: 16mm; right: 16mm; font-size: 8pt; color: #6F6E6A; border-top: 1px solid #CBC8C0; padding-top: 2mm; }
  .rp-one { break-inside: auto; }
  .rp-chain { flex-wrap: nowrap; }
  .rp-chain li { flex: 1 1 0; font-size: 9pt; padding: 8px; }
  .rp-steps-sec, .rp-appendix { break-before: page; }
  .rp-foot { break-inside: avoid; }
  .sr-banner { display: none; }
}

