/* WordPress block-theme adapter layered over the theme's shared site styles. */

/* Internal links use the theme's persistent-header navigator. Disable the
 * browser's cross-document transition so it cannot snapshot, clear, or
 * reconstruct the shared header during a normal page change. */
@view-transition { navigation: none; }

.site-header::before { content: ''; position: absolute; z-index: 5; left: 0; bottom: -2px; width: 0; height: 3px; background: var(--green-400); opacity: 0; pointer-events: none; transition: opacity var(--duration-fast) ease; }
.is-ajax-navigating .site-header::before { width: 78%; opacity: 1; animation: rrbr-navigation-progress 1100ms var(--ease-emphasized) both; }
.is-ajax-navigating { cursor: progress; }
.is-ajax-navigating .site-header { cursor: default; }
html.rrbr-instant-scroll,
html.rrbr-instant-scroll body { scroll-behavior: auto !important; overflow-anchor: none; }
@keyframes rrbr-navigation-progress {
	0% { width: 0; opacity: 0; }
	12% { opacity: 1; }
	100% { width: 78%; opacity: 1; }
}

/* Present the design-authored Reports introduction and publication carousel
 * as one continuous section. */
.data-combined-page > .combined-reports-intro {
	padding: clamp(3.5rem, 6vw, 5rem) 0 1.75rem;
	background: #e4f0cd;
}
.data-combined-page > .rrbr-publications {
	padding-top: 3rem;
}
.data-combined-page > .rrbr-publications > .rrbr-block-heading {
	/* Keep the section heading in the accessibility tree on the standalone
	 * Reports route, without reintroducing the removed duplicate visual title. */
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.data-combined-page:has(.combined-reports-intro) > .rrbr-publications > .rrbr-block-heading {
	display: none;
}

/* The interactive locality block owns the single Regional Data heading and
 * the exact supporting sentence from the current design. */

/* Keep the dynamic dashboard block on the same content grid as the static
 * Data & Impact sections. WordPress's alignwide rule otherwise expands this
 * block to the post-content gutter and visibly shifts its heading, tabs, and
 * Tableau panel left of the hero and overview copy. */
.data-combined-page > .rrbr-dashboard-explorer {
	width: min(calc(100% - 2rem), var(--container));
	max-width: var(--container);
	margin-inline: auto !important;
}
@media (min-width: 1025px) {
	/* Figma 4566:13349: the overview begins 119px below the hero and the
	 * dashboard introduction occupies the full 1152px content column. */
	.data-combined-page > .combined-data-overview { padding-top: 119px; }
	.data-combined-page > .rrbr-dashboard-explorer > .rrbr-block-heading { max-width: none; }
}
/* The main contains the shared mountain scene while the footer is persistent.
 * Translating/fading that ancestor separates their seam and flashes the art.
 * Keep the lifecycle event, but leave this structural wrapper fully painted. */
.rrbr-main.rrbr-page-enter { animation: rrbr-page-settle var(--duration-base) linear both; }
@keyframes rrbr-page-settle { from { opacity: 1; transform: none; } to { opacity: 1; transform: none; } }
.rrbr-main:focus { outline: none; }

/* Preserve authored emphasis consistently across native blocks, imported
 * WordPress content, and the structured rich-text segments in RRBR Core. */
:where(.rrbr-main,.site-header,.site-footer,.rrbr-consent-dialog,.rrbr-cookie-banner) :is(strong,b) {
	font-weight: 700;
}

:where(.wp-site-blocks) { overflow: clip; }
.wp-site-blocks > * { margin-block-start: 0; }
.rrbr-main { z-index: auto; min-height: 40vh; }
/* Keep the decorative scene, final-section content, and footer surface in the
 * same page-level stacking context. Isolating either footer wrapper makes the
 * entire footer paint as one later sibling, which can place mountains above a
 * locally higher-z-index button or link in the preceding section. */
footer.wp-block-template-part,
.site-footer { position: relative; z-index: auto; isolation: auto; overflow: visible; }
.rrbr-footer-transition-host { position: relative !important; isolation: isolate; overflow: visible !important; }
.rrbr-footer-transition-content { z-index: 2; }
.rrbr-footer-transition-content-static { position: relative; }
.footer-art-placeholder { height: 279px; background: transparent; pointer-events: none; }
.footer-mountain-scene {
	z-index: 1;
	isolation: isolate;
	background-color: var(--rrbr-footer-transition-background-color, transparent);
	background-image: var(--rrbr-footer-transition-background-image, none);
}
.footer-mountain-scene.is-mounted-footer-transition {
	position: absolute;
	top: 100%;
	left: 50%;
	width: calc(100vw + 4px);
	height: var(--rrbr-footer-transition-height, 279px);
	transform: translateX(-50%);
}

/* The transition scene itself inherits the final section surface.  Do not
 * extend an opaque background above the scene: the final section already
 * paints that area, and an extended footer pseudo-element would cover its
 * copy/cards even though the decorative SVG layers are pointer-free. */
.footer-mountain-scene::before { content: none; }

/* A post-only related-news block is a top-level page tail. If an older open
 * tab is still running a pre-tail-sync navigation script, never allow that
 * block to remain visible after the body has changed to a non-post template. */
body:not(.single-post) .wp-site-blocks > .wp-block-rrbr-news-carousel {
	display: none !important;
}
.rrbr-main > .wp-block-post-content { margin: 0; }
.rrbr-main > .wp-block-post-content > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.rrbr-main > .wp-block-post-content > .region-section { margin-top: -73px !important; }
.rrbr-main > .wp-block-post-content > .news-carousel { margin-top: 46px !important; }
.news-carousel > .shell {
	position: relative;
	z-index: 2;
}
.rrbr-main > .wp-block-post-content > .about-page > .wave-blue { margin-top: -73px !important; }
.rrbr-main > .wp-block-post-content > .rail-help-wave { margin-top: -73px !important; }
.rrbr-main > .wp-block-post-content > .help-block { margin-top: -25px !important; }
.initiative-page > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.rrbr-main > .wp-block-post-content > :first-child { margin-block-start: 0; }
.rrbr-main > .wp-block-post-content > :last-child { margin-block-end: 0; }
.alignfull { width: 100%; max-width: none; }
.alignwide { width: min(calc(100% - 2rem), var(--container-wide)); margin-inline: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { z-index: 100000; display: block; top: 8px; left: 8px; width: auto; height: auto; padding: .75rem 1rem; clip: auto; background: var(--white); color: var(--blue-900); }
.skip-link { position: fixed; z-index: 100001; top: .5rem; left: .5rem; padding: .75rem 1rem; border-radius: var(--radius-sm); background: var(--white); color: var(--blue-900); font-weight: 700; transform: translateY(-150%); transition: transform var(--duration-fast) ease; }
.skip-link:focus { transform: none; }

/* Header and native Navigation blocks. */
.site-header { position: relative; z-index: 100; height: var(--header-height); margin: 0; }
.site-header .wp-block-group { margin-block: 0; }
.utility-bar { height: var(--header-utility-height); padding: 0; background: var(--blue-800); color: var(--white); }
.utility-bar .utility-inner { width: min(calc(100% - 2rem), var(--container-wide)); }
.utility-bar .audience-nav button { color: var(--white); }
.utility-bar .audience-nav img.icon-chevron { filter: none; }
.utility-label { margin: 0; color: var(--blue-700); font-size: var(--text-sm); font-weight: 700; }
.utility-nav { margin-left: auto; }
.site-header .utility-nav .wp-block-navigation-item__content { padding: .5rem .65rem; color: var(--blue-900) !important; font-size: var(--text-sm); text-decoration: none; }
.utility-nav .wp-block-navigation__submenu-container,
.primary-nav .wp-block-navigation__submenu-container { min-width: 245px !important; padding: .5rem !important; border: 1px solid var(--blue-300) !important; border-radius: var(--radius-sm); background: var(--white) !important; box-shadow: var(--shadow-dropdown); }
.utility-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { width: 100%; padding: .7rem .75rem; color: var(--blue-900) !important; }
.utility-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--blue-100); }
.header-socials { display: flex; justify-content: space-between; gap: 0; width: 94px; margin-left: 0; }
.header-socials a,
.footer-socials a { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; }
.header-socials img,
.footer-socials img { width: 15px; height: 15px; }
.header-socials img { filter: brightness(0) invert(1); }
.social-icon-links.mobile-nav-socials > a:is(:hover, :focus-visible) img {
	filter: brightness(0) invert(1);
	opacity: 1;
}
.social-icon-links.mobile-nav-socials > a img,
.social-icon-links.mobile-nav-socials > a:is(:hover, :focus-visible, :active) img {
	transform: none;
	transition: filter var(--duration-fast) var(--ease-standard);
}
/* Align the visible glyph span, not just its padded hit-area wrapper, to the logo. */
.social-icon-links.header-socials > a:first-of-type { justify-items: start; }
.social-icon-links.header-socials > a:last-of-type { justify-items: end; }
.primary-bar { min-height: var(--header-primary-height); padding: 0; background: var(--blue-700); }
.primary-bar .primary-inner { width: min(calc(100% - 2rem), var(--container-wide)); gap: 1.25rem; }
.brand { flex: 0 0 auto; width: 94px; height: 70px; }
.brand img { width: 100%; height: 100%; object-fit: contain; }
.primary-nav { margin-left: auto; }
.primary-nav .wp-block-navigation__container { gap: clamp(.8rem,2.2vw,2.2rem); }
.site-header .primary-nav .wp-block-navigation-item__content { position: relative; padding: .6rem 0; color: var(--white) !important; font-size: var(--text-sm); font-weight: 600; text-decoration: none; white-space: nowrap; }
.primary-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 2px; height: 2px; background: currentColor; transition: right var(--duration-fast) var(--ease-standard); }
.primary-nav > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.primary-nav > .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after { right: 0; }
.site-header .primary-nav .wp-block-navigation__submenu-icon,
.site-header .primary-nav .wp-block-navigation__responsive-container-open,
.site-header .primary-nav .wp-block-navigation__responsive-container-close { color: var(--white) !important; }
.site-header .primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: var(--blue-900) !important; }
.header-search { position: relative; flex: 0 0 auto; width: 40px; }
.header-search .wp-block-search__inside-wrapper { padding: 0; border: 0; }
.header-search .wp-block-search__input { position: absolute; z-index: 4; top: calc(100% + 1rem); right: 0; width: min(360px,calc(100vw - 2rem)); min-height: 48px; padding: .75rem 3.25rem .75rem 1rem; border: 1px solid var(--blue-300); border-radius: var(--radius-pill); background: var(--white); box-shadow: var(--shadow-panel); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity var(--duration-fast), transform var(--duration-base), visibility 0s linear var(--duration-fast); }
.header-search:focus-within .wp-block-search__input { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.header-search .wp-block-search__button { position: relative; z-index: 5; width: 40px; height: 40px; margin: 0; padding: .6rem; border: 0; background: transparent; color: var(--white); }

/* Gutenberg content primitives. */
.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: auto;
	max-width: 100%;
	min-height: var(--control-height);
	padding: 1rem 1.5rem;
	border: var(--control-border-width) solid var(--color-action);
	border-radius: var(--radius-pill);
	background: var(--color-action);
	color: var(--white);
	font-size: var(--text-sm);
	font-weight: 600;
	letter-spacing: 1px;
	text-decoration: none;
	text-transform: uppercase;
	line-height: 1.25;
	text-align: center;
	white-space: normal;
	overflow-wrap: break-word;
	transition: transform var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast), background var(--duration-fast), color var(--duration-fast);
}
.wp-block-buttons,
.wp-block-button { max-width: 100%; }
.wp-element-button:hover,
.wp-block-button__link:hover { border-color: var(--blue-800); background: var(--blue-800); color: var(--white); transform: none; box-shadow: none; }
.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible { outline: 2px solid var(--blue-800); outline-offset: 3px; transform: none; box-shadow: none; }
.wp-element-button:active,
.wp-block-button__link:active { background: var(--blue-900); border-color: var(--blue-900); color: var(--white); transform: none; box-shadow: none; }
.wp-block-image img { display: block; width: 100%; }
.wp-block-details { border-top: 1px solid var(--blue-300); padding: 0; }
.wp-block-details:last-child { border-bottom: 1px solid var(--blue-300); }
.wp-block-details summary { padding: 1.25rem 2.75rem 1.25rem 0; color: var(--blue-700); font-size: var(--text-lg); font-weight: 700; cursor: pointer; }
.wp-block-details > :not(summary) { margin-inline: 0; }
.wp-block-details[open] { padding-bottom: 1.5rem; }
.rrbr-section { padding-block: var(--space-8); }
.rrbr-section.is-blue { background: var(--blue-100); }
.rrbr-section.is-green { background: var(--green-200); }
.rrbr-section.is-orange { background: var(--orange-100); }
.compact-hero { height: 302px; min-height: 302px; padding: 0; background: linear-gradient(180deg,var(--blue-100),var(--blue-300)); display: grid; align-items: center; }
.compact-hero > * { width: min(calc(100% - 2rem),var(--container)); max-width: var(--container); margin-inline: auto; }
.compact-hero h1 { color: var(--blue-700); }
.about-page .compact-hero,
.news-index-hero { background: linear-gradient(180deg,var(--green-100),var(--green-300)); }
.support-page .compact-hero { background: linear-gradient(180deg,var(--orange-100),var(--orange-300)); }

