/* Titan's shared text roles. Keep semantic exceptions in docs/website-typography.md. */
:root {
  --titan-family-body: system-ui, sans-serif;
  --titan-family-display: Georgia, "Times New Roman", serif;
  --titan-size-body: 1rem;
  --titan-size-title: clamp(2rem, 4vw, 3rem);
  --titan-size-section: 1rem;
  --titan-size-subheading: 1.125rem;
  --titan-size-meta: .875rem;
  --titan-leading-body: 1.68;
  --titan-font-prose: 400 var(--titan-size-body)/var(--titan-leading-body) var(--titan-family-body);
  --titan-font-section: 800 var(--titan-size-section)/1.3 var(--titan-family-body);
  --titan-font-lead: 700 clamp(1.08rem, 2vw, 1.28rem)/1.55 var(--titan-family-body);
}
body { font-family: var(--titan-family-body); font-size: var(--titan-size-body); font-weight: 400; line-height: var(--titan-leading-body); }
h1, h2 { font-family: var(--titan-family-display); }
:is(.titan-prose, .news-page) { font: var(--titan-font-prose); }
:is(.titan-prose, .news-page) :is(p, ul, ol, li, dt, dd, blockquote) {
  font-family: var(--titan-family-body);
  font-size: var(--titan-size-body);
  font-weight: 400;
  font-style: normal;
  line-height: var(--titan-leading-body);
  letter-spacing: normal;
  text-transform: none;
}
:is(.titan-prose, .news-page) :is(p, ul, ol, dl) { margin-block: 0 .75rem; }
:is(.titan-prose, .news-page) :is(li + li) { margin-top: .5rem; }
:is(.titan-prose, .news-page) .profile-widget-body { font: var(--titan-font-prose); gap: .75rem; }
:is(.titan-prose, .news-page) :is(strong, em, code, a:not(.button)) {
  font-family: inherit; font-size: inherit; line-height: inherit; letter-spacing: normal; text-transform: none;
}
:is(.titan-prose, .news-page) strong { font-weight: 700; }
:is(.titan-prose, .news-page) em { font-style: italic; }
:is(.titan-prose, .news-page) a:not(.button) { text-decoration: underline; text-underline-offset: .2em; }
:is(.titan-prose, .news-page) a:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
:is(.titan-prose, .news-page) .about-story-lead { font: var(--titan-font-lead); margin: 0; }
:is(.titan-prose, .news-page) .about-story-lead + p { margin-block-start: 1rem; }
:is(.titan-prose, .news-page) .eyebrow { font-family: var(--titan-family-body); font-size: var(--titan-size-meta); font-weight: 800; line-height: 1.3; letter-spacing: .12em; text-transform: uppercase; }
:is(.titan-prose, .news-page) .recruit-job-role { font-size: var(--titan-size-meta); }
:is(.titan-prose, .news-page) .about-story-card h3, :is(.titan-prose, .news-page) .about-story-panel h3 {
  font-family: var(--titan-family-body); font-size: var(--titan-size-subheading); font-weight: 700; line-height: 1.3;
}
:is(.titan-prose, .news-page) .profile-widget > summary :is(h2, h3, h4) { font: var(--titan-font-section); }
:is(.titan-prose, .news-page) .profile-widget > summary .profile-widget-action { font-family: var(--titan-family-body); font-size: var(--titan-size-meta); line-height: 1.3; }
/* Display titles/lead callouts and dense data remain separate semantic roles. */
h1.seo-page-title { font-family: var(--titan-family-display); font-size: var(--titan-size-title); font-weight: 700; line-height: 1.08; }
