/* v22 additions only. The v21 shared stylesheet, including its mobile fix,
   is deliberately left byte-for-byte unchanged. */
.current-topics-section {
  background: var(--paper);
  border-bottom: 1.5px solid var(--ink);
  padding: clamp(76px, 9vw, 132px) clamp(24px, 6vw, 96px);
  scroll-margin-top: 98px;
}
.current-topics-inner { max-width: 1240px; margin: 0 auto; min-width: 0; }
.current-topics-heading { max-width: 850px; margin-bottom: 46px; }
.current-topics-heading h2 {
  font-family: var(--font-serif-jp), serif;
  font-size: clamp(30px, 3.9vw, 56px);
  line-height: 1.4;
  letter-spacing: -.035em;
  margin: 0 0 24px;
  overflow-wrap: anywhere;
}
.current-topics-heading > p:last-child { font-size: 14px; line-height: 2; margin: 0; }
.current-topics-section .eyebrow { flex-wrap: wrap; }
.current-topics-section .topic-kicker,
.topic-page .topic-kicker { width: auto; height: auto; border: 0; border-radius: 0; display: inline; }
.current-topics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.current-topic-card {
  --topic-accent: var(--blue);
  --topic-soft: #d9e8ff;
  background: var(--white);
  border: 1.5px solid var(--ink);
  box-shadow: 7px 7px 0 var(--ink);
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(25px, 3.3vw, 42px);
}
.current-topic-card.topic-coral,
.topic-page.topic-coral { --topic-accent: var(--coral); --topic-soft: #ffe0da; }
.topic-card-meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 24px; }
.topic-field { background: var(--topic-soft); border: 1px solid var(--ink); border-radius: 99px; padding: 5px 13px; font-size: 11px; font-weight: 800; }
.topic-card-meta time { font-size: 12px; font-weight: 800; letter-spacing: .06em; }
.topic-card-number { margin-left: auto; font-size: 9px; letter-spacing: .12em; color: #14233899; }
.current-topic-card h3 { font-size: clamp(22px, 2.1vw, 30px); font-weight: 700; line-height: 1.6; letter-spacing: -.025em; margin: 0 0 23px; overflow-wrap: anywhere; }
.topic-card-subtitle { display: block; font-size: .65em; margin-top: 8px; letter-spacing: 0; line-height: 1.8; }
.current-topic-card > p { font-size: 14px; line-height: 2; margin: 0 0 28px; }
.topic-card-link { margin-top: auto; padding-top: 20px; border-top: 1px solid #14233840; display: flex; align-items: center; justify-content: space-between; gap: 14px; font-size: 13px; font-weight: 800; }
.topic-card-link span { background: var(--topic-accent); border: 1px solid var(--ink); border-radius: 50%; width: 34px; height: 34px; display: grid; place-items: center; flex-shrink: 0; }
.topic-card-link:hover span { background: var(--topic-soft); }
.current-topic-card a:focus-visible,
.topic-page a:focus-visible { outline: 3px solid var(--blue-deep); outline-offset: 5px; }
.topic-page { --topic-accent: var(--blue); --topic-soft: #d9e8ff; }
.topic-page .topic-hero { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .8fr); border-bottom: 1.5px solid var(--ink); }
.topic-hero-copy { min-width: 0; padding: clamp(70px, 8vw, 110px) clamp(24px, 6vw, 96px); }
.topic-page .breadcrumb { margin-bottom: 38px; line-height: 1.8; }
.topic-page .eyebrow { flex-wrap: wrap; }
.topic-page h1 { font-family: var(--font-serif-jp), serif; font-size: clamp(32px, 3.65vw, 56px); line-height: 1.5; letter-spacing: -.035em; margin: 0; overflow-wrap: anywhere; text-wrap: balance; }
.topic-subtitle { display: block; font-size: .47em; letter-spacing: 0; line-height: 1.8; margin-top: 18px; }
.topic-page .guide-lead { margin-top: 28px; font-size: 16px; line-height: 2.1; }
.topic-publication { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 28px; font-size: 11px; font-weight: 700; }
.topic-case-facts { background: var(--topic-soft); border-left: 1.5px solid var(--ink); min-width: 0; display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 4vw, 60px); }
.topic-case-facts > .eyebrow { margin-bottom: 24px; }
.topic-case-facts h2 { font-size: 22px; line-height: 1.7; margin: 0 0 24px; }
.topic-case-facts dl { margin: 0; }
.topic-fact-row { border-top: 1px solid #14233840; padding: 14px 0; }
.topic-fact-row dt { font-size: 10px; font-weight: 900; margin-bottom: 6px; }
.topic-fact-row dd { margin: 0; font-size: 13px; line-height: 1.9; overflow-wrap: anywhere; }
.topic-page .guide-article { grid-template-columns: 228px minmax(0, 1fr); gap: clamp(40px, 6vw, 86px); padding: 88px 28px; }
.topic-page .guide-toc { background: var(--topic-soft); }
.topic-page .topic-section { display: block; margin-bottom: 60px; padding-bottom: 60px; }
.topic-section-heading { display: flex; align-items: baseline; gap: 18px; margin-bottom: 26px; }
.topic-section-number { font-size: 11px; font-weight: 900; color: #1423388c; flex-shrink: 0; }
.topic-page .topic-section-heading h2 { font-size: clamp(25px, 2.5vw, 36px); line-height: 1.6; margin: 0; overflow-wrap: anywhere; }
.topic-page .guide-section-body { min-width: 0; }
.topic-page .guide-section-body h3 { font-size: 18px; line-height: 1.9; margin: 34px 0 18px; }
.topic-page .guide-section-body p { font-size: 15px; line-height: 2.1; }
.topic-page .guide-section-body strong { font-weight: 800; }
.topic-page .guide-section-body a { text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.topic-page .guide-section-body .topic-source-note { font-size: 11px; line-height: 2; color: #142338a8; margin-top: 18px; }
.topic-callout { background: var(--topic-soft); border: 1.5px solid var(--ink); padding: 24px 28px; margin: 28px 0; min-width: 0; }
.topic-callout p:last-child { margin-bottom: 0; }
.topic-page .topic-callout-label { font-size: 11px; font-weight: 900; letter-spacing: .03em; margin-bottom: 12px; }
.topic-page .topic-checklist { margin: 26px 0; }
.topic-page .topic-checklist li { font-size: 14px; line-height: 2; padding: 15px 0; }
.topic-think { border: 1.5px solid var(--ink); background: var(--white); box-shadow: 5px 5px 0 var(--ink); padding: 26px 30px; margin-bottom: 30px; }
.topic-page .topic-think > p { font-size: 18px; font-weight: 700; line-height: 2; }
.topic-page .topic-think ul { margin-top: 24px; }
.topic-page .topic-think li { font-size: 14px; line-height: 2; padding: 16px 0; }
.topic-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1.5px solid var(--ink); margin: 26px 0; }
.topic-comparison > div { padding: 22px; min-width: 0; background: var(--white); }
.topic-comparison > div + div { border-left: 1.5px solid var(--ink); background: var(--topic-soft); }
.topic-page .topic-comparison h3 { margin-top: 0; font-size: 16px; }
.topic-page .topic-comparison p { font-size: 13px; margin-bottom: 0; }
.topic-page .topic-sources { list-style: none; margin: 0; padding: 0; }
.topic-page .topic-sources li { padding: 20px 0; font-size: 14px; line-height: 1.9; }
.topic-sources small { display: block; font-size: 11px; line-height: 2; margin-top: 8px; }
.topic-related { max-width: 1240px; margin: 0 auto; padding: 0 28px 86px; }
.topic-related > h2 { font-size: 22px; line-height: 1.6; margin-bottom: 24px; }
.topic-related-links { display: flex; flex-wrap: wrap; gap: 14px; }
.topic-related-links a { border: 1px solid var(--ink); background: var(--white); padding: 14px 20px; font-size: 12px; font-weight: 700; line-height: 1.8; overflow-wrap: anywhere; }
.topic-related-links a:first-child { background: var(--topic-soft); }
@media (max-width: 980px) {
  .topic-page .topic-hero { grid-template-columns: minmax(0, 1fr); }
  .topic-case-facts { border-left: 0; border-top: 1.5px solid var(--ink); }
  .topic-case-facts dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 30px; }
  .topic-page .guide-article { grid-template-columns: minmax(0, 1fr); gap: 50px; }
  .topic-page .guide-toc { position: static; }
  .topic-page .guide-toc ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
}
@media (max-width: 700px) {
  .current-topics-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .current-topics-heading { margin-bottom: 30px; }
  .topic-comparison { grid-template-columns: minmax(0, 1fr); }
  .topic-comparison > div + div { border-left: 0; border-top: 1.5px solid var(--ink); }
}
@media (max-width: 600px) {
  .current-topics-section { padding: 70px 20px; }
  .current-topic-card { padding: 25px 20px; box-shadow: 5px 5px 0 var(--ink); }
  .current-topics-heading h2 { font-size: 30px; }
  .current-topic-card h3 { font-size: 23px; }
  .current-topic-card > p { font-size: 13px; }
  .topic-card-number { font-size: 8px; }
  .topic-hero-copy { padding: 66px 20px 52px; }
  .topic-page h1 { font-size: 33px; }
  .topic-subtitle { font-size: .53em; }
  .topic-page .guide-lead { font-size: 14px; }
  .topic-case-facts { padding: 30px 20px; }
  .topic-case-facts dl { grid-template-columns: minmax(0, 1fr); }
  .topic-page .guide-article { padding: 62px 20px; }
  .topic-page .guide-toc ol { grid-template-columns: minmax(0, 1fr); }
  .topic-page .topic-section { margin-bottom: 44px; padding-bottom: 44px; }
  .topic-section-heading { gap: 12px; }
  .topic-page .topic-section-heading h2 { font-size: 25px; }
  .topic-page .guide-section-body p { font-size: 14px; }
  .topic-page .guide-section-body h3 { font-size: 17px; }
  .topic-callout { padding: 20px 17px; }
  .topic-think { padding: 21px 17px; }
  .topic-page .topic-think > p { font-size: 16px; }
  .topic-related { padding: 0 20px 62px; }
  .topic-related-links { display: grid; grid-template-columns: minmax(0, 1fr); }
}
