/* Cross-template visual roles: shared typography, chrome, and scoped page roles.
 * These intentionally follow component CSS: HTML heading tags do not determine
 * visual size. Baseline geometry is in base.css, components own their layout.
 * All displayed sizes and paints use ledger tokens; no Webflow reset overrides.
 */
html,body { background:var(--hcp-white); color:var(--hcp-text); font-family:var(--hcp-font-ui); font-size:var(--hcp-fs-body); font-weight:var(--hcp-fw-body); line-height:var(--hcp-lh-body); }
body *,button,input,select,textarea { font-family:inherit; }
button,input,select,textarea { font-size:var(--hcp-fs-small); border-radius:0; box-shadow:none; }
h1,h2,h3,h4,h5,h6 { color:var(--hcp-ink); font-weight:var(--hcp-fw-heading); }
h1 { font-size:var(--hcp-fs-h1); line-height:var(--hcp-lh-h1); }
h2 { font-size:var(--hcp-fs-h2); line-height:var(--hcp-lh-h2); }
h3,h4,h5,h6 { font-size:var(--hcp-fs-h3); line-height:var(--hcp-lh-h3); }
.en,time,.top-eyebrow,.about-label,.article-section-label,.article-profile-label,.chrome-menu-label { font-family:var(--hcp-font-latin); }
.top-eyebrow,.about-label,.article-section-label,.article-profile-label,.chrome-menu-label { font-size:var(--hcp-fs-label); line-height:var(--hcp-lh-label); font-weight:var(--hcp-fw-ui); letter-spacing:.12em; color:var(--hcp-accent); }
a { color:inherit; }
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:2px solid var(--hcp-ink); outline-offset:4px; }
a:hover,.top-text-link:hover,.top-feature-title-link:hover { color:var(--hcp-accent); opacity:1; }
[aria-current="page"],.top-primary-nav-link[aria-current="page"],.top-category-nav-link[aria-current="page"] { color:var(--hcp-accent); }
.top-primary-nav-link { font-size:var(--hcp-fs-small); font-weight:var(--hcp-fw-ui); color:var(--hcp-ink); }
/* Tagline remains the explicitly authorized logo-following formula. */
.top-header-with-tagline .top-header-tagline { color:var(--hcp-ink); font-family:var(--hcp-font-ui); font-weight:var(--hcp-fw-ui); line-height:var(--hcp-lh-label); letter-spacing:0; }
.section-general.footer,.chrome-footer,.top-header-with-tagline .chrome-menu,.custom-nav-menu { background:var(--hcp-ink); color:var(--hcp-white); }
.chrome-footer *,.custom-nav-menu a,.custom-nav-menu .chrome-menu-label,.custom-nav-menu .chrome-interview-name,.custom-nav-menu .chrome-interview-role,.custom-nav-menu .chrome-interview-title { color:var(--hcp-white); }
.chrome-footer a:hover,.custom-nav-menu a:hover { color:var(--hcp-accent); }
.chrome-menu-open .chrome-toggle { color:var(--hcp-white); }
.chrome-toggle { color:var(--hcp-ink); }
.chrome-footer .footer-tagline-text { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); }
.chrome-footer .footer-nav-header-text { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); font-weight:var(--hcp-fw-ui); }
.chrome-menu-open .chrome-toggle:focus-visible,.chrome-menu a:focus-visible { outline-color:var(--hcp-white); }
.top-editorial { color:var(--hcp-text); --top-ink:var(--hcp-ink); --top-paper:var(--hcp-paper); }
.top-editorial .top-hero,.top-editorial .top-latest,.top-editorial .top-topics { background:var(--hcp-white); }
.top-editorial .top-voices { background:var(--hcp-paper); }
.top-editorial .top-section-head h2 { font-size:var(--hcp-fs-h2); line-height:var(--hcp-lh-h2); }
.top-feature-title-link h3 { font-size:var(--hcp-fs-h2); line-height:var(--hcp-lh-h2); }
.top-story-title,.top-story--topic .top-story-title,.list-single-article-title { font-size:var(--hcp-fs-lead); line-height:var(--hcp-lh-lead); font-weight:var(--hcp-fw-heading); color:var(--hcp-ink); }
.top-story-meta,.top-story-meta .small-text,.top-feature-copy .top-story-meta,.top-person-role,.small-text { font-size:var(--hcp-fs-meta); line-height:var(--hcp-lh-meta); color:var(--hcp-sub); font-weight:var(--hcp-fw-body); }
.top-story-meta>span,.article-kicker,.about-story-meta>span { color:var(--hcp-accent); }
.top-story-meta>span { font-weight:var(--hcp-fw-ui); }
.author-name-text,.top-person-name { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); font-weight:var(--hcp-fw-ui); color:var(--hcp-ink); }
.top-feature-deck,.interview-intro { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); }
.honorific,.article-mock .honorific { font-size:.78em; }
.top-more-voices .top-story-title { min-height:5.1em; }
.top-text-link,.top-category-link,.about-text-link { text-decoration:underline; text-underline-offset:.25em; }
.top-text-link>span { display:none; }
.top-people-arrow { color:var(--hcp-ink); border-color:var(--hcp-ink); background:transparent; }
.top-people-arrow:disabled { opacity:.4; }
.top-people-scroll::after { background:linear-gradient(to right,transparent,var(--hcp-paper)); }
.top-topic-intro h3 { color:var(--hcp-ink); font-size:var(--hcp-fs-h2); line-height:var(--hcp-lh-h2); }
.top-all-posts-button,.cta-button-wrapper { color:var(--hcp-ink); background:transparent; border:1px solid var(--hcp-ink); border-radius:0; box-shadow:none; }
.top-all-posts-button:hover,.cta-button-wrapper:hover { color:var(--hcp-white); background:var(--hcp-ink); }
.about-mock { color:var(--hcp-text); }
.about-mock .about-heading h1 { font-size:var(--hcp-fs-display); line-height:var(--hcp-lh-display); }
.about-mock .about-v2-heading h2 { font-size:var(--hcp-fs-h2); line-height:var(--hcp-lh-h2); }
.about-mock .about-v2-band { background:var(--hcp-paper); }
.about-mock p { font-size:var(--hcp-fs-body); line-height:var(--hcp-lh-body); }
.about-mock .about-definition { font-size:var(--hcp-fs-lead); line-height:var(--hcp-lh-lead); font-weight:var(--hcp-fw-ui); }
.about-mock .about-quote { color:var(--hcp-sub); }
.about-mock .about-story-title { font-size:var(--hcp-fs-lead); line-height:var(--hcp-lh-lead); font-weight:var(--hcp-fw-heading); }
.about-mock .about-operator th,.about-mock .about-operator td,.about-editor-identity p,.about-editor-role { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); }
.about-mock .about-editor p { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); }
.about-mock .about-label { font-size:var(--hcp-fs-label); line-height:var(--hcp-lh-label); color:var(--hcp-accent); }
.article-mock { --u:calc(var(--hcp-fs-body) * var(--hcp-lh-body)); --ink:var(--hcp-text); --rule:var(--hcp-line); color:var(--hcp-text); }
.article-mock .article-title { font-size:var(--hcp-fs-h1); line-height:var(--hcp-lh-h1); color:var(--hcp-ink); }
.article-mock .article-lead { font-size:var(--hcp-fs-lead); line-height:var(--hcp-lh-lead); background:var(--hcp-paper); }
.article-mock .article-rich-text-block { font-family:var(--hcp-font-ui); font-size:var(--hcp-fs-body); line-height:var(--hcp-lh-body); color:var(--hcp-text); font-weight:var(--hcp-fw-body); }
.article-mock .article-rich-text-block p,.article-mock .article-rich-text-block li { font-size:inherit; line-height:inherit; }
.article-mock .article-rich-text-block h2 { font-size:var(--hcp-fs-h2); line-height:var(--hcp-lh-h2); }
.article-mock .article-rich-text-block h3 { font-size:var(--hcp-fs-h3); line-height:var(--hcp-lh-h3); }
.article-mock .article-kicker { font-size:var(--hcp-fs-meta); background:transparent; color:var(--hcp-accent); }
.article-mock .article-kicker.secondary { color:var(--hcp-sub); }
.article-mock .article-profile-name { font-size:var(--hcp-fs-h3); line-height:var(--hcp-lh-h3); }
.article-mock .article-profile-label,.article-mock .article-section-label { color:var(--hcp-accent); }
.article-mock time,.article-mock .article-profile-role,.article-mock .article-rich-text-block figcaption { color:var(--hcp-sub); font-size:var(--hcp-fs-meta); line-height:var(--hcp-lh-meta); }
.article-mock .article-rich-text-block table { font-size:var(--hcp-fs-small); }
.article-mock .article-rich-text-block a:hover { color:var(--hcp-accent); }
@media(max-width:767px) {
 .top-story-title,.top-story--topic .top-story-title,.list-single-article-title,.about-mock .about-story-title { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); }
 .top-more-voices .top-story-title { min-height:5.4em; }
 .article-mock .article-toc-mobile { background:var(--hcp-paper); }
 .article-mock .article-lead { font-size:var(--hcp-fs-lead); line-height:var(--hcp-lh-lead); }
}

