/* TYPE-01: Rubik interface and Georgia long-form reading. */
@font-face {
    font-family: 'Rubik Fallback';
    src: local('Arial');
    font-style: normal;
    font-weight: 400 600;
    size-adjust: 104.979628%;
    ascent-override: 89.064900%;
    descent-override: 23.814144%;
    line-gap-override: 0.000000%;
}
html { font-size: var(--tds-f-base); -webkit-text-size-adjust: 100%; }
body { font-family: var(--tds-font-system); font-size: var(--tds-type-size-body); font-weight: var(--tds-weight-regular); line-height: var(--tds-type-line-body); color: var(--tds-text-main); background-color: var(--tds-surface); -webkit-font-smoothing: antialiased; }
p, li, dd { font-size: var(--tds-type-size-body); line-height: var(--tds-type-line-body); max-width: var(--tds-body-measure); margin-bottom: var(--tds-space-03); }
h1, h2, h3, h4 { font-family: var(--tds-font-system); font-weight: var(--tds-weight-semibold); color: var(--tds-text-main); text-transform: none; }
h1, .uh-record-title { font-size: var(--tds-type-h1); line-height: var(--tds-type-line-h1); letter-spacing: var(--tds-type-track-h1); }
h2, .uh-section-title { font-size: var(--tds-type-h2); line-height: var(--tds-type-line-h2); letter-spacing: var(--tds-type-track-h2); }
h3, .uh-record-section-title { font-size: var(--tds-type-h3); line-height: var(--tds-type-line-h3); letter-spacing: var(--tds-type-track-h3); }
h4 { font-size: var(--tds-type-h4); line-height: var(--tds-type-line-h4); letter-spacing: var(--tds-type-track-h4); }
small, .small { font-size: var(--tds-type-size-caption); line-height: var(--tds-type-line-caption); }
.uh-kicker, .uh-section-label, .uh-archive-label, .uh-record-label { display: block; margin: 0 0 var(--tds-space-03); font-family: var(--tds-font-system); font-size: var(--tds-type-size-label); font-weight: var(--tds-weight-medium); line-height: var(--tds-type-line-label); letter-spacing: var(--tds-type-track-label); text-transform: uppercase; color: var(--tds-brand-strong); }
.uh-lead, .uh-section-lead, .uh-archive-intro, .uh-record-dek { max-width: var(--tds-body-measure); font-family: var(--tds-font-system); font-size: var(--tds-type-size-lead); line-height: var(--tds-type-line-lead); color: var(--tds-text-muted); }
.uh-section-title, .uh-record-title { margin: 0 0 var(--tds-space-03); }
.uh-section-title { max-width: 22ch; }
.uh-record-title { max-width: 32ch; }
.uh-section-copy { max-width: var(--tds-body-measure); color: var(--tds-text-muted); }
.uh-meta { font-size: var(--tds-type-size-meta); line-height: var(--tds-type-line-meta); color: var(--tds-text-muted); }
.uh-record-body, .uh-insights-body, .uh-case-study__reading-well, .uh-journal-record__body, .uh-journal-body { max-width: var(--tds-reading-measure); font-family: var(--tds-font-record); font-size: var(--tds-type-size-reading); line-height: var(--tds-type-line-reading); color: var(--tds-text-main); }
body :is(.uh-record-body, .uh-insights-body, .uh-case-study__reading-well, .uh-journal-record__body, .uh-journal-body) :is(p, li, dd, ul, ol, blockquote):is(p, li, dd, ul, ol, blockquote) { font-family: var(--tds-font-record); font-size: var(--tds-type-size-reading); line-height: var(--tds-type-line-reading); max-width: var(--tds-reading-measure); }
.uh-record-body > :first-child { margin-top: 0; }
.uh-record-body p, .uh-record-body ul, .uh-record-body ol { margin-bottom: var(--tds-space-04); }
.uh-record-body li + li { margin-top: var(--tds-space-02); }
.uh-record-body h2, .uh-record-body h3, .uh-record-section-title { margin-top: var(--tds-space-05); margin-bottom: var(--tds-space-03); }
p a:not(.btn), dd a:not(.btn), :is(.uh-reading-block, .uh-reading-well, .uh-form, .uh-insights-body, .uh-record-body, .uh-case-study__reading-well, .uh-journal-record__body) a:not(.btn):not(.nav-link) { color: var(--tds-brand-strong); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
p a:not(.btn):hover, dd a:not(.btn):hover, :is(.uh-reading-block, .uh-reading-well, .uh-form, .uh-insights-body, .uh-record-body, .uh-case-study__reading-well, .uh-journal-record__body) a:not(.btn):not(.nav-link):hover { color: var(--tds-brand-action-hover); }
table, .uh-meta, [class*="metadata"], [class*="__meta"], [class*="record-panel"], time, [class*="count"], [class*="year"] { font-variant-numeric: tabular-nums; }
/* Long scholarly reference URLs must wrap within their reading column. */
.uh-journal-record__body a, .uh-journal-body a { overflow-wrap: anywhere; }

/* Keep emphasis within the three approved weights. */
b, strong { font-weight: var(--tds-weight-semibold); }

/* Explicit Reference reading surfaces supersede the older page-size overrides. */
main .uh-reference-document.uh-record-body,
main .uh-reference-document.uh-record-body :is(p, li, dd, ul, ol, blockquote) {
    max-width: var(--tds-reading-measure);
    font-family: var(--tds-font-record);
    font-size: var(--tds-type-size-reading);
    line-height: var(--tds-type-line-reading);
}

/* TYPE-01J: headings inside reading surfaces step down one role (h2 -> h3, h3 -> h4, h4 -> body) so they stay proportionate to the 19px body. One rule owns them; journal.css and records.css no longer set them. */
body :is(.uh-record-body, .uh-insights-body, .uh-case-study__reading-well, .uh-journal-record__body, .uh-journal-body, .uh-reference-document) h2 {
    font-family: var(--tds-font-system);
    font-size: var(--tds-type-h3);
    font-weight: var(--tds-weight-semibold);
    line-height: var(--tds-type-line-h3);
    letter-spacing: var(--tds-type-track-h3);
}

body :is(.uh-record-body, .uh-insights-body, .uh-case-study__reading-well, .uh-journal-record__body, .uh-journal-body, .uh-reference-document) h3 {
    font-family: var(--tds-font-system);
    font-size: var(--tds-type-h4);
    font-weight: var(--tds-weight-semibold);
    line-height: var(--tds-type-line-h4);
    letter-spacing: var(--tds-type-track-h4);
}

body :is(.uh-record-body, .uh-insights-body, .uh-case-study__reading-well, .uh-journal-record__body, .uh-journal-body, .uh-reference-document) h4 {
    font-family: var(--tds-font-system);
    font-size: var(--tds-type-size-body);
    font-weight: var(--tds-weight-semibold);
    line-height: var(--tds-type-line-body);
    letter-spacing: var(--tds-type-track-body);
}


/* Bootstrap utility alias: .fw-bold sets 700 with !important and bypasses the weight tokens. typography.css loads after bootstrap.min.css, so this equal-importance rule wins. */
html .fw-bold, html .fw-bolder { font-weight: var(--tds-weight-semibold) !important; }
