.report-detail-page { background: var(--paper); }
.report-detail-page .site-header { color: var(--ink); }
.report-detail-page main { padding-top: 78px; }
.report-breadcrumb { padding: 30px 0 24px; border-bottom: 1px solid var(--line); }
.report-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; color: var(--muted); font-size: .78rem; }
.report-breadcrumb li:not(:last-child)::after { content: ">"; margin-left: 8px; color: #aaa49c; }
.report-breadcrumb a:hover { color: var(--orange); }

.report-hero { padding-bottom: clamp(64px, 7vw, 104px); }
.report-hero-grid { display: grid; grid-template-columns: minmax(0, 1.24fr) minmax(340px, .76fr); gap: clamp(42px, 5vw, 72px); align-items: stretch; padding-top: clamp(54px, 6vw, 84px); }
.report-hero-inner { align-self: center; max-width: 790px; }
.report-hero h1 { max-width: 790px; margin: 0 0 26px; font-size: clamp(2.55rem, 3.8vw, 3.8rem); line-height: 1.18; letter-spacing: -.045em; }
.report-summary { max-width: 760px; margin: 0; white-space: pre-line; color: var(--muted); font-family: var(--serif); font-size: clamp(1.12rem, 1.55vw, 1.4rem); line-height: 1.9; }
.report-meta-primary { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line); }
.report-meta-primary dl, #report-dates dl { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 0; }
.report-meta-primary dl div, #report-dates dl div { display: flex; gap: 10px; }
.report-meta-primary dt, #report-dates dt { color: var(--muted); font-size: .76rem; }
.report-meta-primary dd, #report-dates dd { margin: 0; font-size: .78rem; }
.report-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 22px; }
.report-tags span { padding: 5px 10px; border: 1px solid var(--line); color: var(--muted); font-size: .74rem; }
.report-draft-note:empty { display: none; }
.report-hero-figure { min-height: 560px; margin: 0; overflow: hidden; background: #e7e1d8; }
.report-hero-figure img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: right center; transform: scale(1.36); transform-origin: right center; }

.report-body { width: min(calc(100% - 48px), 860px); padding-block: clamp(74px, 8vw, 118px); }
.report-section.report-key-answer { margin-bottom: clamp(64px, 7vw, 88px); padding: clamp(28px, 3.4vw, 40px); background: var(--ivory); border-left: 3px solid var(--orange); }
.report-key-answer .section-kicker { margin-bottom: 10px; }
.report-section.report-key-answer h2 { max-width: 700px; margin: 0 0 20px; font-size: clamp(1.75rem, 3vw, 2.55rem); line-height: 1.35; }
.report-key-answer-copy p { margin: 0 0 10px; color: var(--ink); line-height: 1.78; }
.report-key-answer-copy p:last-child { margin-bottom: 0; }
.report-key-answer-copy strong { font-family: var(--serif); font-size: 1.08em; }