.about-v2 .top-eyebrow { font-size:var(--hcp-fs-label); line-height:var(--hcp-lh-label); font-weight:var(--hcp-fw-ui); color:var(--hcp-accent); }
/* White links on ink keep their contrast on hover; accent stays on white/paper. */
.chrome-footer a:hover,.custom-nav-menu a:hover { color:var(--hcp-white); text-decoration:underline; }


/* 2.6.1: semantic h1 repairs; preserve the legacy pages' exact text geometry. */
.feature-header { margin:0; padding:0; font:inherit; color:var(--hcp-ink); }
.feature-header > .feature-header-small,
.feature-header > .feature-header-large { display:block; font-weight:var(--hcp-fw-heading); line-height:var(--hcp-lh-h1); }
h1.special-page-header { font-size:var(--hcp-fs-h2); font-weight:var(--hcp-fw-heading); line-height:var(--hcp-lh-h2); margin:24px 0 16px; color:var(--hcp-ink); }

/* 2.6.2: choose type by visual role, not by tag or component name. */
.top-topic-intro p,
.top-feature-label>span:last-child,
.top-people-labels>span:last-child { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); }
.top-topic-intro .top-text-link { font-size:var(--hcp-fs-meta); line-height:var(--hcp-lh-meta); }
.article-mock .article-end-share h2,
.article-mock .article-author h2,
.article-mock .article-author p,
.article-mock .article-rich-text-block .article-external-title,
.article-mock .article-rich-text-block .article-embed-title { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); }
.article-mock .article-author h2 { font-weight:var(--hcp-fw-heading); }
.article-mock .article-rich-text-block .article-external-description { font-size:var(--hcp-fs-meta); line-height:var(--hcp-lh-meta); }
.article-mock .article-lead { font-size:var(--hcp-fs-body); line-height:var(--hcp-lh-body); }
.about-mock .about-definition { font-size:var(--hcp-fs-statement); line-height:var(--hcp-lh-statement); font-weight:var(--hcp-fw-ui); }
.about-editor-identity h3 span { font-size:var(--hcp-fs-meta); line-height:var(--hcp-lh-meta); font-weight:var(--hcp-fw-body); }