/* Figma hero geometry. The desktop interior-photo component deliberately uses
 * a 598px color field inside a 647px hero so its 528px image lands on white. */
@media (min-width: 1025px) {
	.compact-hero,
	.combined-data-hero { position: relative; display: block; }
	.compact-hero > .shell,
	.combined-data-hero > .shell { position: relative; height: 302px; padding: 0; }
	.compact-hero h1,
	.combined-data-hero h1 { position: absolute; top: 120px; left: 0; width: 583px; margin: 0; font-size: 50px; font-weight: 600; line-height: 1.24; }
	.compact-hero p,
	.combined-data-hero p { position: absolute; top: 200px; left: 0; width: 100%; max-width: none; margin: 0; font-size: 24px; font-weight: 400; line-height: 1.35; }

	.home-hero-media > img { position: absolute; top: -51.83%; left: -4.39%; width: 131.11%; height: 199.38%; max-width: none; object-fit: cover; }
	.home-hero h1 { line-height: 1.215; }

	.initiative-page {
		--initiative-hero-image-top: 0;
		--initiative-hero-image-left: 0;
		--initiative-hero-image-width: 100%;
		--initiative-hero-image-height: 100%;
	}
	.building-relationships-page { --initiative-hero-image-left: -18.59%; --initiative-hero-image-width: 180.87%; }
	.engaging-families-page { --initiative-hero-image-left: -48.28%; --initiative-hero-image-width: 180.79%; }
	.increasing-access-page { --initiative-hero-image-top: -17.78%; --initiative-hero-image-left: -11.2%; --initiative-hero-image-width: 113.93%; --initiative-hero-image-height: 141.73%; }

	.interior-hero { position: relative; height: auto; min-height: 647px; padding: 0; overflow: visible; isolation: isolate; background: var(--white); }
	/* The prototype stylesheet supplies route-tone backgrounds directly on the
	 * hero.  The WordPress composition paints that surface with this pseudo-
	 * element instead, so explicitly neutralize the earlier background.  The
	 * authored color field ends at 598px while the 528px media surface begins at
	 * 119px, leaving the image to overlap the final 49px of the white hero. */
	.interior-hero.tone-green-gradient,
	.interior-hero.tone-orange-gradient,
	.interior-hero.tone-blue-gradient { background: var(--white); }
	.interior-hero::before { content: ''; position: absolute; z-index: 0; inset: 0 0 49px; background: linear-gradient(180deg,var(--green-100),var(--green-300)); }
	.interior-hero.tone-orange-gradient::before { background: linear-gradient(180deg,var(--orange-100),var(--orange-300)); }
	.interior-hero.tone-blue-gradient::before { background: linear-gradient(180deg,var(--blue-100),var(--blue-300)); }
	.interior-hero-grid { position: relative; z-index: 1; min-height: 647px; align-items: start; }
	.interior-hero-grid > div:first-child { position: relative; min-width: 0; min-height: 598px; padding-block: 165px 74px; }
	.interior-hero h1 { margin: 0 0 18px; font-size: 50px; font-weight: 600; line-height: 1.24; }
	.interior-hero p { max-width: 583px; margin: 0; font-size: 24px; font-weight: 400; line-height: 1.35; }
	/* Keep navigation in flow when the heading or introduction wraps. The
	 * image still ends 49px below the color field as the hero grows. */
	.interior-hero .hero-navigation { position: static; width: min(600px, 100%); margin-top: 40px; }
	.interior-hero .hero-links { grid-template-columns: minmax(0, 285px) minmax(0, 1fr); gap: 0 30px; margin: 0; }
	.interior-hero .hero-links > div { gap: 22px; }
	.interior-hero .hero-links a { font-size: 16px; line-height: 1.35; }
	.interior-hero-media { width: 438px; height: 528px; margin-top: 119px; align-self: end; }
	.interior-hero-media > img { position: absolute; top: var(--initiative-hero-image-top); left: var(--initiative-hero-image-left); width: var(--initiative-hero-image-width); height: var(--initiative-hero-image-height); max-width: none; object-fit: cover; }
}
@media (max-width: 1024px) {
  .compact-hero { height: auto; min-height: 0; padding-block: 64px; }
}
@media (max-width: 540px) {
  .compact-hero { padding: 58px 7px; }
  .compact-hero > * { width: calc(100% - 64px); }
}
.feature.wp-block-group { width: min(calc(100% - 2rem),var(--container)); gap: clamp(2rem,7vw,7rem); padding-block: var(--space-8); }
.feature.wp-block-group > * { min-width: 0; }
.feature .wp-block-image { margin: 0; }
.feature .wp-block-image img { min-height: 360px; object-fit: cover; }
.about-feature .image-surface > img { object-position: 66% center; }
.article-image.image-surface { border-radius: var(--radius); }
.article-image.image-surface > img { object-position: center 19.2%; }
.article-inline-image { border-radius: var(--radius); }