.report-introduction { padding-bottom: clamp(72px, 9vw, 110px); border-bottom: 1px solid var(--ink); }
.report-introduction ul { margin: 26px 0; padding: 26px 30px 26px 48px; background: #f3eee7; }
.report-introduction li { margin: 8px 0; line-height: 1.75; }
.report-section { padding: clamp(68px, 8vw, 104px) 0; border-bottom: 1px solid var(--line); }
.report-section h2, .report-cautions h2, .report-sources h2, .related-complex h2, #related-reports h2 { margin: 0 0 34px; font-size: clamp(1.9rem, 3.3vw, 2.8rem); line-height: 1.38; letter-spacing: -.035em; }
#report-sections > .report-section:first-child { padding-top: clamp(78px, 8.5vw, 112px); }
#report-sections > .report-section:first-child::before { display: block; width: 38px; height: 2px; margin-bottom: 24px; background: var(--orange); content: ""; }
#report-sections > .report-section:first-child h2 { font-size: clamp(2rem, 3.45vw, 2.95rem); }
.report-prose { display: grid; gap: 17px; }
.report-prose + * { margin-top: 36px; }
.report-prose p { margin: 0; color: #443e37; font-size: 1.02rem; line-height: 1.95; }
.report-prose strong { color: var(--ink); }

.report-figure { margin: 46px 0; }
.report-figure img { display: block; width: 100%; height: auto; max-height: 760px; object-fit: contain; background: #f7f4ef; }
.report-figure figcaption { margin-top: 12px; color: var(--muted); font-size: .78rem; line-height: 1.6; text-align: center; }
.report-definitions { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin: 34px 0; background: var(--line); border: 1px solid var(--line); }
.report-definitions div { padding: 25px 26px; background: var(--paper); }
.report-definitions dt { margin-bottom: 8px; font-weight: 700; }
.report-definitions dd { margin: 0; color: var(--muted); line-height: 1.7; }
.report-formula { display: grid; gap: 8px; margin: 38px 0; padding: 32px; background: var(--green); color: #fff; text-align: center; }
.report-formula strong { margin-bottom: 7px; font-family: var(--serif); font-size: 1.4rem; }
.report-formula span { line-height: 1.7; }

.report-calculation { margin: 38px 0; padding: 32px 36px; background: #f3eee7; }
.report-calculation h3 { margin: 0 0 22px; font-size: 1.22rem; }
.report-calculation ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.report-calculation li { position: relative; padding: 13px 14px 13px 46px; border-bottom: 1px solid rgba(96, 83, 67, .15); line-height: 1.7; }
.report-calculation li::before { counter-increment: step; content: counter(step); position: absolute; top: 12px; left: 9px; width: 24px; height: 24px; border-radius: 50%; background: var(--orange); color: #fff; font-size: .72rem; line-height: 24px; text-align: center; }
.report-calculation li:last-child { border-bottom: 0; font-weight: 700; }
.report-calculation p { margin: 20px 0 0; padding-top: 20px; border-top: 1px solid rgba(96, 83, 67, .25); color: #a43b2f; font-family: var(--serif); font-size: 1.4rem; font-weight: 700; }
.report-note { margin: 28px 0; padding-left: 18px; border-left: 2px solid var(--orange); color: var(--muted); font-size: .9rem; line-height: 1.8; }

.assessment-calculator { margin: 48px 0; padding: clamp(28px, 5vw, 48px); border: 1px solid var(--line); background: #fff; box-shadow: 0 18px 48px rgba(49, 39, 29, .07); }
.assessment-calculator__heading { padding-bottom: 30px; border-bottom: 1px solid var(--line); }
.assessment-calculator__heading .section-kicker { margin-bottom: 8px; }
.assessment-calculator__heading h3 { margin: 0 0 14px; font-family: var(--serif); font-size: clamp(1.75rem, 4vw, 2.5rem); letter-spacing: -.035em; }
.assessment-calculator__heading p:last-child { margin: 0; color: var(--muted); line-height: 1.75; }
.assessment-calculator__heading strong { color: var(--ink); }
.assessment-calculator__fields { display: grid; gap: 26px; padding: 34px 0; }
.assessment-calculator__field { min-width: 0; margin: 0; padding: 0; border: 0; }
.assessment-calculator__field > label, .assessment-calculator__field legend { display: block; margin-bottom: 10px; color: var(--ink); font-size: .9rem; font-weight: 700; }
.assessment-calculator__money-input { display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 56px; border: 1px solid #9d968d; background: var(--paper); }
.assessment-calculator__money-input:focus-within { border-color: var(--orange); box-shadow: 0 0 0 1px var(--orange); }
.assessment-calculator__money-input input { width: 100%; min-width: 0; padding: 14px 6px 14px 16px; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 1.05rem; text-align: right; }
.assessment-calculator__money-input span { padding: 0 16px 0 8px; color: var(--muted); }
.assessment-calculator__amount-help, .assessment-calculator__error { margin: 8px 0 0; font-size: .8rem; line-height: 1.6; }
.assessment-calculator__amount-help { color: var(--muted); }
.assessment-calculator__error { color: #a43b2f; }
.assessment-calculator__error:empty { display: none; }
.assessment-calculator__regions { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.assessment-calculator__regions label { position: relative; cursor: pointer; }
.assessment-calculator__regions input { position: absolute; opacity: 0; }
.assessment-calculator__regions span { display: grid; min-height: 54px; place-items: center; padding: 10px; border: 1px solid #9d968d; background: var(--paper); font-weight: 600; }
.assessment-calculator__regions input:checked + span { border-color: var(--green); background: var(--green); color: #fff; }
.assessment-calculator__regions input:focus-visible + span { outline: 3px solid var(--orange); outline-offset: 3px; }
.assessment-calculator select { width: 100%; min-height: 56px; padding: 0 42px 0 16px; border: 1px solid #9d968d; border-radius: 0; background: var(--paper); color: var(--ink); font: inherit; }
.assessment-calculator select:disabled { color: var(--muted); cursor: not-allowed; }
.assessment-calculator__results { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.assessment-calculator__results[hidden] { display: none; }
.assessment-calculator__price, .assessment-calculator__result { display: flex; min-height: 190px; flex-direction: column; justify-content: center; padding: 28px; }
.assessment-calculator__price { border-right: 1px solid var(--line); }
.assessment-calculator__price p, .assessment-calculator__result p { margin: 0 0 14px; color: var(--muted); font-size: .82rem; line-height: 1.6; }
.assessment-calculator__price strong, .assessment-calculator__result strong { font-family: var(--serif); font-size: clamp(1.45rem, 3.2vw, 2.05rem); line-height: 1.35; }
.assessment-calculator__result { background: var(--ivory); }
.assessment-calculator__result span { margin-top: 6px; color: var(--orange); font-weight: 700; }
.assessment-calculator__results[data-tone="refund"] .assessment-calculator__result span { color: var(--blue); }
.assessment-calculator__results[data-tone="neutral"] .assessment-calculator__result span { color: var(--ink); }
.assessment-calculator__notice { padding-top: 26px; }
.assessment-calculator__notice p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.75; }
.assessment-calculator__notice p + p { margin-top: 10px; }

.report-table-figure { margin: 42px 0; }
.report-table-figure > figcaption { margin-bottom: 14px; font-family: var(--serif); font-size: 1.12rem; font-weight: 700; }
.report-table-scroll-hint { display: none; }
.report-table-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); outline-offset: 4px; }
.report-table-scroll table { width: 100%; min-width: 670px; border-collapse: collapse; background: #fff; }
.report-table-scroll th, .report-table-scroll td { padding: 17px 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: .88rem; line-height: 1.55; text-align: center; vertical-align: middle; }
.report-table-scroll thead th { background: #efe8de; color: var(--ink); font-weight: 700; }
.report-table-scroll tbody th { background: #faf7f2; white-space: nowrap; }
.report-table-scroll tr:last-child > * { border-bottom: 0; }
.report-table-scroll tr > *:last-child { border-right: 0; }
.report-table-note { margin: 12px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.7; }
.report-subheading { margin: 50px 0 22px; font-size: clamp(1.35rem, 2.4vw, 1.9rem); line-height: 1.45; }
.report-checklists { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 36px 0; }
.report-checklists section { padding: 26px; border: 1px solid var(--line); }
.report-checklists h3 { margin: 0 0 16px; color: var(--orange); font-size: 1rem; }
.report-checklists ul { margin: 0; padding-left: 20px; }
.report-checklists li { margin: 8px 0; color: var(--muted); line-height: 1.7; }
.report-callout { margin: 42px 0 0; padding: 27px 30px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); font-family: var(--serif); font-size: clamp(1.15rem, 2vw, 1.45rem); font-weight: 700; line-height: 1.7; text-align: center; }
.report-brand-conclusion { margin-top: 48px; padding: 44px 42px; background: var(--green); color: #fff; text-align: center; }
.report-brand-conclusion p { margin: 0; font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 700; line-height: 1.35; }
.report-brand-conclusion span { display: block; margin-top: 18px; color: rgba(255,255,255,.72); font-size: .84rem; }

.report-cautions { margin-top: clamp(70px, 9vw, 110px); padding: 38px 40px; background: #f3eee7; }
.report-cautions h2 { font-size: clamp(1.7rem, 2.8vw, 2.3rem); }
.report-cautions ul { margin: 0; padding-left: 20px; color: var(--muted); }
.report-cautions li { line-height: 1.9; }
.report-article-footer { margin-top: 82px; }
.report-sources { padding-top: 50px; border-top: 1px solid var(--ink); }
.report-section-heading { display: grid; grid-template-columns: 1fr auto; gap: 35px; align-items: start; }
.report-source-notice { margin: 24px 0 38px; }
#source-list ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
#source-list li { display: grid; grid-template-columns: 30px 1fr; gap: 12px; padding: 20px 0; border-bottom: 1px solid var(--line); }
#source-list .source-number { color: var(--orange); font-weight: 700; }
#source-list li div { display: grid; gap: 5px; }
#source-list li strong { font-size: .87rem; }
#source-list li span:not(.source-number), #source-list li a { color: var(--muted); font-size: .9rem; line-height: 1.6; }
#source-list li p { margin: 3px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.6; }
.related-complex, #related-reports { margin-top: 64px; padding: 40px; background: var(--green); color: #fff; }
.related-complex p { color: rgba(255,255,255,.72); }
.related-complex a { display: inline-block; margin-top: 18px; padding-bottom: 4px; border-bottom: 1px solid #dc956d; color: #dc956d; font-weight: 700; }
.report-error { padding-block: 160px; }

@media (max-width: 720px) {
  .report-detail-page main { padding-top: 68px; }
  .report-breadcrumb { padding: 20px 0; }
  .report-hero { padding-bottom: 58px; }
  .report-hero-grid { grid-template-columns: 1fr; gap: 38px; padding-top: 46px; }
  .report-hero h1 { font-size: clamp(2.25rem, 10.6vw, 3.35rem); }
  .report-hero h1 { overflow-wrap: anywhere; word-break: normal; }
  .report-summary { font-size: 1.04rem; }
  .report-meta-primary dl { flex-direction: column; gap: 7px; }
  .report-hero-figure { min-height: 0; aspect-ratio: 1 / 1; }
  .report-body { width: min(calc(100% - 32px), 860px); padding-block: 64px; }
  .report-section.report-key-answer { padding: 24px 20px; }
  .report-section.report-key-answer h2 { margin-bottom: 18px; }
  .report-key-answer-copy p { margin-bottom: 9px; line-height: 1.75; }
  .report-introduction ul { padding: 22px 22px 22px 40px; }
  .report-section { padding: 62px 0; }
  .report-section h2 { margin-bottom: 28px; }
  #report-sections > .report-section:first-child { padding-top: 70px; }
  #report-sections > .report-section:first-child::before { margin-bottom: 18px; }
  .report-prose p { font-size: .98rem; line-height: 1.9; }
  .report-definitions, .report-checklists { grid-template-columns: 1fr; }
  .report-formula, .report-calculation { padding: 26px 22px; }
  .assessment-calculator { margin-inline: -4px; padding: 28px 20px; }
  .assessment-calculator__regions, .assessment-calculator__results { grid-template-columns: 1fr; }
  .assessment-calculator__price, .assessment-calculator__result { min-height: 150px; padding: 24px 20px; }
  .assessment-calculator__price { border-right: 0; border-bottom: 1px solid var(--line); }
  .report-figure { margin: 36px 0; }
  .report-table-scroll-hint { display: block; margin: 0 0 9px; color: var(--muted); font-size: .74rem; line-height: 1.5; }
  .report-table-scroll { margin-right: -16px; }
  .report-callout { padding-inline: 18px; }
  .report-brand-conclusion { padding: 38px 22px; }
  .report-cautions { padding: 30px 24px; }
  .report-section-heading { grid-template-columns: 1fr; gap: 14px; }
  #report-dates dl { flex-direction: column; gap: 7px; }
  .related-complex, #related-reports { padding: 30px 24px; }
}
