.cb {
  color-scheme: light;
  --green: #173f35;
  --dark: #123b32;
  --ink: #212e28;
  --muted: #53645a;
  --gold: #8a6227;
  --paper: #fffdf6;
  --sand: #f7f5ec;
  --line: #d1d7ca;
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --serif: "Hiragino Mincho ProN", "Yu Mincho", serif;
}
.cb, .cb * { box-sizing: border-box; }
.cb { margin: 0; background: var(--sand); color: var(--ink); font: 1.0625rem/1.85 var(--sans); line-break: strict; }
.cb h1, .cb h2, .cb h3, .cb h4, .cb p { margin: 0; }
.cb a { color: var(--green); text-underline-offset: .2em; }
.cb a:focus-visible { outline: 2px solid #b78332; outline-offset: 4px; }
.cb .wrap { width: min(71rem, 100% - 3.5rem); margin-inline: auto; }
.cb .hero { background: var(--dark); color: #f8f6ef; }
.cb .hero-layout { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, .9fr); align-items: center; gap: 1.4rem clamp(1.65rem, 5vw, 4.75rem); padding-block: clamp(1.6rem, 3.6vw, 3rem) clamp(2.8rem, 6vw, 5.25rem); }
.cb .breadcrumbs { grid-column: 1 / -1; color: #d5e2d9; font-size: .86rem; }
.cb .breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .1rem .55rem; list-style: none; margin: 0; padding: 0; }
.cb .breadcrumbs li + li { border-inline-start: 1px solid #82a095; padding-inline-start: .55rem; }
.cb .breadcrumbs a, .cb .byline a { color: inherit; }
.cb .eyebrow { color: var(--gold); font-size: .85rem; font-weight: 700; letter-spacing: .07em; }
.cb .hero .eyebrow { color: #e4bf78; }
.cb h1 { font: 700 clamp(2rem, 4.4vw, 3.65rem)/1.3 var(--serif); margin-block: .75rem 1.3rem; overflow-wrap: anywhere; }
.cb h1 span { display: block; }
.cb .hero-lead { max-width: 40rem; color: #f4f3eb; }
.cb .byline { display: flex; flex-wrap: wrap; gap: .15rem .75rem; margin-top: 1.2rem; color: #d5e2d9; font-size: .85rem; }
.cb .hero-note { background: var(--paper); color: var(--ink); padding: clamp(1.05rem, 3vw, 1.8rem); border-top: 4px solid #c39854; }
.cb .hero-note-title { font-family: var(--serif); color: var(--green); font-size: 1.4rem; font-weight: 700; }
.cb .hero-note p + p { margin-top: .5rem; }
.cb .hero-note a { display: inline-block; margin-top: .85rem; font-weight: 700; }
.cb .toc { display: flex; flex-wrap: wrap; gap: .2rem 1.5rem; border-bottom: 1px solid var(--line); padding-block: .95rem; }
.cb .toc a { font-size: .92rem; font-weight: 700; padding-block: .2rem; text-decoration: none; }
.cb .toc a:hover { text-decoration: underline; }
.cb .toc span { color: var(--gold); margin-inline-end: .35rem; }
.cb .part { padding-block: clamp(2.4rem, 5vw, 4.25rem); border-bottom: 1px solid var(--line); scroll-margin-top: 1rem; }
.cb .part .eyebrow span { display: inline-grid; place-items: center; min-width: 2.1rem; min-height: 2.1rem; border: 1px solid #bca888; border-radius: 50%; margin-inline-end: .4rem; }
.cb h2 { color: var(--green); font: 700 clamp(1.6rem, 3.6vw, 2.4rem)/1.45 var(--serif); margin-block: .55rem .95rem; overflow-wrap: anywhere; }
.cb h3 { color: var(--green); font-size: 1.125rem; line-height: 1.55; overflow-wrap: anywhere; }
.cb .intro, .cb .part > p { max-width: 54rem; }
.cb .options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; margin-top: 1.3rem; }
.cb .options article { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid #739184; padding: 1.05rem 1.2rem; }
.cb .options p { margin-top: .45rem; }
.cb .types { border-collapse: collapse; margin-top: 1.2rem; width: 100%; background: var(--paper); text-align: left; }
.cb .types th, .cb .types td { padding: .85rem 1rem; vertical-align: top; border: 1px solid var(--line); }
.cb .types thead th { background: var(--green); color: white; }
.cb .types tbody th { min-width: 10rem; width: 22%; background: #edf0e7; color: var(--green); }
.cb .types td { width: 39%; }
.cb .mobile-label { display: none; }
.cb .side-note { margin-top: 1rem; font-size: .94rem; color: var(--muted); }
.cb .questions { list-style: none; counter-reset: question; margin: 1.25rem 0 0; padding: 0; border-top: 1px solid var(--line); }
.cb .questions li { counter-increment: question; display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); column-gap: .6rem; row-gap: .3rem; padding: 1rem .6rem; border-bottom: 1px solid var(--line); }
.cb .questions li::before { content: counter(question, decimal-leading-zero); grid-row: 1 / span 2; color: var(--gold); font-size: .95rem; font-weight: 700; }
.cb .questions p { grid-column: 2; max-width: 52rem; }
.cb .questions .verification { margin-top: .2rem; color: var(--muted); font-size: .95rem; }
.cb .verification strong { color: var(--green); }
.cb .estimate-note { background: #e9eee4; border-left: 3px solid #739184; margin-block: 1.25rem; max-width: 54rem; padding: .95rem 1.15rem; }
.cb .estimate-note ul { margin: .3rem 0 0; padding-inline-start: 1.25rem; }
.cb #estimate > h3 { margin-block: 1.05rem .35rem; }
.cb .scenario { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid #739184; margin-block: 1.55rem; max-width: 58rem; padding: clamp(.95rem, 3.2vw, 1.55rem); }
.cb .scenario h3 { margin-block: .3rem .45rem; }
.cb .scenario-title-tail { display: inline-block; }
.cb .scenario-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-block: .9rem; }
.cb .scenario-grid > div { background: #edf0e7; padding: .75rem .9rem; }
.cb .scenario-grid h4 { color: var(--green); line-height: 1.55; margin-bottom: .35rem; }
.cb .scenario-result { font-size: .95rem; }
.cb .scenario-result strong { color: var(--green); }
.cb .reviewer h2, .cb .sources h2, .cb .publisher h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); }
.cb .reviewer h2 { margin-bottom: .2rem; }
.cb .reviewer-role { color: var(--green); font-weight: 650; margin-bottom: .65rem; }
.cb .reviewer-evidence { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1.1rem 0 0; }
.cb .reviewer-evidence > div { background: var(--paper); border: 1px solid var(--line); padding: .75rem 1rem; }
.cb .reviewer-evidence dt { color: var(--green); font-weight: 700; }
.cb .reviewer-evidence dd { margin: .25rem 0 0; font-size: .95rem; }
.cb .sources ul { margin: 0; padding-inline-start: 1.25rem; overflow-wrap: anywhere; }
.cb .sources li + li { margin-top: .35rem; }
.cb .sources li[id] { scroll-margin-top: 1rem; }
.cb .publisher { padding: clamp(1.2rem, 4vw, 2.15rem); margin-block: clamp(2.2rem, 5vw, 3.5rem); background: var(--paper); border: 1px solid var(--line); }
.cb .publisher p { max-width: 49rem; }
.cb .publisher nav { display: flex; flex-wrap: wrap; gap: .55rem 1.3rem; margin-top: .9rem; }
.cb .publisher nav a { font-size: .94rem; font-weight: 650; }
@media (max-width: 48rem) {
  .cb .wrap { width: calc(100% - 2.2rem); }
  .cb .hero-layout, .cb .options, .cb .scenario-grid, .cb .reviewer-evidence { grid-template-columns: minmax(0, 1fr); }
  .cb .types { display: block; background: transparent; }
  .cb .types thead { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
  .cb .types tbody, .cb .types tr, .cb .types tbody th, .cb .types td { display: block; width: 100%; }
  .cb .types tr { margin-bottom: .65rem; border: 1px solid var(--line); background: var(--paper); }
  .cb .types tbody th, .cb .types td { border: 0; padding: .62rem .9rem; }
  .cb .types td + td { border-top: 1px solid var(--line); }
  .cb .mobile-label { display: block; margin-bottom: .2rem; color: var(--muted); font-size: .8rem; font-weight: 700; }
}
@media (max-width: 23rem) {
  .cb .wrap { width: calc(100% - 1.6rem); }
  .cb h1 { font-size: 1.75rem; }
  .cb .questions li { grid-template-columns: 1.7rem minmax(0, 1fr); padding-inline: .15rem; }
}