/* Initiative pages use the source frame's fixed 1152px feature composition.
 * Gutenberg's generic Feature block is deliberately broader, so keep these
 * rules scoped to the initiative template rather than changing every feature
 * on the site. */
.initiative-page .feature.initiative-feature.wp-block-group {
	display: grid;
	grid-template-columns: minmax(0,645px) minmax(0,432px);
	align-items: center;
	gap: var(--rrbr-feature-column-gap, 74px);
	width: min(calc(100% - 2rem),var(--container));
	min-height: 342px;
	padding: 0;
}
.initiative-page .feature.initiative-feature.media-left { grid-template-columns: minmax(0,432px) minmax(0,645px); }
.initiative-page .feature.initiative-feature.media-left .initiative-feature-copy { grid-column: 2; grid-row: 1; }
.initiative-page .feature.initiative-feature.media-left .initiative-media { grid-column: 1; grid-row: 1; }
.initiative-page .feature.initiative-feature.media-right .initiative-feature-copy { grid-column: 1; grid-row: 1; }
.initiative-page .feature.initiative-feature.media-right .initiative-media { grid-column: 2; grid-row: 1; }
.initiative-page .feature.initiative-feature.no-media { display: block; min-height: 0; }
.initiative-page .initiative-feature-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--rrbr-feature-copy-gap, 24px);
}
.initiative-page .initiative-feature-copy > * { margin-block: 0; }
.initiative-page #shared-governance .initiative-feature-copy,
.initiative-page #coordinated-enrollment .initiative-feature-copy { gap: 30px; }
.initiative-page #coordinated-enrollment .initiative-feature-copy > p {
	font-size: 24px;
	font-weight: 400;
	line-height: 1.35;
}
.initiative-page .initiative-media.wp-block-image {
	position: relative;
	width: 432px;
	height: 342px;
	margin: 0;
	overflow: hidden;
	border-radius: var(--radius);
}
.initiative-page .initiative-media.wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	max-width: none;
	object-fit: cover;
}
.initiative-page #shared-governance .feature.initiative-feature.wp-block-group {
	grid-template-columns: minmax(0,573px) minmax(0,456px);
	gap: 123px;
	min-height: 573px;
}
.initiative-page #shared-governance .initiative-media.wp-block-image { width: 573px; height: 573px; }
.initiative-page .section-heading.wp-block-group > :last-child { margin-bottom: 0; }
.initiative-page .section-heading > h2 { margin-top: 0; }
.initiative-page .section-heading > p { font-weight: 400; }
.initiative-page .article-columns.wp-block-columns { margin-inline: 0; }
.initiative-page .article-columns > .wp-block-column { min-width: 0; }
.initiative-page .partner-column.wp-block-group { display: grid; align-content: start; }
.initiative-page .partner-column > p { margin: 0; }
.staff-grid article h4,
.staff-grid .staff-group-heading { font-weight: 700; }
.initiative-page .initiative-subsection > h3 {
	margin: 0 0 12px;
	font-size: 16px;
	line-height: 1.35;
}
/* VQB5 column titles share the approved Quality Profiles / VDOE hierarchy. */
.initiative-page #vqb5 .article-columns .initiative-subsection {
	padding-top: 16px;
}
.initiative-page #vqb5 .article-columns h3 {
	color: var(--blue-700);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
}

/* Initiative surface system
 *
 * The initiative frames use three exact section fills.  Keep those colors
 * local to this template so similarly named utility tones elsewhere on the
 * site are not unintentionally changed.  Each wave reads the same custom
 * property as its section; this removes filter approximations and the faint
 * seams they created where curved and rectangular surfaces meet. */
.initiative-page {
	--initiative-blue-soft: #e6f3ff;
	--initiative-green-soft: #e0edcd;
	--initiative-orange-soft: #ffdeb3;
	--initiative-panel: #f0efef;
	--initiative-card-border: #d0cfcf;
}
.initiative-page .tone-blue-soft {
	--initiative-surface: var(--initiative-blue-soft);
	background-color: var(--initiative-surface);
}
.initiative-page .tone-green-soft {
	--initiative-surface: var(--initiative-green-soft);
	background-color: var(--initiative-surface);
}
.initiative-page .tone-orange-soft {
	--initiative-surface: var(--initiative-orange-soft);
	background-color: var(--initiative-surface);
}
.initiative-page .has-wave-before::before,
.initiative-page .has-wave-after::after,
.initiative-page #vqb5::before {
	background-color: var(--initiative-surface, var(--white));
	background-image: none;
	filter: none;
	-webkit-mask: url('../images/shared/wave-2.svg') center / 100% 100% no-repeat;
	mask: url('../images/shared/wave-2.svg') center / 100% 100% no-repeat;
}

/* Figma uses flat gray information panels on white sections, and white panels
 * on tinted bands.  Their aligned 1px edges are intentional; the former
 * blue-tinted borders and drop shadows made the blocks look offset. */
.initiative-page .check-panel,
.initiative-page .process-panel {
	border: 0;
	background: var(--initiative-panel);
	box-shadow: none;
}
.initiative-page :is(.tone-blue-soft,.tone-green-soft,.tone-orange-soft) :is(.check-panel,.process-panel) {
	background: var(--white);
}
.engaging-families-page #family-council .check-grid > .check-group {
	margin-block-start: 0 !important;
}
.initiative-page .metric-row > div {
	border-width: 1px;
	border-color: var(--blue-700);
	box-shadow: none;
}
.initiative-page .resource-tiles article,
.initiative-page .initiative-resource-group,
.initiative-page .initiative-resource-group-items article {
	border-color: var(--initiative-card-border);
	box-shadow: none;
}

/* Native Details blocks are styled as the authored accordion cards. Static
 * source rows retain the same 84px card geometry without pretending to open. */
