/* Founder review: retain the warm editorial identity, answer first/detail on demand. */
html { scroll-behavior: auto; --header-offset: 5rem; }
body .site-header { position: sticky; top: 0; background: var(--colour-stone-soft); border-bottom: 2px solid var(--colour-green); }
[id] { scroll-margin-top: calc(var(--header-offset) + 1rem); }
body:has(.report-nav) #results-content section[id] { scroll-margin-top: calc(var(--header-offset) + 4.5rem); }
body .hero__grid { grid-template-rows: auto 1fr; column-gap: clamp(2rem,4vw,4rem); row-gap: 0; }
body .hero__content { display: contents; }
.hero__intro { grid-column: 1; grid-row: 1; }
.hero__details { grid-column: 1; grid-row: 2; }
body .hero__intro h1 { max-width: 13ch; font-size: clamp(3rem,4.4vw,4.5rem); line-height: 1.08; margin-bottom: 1.5rem; }
.hero__details .lead { max-width: 43ch; font-size: 1.2rem; }
body .hero-photo { grid-column: 2; grid-row: 1 / 3; align-self: center; }
/* The stepped labels have intrinsic space; their stagger cannot escape the diagram. */
body .step-diagram--order { height: auto; min-height: 7rem; align-items: flex-start; }
body .step-diagram--order span { line-height: 1.15; }
body .step-diagram--order b { margin-top: .35rem; }
body .wizard-progress { scroll-margin-top: calc(var(--header-offset) + 1rem); }
body .wizard-step, body .inventory-group, body .allocation-row { overflow-anchor: none; }
body .wizard-step h2 { margin-bottom: 1rem; }
body .inventory-group summary:focus-visible { outline-offset: -3px; }
/* Compact report summary and persistent, single-line contents. */
body .plan-heading { padding-block: 2rem; }
body .plan-heading h1 { max-width: 20ch; font-size: clamp(2.4rem,4vw,3.5rem); }
body .plan-heading .lead { max-width: 55ch; margin-bottom: 0; }
body .plan-glance { background: var(--colour-green-dark); }
body .plan-glance__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: auto auto; gap: .3rem 1.25rem; padding-block: 1.25rem; }
body .plan-glance__grid > div, body .plan-glance__grid > div:first-child { display: grid; grid-template-rows: subgrid; grid-row: span 2; padding: 0; border: 0; }
body .plan-glance__grid span { display: block; align-self: start; margin: 0; color: var(--colour-stone-soft); font-size: .875rem; font-weight: 600; }
body .plan-glance__grid strong { display: block; align-self: start; color: var(--colour-surface); font: 600 clamp(1.5rem,3vw,2rem)/1.2 var(--font-display); margin: 0; }
.report-nav { position: sticky; top: var(--header-offset); z-index: 15; background: var(--colour-surface); border-bottom: var(--border); }
.report-nav__links { display: flex; gap: 1.5rem; overflow-x: auto; scrollbar-width: thin; padding-block: .6rem; }
.report-nav a { white-space: nowrap; min-height: 2.75rem; display: flex; align-items: center; font-weight: 600; font-size: .95rem; text-decoration-thickness: 1px; }
.report-nav a[aria-current="location"] { color: var(--colour-green-dark); background: var(--colour-stone-soft); box-shadow: inset 0 -3px var(--colour-clay); text-decoration: none; }
@media (hover: hover) and (pointer: fine) {
  #questionnaire button:enabled:not([aria-disabled="true"]),
  #questionnaire input:is([type="radio"],[type="checkbox"]):enabled,
  #questionnaire label:has(input:is([type="radio"],[type="checkbox"]):enabled),
  #questionnaire summary { cursor: pointer; }
  #questionnaire button:disabled, #questionnaire button[aria-disabled="true"],
  #questionnaire input:is([type="radio"],[type="checkbox"]):disabled,
  #questionnaire label:has(input:disabled) { cursor: not-allowed; }
}
body .budget-section, body .plan-section, body .tradeoffs-section, body .friction-section, body .covered-section, body .next-section { padding-block: 2.5rem; }
body .section-heading { margin-bottom: 1.5rem; }
body .budget-section h2, body .plan-section h2 { font-size: clamp(2rem,3vw,2.7rem); }
body .budget-lead { margin-bottom: 1.25rem; }
body .budget-lead strong { font-size: 3rem; }
body .budget-breakdown { margin-bottom: 1.25rem; }
body .budget-explanation { font-size: 1rem; padding-top: 1rem; }
.timing-overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; margin-bottom: 2.5rem; }
.timing-stage { text-decoration: none; border-top: 3px solid var(--colour-green); padding-top: .8rem; color: var(--colour-charcoal); }
.timing-stage--buy_soon { border-color: var(--colour-clay); }
.timing-stage--can_wait { border-color: var(--colour-muted); border-top-style: dashed; }
.timing-stage > span, .timing-stage strong, .timing-stage small { display: block; }
.timing-stage strong { font: 600 2rem/1.2 var(--font-display); margin-block: .25rem; }
.timing-stage small { color: var(--colour-muted); }
.timing-stage__track { background: var(--colour-stone-soft); height: .5rem; margin-top: 1rem; }
.timing-stage__track i { display: block; height: 100%; background: var(--colour-green); }
.timing-stage--buy_soon .timing-stage__track i { background: var(--colour-clay); }
.timing-stage--can_wait .timing-stage__track i { background: var(--colour-muted); }
body .timing-group__heading { padding-block: 1.25rem; }
body .timing-group__heading h3 { font-size: 1.75rem; }
body .allocation-row { padding-block: 1rem; margin-inline: 0; padding-inline: 0; }
body .allocation-row__heading { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem 1rem; }
body .allocation-row h3 { font: 600 1.2rem/1.25 var(--font-ui); }
body .allocation-row__amount { font-size: 1.25rem; color: var(--colour-green); white-space: nowrap; }
body .allocation-row__meta { font-size: .9rem; margin-block: .5rem; }
body .allocation-row__more { margin-top: .5rem; }
body .allocation-row__more summary, .report-disclosure > summary { min-height: 2.75rem; padding-block: .5rem; }
body .allocation-row__more p { font-size: .95rem; line-height: 1.5; }
body .allocation-row__category-action { margin: .5rem 0 0; }
body .allocation-row__category-action .button { min-height: 2.75rem; }
.friction-summary { display: flex; font-weight: 600; font-size: 1.2rem; color: var(--colour-green); }
.report-disclosure { border-top: var(--border); max-width: 58rem; }
.report-disclosure > summary { color: var(--colour-green); cursor: pointer; font-weight: 600; }
body .friction-row__heading { flex-direction: row; align-items: baseline; }
body .friction-row h3 { font: 600 1rem/1.3 var(--font-ui); }
body .friction-row p { font-size: .95rem; }
/* Downstream media contract for future licensed product images; no demo placeholder. */
.recommendation-card { grid-template-areas: 'summary detail'; }
.recommendation-card__summary { grid-area: summary; }
.recommendation-card__detail { grid-area: detail; }
.recommendation-card:has(.recommendation-card__media) { grid-template-columns: minmax(7rem,.5fr) minmax(10rem,.8fr) minmax(0,1.5fr); grid-template-areas: 'media summary detail'; }
.recommendation-card__media { grid-area: media; margin: 0; background: var(--colour-surface); }
.recommendation-card__media img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; }
@media (max-width:52rem) {
  body .recommendation-card { grid-template-areas: 'summary' 'detail'; }
  body .hero { padding-block: 1.5rem 2rem; }
  body .hero__grid { grid-template-columns: 1fr; gap: 0; }
  .hero__intro { grid-row: 1; }
  body .hero__intro h1 { max-width: 21ch; font-size: clamp(2rem,6.5vw,3.3rem); margin-bottom: 1rem; }
  body .hero-photo { grid-column: 1; grid-row: 2; width: 100%; margin: 0 0 1.25rem; }
  body .hero-photo img { height: clamp(8.5rem,33vw,13rem); object-position: 50% 45%; }
  body .hero-photo::before { inset: -.35rem -.35rem .5rem .65rem; }
  body .hero-photo figcaption { margin: -.8rem 0 0 .5rem; padding: .45rem .75rem; max-width: calc(100% - 1rem); font-size: .8rem; }
  .hero-photo figcaption strong { font-size: 1.05rem; }
  .hero__details { grid-column: 1; grid-row: 3; }
  .hero__details .lead { max-width: 55ch; font-size: 1.05rem; margin-bottom: 1rem; }
  .hero__details .button-row { margin-block: 0; gap: .5rem 1rem; }
  .hero__details .assurance { margin-top: .75rem; margin-bottom: 0; font-size: .85rem; }
  body .recommendation-card:has(.recommendation-card__media) { grid-template-columns: minmax(6rem,.5fr) minmax(0,1fr); grid-template-areas: 'media summary' 'detail detail'; }
}
@media (max-width:34rem) {
  body .hero__intro .eyebrow { font-size: .75rem; margin-bottom: .65rem; }
  body .hero__intro h1 { font-size: clamp(1.9rem,8.2vw,2.4rem); max-width: 18ch; }
  body .hero-photo::before { right: 0; }
  body .hero__details .button-row { display: grid; grid-template-columns: 1fr; }
  .hero__details .text-link { min-height: 2.75rem; display: flex; align-items: center; }
  body .plan-heading__grid { gap: 1.25rem; }
  body .plan-heading__actions { flex-direction: row; flex-wrap: wrap; gap: .75rem; align-items: center; }
  body .plan-heading__actions .button { width: 100%; }
  body .plan-heading .lead { font-size: 1.05rem; }
  body .plan-glance__grid { column-gap: .5rem; }
  body .plan-glance__grid span { font-size: .8rem; }
  body .plan-glance__grid strong { font-size: 1.5rem; }
  .report-nav__links { gap: 1.25rem; }
  .timing-overview { gap: .75rem; }
  .timing-stage strong { font-size: 1.6rem; }
  .timing-stage > span { font-size: .9rem; }
  body .timing-group__heading { display: block; }
  body .timing-group__total { margin-top: .5rem; }
  body .allocation-row__heading { gap: .5rem; }
  body .allocation-row h3 { font-size: 1.1rem; }
  body .friction-row__heading strong { white-space: nowrap; }
}
@media print {
  .report-nav { position: static; }
  body .report-disclosure > *, body .allocation-row__more > * { display: block; }
}
