/* One type scale for every page (roles come from inc/typography.php).
   Applies to page content, MaxiBlocks and core blocks alike. Colors set
   on dark sections are left alone. !important beats MaxiBlocks'
   per-block styles, which is where the old variation came from.

   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 */

.rhsa-page-container {
	--rhsa-cond: "Roboto Condensed", "Arial Narrow", sans-serif;
	--rhsa-sans: Arial, Helvetica, sans-serif;
	--rhsa-ink: rgb(18, 20, 9);
	--rhsa-body: rgb(110, 110, 110);
	--rhsa-red: rgb(196, 20, 22);
}

/* Headings, by tag */
.rhsa-page-container .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;
}
.rhsa-page-container .entry-content h1:not(.rec-programs *) { font-size: 56px !important; line-height: 64px !important; }
.rhsa-page-container .entry-content h2:not(.rec-programs *) { font-size: 40px !important; line-height: 48px !important; }
.rhsa-page-container .entry-content h3:not(.rec-programs *) { font-size: 28px !important; line-height: 36px !important; }
.rhsa-page-container .entry-content h4:not(.rec-programs *) { font-size: 22px !important; line-height: 30px !important; }
.rhsa-page-container .entry-content h5:not(.rec-programs *) { font-size: 20px !important; line-height: 28px !important; }
.rhsa-page-container .entry-content h6:not(.rec-programs *) { font-size: 18px !important; line-height: 26px !important; }

/* Running text: MaxiBlocks body role, core paragraphs and lists */
.rhsa-page-container .entry-content .rhsa-t-body > .maxi-text-block__content,
.rhsa-page-container .entry-content :is(p.wp-block-paragraph, .wp-block-list li):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;
}
.rhsa-page-container .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,
.rhsa-page-container .entry-content :is(p.wp-block-paragraph, .wp-block-list li):not(.has-text-color):not(.maxi-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). */
.rhsa-page-container .entry-content .rhsa-t-lead > .maxi-text-block__content,
.rhsa-page-container .entry-content .wp-block-maxi-blocks-text-maxi:has(> h1) + .wp-block-maxi-blocks-text-maxi > .maxi-text-block__content {
	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 */
.rhsa-page-container .entry-content .rhsa-t-subhead > .maxi-text-block__content {
	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. */
.rhsa-page-container .entry-content .rhsa-t-label > .maxi-text-block__content,
.rhsa-page-container .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) */
.rhsa-page-container .entry-content .maxi-text-block__content:has(> a[href*="/category/"]),
.rhsa-page-container .entry-content .maxi-text-block__content > a[href*="/category/"],
.rhsa-page-container .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;
}

/* Button labels (each button keeps its own colors and shape) */
.rhsa-page-container .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) {
	.rhsa-page-container .entry-content h1:not(.rec-programs *) { font-size: 40px !important; line-height: 46px !important; }
	.rhsa-page-container .entry-content h2:not(.rec-programs *) { font-size: 30px !important; line-height: 38px !important; }
	.rhsa-page-container .entry-content h3:not(.rec-programs *) { font-size: 24px !important; line-height: 32px !important; }
	.rhsa-page-container .entry-content h4:not(.rec-programs *) { font-size: 20px !important; line-height: 28px !important; }
	.rhsa-page-container .entry-content .rhsa-t-lead > .maxi-text-block__content,
	.rhsa-page-container .entry-content .wp-block-maxi-blocks-text-maxi:has(> h1) + .wp-block-maxi-blocks-text-maxi > .maxi-text-block__content { font-size: 18px !important; line-height: 28px !important; }
}