.initiative-page .accordion.wp-block-group { display: grid; }
.initiative-page .accordion-item {
	--rrbr-accordion-inline-space: 44px;
	width: 100%;
	margin: 0;
	border: 1px solid var(--blue-700);
	border-radius: var(--radius);
	background: var(--white);
	overflow: hidden;
}
.initiative-page details.accordion-item > summary {
	list-style: none;
	cursor: pointer;
}
.initiative-page details.accordion-item > summary::-webkit-details-marker { display: none; }
.initiative-page details.accordion-item { padding: 0 !important; }
.initiative-page details.accordion-item:not([open]) {
	height: auto !important;
	min-height: 0 !important;
}
.initiative-page .accordion-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 84px;
	gap: 24px;
	padding-inline: var(--rrbr-accordion-inline-space);
}
.initiative-page .accordion-label > h3,
.initiative-page .accordion-label > span:first-child {
	margin: 0;
	color: var(--blue-700);
	font-size: var(--text-lg);
	font-weight: 700;
	line-height: 1.35;
}
.initiative-page .accordion-item.has-segmented-title .accordion-label > h3 { font-weight: 400; }
.initiative-page .accordion-item.has-segmented-title .accordion-label > h3 strong { font-weight: 700; }
.initiative-page .accordion-static { min-height: 84px; }
.initiative-page .accordion-static > .accordion-label { width: 100%; }
.initiative-page details.accordion-item[open],
.initiative-page details.accordion-item[open]:hover,
.initiative-page .accordion-item.is-open {
	border-color: var(--blue-700);
	box-shadow: none;
}
/* Accordion hover and state glyphs are owned by final.css. */
.initiative-page .accordion-panel {
	border-top: 1px solid var(--blue-300);
	padding-top: 16px;
	padding-inline: var(--rrbr-accordion-inline-space);
}
/* The native summary and its content must share an inset at every breakpoint.
 * Explicit ownership prevents core Details padding from winning on tablets. */
@media (min-width: 801px) {
	.initiative-page .accordion-item { --rrbr-accordion-inline-space: 32px; }
}
@media (max-width: 680px) {
	.initiative-page .accordion-item { --rrbr-accordion-inline-space: 20px; }
}
.initiative-page .accordion-panel,
.initiative-page .accordion-panel > :not(.accordion-action),
.initiative-page .accordion-panel .initiative-group > * { margin-block-start: 0 !important; }
.initiative-page .accordion-panel > :first-child { margin-top: 0; }
.initiative-page .accordion-panel > :last-child { margin-bottom: 0; }
.increasing-access-page details:has(.mixed-delivery-provider-grid) .accordion-panel {
	padding-top: 24px;
}
.increasing-access-page .mixed-delivery-provider {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.increasing-access-page .mixed-delivery-provider h4 {
	margin: 0 0 6px !important;
	font-weight: 700;
}
.increasing-access-page #mixed-delivery-providers .accordion-panel .initiative-group > h4 {
	font-weight: 700;
}

/* This authored panel gained a full-width WordPress button, making the former
 * 300px Figma placeholder height shorter than its real content. Let the native
 * Details block determine its height so the final action remains inside the
 * panel's bottom padding and border at every content size. */
.increasing-access-page #coordinated-enrollment-families .accordion-item:first-child {
	height: auto;
	min-height: 0;
}

.initiative-page .check-group.wp-block-group { display: grid; align-content: start; }
.initiative-page .check-group > p { margin: 0; }
.initiative-page .check-footer { text-align: center; }
.strengthening-quality-page #high-quality-curricula .check-footer { max-width: none; text-align: left; }
.callout.wp-block-group {
	display: grid;
	height: auto;
	min-height: 123px;
	grid-template-columns: 332px minmax(0,1fr);
	align-items: center;
	justify-content: normal;
	gap: var(--rrbr-callout-column-gap, 27px);
	padding: var(--rrbr-callout-padding, 35px 43px 34px 56px);
	background: var(--orange-400);
	box-shadow: none;
}
.callout > strong,
.callout > .callout-heading {
	margin: 0;
	color: var(--black);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.35;
}
.callout > .wp-block-group,
.callout > .wp-block-group > p { margin: 0; }
.callout > .wp-block-group {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.35;
}
.callout > .wp-block-group > p,
.callout .callout-action { display: inline; }
.callout .callout-action { min-height: 0; margin: 0 0 0 .25em; }
.callout.wp-block-group :is(a, .callout-action):not(.button):not(.wp-block-button__link) {
	color: var(--wp--preset--color--gray-800, #272727);
	text-decoration: underline;
	text-underline-offset: .15em;
}
.callout.wp-block-group :is(a, .callout-action):not(.button):not(.wp-block-button__link):is(:hover, :focus-visible) {
	color: #000;
	text-decoration-thickness: 2px;
}

/* The initiative frames specify the no-background carousel variant. */
.initiative-page .initiative-news-carousel {
	background: var(--white);
	overflow-x: clip;
	overflow-y: visible;
}
.initiative-page .initiative-news-carousel::before,
.initiative-page .initiative-news-carousel::after { content: none; }
.initiative-page .initiative-news-carousel .carousel-heading { margin-top: 0; }
.initiative-page .initiative-news-carousel .news-card { background: var(--gray-6); }

/* Carousel tracks deliberately clip vertical overflow so they never acquire a
 * nested page-breaking scrollbar.  The shared card reveal normally enters
 * from 26px below, which places the bottom of these full-height cards outside
 * that clip while they animate.  Keep the soft scale/fade here, but remove the
 * vertical component so every title and card edge remains visible throughout
 * the reveal. */
.has-motion .initiative-page .initiative-news-carousel .motion-card {
	transform: scale(.975);
	transform-origin: 50% 50%;
}

.has-motion .initiative-page .initiative-news-carousel .motion-card.is-visible {
	transform: none;
}

@media (min-width: 1025px) {
	/* Gutenberg flow layout adds a default block gap between sibling blocks.
	 * These sections already encode their spacing in the Figma-derived
	 * component paddings, so remove the duplicate gap. */
	.initiative-page .initiative-detail > .feature + .metric-band,
	.initiative-page .initiative-detail > .metric-band + .initiative-detail-body,
	.initiative-page .initiative-detail > .feature + .initiative-detail-body { margin-block-start: 0 !important; }
	.initiative-page .check-panel > .check-grid { margin-block-start: 0 !important; }

	/* Strengthening Quality: reconcile the continuous VQB5 band and the two
	 * curved feature boundaries to the source frame's exact vertical anchors. */
	.initiative-page .accordion-static > .accordion-label { min-height: 82px; }
	.strengthening-quality-page #vqb5-important-dates { padding-top: 0; padding-bottom: 67px; }
	.strengthening-quality-page #military-childcare-programs { padding-top: 0; padding-bottom: 143px; }
	.strengthening-quality-page #high-quality-curricula.has-wave-before { padding-top: 192px; }
	.strengthening-quality-page #high-quality-curricula .initiative-detail-body { padding-bottom: 163px; }
	.strengthening-quality-page #infant-toddler-support .initiative-detail-body { padding-bottom: 83px; }
	.building-relationships-page #vbree .initiative-detail-body { padding-bottom: 118px; }
	:is(.building-relationships-page,.engaging-families-page) #get-involved .accordion-panel { padding-bottom: 14px; }
	.building-relationships-page #get-involved { padding-bottom: 203px; }
	/* Let every checklist item participate in the same grid. WordPress's flow
	 * layout otherwise adds a top margin to the second and third column
	 * wrappers, leaving their checkmarks one row lower than column one. */
	.engaging-families-page #family-council .check-grid > .check-group { display: contents; }
	.engaging-families-page #family-council .check-grid p { margin-block: 0 !important; }
	.engaging-families-page #family-council .initiative-detail-body > .check-panel:nth-child(2) .check-grid {
		grid-template-rows: repeat(2, auto);
		grid-auto-flow: column;
		align-items: start;
	}
	.engaging-families-page #family-council .initiative-detail-body { padding-bottom: 129px; }
	.engaging-families-page #get-involved { padding-bottom: 169px; }
	.initiative-page > .initiative-news-carousel { margin-bottom: 13px !important; }

	.increasing-access-page #mixed-delivery-families { padding-bottom: 71px; }
	.increasing-access-page #mixed-delivery-providers { padding-bottom: 132px; }
	/* The preceding 73px wave overlaps this section. Add it to the requested
	 * 90px visible clearance so the title begins 90px below the wave edge. */
	.increasing-access-page #coordinated-enrollment { padding-top: 163px; }
	.increasing-access-page #coordinated-enrollment-families { padding-bottom: 69px; }
	.increasing-access-page #coordinated-enrollment-providers { padding-bottom: 75px; }
	.increasing-access-page #coordinated-enrollment-providers .accordion-panel { padding-bottom: 15px; }
	.increasing-access-page #coordinated-enrollment-providers .callout-grid { margin-top: 32px; }
	.increasing-access-page #coordinated-enrollment-providers .callout-grid > .callout { margin-block-start: 0 !important; }
	/* Homepage: use the current desktop frame's section anchors rather than
	 * allowing generic feature padding to accumulate 114px of drift. */
	.rrbr-home .resources-feature {
		height: 742px;
		min-height: 742px;
		padding-top: 49px;
		padding-bottom: 120px;
	}
	.rrbr-home .news-carousel {
		height: 876px;
		min-height: 876px;
	}
	.rrbr-home .stay-connected {
		height: 635px;
		min-height: 635px;
	}
	.rrbr-home .support-feature {
		height: 658px;
		min-height: 658px;
		padding-top: 0;
		padding-bottom: 85px;
	}

	/* Consolidated Data & Impact: WordPress's block wrappers have their own
	 * default padding and sibling gaps. Reconcile the actual dynamic-block
	 * classes to the post-KPI Figma composition without fixing the total page. */
	.data-combined-page > * { margin-block: 0 !important; }
	.data-combined-page > .rrbr-dashboard-explorer {
		box-sizing: border-box;
		height: 1295px;
		padding: 64px 0 79px;
	}
	.data-combined-page .rrbr-block-heading h2 {
		margin: 0 0 8px;
		color: var(--blue-700);
		font-size: 24px;
		font-weight: 700;
		line-height: 1.2;
	}
	.data-combined-page .rrbr-block-heading p {
		margin: 0;
		font-size: 16px;
		line-height: 1.35;
	}
	.data-combined-page > .rrbr-publications {
		box-sizing: border-box;
		height: 714px;
		padding: 48px 0 131px;
	}
	.data-combined-page > .rrbr-publications > .rrbr-block-heading {
		margin-bottom: 109px;
	}
	.data-combined-page .rrbr-publication-card {
		flex-basis: 268px;
		width: 268px;
		height: 535px;
		min-height: 535px;
		padding: 39px 40px 30px;
		border-radius: var(--radius);
		box-shadow: none;
	}
	/* A publication with no cover renders .rrbr-publication-placeholder instead
	 * of .rrbr-publication-cover, so it was missing this fixed cover box and
	 * kept a full-width 4/3 block hard against the category badge. */
	.data-combined-page .rrbr-publication-cover,
	.data-combined-page .rrbr-publication-placeholder {
		width: 187px;
		height: 242px;
		margin: 0 auto 29px;
		aspect-ratio: auto;
		border: 1px solid var(--gray-3);
	}
	.data-combined-page .rrbr-publication-copy { padding: 0; }
	.data-combined-page > .rrbr-locality-section {
		box-sizing: border-box;
		grid-template-columns: 578px 524px;
		gap: 50px;
		width: 1152px;
		height: 933px;
		padding: 44px 0 109px;
	}
	.data-combined-page > .rrbr-locality-section > .rrbr-locality-copy {
		padding-top: 0;
	}
	.data-combined-page .rrbr-locality-list { columns: 1; }
	.data-combined-page .rrbr-region-map {
		align-self: start;
		width: 524px;
		max-width: 524px;
		height: 780px;
		padding: 0;
		border-radius: 0;
	}
	.data-combined-page .rrbr-locality-map-svg {
		width: 524px;
		height: 780px;
	}
	.data-combined-page > .data-help-wave {
		margin-bottom: 0 !important;
	}
}