/* Additional role corrections found by the full 2.5.6 computed-size audit. */
.top-topic-intro .top-category-link,
.top-feature-person .small-text,
.article-mock .article-mini-name,
.article-mock .article-card-category { font-size:var(--hcp-fs-meta); line-height:var(--hcp-lh-meta); }
.about-mock .about-concept .about-label { font-size:var(--hcp-fs-meta); line-height:var(--hcp-lh-meta); font-family:var(--hcp-font-ui); }
.author-name-text,.top-person-name,
.interview-intro { font-size:var(--hcp-fs-body); line-height:var(--hcp-lh-meta); }
.article-mock .article-profile-description .prof-rich-text { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); }
.article-mock .article-profile-description .prof-rich-text p,
.article-mock .article-profile-description .prof-rich-text span { font-size:inherit; line-height:inherit; }
.about-mock .about-v2-pillar p,
.about-mock .about-v2-principles li p,
.about-mock .about-v2-editor-row p,
.about-mock .author-role { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-small); }
.about-mock .about-v2-editor-row h3,
.about-mock .about-story-title { font-size:var(--hcp-fs-body); line-height:var(--hcp-lh-lead); }
.about-mock .about-editor-identity h3 { font-size:var(--hcp-fs-lead); line-height:var(--hcp-lh-lead); }
.about-mock .about-editor-identity h3 span { font-size:var(--hcp-fs-meta); line-height:var(--hcp-lh-meta); }
.author-profile h1 { font-size:var(--hcp-fs-h1); line-height:var(--hcp-lh-h1); }
.chrome-footer .footer-tagline-text,
.chrome-footer .footer-nav-header-text { font-size:var(--hcp-fs-lead); line-height:var(--hcp-lh-meta); }
@media(max-width:767px) {
 .list-single-article-title { font-size:var(--hcp-fs-h3); line-height:var(--hcp-lh-h3); }
 .about-mock .about-story-title,
 .about-mock .about-v2-editor-row h3 { font-size:var(--hcp-fs-lead); line-height:var(--hcp-lh-lead); }
 .about-mock .about-editor-identity h3 { font-size:var(--hcp-fs-h3); line-height:var(--hcp-lh-h3); }
 .chrome-footer .footer-nav-header-text { font-size:var(--hcp-fs-body); line-height:var(--hcp-lh-meta); }
 .chrome-footer .footer-tagline-text { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-meta); }
}
.chrome-menu-feature>.chrome-menu-label { font-size:var(--hcp-fs-meta); line-height:var(--hcp-lh-meta); font-family:var(--hcp-font-ui); }
.chrome-interview-title { font-size:var(--hcp-fs-h3); line-height:var(--hcp-lh-h3); }
.chrome-interview-role { font-size:var(--hcp-fs-small); line-height:var(--hcp-lh-meta); }
@media(max-width:767px) { .menu-open-link-text { font-size:var(--hcp-fs-h1); } }

/* Approved ledger v0.3 addendum: preserve these two dedicated visual roles. */
.about-v2-number { font-size:var(--hcp-fs-principle-number); }
.feature-article-list-title { font-size:var(--hcp-fs-feature-card); }
