/* Shared regular title weight. Keep sizes, spacing, colors and authored prose intact.
   Important is limited to titles: legacy templates and imported heading spans carry
   inline weights / high-specificity rules. No blanket strong/b/body reset. */
:root { --bs-title-weight: 400; --bs-label-weight: 400; }

body:not(.wp-admin) :is(h1, h2, h3, h4, h5, h6) {
  font-weight: var(--bs-title-weight) !important;
}
body:not(.wp-admin) :is(h1, h2, h3, h4, h5, h6) * {
  font-weight: inherit !important;
}

/* Card titles / section labels represented by non-heading elements. */
.bs-topic-shortcuts strong,
.bs-research-next strong,
.bs-related-list span,
.bs-static-intelligence .sell-pos .en,
.bs-curated-day-head strong,
.bs-curated-radar li > a > div > strong,
.bs-static .w-client,
.bs-static .stat .big,
.bs-issue-markers dd,
.bs-report-cover-fallback,
.bs-historical-rd :is(.hf-title, .lw-title, .alist .t, .ev .et, .rrow .rt, .nrow2 .nt, .fcol .fhead, .marker .mv),
.bs-static-intelligence :is(.sh, .duo .big, .sell-pos, .moat .zh-big, .chain .node .k, .price, .stats .num) {
  font-weight: var(--bs-title-weight) !important;
}

/* Active navigation stays identifiable through its existing underline / color,
   rather than suddenly switching to the bold face. Button geometry is unchanged. */
.bs-nav a,
.bs-nav a[aria-current],
.bs-login,
.bs-curation-tabs a[aria-current],
.bs-reader-action[aria-pressed="true"],
.bs-reader-auth .bs-reader-auth-modes button[aria-pressed="true"],
.bs-article-toc > p,
.bs-curated-eyebrow,
.bs-curated-rank,
.bs-curated-heat > b,
.bs-hot-heat > strong,
.bs-curated-card-meta strong,
.bs-historical-rd nav.main a.on {
  font-weight: var(--bs-label-weight) !important;
}

/* Report artwork (.bs-report-art-title), brand wordmarks and prose strong/b are
   intentionally outside this contract; they retain their approved treatment. */