/* Homepage data cards keep their subtle lift without a competing color wipe. */
.region-section-summary .stats > div {
	position: relative;
	min-height: 188px;
	padding: 24px;
	border: 1px solid var(--blue-700);
	border-radius: var(--radius);
	background: rgba(255,255,255,.58);
	box-shadow: 0 8px 20px rgba(9,53,99,.06);
	transition: transform 420ms var(--ease-emphasized), box-shadow 420ms var(--ease-standard);
}
.region-section-summary .stats > div::before {
	content: none;
}
.region-section-summary .stats > div > * {
	position: relative;
	z-index: 1;
}
.region-section-summary .stats > div:hover {
	box-shadow: 0 18px 34px rgba(9,53,99,.18);
	transform: translateY(-5px);
}
.rrbr-home .news-card:hover .image-surface img,
.rrbr-home .news-card:hover .news-card-image img { transform: none; }

@media (max-width: 540px) {
	.region-section-summary .stats > div { min-height: 184px; padding: 22px; }
}

@media (prefers-reduced-motion: reduce) {
	.region-section-summary .stats > div,
	.region-section-summary .stats > div::before,
	.region-section-summary .stats > div > * { transition: none; }
	.region-section-summary .stats > div:hover { transform: none; }
}
.help-block.wp-block-group { padding: 5rem max(1rem,calc((100% - var(--container)) / 2)); }

#class-observers { scroll-margin-top: calc(var(--header-height) + 24px); }

