/* One type scale for every page and single blog post (the post's
   article, .rhsa-post__article; roles come from inc/typography.php).
   Applies to page content, MaxiBlocks and core blocks alike. Core blocks
   take a role from the editor's font size presets (has-lead-font-size
   and so on; inc/block-styles.php); a paragraph with its own size keeps
   it. Colors set
   on dark sections are left alone. !important beats MaxiBlocks'
   per-block styles, which is where the old variation came from.
   Colors and fonts are the site tokens in style.css.

   Scale (desktop / phone):
     h1 56/64, 40/46   h2 40/48, 30/38   h3 28/36, 24/32
     h4 22/30, 20/28   h5 20/28          h6 18/26
     lead 20/32, 18/28   body 16/26   subhead 20/28   label 16/24
     category 14/20   buttons 16 */

/* Headings, by tag */
:is(.rhsa-page-container, .rhsa-post__article) .entry-content :is(h1, h2, h3, h4, h5, h6):not(.rec-programs *):not(form *) {
	font-family: var(--rhsa-cond) !important;
	font-weight: 700 !important;
	font-style: normal !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	text-wrap: balance;
}
/* H1s in capitals (Kevin, 2026-11-02): after the rule above, which it overrides. */
:is(.rhsa-page-container, .rhsa-post__article) .entry-content h1:not(.rec-programs *):not(form *) { text-transform: uppercase !important; }
:is(.rhsa-page-container, .rhsa-post__article) .entry-content h1:not(.rec-programs *) { font-size: 56px !important; line-height: 64px !important; }
:is(.rhsa-page-container, .rhsa-post__article) .entry-content h2:not(.rec-programs *) { font-size: 40px !important; line-height: 48px !important; }
:is(.rhsa-page-container, .rhsa-post__article) .entry-content h3:not(.rec-programs *) { font-size: 28px !important; line-height: 36px !important; }
:is(.rhsa-page-container, .rhsa-post__article) .entry-content h4:not(.rec-programs *) { font-size: 22px !important; line-height: 30px !important; }
:is(.rhsa-page-container, .rhsa-post__article) .entry-content h5:not(.rec-programs *) { font-size: 20px !important; line-height: 28px !important; }
:is(.rhsa-page-container, .rhsa-post__article) .entry-content h6:not(.rec-programs *) { font-size: 18px !important; line-height: 26px !important; }

/* Running text: MaxiBlocks body role, core paragraphs and lists (not the
   number styles in blocks.css, which set their own size) */
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .rhsa-t-body > .maxi-text-block__content,
:is(.rhsa-page-container, .rhsa-post__article) .entry-content :is(p.wp-block-paragraph, .wp-block-list li):not(.has-lead-font-size, .has-subhead-font-size, .has-label-font-size, .has-display-font-size, .is-style-rhsa-stat, .is-style-rhsa-big-number, [style*="font-size"]):not(.rec-programs *):not(form *) {
	font-family: var(--rhsa-sans) !important;
	font-size: 16px !important;
	line-height: 26px !important;
	font-style: normal;
	text-transform: none !important;
	letter-spacing: normal !important;
	text-wrap: pretty;
}
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .maxi-light.rhsa-t-body:not(.rhsa-t-body.rhsa-t-short:has(+ .wp-block-maxi-blocks-text-maxi > :is(h1, h2, h3))) > .maxi-text-block__content,
:is(.rhsa-page-container, .rhsa-post__article) .entry-content :is(p.wp-block-paragraph, .wp-block-list li):not(.has-text-color):not(.is-style-rhsa-dots > li):not(.maxi-dark *):not(.is-style-rhsa-section-dark *):not(.has-background *):not(.rec-programs *):not(form *) {
	color: var(--rhsa-body) !important;
}

/* Intro under a page title: the lead role, and whatever text block
   directly follows an h1 (some heroes use an h6 or plain p for it). */
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .rhsa-t-lead > .maxi-text-block__content,
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .wp-block-maxi-blocks-text-maxi:has(> h1) + .wp-block-maxi-blocks-text-maxi > .maxi-text-block__content,
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .has-lead-font-size {
	font-family: var(--rhsa-sans) !important;
	font-weight: 400 !important;
	font-size: 20px !important;
	line-height: 32px !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}

/* Small bold heads inside cards and stat blocks. A heading set to the
   Subhead size takes it too (a person's name under a photo is an h3 in
   the outline but card-sized); this rule comes after the tag sizes. */
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .rhsa-t-subhead > .maxi-text-block__content,
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .has-subhead-font-size,
:is(.rhsa-page-container, .rhsa-post__article) .entry-content :is(h2, h3, h4, h5, h6).has-subhead-font-size:not(.rec-programs *) {
	font-family: var(--rhsa-cond) !important;
	font-weight: 700 !important;
	font-size: 20px !important;
	line-height: 28px !important;
	text-transform: none !important;
}

/* Short labels and kickers ("Meet our team", "START TIME"): the label
   role, and any short body line directly above a heading (it keeps its
   own color, usually red). Display text above a heading is left alone. */
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .rhsa-t-label > .maxi-text-block__content,
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .has-label-font-size,
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .rhsa-t-body.rhsa-t-short:has(+ .wp-block-maxi-blocks-text-maxi > :is(h1, h2, h3)) > .maxi-text-block__content {
	font-family: var(--rhsa-cond) !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	line-height: 24px !important;
	letter-spacing: normal !important;
}

/* Post category links (news cards) */
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .maxi-text-block__content:has(> a[href*="/category/"]),
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .maxi-text-block__content > a[href*="/category/"],
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .maxi-text-block__content > a[href*="/category/"] span {
	font-family: var(--rhsa-cond) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	line-height: 20px !important;
	color: var(--rhsa-red) !important;
}

/* Display text (left at its designed size) that has no line height of
   its own, or one smaller than its size: lines would overlap if it
   wrapped. */
:is(.rhsa-page-container, .rhsa-post__article) .entry-content .rhsa-t-tight > .maxi-text-block__content { line-height: 1.1 !important; }

/* Button labels (each button keeps its own colors and shape) */
:is(.rhsa-page-container, .rhsa-post__article) .entry-content :is(.maxi-button-block__content, .wp-block-button__link) {
	font-family: var(--rhsa-cond) !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	line-height: 1 !important;
	text-transform: none !important;
}

@media (max-width: 600px) {
	:is(.rhsa-page-container, .rhsa-post__article) .entry-content h1:not(.rec-programs *) { font-size: 40px !important; line-height: 46px !important; }
	:is(.rhsa-page-container, .rhsa-post__article) .entry-content h2:not(.rec-programs *) { font-size: 30px !important; line-height: 38px !important; }
	:is(.rhsa-page-container, .rhsa-post__article) .entry-content h3:not(.rec-programs *) { font-size: 24px !important; line-height: 32px !important; }
	:is(.rhsa-page-container, .rhsa-post__article) .entry-content h4:not(.rec-programs *) { font-size: 20px !important; line-height: 28px !important; }
	:is(.rhsa-page-container, .rhsa-post__article) .entry-content .rhsa-t-lead > .maxi-text-block__content,
	:is(.rhsa-page-container, .rhsa-post__article) .entry-content .wp-block-maxi-blocks-text-maxi:has(> h1) + .wp-block-maxi-blocks-text-maxi > .maxi-text-block__content,
	:is(.rhsa-page-container, .rhsa-post__article) .entry-content .has-lead-font-size { font-size: 18px !important; line-height: 28px !important; }
}