/* Archive and editorial layouts. */
.rrbr-archive,
.rrbr-news-index,
.rrbr-search-results,
.rrbr-article,
.rrbr-not-found { padding-block: var(--space-8); }
.rrbr-news-index > .compact-hero { width: 100vw; max-width: none; margin-top: calc(-1 * var(--space-8)); margin-left: calc(50% - 50vw); margin-bottom: var(--space-8); }
.rrbr-archive .wp-block-post-template,
.rrbr-news-index .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 2rem;
	padding: 0;
}
.rrbr-news-index { padding-bottom: 92px; }
.rrbr-news-index .wp-block-query-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	min-height: 30px;
	margin-top: 70px;
}
.rrbr-news-index .wp-block-query-pagination-numbers {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 0;
}
.rrbr-news-index .wp-block-query-pagination .page-numbers,
.rrbr-news-index .wp-block-query-pagination-previous,
.rrbr-news-index .wp-block-query-pagination-next,
.rrbr-news-index .wp-block-query-pagination::before,
.rrbr-news-index .wp-block-query-pagination::after {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	min-width: 30px;
	padding: 0;
	border: 0;
	border-radius: 2px;
	background: transparent;
	color: var(--blue-700);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
}
.rrbr-news-index .wp-block-query-pagination-previous,
.rrbr-news-index .wp-block-query-pagination-next { font-size: 0; }
.rrbr-news-index .wp-block-query-pagination .page-numbers:not(.dots) {
	border: 1px solid var(--blue-700);
	border-radius: 50%;
}
.rrbr-news-index .wp-block-query-pagination-previous::before,
.rrbr-news-index .wp-block-query-pagination-next::before { font-size: 16px; }
.rrbr-news-index .wp-block-query-pagination-previous::before { content: "←"; }
.rrbr-news-index .wp-block-query-pagination-next::before { content: "→"; }
.rrbr-news-index .wp-block-query-pagination:not(:has(.wp-block-query-pagination-previous))::before { content: "←"; color: var(--gray-5); }
.rrbr-news-index .wp-block-query-pagination:not(:has(.wp-block-query-pagination-next))::after { content: "→"; color: var(--gray-5); }
.rrbr-news-index .wp-block-query-pagination .page-numbers.current,
.rrbr-news-index .wp-block-query-pagination a:hover,
.rrbr-news-index .wp-block-query-pagination a:focus-visible {
	background: var(--blue-700);
	color: var(--white);
}
.rrbr-archive-card { position: relative; height: 100%; padding: 1.25rem; border: 1px solid var(--blue-300); border-radius: var(--radius); background: var(--white); box-shadow: 0 0 0 transparent; transition: transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base); }
/* Card hover lives in final.css with the rest of the shared card treatment. */
.rrbr-archive-card .wp-block-post-featured-image { margin: -1.25rem -1.25rem 1.25rem; }
.rrbr-archive-card .wp-block-post-featured-image img { border-radius: var(--radius) var(--radius) 0 0; }
.rrbr-archive-card .wp-block-post-terms { color: var(--blue-700); font-size: var(--text-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.rrbr-archive-card .wp-block-post-title a { text-decoration: none; }
.rrbr-article {
	width: min(var(--container), calc(100% - 48px));
	max-width: none;
	margin-inline: auto;
	padding: 120px 0 56px;
}
.rrbr-article > .wp-block-post-title {
	width: 100%;
	max-width: none;
	margin: 0;
	font-size: 32px;
	line-height: 1.2;
}
.rrbr-post-meta {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-top: 10px;
	color: var(--gray-8);
	font-size: var(--text-sm);
}
.rrbr-post-meta a { color: inherit; text-underline-offset: 3px; }
.rrbr-article-socials { gap: 12px 20px; margin-block: 20px 28px; }
.rrbr-article-socials p,
.rrbr-article-socials .wp-block-social-links { margin: 0; }
.rrbr-article-socials .wp-social-link a { min-width: 44px; min-height: 44px; display: grid; place-items: center; }
.rrbr-report-context { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px 40px; margin-top: 32px; }
.rrbr-report-context h3 { margin-bottom: 12px; }
.rrbr-report-context p { margin: 0; }
.rrbr-locality-context { padding-top: 56px; }
.rrbr-locality-context h2 { margin-bottom: 16px; }
@media (max-width: 680px) { .rrbr-report-context { grid-template-columns: 1fr; } }
.rrbr-article > .wp-block-post-featured-image {
	width: 100%;
	height: 420px;
	margin: 56px 0 0;
	overflow: hidden;
	border-radius: var(--radius);
}
.rrbr-article > .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rrbr-article > .wp-block-post-content {
	width: 100%;
	margin: 64px auto 0;
}
.rrbr-article > .wp-block-post-content > * {
	width: 100%;
	max-width: 760px;
	margin-inline: auto;
}
.rrbr-article > .wp-block-post-content > p {
	margin-block: 0 24px !important;
	font-size: 16px;
	line-height: 1.55;
}
.rrbr-article > .wp-block-post-content > p:first-child {
	font-size: 18px;
	line-height: 1.5;
}
.rrbr-article > .wp-block-post-content > p:empty { display: none; }
.rrbr-article > .wp-block-post-content > h2 {
	margin-top: 48px !important;
	margin-bottom: 24px !important;
	font-size: 24px;
	line-height: 1.35;
}
.rrbr-article > .wp-block-post-content > h3 {
	margin-top: 36px !important;
	margin-bottom: 18px !important;
}
.rrbr-article > .wp-block-post-content > ul,
.rrbr-article > .wp-block-post-content > ol {
	margin-top: 0 !important;
	margin-bottom: 28px !important;
	padding-left: 1.4em;
}
.rrbr-article > .wp-block-post-content > ul li,
.rrbr-article > .wp-block-post-content > ol li { margin-bottom: .5rem; }
.rrbr-article > .wp-block-post-content > .wp-block-image {
	max-width: 900px;
	margin-top: 48px !important;
	margin-bottom: 48px !important;
}
.rrbr-article > .wp-block-post-content > .wp-block-image img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	margin-inline: auto;
	border-radius: var(--radius);
}
.rrbr-article > .wp-block-post-content > .wp-block-gallery {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 8px;
	width: 100%;
	max-width: 900px;
	margin: 48px auto 0 !important;
}
.rrbr-article .wp-block-gallery > .wp-block-image {
	display: flex;
	flex-grow: 1;
	width: calc(33.333% - 6px);
	margin: 0;
	overflow: hidden;
	border-radius: var(--radius-sm);
}
.rrbr-article .wp-block-gallery > .wp-block-image img {
	display: block;
	flex: 1 0 0%;
	width: 100%;
	min-width: 0;
	height: 100%;
	object-fit: cover;
}
.rrbr-article > .wp-block-post-content > .alignwide { max-width: var(--container); }
.rrbr-article > .wp-block-post-content > .alignfull { max-width: none; }

/* Legal pages use a shared readable measure and content-driven spacing so
 * editors can maintain all three statements without route-specific CSS. */
.legal-page { width: min(calc(100% - 2rem), 1152px); }
.legal-page > time { color: var(--blue-700); font-weight: 700; }
.legal-page > .legal-page-intro {
	max-width: 900px;
	margin: 0 0 1rem;
	font-size: clamp(1.125rem, 1.8vw, 1.35rem);
	font-weight: 500;
	line-height: 1.5;
}
.legal-page > .legal-page-intro:last-of-type { margin-bottom: 3.5rem; }
.legal-page section { max-width: 960px; scroll-margin-top: 190px; }
.legal-page section + section { margin-top: 3rem; }
.legal-page section h2 { margin: 0 0 1rem; }
.legal-page section p,
.legal-page section li { font-size: 17px; font-weight: 500; line-height: 1.55; }
.legal-page section ul { margin: 1.25rem 0 0; padding-left: 1.3em; }
.legal-page section li + li { margin-top: .55rem; }
.legal-table-scroll {
	max-width: 100%;
	margin-top: 1.5rem;
	overflow-x: auto;
	border: 1px solid rgba(25, 85, 148, .35);
	border-radius: var(--radius-sm);
}
.legal-table-scroll:focus-visible { outline: 3px solid var(--blue-700); outline-offset: 3px; }
.legal-table {
	width: 100%;
	min-width: 720px;
	border-collapse: collapse;
	font-size: 16px;
	line-height: 1.45;
}
.legal-table th,
.legal-table td {
	padding: .9rem 1rem;
	border-right: 1px solid rgba(25, 85, 148, .24);
	border-bottom: 1px solid rgba(25, 85, 148, .24);
	text-align: left;
	vertical-align: top;
}
.legal-table th:last-child,
.legal-table td:last-child { border-right: 0; }
.legal-table tbody tr:last-child td { border-bottom: 0; }
.legal-table th { color: var(--blue-800); background: var(--blue-100); font-weight: 700; }

/* Footer block wrappers. */
.site-footer.wp-block-group { display: block; }
.site-footer .wp-block-group { margin-block: 0; }
.footer-surface.wp-block-group { display: block; }
.footer-grid.wp-block-group { align-items: start; margin-inline: auto; }
.footer-column h2 { margin: 0 0 1rem; }
.footer-column ul { margin: 0; padding: 0; list-style: none; }
.footer-column li + li { margin-top: .5rem; }
.footer-column a { text-decoration: none; }
.footer-column a:hover { text-decoration: underline; }
.footer-contact p { margin-bottom: 1rem; }
.footer-socials { display: flex; gap: .5rem; }
.footer-socials a { background: transparent; }
/* Going to white by darkening to black and inverting is correct at both ends
 * but wrong in between: the interpolated midpoint renders mid-grey, which is
 * roughly 2:1 against the footer blue, so the icon appeared to blink out and
 * back on every hover. Desaturating while lightening reaches the same white
 * without ever dropping below the icon's resting contrast. grayscale(0)
 * brightness(1) is the identity, so the resting icon is still the untouched
 * artwork and still matches the header's hover green. */
.social-icon-links.footer-socials > a img {
	opacity: 1;
	filter: grayscale(0) brightness(1);
	transform: none;
	transition: filter var(--duration-fast) var(--ease-standard);
}
.social-icon-links.footer-socials > a:hover img,
.social-icon-links.footer-socials > a:focus-visible img {
	opacity: 1;
	filter: grayscale(1) brightness(1.28);
	transform: none;
}
.social-icon-links.footer-socials > a:active img {
	opacity: 1;
	transform: none;
}
.footer-grid address { color: var(--white); font-size: var(--text-sm); line-height: 1.7; }
.legal.wp-block-group,
.legal { position: relative; margin-inline: auto; }
.legal p { margin: 0; font-size: var(--text-xs); }

@media (max-width: 540px) {
	/* Only the legal-link row, never the nested back-to-top caret. */
	.legal > span:last-child {
		align-self: stretch;
		padding-right: 0;
		transform: none;
	}
}

/* Admin-bar and editor affordances. */
.admin-bar .site-header { --wp-admin--admin-bar--height: 32px; }
.block-editor-block-list__layout .site-header { position: relative; }
.editor-styles-wrapper .rrbr-main { min-height: 0; }

@media (max-width: 1180px) {
  .primary-nav .wp-block-navigation__container { gap: 1rem; }
  .primary-nav .wp-block-navigation-item__content { font-size: .79rem; }
  .header-search { display: none; }
}

@media (min-width: 801px) and (max-width: 1024px) {
  .rrbr-home .feature { gap: 32px; }
}
@media (max-width: 1024px) {
  .site-header { height: 90px; }
  .utility-bar { display: none; }
  .primary-bar,
  .primary-bar .primary-inner { min-height: 90px; }
  .primary-bar .primary-inner { width: 100%; padding-inline: 26px; }
  .primary-bar .primary-inner > * { margin-inline: 0 !important; }
  .brand { width: 66px; height: 49px; }
  /* Keep this legacy Gutenberg rule away from the custom site navigation.
   * The shared site stylesheet supplies the fixed, off-canvas drawer
   * used by the PHP header at tablet and mobile widths. */
  .site-header .wp-block-navigation.primary-nav { position: static; inset: auto; display: flex; visibility: visible; width: auto; max-height: none; margin-left: auto; padding: 0; overflow: visible; border: 0; background: transparent; box-shadow: none; opacity: 1; transform: none; transition: none; }
  .site-header .primary-nav .wp-block-navigation__responsive-container-open { display: flex; align-items: center; justify-content: center; visibility: visible; width: 46px; min-width: 46px; height: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--white); }
  .primary-nav .wp-block-navigation__responsive-container.is-menu-open { inset: 0 auto 0 0; width: min(347px,calc(100vw - 46px)); min-height: 100dvh; padding: 91px 2.5rem 2rem 48px; overflow-y: auto; background: var(--blue-700); color: var(--white); box-shadow: 0 0 0 100vmax rgba(1,23,46,.58); }
  .primary-nav .wp-block-navigation__responsive-dialog { position: static; margin-top: 0 !important; }
  .primary-nav .wp-block-navigation__responsive-container-content { padding-top: 0 !important; }
  .primary-nav .wp-block-navigation__responsive-container-close { top: 1.5rem; right: auto; left: 2.5rem; width: 44px; min-width: 44px; min-height: 44px; padding: .6rem; border: 0; background: transparent; }
  .primary-nav .wp-block-navigation__responsive-container-content,
  .primary-nav .wp-block-navigation__container { align-items: stretch !important; gap: .25rem; width: 100%; }
  .primary-nav .wp-block-navigation-item { align-items: stretch; width: 100%; }
  .primary-nav .wp-block-navigation-item__content { width: 100%; min-height: 42px; padding: .7rem 0; color: var(--white) !important; font-size: 1rem; }
  .primary-nav .wp-block-navigation__submenu-container { position: static !important; width: 100% !important; min-width: 0 !important; padding: 0 0 0 1.5rem !important; border: 0 !important; background: transparent !important; box-shadow: none; opacity: 1 !important; visibility: visible !important; }
  .site-header .primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: var(--white) !important; }
  .feature.wp-block-group { grid-template-columns: 1fr; }

  /* A one-column feature must also reset desktop child placement. Otherwise
   * the resources image creates an implicit second column and collapses the
   * copy to zero width between the tablet and phone breakpoints. */
  .rrbr-home .feature { grid-template-columns: minmax(0, 1fr); }
  .rrbr-home .feature > .image-surface { grid-column: 1; grid-row: 1; }
  .rrbr-home .feature > div:not(.image-surface):not(.footer-mountain-scene) { grid-column: 1; grid-row: 2; min-width: 0; }

  .initiative-page .feature.initiative-feature.wp-block-group,
  .initiative-page #shared-governance .feature.initiative-feature.wp-block-group {
    grid-template-columns: minmax(0,1fr);
    gap: 28px;
    width: min(calc(100% - 2rem),var(--container));
    height: auto;
    min-height: 0;
  }
  .initiative-page .feature.initiative-feature.media-left .initiative-feature-copy,
  .initiative-page .feature.initiative-feature.media-right .initiative-feature-copy { grid-column: 1; grid-row: 2; }
  .initiative-page .feature.initiative-feature.media-left .initiative-media,
  .initiative-page .feature.initiative-feature.media-right .initiative-media { grid-column: 1; grid-row: 1; }
  .initiative-page .feature.initiative-feature.no-media .initiative-feature-copy { grid-row: 1; }
  .initiative-page .initiative-media.wp-block-image,
  .initiative-page #shared-governance .initiative-media.wp-block-image {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
  }
  .initiative-page .section-heading,
  .initiative-page #significance-of-quality-ecce .section-heading,
  .initiative-page #mixed-delivery .section-heading,
  .initiative-page #mixed-delivery-families .section-heading,
  .initiative-page #mixed-delivery-providers .section-heading,
  .initiative-page #coordinated-enrollment-families .section-heading,
  .initiative-page #coordinated-enrollment-providers .section-heading { height: auto; min-height: 0; }
  .initiative-page .accordion-item:first-child { height: auto; }
  .footer-grid.wp-block-group { grid-template-columns: 2fr 1fr 1fr; }
}

@media (max-width: 800px) {
  .footer-grid.wp-block-group { grid-template-columns: 1fr 1fr; }
  .rrbr-archive .wp-block-post-template,
  .rrbr-news-index .wp-block-post-template { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 540px) {
	.footer-art-placeholder { height: 264px; }
	.data-combined-page > .rrbr-dashboard-explorer { height: 986px; min-height: 986px; padding-block: 64px; overflow: hidden; }
	.data-combined-page > .rrbr-publications { min-height: 822px; }
	.data-combined-page > .rrbr-locality-section { grid-template-columns: 1fr; width: 100%; height: 814px; min-height: 814px; padding: 64px 28px; overflow: hidden; }
	.data-combined-page .rrbr-locality-list { columns: 2; column-gap: 18px; margin-top: 24px; }
	.data-combined-page .rrbr-locality-list button { min-height: 0; padding: 0; font-size: 14px; line-height: 18px; }
	.data-combined-page .rrbr-region-map { display: none; }
  .compact-hero { min-height: 0; padding: 3rem 39px; }
  .compact-hero h1 { font-size: 40px; }
  .rrbr-section { padding-block: 4rem; }
  .feature.wp-block-group { width: calc(100% - 54px); gap: 2rem; padding-block: 4rem; }
  #class-observers { scroll-margin-top: 110px; }
  .feature .wp-block-image img { min-height: 300px; }
  .rrbr-archive,
  .rrbr-news-index,
  .rrbr-search-results,
  .rrbr-article,
  .rrbr-not-found { padding: 4rem 27px; }
  .rrbr-article {
	width: calc(100% - 54px);
	margin-inline: auto;
	padding: 64px 0 48px;
  }
  .rrbr-article > .wp-block-post-title { font-size: 32px; }
  .rrbr-article > .wp-block-post-featured-image {
	height: 260px;
	margin-top: 40px;
  }
  .rrbr-article > .wp-block-post-content { margin-top: 40px; }
  .rrbr-article > .wp-block-post-content > p:first-child { font-size: 17px; }
  .rrbr-article > .wp-block-post-content > h2 { margin-top: 40px !important; }
  .rrbr-article > .wp-block-post-content > .wp-block-image,
  .rrbr-article > .wp-block-post-content > .wp-block-gallery { margin-block: 36px !important; }
  .rrbr-article .wp-block-gallery > .wp-block-image { width: calc(50% - 4px); }
  .rrbr-news-index { padding-bottom: 64px; }
  .rrbr-news-index .wp-block-query-pagination {
	gap: .75rem;
	margin-top: 48px;
  }
  .rrbr-news-index .wp-block-query-pagination-numbers { gap: .75rem; }
  .rrbr-archive .wp-block-post-template,
  .rrbr-news-index .wp-block-post-template { grid-template-columns: 1fr; }
  .footer-grid.wp-block-group { display: block; text-align: center; }
  .footer-brand { align-items: center; }
  .footer-column:not(.footer-contact) { display: none; }
  .footer-contact { margin-top: 1.75rem; }
  .footer-socials { justify-content: center; }
  .legal.wp-block-group { justify-content: center; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* WordPress responsive safety layer. Gutenberg content can change length at
 * any time, so mobile initiative and data sections must size from their block
 * content rather than historical screenshot heights. */
@media (max-width: 680px) {
	/* Keep the Tableau explorer available on phones. Its view component requests
	 * Tableau's phone layout, while the direct link below it offers a larger
	 * reading surface when a publisher workbook has no dedicated phone view. */
	.data-combined-page > .rrbr-dashboard-explorer { display: block; }

	.data-combined-page .report-category-intros {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.data-combined-page > .rrbr-publications {
		padding-top: 2rem;
		margin-block-start: 0;
	}

	.data-combined-page > .rrbr-dashboard-explorer {
		width: calc(100% - 56px);
	}

	.initiative-page .initiative-detail,
	.initiative-page .initiative-feature,
	.increasing-access-page #coordinated-enrollment {
		height: auto !important;
		min-height: 0 !important;
		overflow: visible !important;
	}

	.initiative-page .feature.initiative-feature.wp-block-group,
	.initiative-page #shared-governance .feature.initiative-feature.wp-block-group {
		width: calc(100% - 54px);
		padding-block: 0;
	}
	.initiative-page #coordinated-enrollment .initiative-feature-copy > p { font-size: 22px; }
	.callout.wp-block-group { grid-template-columns: 1fr; gap: 12px; padding: 24px; }
	.initiative-page .accordion-label { min-height: 72px; padding: 18px var(--rrbr-accordion-inline-space); }
	.initiative-page .accordion-static { min-height: 72px; }

	.data-combined-page > .rrbr-dashboard-explorer,
	.data-combined-page > .rrbr-publications,
	.data-combined-page > .rrbr-locality-section {
		height: auto !important;
		min-height: 0 !important;
		overflow: visible !important;
	}

	.data-combined-page > .rrbr-dashboard-explorer { padding-block: 64px; }
	.data-combined-page > .rrbr-locality-section {
		width: calc(100% - 56px);
		/* The following 73px wave overlaps this section; retain 36px of
		 * clear space after the last locality, as on the desktop layout. */
		padding: 24px 0 109px;
	}

	.rrbr-main > .wp-block-post-content > .rail-help-wave { margin-top: -73px !important; }
	.rail-layout-with-wave { padding-bottom: 108px; }

	.rrbr-archive,
	.rrbr-news-index,
	.rrbr-search-results,
	.rrbr-article,
	.rrbr-not-found { padding-inline: 27px; }

	.compact-hero > * {
		width: 100% !important;
		max-width: none !important;
		margin-inline: 0 !important;
	}
}

@media (max-width: 360px) {
	.search-toggle { width: calc(100vw - 92px) !important; }
}

/* --------------------------------------------------------------------------
 * Final responsive and source-frame reconciliation
 *
 * Keep these rules after the Gutenberg safety layer. That layer intentionally
 * protects arbitrary editor content, but its broad grid and shell selectors
 * must not override the authored header, Home-card, and News-hero geometry.
 * -------------------------------------------------------------------------- */

/* The Figma tablet header uses the same compact 90px composition as mobile.
 * A utility-bar + drawer hybrid created a 142px one-pixel breakpoint at 801px
 * and made the header visibly rebuild while resizing or navigating. */
@media (max-width: 1024px) {
	:root {
		--header-height: 90px;
		--header-primary-height: 90px;
	}
	.site-header { height: 90px; }
	.utility-bar { display: none; }
	.primary-bar,
	.primary-bar .primary-inner { min-height: 90px; }
	.search-panel { top: 90px; }
}

/* Switch the Home priorities to one fluid column before copy becomes cramped.
 * This removes the 540/541 layout cliff while preserving the exact 393px
 * gutters and allowing longer WordPress-managed copy to grow naturally. */
@media (max-width: 680px) {
	.split-intro + .initiative-grid.shell {
		width: calc(100% - 51px);
		max-width: none;
		margin-right: 24px;
		margin-left: 27px;
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
		padding: 0 0 38px;
	}
	.split-intro + .initiative-grid .initiative-card {
		min-height: 0;
		padding: clamp(27px, 5vw, 32px);
	}

	/* Remove the 8px gap produced by cancelling a 56px desktop archive inset
	 * against a 64px mobile page inset. The hero now begins at the header edge. */
	.rrbr-news-index { padding-top: 0; }
	.rrbr-news-index > .compact-hero { margin-top: 0; }
}

@media (max-width: 540px) {
	.split-intro + .initiative-grid .initiative-card { padding: 27px; }
	.split-intro + .initiative-grid .initiative-card:nth-child(1) { min-height: 251px; }
	.split-intro + .initiative-grid .initiative-card:nth-child(2) { min-height: 226px; }
	.split-intro + .initiative-grid .initiative-card:nth-child(3) { min-height: 312px; }
	.split-intro + .initiative-grid .initiative-card:nth-child(4) { min-height: 246px; }
}

/* Desktop-only vertical rhythm corrections measured against the current
 * initiative frames. These change the responsible section spacing rather than
 * forcing brittle page heights, so editor-managed content can still expand. */
@media (min-width: 1025px) {
	.strengthening-quality-page #understanding-quality { padding-top: 42px; }

	.building-relationships-page #community-leaders { padding-top: 45px; }
	.building-relationships-page #get-involved { padding-bottom: 107px; }

	.increasing-access-page #significance-of-quality-ecce { padding-top: 47px; }
}

/* Search occupies the existing primary row, without moving the utility bar or page. */
.primary-bar { position: relative; }
.primary-bar.is-search-open > .primary-inner { opacity: 0; pointer-events: none; }
#site-search {
	position: absolute; inset: 0; z-index: 220; display: flex; align-items: center;
	width: 100%; height: 100%; max-height: none; margin: 0;
	padding: 0 max(16px, calc((100% - var(--container-wide)) / 2)); gap: 12px;
	background: var(--blue-700); border: 0; border-radius: 0; box-shadow: none;
	transform: none; animation: none; overflow: visible;
}
#site-search[hidden] { display: none; }
#site-search .search-fields {
	display: flex; flex-direction: row; align-items: center; flex: 1; min-width: 0;
	height: 58px; gap: 0; padding-right: 8px; background: var(--blue-200); border-radius: var(--radius-pill);
}
#site-search input {
	width: 100%; min-width: 0; height: 100%; padding: 0 28px; border: 0;
	border-radius: var(--radius-pill); background: transparent; color: var(--blue-700); font-size: 16px;
}
#site-search input::placeholder { color: var(--blue-700); opacity: 1; }
#site-search input:focus { outline: none; box-shadow: none; }
#site-search button {
	display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px;
	padding: 10px; border: 0; background: transparent; color: white; border-radius: 50%;
}
#site-search .search-close { font-size: 28px; line-height: 1; }
#site-search .search-submit img {
	display: block; width: 22px; height: 22px;
	filter: brightness(0) saturate(100%) invert(29%) sepia(42%) saturate(1252%) hue-rotate(169deg) brightness(84%) contrast(92%);
}
#site-search button:focus-visible { outline: 2px solid var(--blue-700); outline-offset: 2px; }
#site-search .search-close:focus-visible { outline-color: var(--white); }
@media (max-width: 680px) {
	#site-search { gap: 4px; padding-inline: 16px 8px; }
	#site-search .search-fields { height: 54px; }
	#site-search input { padding-inline: 18px 8px; }
}
