/*
Theme Name: PSC Official Theme
Theme URI: https://pensacolastate.edu/
Author: Pensacola State College Marketing & Web
Author URI: https://pensacolastate.edu/
Description: A native, accessible WordPress block theme built for the long-term Pensacola State College web system.
Requires at least: 7.0
Tested up to: 7.0
Requires PHP: 7.4
Version: 0.6.16
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: psc-permanent-theme
Tags: block-patterns, block-styles, custom-colors, custom-logo, editor-style, full-site-editing, wide-blocks
*/

/* --------------------------------------------------------------------------
   Foundation
   -------------------------------------------------------------------------- */

/* Rubik is the PSC institutional typeface. Keep the font files and the
   application rules in the theme stylesheet so typography remains correct even
   when WordPress does not print its generated Global Styles stylesheet. */
@font-face {
	font-display: swap;
	font-family: "Rubik";
	font-style: normal;
	font-weight: 400;
	src: url("assets/fonts/rubik-latin-400-normal.woff2") format("woff2");
}

@font-face {
	font-display: swap;
	font-family: "Rubik";
	font-style: normal;
	font-weight: 500;
	src: url("assets/fonts/rubik-latin-500-normal.woff2") format("woff2");
}

@font-face {
	font-display: swap;
	font-family: "Rubik";
	font-style: normal;
	font-weight: 600;
	src: url("assets/fonts/rubik-latin-600-normal.woff2") format("woff2");
}

@font-face {
	font-display: swap;
	font-family: "Rubik";
	font-style: normal;
	font-weight: 700;
	src: url("assets/fonts/rubik-latin-700-normal.woff2") format("woff2");
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: var(--wp--preset--font-family--brand-body, "Rubik", Arial, sans-serif) !important;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Apply the brand family to normal text controls and content elements. These
   explicit public-element rules also cover native child blocks rendered inside
   companion plugins without coupling the theme to plugin class names. */
:where(button, input, select, textarea, p, li, dt, dd, blockquote, figcaption, table, address, summary, .wp-element-button) {
	font-family: var(--wp--preset--font-family--brand-body, "Rubik", Arial, sans-serif) !important;
}

:where(h1, h2, h3, h4, h5, h6, .wp-block-post-title, .wp-block-site-title) {
	font-family: var(--wp--preset--font-family--brand-heading, "Rubik", Arial, sans-serif) !important;
}

img {
	height: auto;
	max-width: 100%;
}

/* Prevent long links and file names from escaping content areas. */
p,
li,
td,
th,
figcaption {
	overflow-wrap: anywhere;
}

/* --------------------------------------------------------------------------
   Accessibility
   -------------------------------------------------------------------------- */

.psc-skip-link {
	background: var(--psc-brand-accent, #f3d03e);
	color: var(--psc-brand-accent-text, #00205c);
	font-weight: 800;
	left: 1rem;
	padding: 0.75rem 1rem;
	position: fixed;
	top: -10rem;
	z-index: 100000;
}

.psc-skip-link:focus {
	top: 1rem;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--custom--psc--semantic--focus, var(--wp--preset--color--brand-highlight, #2a9fdc));
	outline-offset: 3px;
}

.psc-visually-hidden,
.has-custom-logo .psc-site-brand .wp-block-site-title {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

/* --------------------------------------------------------------------------
   Header and navigation
   -------------------------------------------------------------------------- */

/* The editable full Header remains in normal page flow. The compact scroll-state
   header is rendered separately on the front end and becomes visible only after
   the full Header leaves the viewport. */
.psc-floating-header-shell {
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	right: 0;
	top: var(--wp-admin--admin-bar--height, 0px);
	transform: translateY(-110%);
	transition: opacity 160ms ease, transform 180ms ease, visibility 180ms step-end;
	visibility: hidden;
	z-index: 1000;
}

.psc-floating-header-shell.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	transition: opacity 160ms ease, transform 180ms ease;
	visibility: visible;
}

.psc-site-header--floating-minimal {
	box-shadow: 0 4px 18px rgba(0, 32, 92, 0.14);
}

.psc-site-header--floating-minimal .psc-floating-minimal-row,
.psc-site-header--floating-minimal .psc-primary-nav-shell--minimal {
	height: 68px;
	min-height: 68px;
}

.psc-site-header--floating-minimal .psc-brand-lockup__text {
	display: none;
}

.psc-site-header--floating-minimal .psc-brand-lockup__logo img {
	max-height: 44px;
	max-width: min(220px, 34vw);
}

.psc-site-header--floating-minimal .psc-primary-navigation .wp-block-navigation-item__content {
	align-items: center;
	display: flex;
	font-size: 0.95rem;
	min-height: 44px;
}

.psc-site-header--floating-minimal .psc-minimal-nav-tools {
	gap: 0.5rem;
}

.psc-minimal-nav-tools {
	margin-left: auto;
}

.psc-primary-nav-shell > .wp-block-search,
.psc-minimal-nav-tools > .wp-block-search {
	min-width: 44px;
}

.psc-primary-nav-shell .wp-block-search__button,
.psc-minimal-nav-tools .wp-block-search__button {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
}

.psc-primary-nav-shell .wp-block-search__button-only .wp-block-search__input,
.psc-minimal-nav-tools .wp-block-search__button-only .wp-block-search__input {
	transition: opacity 160ms ease, width 180ms ease;
}

.psc-primary-nav-shell .wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input,
.psc-minimal-nav-tools .wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input {
	border-width: 0;
	opacity: 0;
	padding-left: 0;
	padding-right: 0;
	pointer-events: none;
	width: 0;
}

.psc-primary-nav-shell .wp-block-search__button-only.is-psc-search-open .wp-block-search__input,
.psc-minimal-nav-tools .wp-block-search__button-only.is-psc-search-open .wp-block-search__input {
	background: var(--psc-base, #ffffff);
	border: 1px solid var(--psc-ui-border, #d6dce5);
	color: var(--psc-contrast, #17212b);
	opacity: 1;
	padding-left: 0.8rem;
	padding-right: 0.8rem;
	pointer-events: auto;
	width: clamp(180px, 24vw, 320px);
}

.psc-floating-actions:empty,
.psc-floating-actions[hidden] {
	display: none !important;
}

.psc-floating-actions .psc-header-actions,
.psc-floating-actions .wp-block-buttons {
	flex-wrap: nowrap;
	gap: 0.5rem;
}

.psc-floating-actions .psc-header-action,
.psc-floating-actions .wp-block-button__link {
	font-size: 0.875rem;
	min-height: 44px;
	padding: 0.55rem 0.85rem;
	white-space: nowrap;
}


.psc-utility-bar a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.psc-site-header {
	box-shadow: 0 2px 12px rgba(0, 32, 92, 0.12);
	position: relative;
	z-index: 20;
}

.psc-brand-lockup {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	justify-content: flex-start;
	max-width: 720px;
	text-align: left;
}

.psc-brand-lockup__logo {
	display: block;
	flex: 0 1 auto;
	line-height: 0;
	text-decoration: none;
}

.psc-brand-lockup__logo img {
	display: block;
	height: auto;
	max-height: 78px;
	max-width: min(300px, 48vw);
	object-fit: contain;
	object-position: left center;
	width: auto;
}

.psc-brand-lockup__text {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	line-height: 1.18;
}

.psc-brand-lockup__department {
	color: var(--psc-brand-primary, #00205c);
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: clamp(1rem, 1.65vw, 1.35rem);
	font-weight: 600;
}

.psc-brand-lockup__tagline {
	color: #4a5568;
	font-size: 0.9rem;
}

.psc-brand-lockup--expanded {
	align-items: flex-start;
	flex-direction: column;
	gap: 0.65rem;
}

.psc-brand-lockup--compact .psc-brand-lockup__logo img {
	max-height: 72px;
	max-width: min(320px, 48vw);
}

.psc-brand-lockup--expanded .psc-brand-lockup__logo img {
	max-height: 94px;
	max-width: min(370px, 54vw);
}

.psc-brand-lockup--expanded .psc-brand-lockup__department {
	font-size: clamp(1.25rem, 2.25vw, 1.85rem);
}

.psc-brand-lockup--dark .psc-brand-lockup__department,
.psc-brand-lockup--dark .psc-brand-lockup__tagline {
	color: var(--psc-brand-primary-text, #ffffff);
}

.psc-utility-bar {
	font-size: 0.82rem;
}

.psc-utility-bar:not(:has(.wp-block-navigation-item)) {
	display: none;
}

.psc-primary-navigation .wp-block-navigation-item__content {
	align-items: center;
	border-radius: var(--wp--preset--border-radius--small, 4px);
	display: inline-flex;
	gap: 0.55rem;
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.015em;
	position: relative;
	text-decoration: none;
	text-transform: uppercase;
}

.psc-primary-navigation .wp-block-navigation-item__content:hover,
.psc-primary-navigation .wp-block-navigation-item__content:focus-visible {
	text-decoration: none;
}

.psc-primary-nav-shell,
.psc-primary-navigation,
.psc-primary-navigation > .wp-block-navigation__container {
	position: static;
}

.psc-primary-navigation > .wp-block-navigation__container {
	column-gap: clamp(0.35rem, 1vw, 1.1rem);
}

.psc-primary-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	min-height: 44px;
	padding: 0.55rem 0.7rem;
}

.psc-primary-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	background: var(--psc-brand-accent, #f3d03e);
	bottom: 0.2rem;
	content: "";
	height: 3px;
	left: 0.7rem;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 180ms ease;
	width: calc(100% - 1.4rem);
}

.psc-primary-navigation > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.psc-primary-navigation > .wp-block-navigation__container > .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content::after,
.psc-primary-navigation > .wp-block-navigation__container > .wp-block-navigation-item.is-psc-open > .wp-block-navigation-item__content::after,
.psc-primary-navigation > .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after,
.psc-primary-navigation > .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
}

.psc-primary-navigation > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.psc-primary-navigation > .wp-block-navigation__container > .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content,
.psc-primary-navigation > .wp-block-navigation__container > .wp-block-navigation-item.is-psc-open > .wp-block-navigation-item__content,
.psc-primary-navigation > .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
.psc-primary-navigation > .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content {
	background: color-mix(in srgb, currentColor 12%, transparent);
}

.psc-primary-navigation .wp-block-navigation__submenu-icon {
	transition: transform 180ms ease;
}

.psc-primary-navigation .wp-block-navigation-submenu.is-psc-open > .wp-block-navigation-submenu__toggle .wp-block-navigation__submenu-icon,
.psc-primary-navigation .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle[aria-expanded="true"] .wp-block-navigation__submenu-icon {
	transform: rotate(180deg);
}

.psc-primary-navigation .wp-block-navigation__submenu-container {
	background: var(--psc-base, #ffffff) !important;
	border: 1px solid var(--psc-ui-border, #d6dce5) !important;
	border-radius: 0 0 var(--wp--preset--border-radius--medium, 8px) var(--wp--preset--border-radius--medium, 8px);
	border-top: 4px solid var(--psc-brand-accent, #f3d03e) !important;
	box-shadow: var(--psc-card-shadow-elevated, 0 16px 40px rgba(0, 32, 92, 0.16));
	color: var(--psc-contrast, #17212b) !important;
	display: flex !important;
	flex-direction: column;
	gap: 0.15rem;
	height: auto !important;
	min-width: clamp(320px, 28vw, 380px) !important;
	opacity: 0 !important;
	overflow: visible !important;
	padding: 0.85rem !important;
	pointer-events: none !important;
	top: 100% !important;
	transform: translateY(10px) !important;
	transition: opacity 160ms ease, transform 180ms ease, visibility 180ms step-end !important;
	visibility: hidden !important;
	width: auto !important;
	z-index: 30;
}

.psc-primary-navigation .wp-block-navigation-submenu.is-psc-open > .wp-block-navigation__submenu-container,
.psc-primary-navigation .wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container,
.psc-primary-navigation .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-container {
	opacity: 1 !important;
	pointer-events: auto !important;
	transform: translateY(0) !important;
	transition: opacity 160ms ease, transform 180ms ease !important;
	visibility: visible !important;
}

.psc-primary-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--psc-contrast, #17212b) !important;
	font-size: 0.95rem;
	font-weight: 500;
	justify-content: flex-start;
	letter-spacing: 0;
	line-height: 1.35;
	min-height: 44px;
	padding: 0.7rem 0.8rem;
	text-transform: none;
	width: 100%;
}

.psc-primary-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.psc-primary-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	background: color-mix(in srgb, var(--psc-brand-highlight, #2a9fdc) 13%, transparent);
	color: var(--psc-brand-primary, #00205c) !important;
}

.psc-primary-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.wp-block-navigation-submenu) > .wp-block-navigation-item__content::after {
	color: var(--psc-brand-secondary, #036636);
	content: "›";
	font-size: 1.3em;
	font-weight: 600;
	margin-left: auto;
	transform: translateX(0);
	transition: transform 160ms ease;
}

.psc-primary-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.wp-block-navigation-submenu) > .wp-block-navigation-item__content:hover::after,
.psc-primary-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.wp-block-navigation-submenu) > .wp-block-navigation-item__content:focus-visible::after {
	transform: translateX(4px);
}

.psc-primary-navigation .wp-block-navigation-submenu.is-style-psc-mega-menu {
	position: static !important;
}

.psc-primary-navigation .wp-block-navigation-submenu.is-style-psc-mega-menu > .wp-block-navigation__submenu-container {
	display: grid !important;
	gap: 0.75rem 1.5rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	left: 0 !important;
	max-width: var(--psc-wide-width, 1280px) !important;
	right: 0 !important;
	width: 100% !important;
}

.psc-primary-navigation .wp-block-navigation-submenu.is-style-psc-mega-menu > .wp-block-navigation__submenu-container > .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
	border: 0 !important;
	box-shadow: none;
	display: flex !important;
	min-width: 0 !important;
	opacity: 1 !important;
	padding: 0.25rem 0 0 !important;
	pointer-events: auto !important;
	position: static !important;
	transform: none !important;
	visibility: visible !important;
}

.psc-primary-navigation .is-style-psc-menu-introduction > .wp-block-navigation-item__content {
	background: color-mix(in srgb, var(--psc-brand-primary, #00205c) 7%, transparent);
	border-left: 4px solid var(--psc-brand-accent, #f3d03e);
	font-size: 1.05rem;
	font-weight: 600;
	grid-column: span 1;
	padding: 1rem;
}

.psc-menu-item-icon {
	fill: none;
	flex: 0 0 auto;
	height: 1.2em;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	width: 1.2em;
}

.psc-header-buttons {
	gap: 0.5rem;
}

.psc-header-buttons .wp-block-button__link {
	font-size: 0.82rem;
	min-height: 44px;
	padding: 0.6rem 0.9rem;
}

.psc-header-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: flex-end;
}

.psc-header-action {
	align-items: center;
	border: 2px solid var(--psc-brand-primary, #00205c);
	border-radius: var(--wp--preset--border-radius--pill, 999px);
	color: var(--psc-brand-primary, #00205c);
	display: inline-flex;
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: 0.82rem;
	font-weight: 600;
	justify-content: center;
	line-height: 1.1;
	min-height: 44px;
	padding: 0.55rem 0.85rem;
	text-decoration: none;
}

.psc-header-action:hover,
.psc-header-action:focus-visible {
	background: var(--psc-brand-primary, #00205c);
	color: var(--psc-brand-primary-text, #ffffff);
}

.psc-header-action--primary {
	background: var(--psc-brand-button, var(--psc-brand-secondary, #036636));
	border-color: var(--psc-brand-button, var(--psc-brand-secondary, #036636));
	color: var(--psc-brand-button-text, #ffffff);
}

.psc-header-action--primary:hover,
.psc-header-action--primary:focus-visible {
	background: var(--psc-brand-primary, #00205c);
	border-color: var(--psc-brand-primary, #00205c);
}

.psc-header-action--secondary {
	background: transparent;
	border-color: var(--psc-brand-primary, #00205c);
	color: var(--psc-brand-primary, #00205c);
}

.psc-header-action--text {
	background: transparent;
	border-color: transparent;
	color: var(--psc-brand-primary, #00205c);
	padding-left: 0.45rem;
	padding-right: 0.45rem;
}

.psc-header-action--text:hover,
.psc-header-action--text:focus-visible {
	background: transparent;
	border-color: transparent;
	color: var(--psc-brand-link, var(--psc-brand-primary, #00205c));
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.psc-header-actions--compact {
	flex-wrap: nowrap;
}

.psc-header-actions--compact .psc-header-action {
	font-size: 0.875rem;
	min-height: 44px;
	padding: 0.55rem 0.85rem;
	white-space: nowrap;
}

/* --------------------------------------------------------------------------
   Global alert
   -------------------------------------------------------------------------- */

.psc-alert {
	font-weight: 700;
	text-align: center;
}

.psc-alert p {
	margin-bottom: 0;
	margin-top: 0;
}

.psc-alert .wp-block-buttons {
	margin: 0;
}

.psc-alert a {
	color: inherit;
	margin-left: 0.4rem;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.18em;
}

/* --------------------------------------------------------------------------
   Page titles and content
   -------------------------------------------------------------------------- */

.psc-page-title-band {
	background-color: #00205c;
	background-image: linear-gradient(115deg, rgba(0, 32, 92, 0.78) 0%, rgba(0, 32, 92, 0.48) 62%, rgba(3, 102, 54, 0.18) 88%, rgba(3, 102, 54, 0.3) 100%), url("assets/brand/psc-page-header-water.png");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	box-sizing: border-box;
	color: var(--psc-brand-primary-text, #ffffff);
	display: flex;
	flex-direction: column;
	min-height: 320px;
	padding-bottom: clamp(2.75rem, 4vw, 3.75rem) !important;
	padding-top: clamp(2.25rem, 3vw, 3rem) !important;
}

.psc-page-title-band__inner {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 1.25rem;
	width: 100%;
}

/* Automatic PSC Breadcrumbs block, styled to match the approved interior-page
   treatment while retaining accessible navigation markup. */
.psc-breadcrumbs {
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: clamp(0.94rem, 1vw, 1.06rem);
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.4;
	margin: 0;
}

.psc-page-title-band .psc-breadcrumbs {
	align-items: center;
	display: flex;
	gap: clamp(1rem, 2.4vw, 2.25rem);
	width: 100%;
}

.psc-page-title-band .psc-breadcrumbs::after {
	background: rgba(205, 225, 239, 0.34);
	content: "";
	flex: 1 1 5rem;
	height: 1px;
	min-width: 3rem;
}

.psc-breadcrumbs ol {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.psc-breadcrumbs li,
.psc-breadcrumbs a,
.psc-breadcrumbs li > span:not(.psc-breadcrumbs__separator) {
	align-items: center;
	display: inline-flex;
	gap: 0.35rem;
}

.psc-breadcrumbs__home-icon {
	fill: none;
	height: 1rem;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	width: 1rem;
}

.psc-breadcrumbs__separator {
	opacity: 0.72;
}

.psc-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

.psc-breadcrumbs a:hover,
.psc-breadcrumbs a:focus-visible {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}

.psc-breadcrumbs--inverse {
	color: var(--psc-brand-primary-text, #ffffff);
}

.psc-breadcrumbs--inverse li:not(:last-child),
.psc-breadcrumbs--inverse a {
	color: var(--psc-brand-primary-text, #ffffff);
}

.psc-breadcrumbs--article {
	color: var(--wp--preset--color--slate, #4a5568);
}

.psc-page-title-band__title-group {
	margin-top: auto;
}

.psc-page-title-band__title-group > * {
	margin-bottom: 0;
	margin-top: 0;
}

.psc-page-title-band__title-group > * + * {
	margin-top: 0.85rem;
}

.psc-page-title-band .wp-block-post-title,
.psc-page-title-band__inner > .wp-block-query-title,
.psc-page-title-band__inner > .wp-block-heading {
	line-height: 1.05;
	margin-bottom: 0;
	margin-top: auto;
	max-width: 24ch;
	text-shadow: 0 2px 14px rgba(0, 18, 52, 0.28);
}

.psc-page-title-band .wp-block-term-description {
	font-size: clamp(1rem, 1.25vw, 1.2rem);
	line-height: 1.55;
	margin-bottom: 0;
	max-width: 68ch;
}

.psc-page-title-band__rule {
	display: none !important;
}

@media (max-width: 900px) {
	.psc-page-title-band {
		min-height: 280px;
		padding-bottom: 2.75rem !important;
		padding-top: 2.25rem !important;
	}
}

@media (max-width: 600px) {
	.psc-page-title-band {
		min-height: 230px;
		padding-bottom: 2rem !important;
		padding-top: 1.75rem !important;
	}

	.psc-page-title-band .psc-breadcrumbs {
		gap: 0.85rem;
	}

	.psc-page-title-band .psc-breadcrumbs::after {
		min-width: 1.75rem;
	}
}



.psc-utility-title-band {
	background: var(--psc-brand-primary, #00205c);
	color: var(--psc-brand-primary-text, #ffffff);
}

.psc-utility-title-band__inner {
	width: 100%;
}

.psc-utility-title-band .wp-block-post-title,
.psc-utility-page-title {
	font-size: clamp(2rem, 4vw, 3.35rem) !important;
	line-height: 1.05;
	margin-bottom: 0;
	margin-top: 0;
	max-width: 28ch;
}

.psc-local-navigation {
	background: var(--wp--preset--color--mist, #eef2f6);
	border-top: 4px solid var(--psc-brand-secondary, #036636);
}

.psc-local-navigation .wp-block-heading {
	color: var(--psc-brand-primary, #00205c);
	margin: 0;
}

.psc-local-navigation .wp-block-navigation,
.psc-local-navigation .wp-block-navigation__container,
.psc-local-navigation .wp-block-navigation-item {
	width: 100%;
}

.psc-local-navigation .wp-block-navigation-item__content {
	border-bottom: 1px solid var(--wp--preset--color--ui-border, #d6dce5);
	color: var(--psc-brand-primary, #00205c);
	display: block;
	padding: 0.7rem 0;
	text-decoration: none;
	width: 100%;
}

.psc-local-navigation .wp-block-navigation-item__content:hover,
.psc-local-navigation .wp-block-navigation-item__content:focus-visible,
.psc-local-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--psc-brand-secondary, #036636);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}

/* Editor-only guidance is revealed in editor.css. */
.psc-template-editor-note {
	display: none;
}

.psc-article-header {
	background: var(--psc-base, #ffffff);
	border-bottom: 1px solid var(--wp--preset--color--ui-border, #d6dce5);
}

.psc-article-header__inner {
	max-width: 980px;
	width: 100%;
}

.psc-article-category {
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: 0.82rem !important;
	font-weight: 700;
	letter-spacing: 0.06em;
	margin-bottom: 0;
	text-transform: uppercase;
}

.psc-article-category a {
	color: var(--psc-brand-secondary, #036636);
	text-decoration: none;
}

.psc-article-category a:hover,
.psc-article-category a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.psc-article-title {
	font-size: clamp(2.4rem, 5.4vw, 4.75rem) !important;
	line-height: 1.02;
	margin-bottom: 0;
	margin-top: 0;
	max-width: 22ch;
}

.psc-article-date {
	margin-bottom: 0;
	margin-top: 0;
}

.psc-article-featured-image {
	overflow: hidden;
}

.psc-interior-hero a {
	color: var(--psc-brand-primary-text, #ffffff);
}

.psc-interior-hero__image {
	border-radius: 10px;
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.22);
	overflow: hidden;
	width: 100%;
}

.psc-interior-hero__image img {
	width: 100%;
}

.psc-page-title-band a {
	color: var(--psc-brand-primary-text, #ffffff);
}

.psc-entry-content > :where(h2, h3, h4) {
	scroll-margin-top: 3rem;
}

.psc-entry-content :where(ul, ol) li + li {
	margin-top: 0.35em;
}

/* Post Content owns the full layout canvas. Keep its width automatic so
   WordPress can extend both sides through the root padding. A forced 100%
   width combines badly with alignfull's negative margins and leaves a blank
   strip equal to two root paddings on the right side of the page. */
.psc-entry-content-shell > .wp-block-post-content.alignfull {
	max-width: none;
	width: auto;
}

/* Section width is owned by the section block itself. Structural children use
   normal block sizing so WordPress can preserve content, wide, and full
   alignment in both the editor and the published page. */

/* --------------------------------------------------------------------------
   Patterns and components
   -------------------------------------------------------------------------- */

.psc-announcements__heading {
	font-size: clamp(2rem, 4vw, 4rem);
	line-height: 1;
	margin: 0;
}

.psc-announcements__items {
	border-left: 6px solid var(--wp--preset--color--brand-secondary);
	padding-left: clamp(1.25rem, 3vw, 2.5rem);
}

.psc-announcements__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.psc-announcements__list li {
	padding-left: 1.35rem;
	position: relative;
}

.psc-announcements__list li + li {
	margin-top: 1rem;
}

.psc-announcements__list li::before {
	background: var(--wp--preset--color--brand-secondary);
	content: "";
	height: 0.55rem;
	left: 0;
	position: absolute;
	top: 0.55em;
	width: 0.55rem;
}

.psc-announcements__list a {
	color: var(--wp--preset--color--brand-primary);
	font-weight: 600;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.18em;
}

.psc-linked-feature {
	color: var(--wp--preset--color--ink);
	position: relative;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.psc-permanent-theme .psc-linked-feature:hover {
	border-color: var(--wp--preset--color--brand-secondary) !important;
	box-shadow: var(--psc-card-shadow-elevated, 0 16px 40px rgba(0, 32, 92, 0.16));
	transform: translateY(-2px);
}

.psc-linked-feature__image,
.psc-linked-feature__image img {
	margin: 0;
	width: 100%;
}

/* The editable action URL can optionally make the complete panel clickable.
   Remove the psc-linked-feature__button class to keep a button-only link. */
.psc-permanent-theme .psc-linked-feature__button .wp-block-button__link::after {
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.psc-permanent-theme .psc-linked-feature:focus-within {
	outline: 3px solid var(--wp--preset--color--brand-accent);
	outline-offset: 3px;
}

@media (max-width: 781px) {
	.psc-announcements__items {
		border-left: 0;
		border-top: 6px solid var(--wp--preset--color--brand-secondary);
		padding-left: 0;
		padding-top: 1.5rem;
	}

	.psc-linked-feature__action .wp-block-buttons {
		justify-content: flex-start;
	}
}

.psc-hero {
	isolation: isolate;
	min-height: clamp(430px, 62vh, 680px);
}

.psc-hero::before {
	background: linear-gradient(90deg, color-mix(in srgb, var(--psc-brand-primary, #00205c) 96%, transparent) 0%, color-mix(in srgb, var(--psc-brand-primary, #00205c) 86%, transparent) 22%, color-mix(in srgb, var(--psc-brand-primary, #00205c) 46%, transparent) 38%, transparent 55%, transparent 100%);
}

.psc-hero .wp-block-cover__inner-container {
	width: 100%;
}

.psc-hero-copy {
	max-width: 680px;
}

.psc-card,
.is-style-psc-card {
	background: var(--wp--preset--color--base, #ffffff);
	border: var(--wp--custom--psc--border--width--thin, 1px) solid var(--psc-ui-border, #d6dce5);
	border-radius: var(--psc-card-radius, 8px);
	box-shadow: var(--psc-card-shadow, 0 8px 24px rgba(0, 32, 92, 0.10));
	overflow: hidden;
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.psc-permanent-theme .psc-card:hover,
.psc-permanent-theme .is-style-psc-card:hover {
	box-shadow: var(--psc-card-shadow-elevated, 0 16px 40px rgba(0, 32, 92, 0.16));
	transform: translateY(-2px);
}

.psc-card .wp-block-image img,
.is-style-psc-card .wp-block-image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	width: 100%;
}

/* Open, equal-height card patterns. Editors may add or remove any inner block;
   these classes preserve the visual grid without locking the content. */
.psc-equal-card-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.psc-equal-card-grid > .wp-block-column {
	display: flex;
}

.psc-equal-card-grid > .wp-block-column > .psc-card,
.psc-flexible-card {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
}


.psc-equal-card-grid > .wp-block-column > .psc-card,
.psc-news-grid > li > .psc-card {
	height: 100%;
}

.psc-flexible-card__content {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

.psc-flexible-card__content > :last-child {
	margin-top: auto;
}

/* Manual event cards are theme-owned editable content, not live event data. */
.psc-manual-event-cards__heading {
	color: var(--psc-brand-primary, #00205c);
	margin: 0 0 clamp(1.25rem, 3vw, 2rem);
	text-align: center;
}

.psc-manual-event-cards__grid {
	display: grid;
	gap: var(--psc-manual-event-gap, 32px);
	grid-template-columns: repeat(var(--psc-manual-event-columns, 2), minmax(0, 1fr));
}

.psc-manual-event-card {
	background: var(--wp--preset--color--base, #ffffff);
	border: var(--wp--custom--psc--border--width--thin, 1px) solid var(--psc-ui-border, #d6dce5);
	border-radius: var(--psc-card-radius, 8px);
	box-shadow: var(--psc-card-shadow, 0 8px 24px rgba(0, 32, 92, 0.10));
	min-width: 0;
	overflow: hidden;
}

.psc-manual-event-cards.is-equal-height .psc-manual-event-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.psc-manual-event-card > .wp-block-image,
.psc-manual-event-card > .psc-manual-event-card__media {
	margin: 0;
}

.psc-manual-event-card > .wp-block-image img {
	aspect-ratio: var(--psc-manual-event-ratio, 8 / 3) !important;
	display: block;
	height: auto;
	object-fit: cover !important;
	width: 100%;
}

.psc-manual-event-card__media {
	aspect-ratio: var(--psc-manual-event-ratio, 8 / 3) !important;
	min-height: 0 !important;
}

.psc-manual-event-card__media .wp-block-cover__image-background {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.psc-manual-event-card__content {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: clamp(1.25rem, 3vw, 2rem);
}

.psc-manual-event-card__content .wp-block-buttons:last-child {
	margin-top: auto;
	padding-top: 1rem;
}

.psc-manual-event-card__date {
	font-weight: 600;
}

.psc-quick-link,
.is-style-psc-quick-link {
	border-left: 5px solid var(--psc-brand-secondary, #036636);
	height: auto;
}

.psc-quick-links-column {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/* WordPress flow-layout margins must not be added on top of this flex gap. */
.psc-quick-links-column > .psc-quick-link {
	margin-block: 0;
}

.psc-stat-number {
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: clamp(2.4rem, 6vw, 4.5rem);
	font-weight: 400;
	letter-spacing: -0.04em;
	line-height: 0.95;
}

.psc-section-kicker {
	color: var(--psc-brand-secondary, #036636);
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.psc-contact-band a {
	color: var(--psc-brand-primary-text, #ffffff);
}

.psc-faq .wp-block-details {
	border-bottom: 1px solid #b7c1cf;
	padding: 1rem 0;
}

.psc-faq summary {
	color: var(--psc-brand-primary, #00205c);
	cursor: pointer;
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: 1.1rem;
	font-weight: 600;
}

/* Centrally managed and block-specific social-media rows. */
.psc-social-accounts {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
}

.psc-social-accounts--left {
	justify-content: flex-start;
}

.psc-social-accounts--right {
	justify-content: flex-end;
}

.psc-social-accounts__intro {
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-weight: 600;
	margin: 0;
}

.psc-social-accounts ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--psc-social-gap, 11px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.psc-social-accounts a {
	align-items: center;
	background: var(--psc-brand-primary, #00205c);
	border: 2px solid var(--psc-brand-primary, #00205c);
	border-radius: var(--wp--preset--border-radius--pill, 999px);
	color: var(--psc-brand-primary-text, #ffffff);
	display: inline-flex;
	height: var(--psc-social-icon-box, 48px);
	justify-content: center;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
	width: var(--psc-social-icon-box, 48px);
}

.psc-permanent-theme .psc-social-accounts a:hover,
.psc-permanent-theme .psc-social-accounts a:focus-visible {
	background: var(--psc-brand-accent, #f3d03e);
	border-color: var(--psc-brand-accent, #f3d03e);
	color: var(--psc-brand-accent-text, #00205c);
	transform: translateY(-2px);
}

.psc-social-accounts svg {
	fill: none;
	height: 23px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	width: 23px;
}

.psc-social-accounts .psc-social-icon-fill {
	fill: currentColor;
	stroke: none;
}

.psc-social-accounts--icon-only a {
	background: transparent;
	border-color: transparent;
	color: var(--psc-brand-primary, #00205c);
}

.psc-social-accounts--light a {
	background: var(--psc-base, #ffffff);
	border-color: var(--psc-base, #ffffff);
	color: var(--psc-brand-primary, #00205c);
}

.psc-social-accounts--dark a {
	background: var(--psc-contrast, #17212b);
	border-color: var(--psc-contrast, #17212b);
	color: var(--psc-base, #ffffff);
}

.psc-social-accounts--color-band {
	background: var(--psc-brand-primary, #00205c);
	color: var(--psc-brand-primary-text, #ffffff);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.psc-social-accounts--color-band a {
	background: var(--psc-base, #ffffff);
	border-color: var(--psc-base, #ffffff);
	color: var(--psc-brand-primary, #00205c);
}

.psc-social-accounts--empty {
	border: 1px dashed #8b97a6;
	color: #4a5568;
	justify-content: flex-start;
	padding: 1rem;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.psc-site-footer a {
	color: #ffffff;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.psc-site-footer a:hover,
.psc-site-footer a:focus-visible {
	color: var(--psc-brand-accent, #f3d03e);
}

.psc-footer-contact {
	display: grid;
	gap: 0.3rem;
}

.psc-footer-contact p {
	margin: 0;
}

.psc-footer-legal {
	border-top: 1px solid rgba(255, 255, 255, 0.3);
}

/* --------------------------------------------------------------------------
   WordPress blocks
   -------------------------------------------------------------------------- */

.wp-block-button .wp-block-button__link {
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
	background: var(--psc-brand-primary, #00205c);
	border-color: var(--psc-brand-primary, #00205c);
	color: var(--psc-brand-primary-text, #ffffff);
}

/* --------------------------------------------------------------------------
   PSC section patterns
   -------------------------------------------------------------------------- */

.psc-testimonial-wide .psc-testimonial-portrait {
	border: 6px solid rgba(255, 255, 255, 0.22);
	border-radius: 18px;
	box-shadow: 0 18px 45px rgba(0, 0, 0, 0.25);
	overflow: hidden;
}

.psc-testimonial-wide .psc-testimonial-quote::before {
	color: var(--psc-brand-accent, #f3d03e);
	content: "\201C";
	display: block;
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: clamp(5rem, 11vw, 9rem);
	line-height: 0.55;
	margin: 0 0 0.5rem;
}

.psc-testimonial-wide .psc-testimonial-quote,
.psc-testimonials-stacked .psc-testimonial-quote {
	border: 0;
	margin: 0;
	padding: 0;
}

.psc-testimonial-wide .psc-testimonial-quote p,
.psc-testimonials-stacked .psc-testimonial-quote p {
	font-family: var(--psc-font-body, "Rubik", Arial, sans-serif);
	font-size: clamp(1.35rem, 2.8vw, 2.35rem);
	line-height: 1.35;
}

.psc-testimonial-wide .psc-testimonial-quote cite,
.psc-testimonials-stacked .psc-testimonial-quote cite {
	display: block;
	font-family: var(--psc-font-body, "Rubik", Arial, sans-serif);
	font-size: 0.95rem;
	font-style: normal;
	font-weight: 600;
	margin-top: 1rem;
}

.psc-testimonials-stacked .psc-testimonial-card {
	border: var(--wp--custom--psc--border--width--thin, 1px) solid var(--psc-ui-border, #d6dce5);
	border-radius: var(--psc-card-radius, 8px);
	box-shadow: var(--psc-card-shadow, 0 8px 24px rgba(0, 32, 92, 0.10));
}

.psc-testimonials-stacked .psc-testimonial-card .psc-testimonial-quote p {
	font-size: clamp(1.1rem, 2vw, 1.5rem);
}

.psc-testimonials-stacked .psc-testimonial-avatar {
	border: 4px solid var(--psc-brand-accent, #f3d03e);
	border-radius: var(--wp--preset--border-radius--pill, 999px);
	flex: 0 0 120px;
	min-height: 120px;
	overflow: hidden;
	width: 120px;
}

.psc-process-list {
	display: grid;
	gap: 1rem;
	margin-top: 2rem;
}

/* The grid gap is the only vertical spacing between numbered steps. */
.psc-process-list > .psc-process-item {
	margin-block: 0;
}

.psc-process-item {
	border-bottom: 1px solid #d6dce5;
	gap: 1.25rem;
	padding: 1rem 0 1.5rem;
}

.psc-process-number {
	align-items: center;
	background: var(--psc-brand-primary, #00205c);
	border-radius: var(--wp--preset--border-radius--pill, 999px);
	color: var(--psc-brand-primary-text, #ffffff);
	display: inline-flex;
	flex: 0 0 48px;
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: 1.15rem;
	font-weight: 700;
	height: 48px;
	justify-content: center;
	margin: 0;
	width: 48px;
}

.psc-check-list {
	list-style: none;
	padding-left: 0;
}

.psc-check-list li {
	padding-left: 2rem;
	position: relative;
}

.psc-check-list li::before {
	color: var(--psc-brand-secondary, #036636);
	content: "✓";
	font-weight: 800;
	left: 0;
	position: absolute;
}

.psc-date-value {
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 700;
	margin-bottom: 0.4rem;
}

.psc-resource-item h3,
.psc-resource-item p {
	margin-bottom: 0;
	margin-top: 0;
}

.psc-mosaic .wp-block-cover,
.psc-exhibitions .wp-block-cover,
.psc-profile-grid .wp-block-cover,
.psc-mosaic img,
.psc-exhibitions img,
.psc-profile-grid img {
	border-radius: 8px;
}

.psc-mosaic .wp-block-cover,
.psc-exhibitions .wp-block-cover,
.psc-profile-grid .wp-block-cover {
	overflow: hidden;
}

.psc-site-footer .psc-brand-lockup__logo img {
	max-height: 72px;
	max-width: min(320px, 100%);
}

.psc-footer-links {
	list-style: none;
	padding-left: 0;
}

.psc-footer-links li + li {
	margin-top: 0.55rem;
}

/* Shared-content plugins can adopt the theme without duplicating templates. */
.psc-network-feed {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.psc-news-query {
	margin-top: var(--wp--preset--spacing--50);
}

.psc-news-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Grid and card gaps replace inherited WordPress flow-layout margins. */
.psc-news-grid > li,
.psc-news-grid .psc-card > *,
.psc-flexible-card-section .psc-card > *,
.psc-news-query-vertical__item > *,
.psc-news-list__item > * {
	margin-block-start: 0;
}

.psc-news-grid > li {
	margin-block-end: 0;
}

.psc-news-grid__image,
.psc-card__media {
	aspect-ratio: 16 / 9;
	margin: 0;
	min-height: 0 !important;
}

.psc-news-grid__image .wp-block-cover__image-background,
.psc-card__media .wp-block-cover__image-background {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

/* Native vertical Query Loop with consistent images and automatic post data. */
.psc-news-query-vertical {
	margin-top: clamp(1.5rem, 4vw, 2.5rem);
}

.psc-news-query-vertical__items {
	display: grid;
	gap: clamp(1.75rem, 4vw, 3rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.psc-news-query-vertical__items > li {
	margin: 0;
}

.psc-news-query-vertical__item {
	align-items: start;
	display: grid;
	gap: clamp(1.25rem, 3vw, 2rem);
	grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
}

.psc-news-query-vertical__image {
	aspect-ratio: 4 / 3;
	margin: 0;
	min-height: 0 !important;
	overflow: hidden;
}

.psc-news-query-vertical__image a {
	display: block;
	height: 100%;
}

.psc-news-query-vertical__image img {
	display: block;
	height: 100% !important;
	object-fit: cover;
	width: 100%;
}

.psc-news-query-vertical__content {
	min-width: 0;
}

.psc-news-query-vertical__title {
	font-size: clamp(1.2rem, 2.2vw, 1.65rem);
	margin-bottom: 0.65rem;
	margin-top: 0;
}

.psc-news-query-vertical__title a,
.psc-news-query-vertical .wp-block-post-excerpt__more-link {
	color: var(--psc-brand-primary, #00205c);
}

.psc-news-query-vertical__date {
	font-size: 0.95rem;
	margin-bottom: 0.85rem;
}

.psc-news-query-vertical__excerpt {
	font-size: clamp(1rem, 1.7vw, 1.18rem);
	line-height: 1.65;
}

.psc-news-query-vertical .wp-block-post-excerpt__more-link {
	font-weight: 700;
	text-decoration: none;
}

/* Legacy custom news block retained only for existing saved pages. */
.psc-news-list__heading {
	color: var(--psc-brand-primary, #00205c);
	text-align: center;
}

.psc-news-list__items {
	display: grid;
	gap: clamp(1.75rem, 4vw, 3rem);
	margin-top: clamp(1.5rem, 4vw, 2.5rem);
}

.psc-news-list__item {
	align-items: start;
	display: grid;
	gap: clamp(1.25rem, 3vw, 2rem);
	grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
}

.psc-news-list__media {
	display: block;
}

.psc-news-list__image,
.psc-news-list__image-placeholder {
	aspect-ratio: var(--psc-news-image-ratio, 4 / 3);
	background: var(--wp--preset--color--mist, #eef2f6);
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.psc-news-list__content {
	min-width: 0;
}

.psc-news-list__title {
	font-size: clamp(1.2rem, 2.2vw, 1.65rem);
	margin-bottom: 0.65rem;
	margin-top: 0;
}

.psc-news-list__title a,
.psc-news-list__read-more a {
	color: var(--psc-brand-primary, #00205c);
}

.psc-news-list__date {
	display: block;
	font-size: 0.95rem;
	margin-bottom: 0.85rem;
}

.psc-news-list__excerpt {
	font-size: clamp(1rem, 1.7vw, 1.18rem);
	line-height: 1.65;
}

.psc-news-list__read-more a {
	font-weight: 700;
	text-decoration: none;
}

.psc-news-list__view-all {
	margin-top: 2rem;
	text-align: center;
}

.psc-news-list__empty {
	border: 1px dashed #8b97a6;
	padding: 1rem;
}

.psc-manual-news-item .wp-block-media-text__media img {
	aspect-ratio: 4 / 3;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.psc-manual-news-image {
	aspect-ratio: 4 / 3;
	margin: 0;
	min-height: 0 !important;
}

.psc-manual-news-image .wp-block-cover__image-background {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

/* Ordinary image-and-text sections start both columns at the same top edge.
   Split heroes and testimonials keep their intentional centered alignment. */
.psc-section-shell > .wp-block-media-text {
	align-items: start;
}

.psc-section-shell > .wp-block-media-text > .wp-block-media-text__content > :first-child {
	margin-block-start: 0;
}

.psc-manual-news-item,
.psc-center-resources > .wp-block-columns {
	align-items: flex-start;
}

.psc-manual-news-item > .wp-block-column,
.psc-center-resources > .wp-block-columns > .wp-block-column {
	align-self: flex-start;
}

.psc-manual-news-item > .wp-block-column > :first-child,
.psc-center-resources > .wp-block-columns > .wp-block-column > :first-child {
	margin-block-start: 0;
}

/* Flexible two-panel rows can hold complete nested layouts in either side. */
.psc-split-content-row > .wp-block-column,
.psc-content-panel {
	min-width: 0;
}

.psc-content-panel {
	height: 100%;
}

/* Middle-page hero patterns deliberately omit breadcrumb markup. */
.psc-section-hero {
	isolation: isolate;
	overflow: hidden;
}

.psc-section-hero .wp-block-buttons {
	margin-top: 1.5rem;
}

.psc-section-hero--cover {
	min-height: clamp(340px, 48vw, 560px);
}

.psc-section-hero__content {
	width: min(680px, 100%);
}

.psc-section-hero__content--left {
	margin-left: 0;
	margin-right: auto;
}

.psc-section-hero__content--center {
	margin-left: auto;
	margin-right: auto;
}

.psc-section-hero__content--right {
	margin-left: auto;
	margin-right: 0;
}

.psc-section-hero--split .wp-block-columns {
	align-items: stretch;
}

.psc-section-hero--split .psc-section-hero__media,
.psc-section-hero--split .psc-section-hero__media img {
	height: 100%;
	min-height: 360px;
	object-fit: cover;
	width: 100%;
}

/* Theme presentation for live PSC Events blocks. The Events plugin remains
   responsible for querying, filtering, ordering, and rendering event data. */
.psc-live-dates .psc-events-block-header {
	align-items: end;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-between;
}

.psc-live-dates--vertical .is-presentation-dates-deadlines .psc-events-list {
	display: grid;
	grid-template-columns: 1fr;
}

.psc-live-dates--featured .wp-block-columns {
	gap: clamp(1.5rem, 4vw, 3.5rem);
}

.psc-network-card {
	background: var(--wp--preset--color--base, #ffffff);
	border: var(--wp--custom--psc--border--width--thin, 1px) solid var(--psc-ui-border, #d6dce5);
	border-radius: var(--psc-card-radius, 8px);
	box-shadow: var(--psc-card-shadow, 0 8px 24px rgba(0, 32, 92, 0.10));
	overflow: hidden;
}

.psc-network-card__source {
	color: var(--psc-brand-secondary, #036636);
	font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.psc-data-table .wp-block-table {
	max-width: 100%;
	overflow: visible;
}

.wp-block-query-pagination {
	gap: 0.75rem;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .current {
	border: 1px solid #718096;
	min-width: 44px;
	padding: 0.55rem 0.75rem;
	text-align: center;
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   Gallery, sponsor, responsive-table, and impact pattern refinements
   -------------------------------------------------------------------------- */

/* Current PSC gallery patterns remain native core Gallery blocks containing
   native core Image blocks so WordPress owns selection, replacement, List View,
   and lightbox behavior. The theme composes only those public block roots into
   intentional mosaics. No Gutenberg-private editor wrappers are targeted. */
.psc-native-gallery .wp-block-image {
	border-radius: 6px;
	overflow: hidden;
}

.psc-native-gallery .wp-block-image img {
	display: block;
	max-width: 100%;
}

figure.wp-block-gallery.psc-gallery-composition {
	--psc-gallery-gap: clamp(0.5rem, 1vw, 0.9rem);
	align-items: stretch;
	display: grid;
	gap: var(--psc-gallery-gap);
	grid-template-columns: repeat(12, minmax(0, 1fr));
	margin-block: 0;
	width: 100%;
}

figure.wp-block-gallery.psc-gallery-composition > figure.wp-block-image.psc-gallery-item {
	align-self: stretch;
	box-sizing: border-box;
	height: 100%;
	margin: 0;
	max-width: none;
	min-height: 0;
	min-width: 0;
	overflow: hidden;
	width: auto !important;
}

figure.wp-block-gallery.psc-gallery-composition > figure.wp-block-image.psc-gallery-item img {
	display: block;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	width: 100% !important;
}

/* Original Gallery – Image Mosaic: one large feature image plus two stacked. */
figure.wp-block-gallery.psc-gallery-mosaic-composition {
	aspect-ratio: 2 / 1;
	grid-template-rows: repeat(4, minmax(0, 1fr));
}

.psc-gallery-mosaic-composition > .psc-gallery-item--mosaic-feature { grid-column: 1 / 8; grid-row: 1 / 5; }
.psc-gallery-mosaic-composition > .psc-gallery-item--mosaic-top { grid-column: 8 / 13; grid-row: 1 / 3; }
.psc-gallery-mosaic-composition > .psc-gallery-item--mosaic-bottom { grid-column: 8 / 13; grid-row: 3 / 5; }

/* Portrait feature plus two landscape images. */
figure.wp-block-gallery.psc-gallery-feature-stack-composition {
	aspect-ratio: 9 / 5;
	grid-template-rows: repeat(4, minmax(0, 1fr));
}

.psc-gallery-feature-stack-composition > .psc-gallery-item--feature-portrait { grid-column: 1 / 6; grid-row: 1 / 5; }
.psc-gallery-feature-stack-composition > .psc-gallery-item--feature-top { grid-column: 6 / 13; grid-row: 1 / 3; }
.psc-gallery-feature-stack-composition > .psc-gallery-item--feature-bottom { grid-column: 6 / 13; grid-row: 3 / 5; }

/* Asymmetric editorial layout. */
figure.wp-block-gallery.psc-gallery-editorial-composition {
	aspect-ratio: 6 / 5;
	grid-template-rows: repeat(6, minmax(0, 1fr));
}

.psc-gallery-editorial-composition > .psc-gallery-item--editorial-1 { grid-column: 1 / 8; grid-row: 1 / 4; }
.psc-gallery-editorial-composition > .psc-gallery-item--editorial-2 { grid-column: 8 / 13; grid-row: 1 / 5; }
.psc-gallery-editorial-composition > .psc-gallery-item--editorial-3 { grid-column: 1 / 5; grid-row: 4 / 7; }
.psc-gallery-editorial-composition > .psc-gallery-item--editorial-4 { grid-column: 5 / 8; grid-row: 4 / 7; }
.psc-gallery-editorial-composition > .psc-gallery-item--editorial-5 { grid-column: 8 / 13; grid-row: 5 / 7; }

/* Landscape + portrait composition with a panoramic anchor. */
figure.wp-block-gallery.psc-gallery-landscape-portrait-composition {
	aspect-ratio: 2 / 1;
	grid-template-rows: repeat(6, minmax(0, 1fr));
}

.psc-gallery-landscape-portrait-composition > .psc-gallery-item--lp-1 { grid-column: 1 / 4; grid-row: 1 / 5; }
.psc-gallery-landscape-portrait-composition > .psc-gallery-item--lp-2 { grid-column: 4 / 9; grid-row: 1 / 3; }
.psc-gallery-landscape-portrait-composition > .psc-gallery-item--lp-3 { grid-column: 9 / 13; grid-row: 1 / 4; }
.psc-gallery-landscape-portrait-composition > .psc-gallery-item--lp-4 { grid-column: 4 / 9; grid-row: 3 / 5; }
.psc-gallery-landscape-portrait-composition > .psc-gallery-item--lp-5 { grid-column: 1 / 9; grid-row: 5 / 7; }
.psc-gallery-landscape-portrait-composition > .psc-gallery-item--lp-6 { grid-column: 9 / 13; grid-row: 4 / 7; }

/* Panoramic feature above a varied supporting strip. */
figure.wp-block-gallery.psc-gallery-feature-strip-composition {
	aspect-ratio: 7 / 6;
	grid-template-rows: repeat(6, minmax(0, 1fr));
}

.psc-gallery-feature-strip-composition > .psc-gallery-item--strip-1 { grid-column: 1 / 13; grid-row: 1 / 4; }
.psc-gallery-feature-strip-composition > .psc-gallery-item--strip-2 { grid-column: 1 / 5; grid-row: 4 / 7; }
.psc-gallery-feature-strip-composition > .psc-gallery-item--strip-3 { grid-column: 5 / 10; grid-row: 4 / 7; }
.psc-gallery-feature-strip-composition > .psc-gallery-item--strip-4 { grid-column: 10 / 13; grid-row: 4 / 7; }

/* At narrower widths, switch from the editorial composition to a stable native
   two-column sequence. This still uses the same Image blocks and therefore
   keeps replacement and lightbox behavior unchanged. */
@media (max-width: 900px) {
	figure.wp-block-gallery.psc-gallery-composition {
		aspect-ratio: auto;
		grid-auto-rows: auto;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
	}

	figure.wp-block-gallery.psc-gallery-composition > figure.wp-block-image.psc-gallery-item {
		align-self: start;
		aspect-ratio: 4 / 3;
		grid-column: auto !important;
		grid-row: auto !important;
		height: auto;
		width: 100% !important;
	}
}

@media (max-width: 600px) {

	.psc-side-navigation-layout {
		gap: var(--wp--preset--spacing--40) !important;
	}

	.psc-side-navigation-layout__nav,
	.psc-side-navigation-layout__content {
		flex-basis: 100% !important;
	}

	.psc-local-navigation {
		margin-bottom: var(--wp--preset--spacing--20);
	}
	figure.wp-block-gallery.psc-gallery-composition {
		grid-template-columns: 1fr;
	}

	.psc-gallery-composition > .psc-gallery-item--portrait { aspect-ratio: 3 / 4; }
	.psc-gallery-composition > .psc-gallery-item--square { aspect-ratio: 1 / 1; }
	.psc-gallery-composition > .psc-gallery-item--landscape { aspect-ratio: 16 / 9; }
	.psc-gallery-composition > .psc-gallery-item--panorama { aspect-ratio: 16 / 9; }
}

/* Legacy 0.6.1 gallery layouts are retained on the published site only so an
   administrator-modified copy keeps its existing appearance. They deliberately
   do not run in Gutenberg, where forcing layout onto editor wrappers caused the
   selection jump fixed in 0.6.2. */
.psc-permanent-theme .psc-mosaic > .wp-block-columns {
	align-items: stretch;
}

.psc-permanent-theme .psc-mosaic > .wp-block-columns > .wp-block-column:first-child {
	display: flex;
}

.psc-permanent-theme .psc-mosaic > .wp-block-columns > .wp-block-column:first-child > .wp-block-cover {
	aspect-ratio: auto !important;
	flex: 1 1 auto;
	height: 100%;
	min-height: 100%;
}

.psc-permanent-theme .psc-mosaic > .wp-block-columns > .wp-block-column:last-child > .wp-block-cover {
	width: 100%;
}

.psc-permanent-theme .psc-gallery-grid {
	--psc-gallery-gap: clamp(0.5rem, 1vw, 0.9rem);
	--psc-gallery-row: clamp(82px, 7.4vw, 118px);
	display: grid;
	gap: var(--psc-gallery-gap);
	grid-auto-rows: var(--psc-gallery-row);
	grid-template-columns: repeat(12, minmax(0, 1fr));
}

.psc-permanent-theme .psc-gallery-grid > .psc-gallery-tile {
	aspect-ratio: auto !important;
	border-radius: 6px;
	height: 100%;
	margin-block: 0 !important;
	min-height: 0 !important;
	overflow: hidden;
}

.psc-permanent-theme .psc-gallery-grid > .psc-gallery-tile .wp-block-cover__image-background {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.psc-permanent-theme .psc-gallery-feature-stack .psc-gallery-tile--feature { grid-column: 1 / 8; grid-row: 1 / 5; }
.psc-permanent-theme .psc-gallery-feature-stack .psc-gallery-tile--stack-top { grid-column: 8 / 13; grid-row: 1 / 3; }
.psc-permanent-theme .psc-gallery-feature-stack .psc-gallery-tile--stack-bottom { grid-column: 8 / 13; grid-row: 3 / 5; }
.psc-permanent-theme .psc-gallery-editorial .psc-gallery-tile--editorial-1 { grid-column: 1 / 8; grid-row: 1 / 4; }
.psc-permanent-theme .psc-gallery-editorial .psc-gallery-tile--editorial-2 { grid-column: 8 / 13; grid-row: 1 / 5; }
.psc-permanent-theme .psc-gallery-editorial .psc-gallery-tile--editorial-3 { grid-column: 1 / 5; grid-row: 4 / 7; }
.psc-permanent-theme .psc-gallery-editorial .psc-gallery-tile--editorial-4 { grid-column: 5 / 8; grid-row: 4 / 7; }
.psc-permanent-theme .psc-gallery-editorial .psc-gallery-tile--editorial-5 { grid-column: 8 / 13; grid-row: 5 / 7; }
.psc-permanent-theme .psc-gallery-landscape-portrait .psc-gallery-tile--lp-1 { grid-column: 1 / 4; grid-row: 1 / 5; }
.psc-permanent-theme .psc-gallery-landscape-portrait .psc-gallery-tile--lp-2 { grid-column: 4 / 9; grid-row: 1 / 3; }
.psc-permanent-theme .psc-gallery-landscape-portrait .psc-gallery-tile--lp-3 { grid-column: 9 / 13; grid-row: 1 / 4; }
.psc-permanent-theme .psc-gallery-landscape-portrait .psc-gallery-tile--lp-4 { grid-column: 4 / 9; grid-row: 3 / 5; }
.psc-permanent-theme .psc-gallery-landscape-portrait .psc-gallery-tile--lp-5 { grid-column: 1 / 9; grid-row: 5 / 7; }
.psc-permanent-theme .psc-gallery-landscape-portrait .psc-gallery-tile--lp-6 { grid-column: 9 / 13; grid-row: 4 / 7; }
.psc-permanent-theme .psc-gallery-feature-strip .psc-gallery-tile--strip-1 { grid-column: 1 / 13; grid-row: 1 / 4; }
.psc-permanent-theme .psc-gallery-feature-strip .psc-gallery-tile--strip-2 { grid-column: 1 / 5; grid-row: 4 / 7; }
.psc-permanent-theme .psc-gallery-feature-strip .psc-gallery-tile--strip-3 { grid-column: 5 / 10; grid-row: 4 / 7; }
.psc-permanent-theme .psc-gallery-feature-strip .psc-gallery-tile--strip-4 { grid-column: 10 / 13; grid-row: 4 / 7; }

/* Current sponsor patterns use core Group Grid layout. These rules only size
   and center logos; they do not define the grid itself. */
.psc-sponsor-logos--native > .wp-block-image {
	margin: 0;
	min-width: 0;
	width: 100%;
}

.psc-sponsor-logos--native > .wp-block-image img {
	display: block;
	height: clamp(110px, 12vw, 180px) !important;
	margin-inline: auto;
	max-width: 180px;
	object-fit: contain;
	width: min(100%, 180px) !important;
}

/* Preserve published layout for administrator-modified 0.6.1 sponsor copies
   that predate the core Grid conversion. */
.psc-permanent-theme .psc-sponsor-logos:not(.psc-sponsor-logos--native) {
	--psc-sponsor-gap: clamp(1.25rem, 3vw, 3rem);
	align-items: center;
	display: grid;
	gap: var(--psc-sponsor-gap);
	justify-items: center;
}

.psc-permanent-theme .psc-sponsor-logos--4:not(.psc-sponsor-logos--native) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.psc-permanent-theme .psc-sponsor-logos--5:not(.psc-sponsor-logos--native) { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* Impact Mosaic now gets its grid and vertical tile layout from core Group
   layout support. Theme CSS supplies only shape and interaction styling. */
.psc-impact-tile {
	aspect-ratio: 1 / 1;
	margin-block: 0 !important;
	min-height: 0 !important;
}

.psc-impact-tile--image {
	overflow: hidden;
}

.psc-impact-tile--image .wp-block-cover__image-background {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.psc-impact-tile--stat {
	position: relative;
	text-align: center;
	transition: box-shadow 180ms ease, filter 180ms ease, transform 180ms ease;
}

.psc-impact-tile__icon {
	margin-bottom: clamp(1rem, 2vw, 2rem);
}

.psc-impact-tile__icon img {
	display: block;
	margin-inline: auto;
}

.psc-impact-tile--stat h3,
.psc-impact-tile--stat p {
	margin-block-end: 0;
}

.psc-impact-tile__link-wrap {
	font-size: 0.92rem;
	font-weight: 700;
	margin-top: 1rem;
}

.psc-impact-tile__link {
	color: inherit;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.18em;
}

.psc-permanent-theme .psc-impact-tile__link-wrap a::after {
	content: "";
	inset: 0;
	position: absolute;
	z-index: 2;
}

.psc-permanent-theme .psc-impact-tile--stat:has(.psc-impact-tile__link-wrap a):hover,
.psc-permanent-theme .psc-impact-tile--stat:has(.psc-impact-tile__link-wrap a):focus-within {
	box-shadow: 0 16px 34px rgba(0, 32, 92, 0.2);
	filter: brightness(1.08);
	transform: translateY(-3px);
}

.psc-permanent-theme .psc-impact-tile--stat:has(.psc-impact-tile__link-wrap a):focus-within {
	outline: 3px solid var(--psc-brand-accent, #f3d03e);
	outline-offset: 3px;
}

/* Responsive Table enhancement. JavaScript adds header-derived labels only on
   the published page. Without JavaScript it remains a normal semantic table. */
.psc-data-table table {
	width: 100%;
}

.psc-data-table th,
.psc-data-table td {
	overflow-wrap: anywhere;
}

@media (max-width: 900px) {
	.psc-permanent-theme .psc-sponsor-logos--4:not(.psc-sponsor-logos--native) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.psc-permanent-theme .psc-sponsor-logos--5:not(.psc-sponsor-logos--native) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.psc-permanent-theme .psc-gallery-grid {
		grid-auto-rows: auto;
		grid-template-columns: 1fr;
	}

	.psc-permanent-theme .psc-gallery-grid > .psc-gallery-tile {
		grid-column: auto !important;
		grid-row: auto !important;
		height: auto;
	}

	.psc-permanent-theme .psc-gallery-grid > .psc-gallery-tile--portrait { aspect-ratio: 3 / 4 !important; }
	.psc-permanent-theme .psc-gallery-grid > .psc-gallery-tile--square { aspect-ratio: 1 / 1 !important; }
	.psc-permanent-theme .psc-gallery-grid > .psc-gallery-tile--landscape,
	.psc-permanent-theme .psc-gallery-grid > .psc-gallery-tile--feature { aspect-ratio: 16 / 9 !important; }
	.psc-permanent-theme .psc-gallery-grid > .psc-gallery-tile--panorama { aspect-ratio: 21 / 9 !important; }

	.psc-impact-tile--stat {
		aspect-ratio: auto;
		min-height: 300px !important;
	}

	.psc-impact-tile--image {
		aspect-ratio: 4 / 3;
	}

	.psc-data-table table.psc-responsive-table--ready,
	.psc-data-table table.psc-responsive-table--ready tbody {
		display: block;
		width: 100%;
	}

	.psc-data-table table.psc-responsive-table--ready thead {
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		height: 1px;
		overflow: hidden;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	.psc-data-table table.psc-responsive-table--ready tbody {
		display: grid;
		gap: 1rem;
	}

	.psc-data-table table.psc-responsive-table--ready tbody tr {
		background: var(--psc-base, #ffffff) !important;
		border: 1px solid var(--wp--preset--color--ui-border, #d6dce5);
		border-radius: var(--psc-card-radius, 8px);
		box-shadow: var(--psc-card-shadow, 0 8px 24px rgba(0, 32, 92, 0.10));
		display: block;
		padding: 0.35rem 1rem;
	}

	.psc-data-table table.psc-responsive-table--ready tbody th,
	.psc-data-table table.psc-responsive-table--ready tbody td {
		align-items: start;
		background: transparent !important;
		border: 0;
		border-bottom: 1px solid var(--wp--preset--color--ui-border, #d6dce5);
		display: grid;
		gap: 1rem;
		grid-template-columns: minmax(7.5rem, 34%) minmax(0, 1fr);
		padding: 0.8rem 0;
		text-align: left !important;
		width: 100%;
	}

	.psc-data-table table.psc-responsive-table--ready tbody tr > :last-child {
		border-bottom: 0;
	}

	.psc-data-table table.psc-responsive-table--ready tbody th::before,
	.psc-data-table table.psc-responsive-table--ready tbody td::before {
		color: var(--psc-brand-primary, #00205c);
		content: attr(data-psc-label);
		font-family: var(--psc-font-heading, "Rubik", Arial, sans-serif);
		font-weight: 700;
	}
}

@media (max-width: 560px) {
	.psc-permanent-theme .psc-sponsor-logos--4:not(.psc-sponsor-logos--native),
	.psc-permanent-theme .psc-sponsor-logos--5:not(.psc-sponsor-logos--native) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 430px) {
	.psc-data-table table.psc-responsive-table--ready tbody th,
	.psc-data-table table.psc-responsive-table--ready tbody td {
		gap: 0.3rem;
		grid-template-columns: 1fr;
	}
}

@media (max-width: 360px) {
	.psc-permanent-theme .psc-sponsor-logos--4:not(.psc-sponsor-logos--native),
	.psc-permanent-theme .psc-sponsor-logos--5:not(.psc-sponsor-logos--native) {
		grid-template-columns: 1fr;
	}
}


/* --------------------------------------------------------------------------
   Article/post reading flow
   -------------------------------------------------------------------------- */

/* The wide article shell is the containing canvas for native left/right Image
   alignment while Post Content retains the theme's constrained reading width. */
.psc-article-shell {
	width: 100%;
}

.psc-article-content {
	display: flow-root;
}

.psc-article-content > .alignleft {
	margin-bottom: 1.25rem;
	margin-right: clamp(1.25rem, 3vw, 2.5rem);
}

.psc-article-content > .alignright {
	margin-bottom: 1.25rem;
	margin-left: clamp(1.25rem, 3vw, 2.5rem);
}

/* --------------------------------------------------------------------------
   Responsive behavior
   -------------------------------------------------------------------------- */

@media (max-width: 900px) {
	.psc-equal-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.psc-header-actions {
		justify-content: flex-start;
	}

	.psc-primary-nav-shell {
		justify-content: flex-end !important;
	}

	.psc-primary-navigation {
		flex: 0 0 auto;
		justify-content: flex-end;
		margin-left: auto;
		order: 2;
	}

	.psc-primary-nav-shell > .wp-block-search,
	.psc-minimal-nav-tools > .wp-block-search {
		order: 1;
	}

	.psc-header-buttons {
		justify-content: flex-start !important;
	}

	.psc-primary-navigation .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--psc-brand-primary, #00205c) !important;
		color: var(--psc-brand-primary-text, #ffffff) !important;
		padding: max(1.25rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1.25rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));
	}

	.psc-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
	.psc-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
	.psc-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		align-items: stretch;
		width: 100%;
	}

	.psc-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		color: inherit !important;
		font-size: 1rem;
		justify-content: flex-start;
		min-height: 48px;
		padding: 0.75rem;
		width: 100%;
	}

	.psc-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu {
		position: relative !important;
	}

	.psc-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		background: color-mix(in srgb, var(--psc-brand-primary, #00205c) 82%, #ffffff) !important;
		border: 0 !important;
		border-left: 3px solid var(--psc-brand-accent, #f3d03e) !important;
		border-radius: 0;
		box-shadow: none;
		display: none !important;
		grid-template-columns: 1fr;
		margin: 0 0 0.5rem 0.75rem;
		min-width: 0 !important;
		opacity: 1 !important;
		padding: 0.25rem !important;
		pointer-events: auto !important;
		position: static !important;
		transform: none !important;
		visibility: visible !important;
		width: calc(100% - 0.75rem) !important;
	}

	.psc-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-container {
		display: flex !important;
	}

	.psc-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		color: var(--psc-brand-primary-text, #ffffff) !important;
	}

	.psc-hero::before {
		background: linear-gradient(90deg, color-mix(in srgb, var(--psc-brand-primary, #00205c) 94%, transparent) 0%, color-mix(in srgb, var(--psc-brand-primary, #00205c) 84%, transparent) 22%, color-mix(in srgb, var(--psc-brand-primary, #00205c) 46%, transparent) 38%, transparent 55%, transparent 100%);
	}

	.psc-network-feed {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.psc-news-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.psc-manual-event-cards__grid {
		grid-template-columns: repeat(min(2, var(--psc-manual-event-columns, 2)), minmax(0, 1fr));
	}
}

@media (max-width: 600px) {

	.psc-side-navigation-layout {
		gap: var(--wp--preset--spacing--40) !important;
	}

	.psc-side-navigation-layout__nav,
	.psc-side-navigation-layout__content {
		flex-basis: 100% !important;
	}

	.psc-local-navigation {
		margin-bottom: var(--wp--preset--spacing--20);
	}

	.psc-article-content > .alignleft,
	.psc-article-content > .alignright {
		float: none;
		margin-left: auto;
		margin-right: auto;
		max-width: 100%;
	}

	.psc-equal-card-grid {
		grid-template-columns: 1fr;
	}

	.psc-brand-lockup,
	.psc-brand-lockup--expanded {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.6rem;
	}

	.psc-brand-lockup__logo img,
	.psc-brand-lockup--expanded .psc-brand-lockup__logo img {
		max-height: 94px;
		max-width: 132px;
	}

	.psc-brand-lockup__department {
		font-size: 1.05rem;
	}

	.psc-brand-lockup__tagline {
		font-size: 0.82rem;
	}

	.psc-header-action {
		font-size: 0.76rem;
		min-height: 44px;
		padding: 0.45rem 0.65rem;
	}

	.psc-hero {
		min-height: 520px;
	}

	.psc-hero-copy {
		max-width: none;
	}

	.psc-page-title-band .wp-block-post-title {
		font-size: clamp(2rem, 9vw, 2.85rem) !important;
	}

	.psc-article-title {
		font-size: clamp(2.25rem, 11vw, 3.5rem) !important;
	}

	.psc-testimonials-stacked .psc-testimonial-card {
		align-items: flex-start !important;
		flex-direction: column;
	}

	.psc-network-feed {
		grid-template-columns: 1fr;
	}

	.psc-news-grid {
		grid-template-columns: 1fr;
	}

	.psc-news-list__item {
		grid-template-columns: 1fr;
	}

	.psc-news-query-vertical__item {
		grid-template-columns: 1fr;
	}

	.psc-news-list__media {
		max-width: none;
	}

	.psc-manual-event-cards__grid {
		grid-template-columns: 1fr;
	}

	.psc-section-hero--split .psc-section-hero__media,
	.psc-section-hero--split .psc-section-hero__media img {
		min-height: 240px;
	}

}


/* Mobile density: reduce desktop whitespace while retaining readable type and
   touch targets. These rules target public theme components, not Gutenberg's
   internal editor wrappers. */
@media (max-width: 782px) {
	.psc-site-footer {
		--wp--style--block-gap: var(--wp--preset--spacing--40);
	}

	.psc-site-footer .wp-block-columns {
		gap: var(--wp--preset--spacing--40) !important;
	}

	.psc-footer-legal {
		gap: var(--wp--preset--spacing--20) !important;
	}

	.psc-section-shell,
	.psc-page-content-shell,
	.psc-entry-content-shell,
	.psc-utility-content-shell {
		--psc-mobile-section-gap: var(--wp--preset--spacing--50);
	}

	.psc-site-header--floating-minimal .psc-primary-nav-shell--minimal {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
		padding-left: 20px;
		padding-right: 20px;
	}

	.psc-utility-bar {
		display: none;
	}

	.psc-site-header--compact > .wp-block-group:nth-of-type(2) {
		padding-bottom: 0.75rem !important;
		padding-top: 0.75rem !important;
	}

	.psc-header-identity-row,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) {
		align-items: center !important;
		display: grid !important;
		gap: 0.65rem;
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
		width: 100%;
	}

	.psc-header-identity-row > .psc-brand-lockup,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) > .psc-brand-lockup {
		max-width: 100%;
		min-width: 0;
		width: 100%;
	}

	.psc-header-identity-row > :where(.psc-header-actions, .wp-block-buttons),
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) > :where(.psc-header-actions, .wp-block-buttons) {
		align-items: center;
		flex-wrap: wrap;
		gap: 0.4rem;
		justify-content: flex-end;
		min-width: 0;
	}

	.psc-header-identity-row .psc-header-action,
	.psc-header-identity-row .wp-block-button__link,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) .psc-header-action,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) .wp-block-button__link {
		font-size: 0.875rem;
		min-height: 44px;
		padding: 0.55rem 0.75rem;
	}

	.psc-site-header--compact .psc-primary-nav-shell {
		min-height: 54px;
		padding-left: 20px;
		padding-right: 20px;
	}

	.psc-floating-actions {
		min-width: 0;
	}

	.psc-floating-actions .psc-header-action,
	.psc-floating-actions .wp-block-button__link {
		padding-left: 0.65rem;
		padding-right: 0.65rem;
	}
}

@media (max-width: 600px) {
	.psc-hero {
		min-height: 400px;
	}

	.psc-campaign-cta {
		min-height: 320px !important;
	}

	.psc-section-hero--cover {
		min-height: 360px !important;
	}

	.psc-section-hero--split .psc-section-hero__media,
	.psc-section-hero--split .psc-section-hero__media img {
		min-height: 210px;
	}

	.psc-site-footer {
		padding-top: var(--wp--preset--spacing--50) !important;
		padding-bottom: var(--wp--preset--spacing--40) !important;
	}

	.psc-site-header--floating-minimal .psc-brand-lockup__logo img {
		max-height: 40px;
		max-width: 100%;
	}

	.psc-header-identity-row .psc-brand-lockup__logo,
	.psc-header-identity-row .psc-brand-lockup__logo picture,
	.psc-header-identity-row .psc-brand-lockup__logo img,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) .psc-brand-lockup__logo,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) .psc-brand-lockup__logo picture,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) .psc-brand-lockup__logo img {
		max-width: 100%;
		width: 100%;
	}

	.psc-header-identity-row .psc-brand-lockup__logo img,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) .psc-brand-lockup__logo img {
		max-height: 58px;
		object-position: left center;
	}

	.psc-header-identity-row .psc-brand-lockup__department,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) .psc-brand-lockup__department {
		font-size: 0.9rem;
		line-height: 1.15;
	}

	.psc-header-identity-row .psc-brand-lockup__tagline,
	.psc-site-header--compact .wp-block-group.alignwide:has(> .psc-brand-lockup) .psc-brand-lockup__tagline {
		display: none;
	}

	.psc-site-header--floating-minimal .psc-floating-actions .psc-header-action,
	.psc-site-header--floating-minimal .psc-floating-actions .wp-block-button__link {
		font-size: 0.82rem;
		padding-left: 0.55rem;
		padding-right: 0.55rem;
	}
}

/* Respect the visitor's motion preference. */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* Provide a clean print view for schedules, policies, and reference pages. */
@media print {
	.psc-site-header,
	.psc-floating-header-shell,
	.psc-site-footer,
	.psc-alert,
	.psc-header-actions,
	.psc-primary-navigation {
		display: none !important;
	}

	a {
		color: #000000 !important;
		text-decoration: underline !important;
	}

	body {
		background: #ffffff !important;
		color: #000000 !important;
	}
}


/* Visual Arts remains PSC-led and uses Anna Red only where it has accessible
   contrast: light surfaces, white text on red, and decorative accents. */
.psc-brand-profile-visual-arts .psc-article-category a,
.psc-brand-profile-visual-arts .psc-page-content-shell .psc-section-kicker,
.psc-brand-profile-visual-arts .psc-entry-content-shell .psc-section-kicker,
.psc-brand-profile-visual-arts .psc-utility-content-shell .psc-section-kicker {
	color: var(--psc-site-accent, #a7252d);
}

.psc-brand-profile-visual-arts .psc-section-shell:not(.psc-section-hero):not(.has-background) > .wp-block-heading:first-of-type::after,
.psc-brand-profile-visual-arts .psc-section-shell.has-mist-background-color > .wp-block-heading:first-of-type::after {
	background: var(--psc-site-accent, #a7252d);
	content: "";
	display: block;
	height: 4px;
	margin-top: 0.45em;
	width: 46px;
}

.psc-brand-profile-visual-arts .psc-section-shell > .wp-block-heading.has-text-align-center:first-of-type::after {
	margin-left: auto;
	margin-right: auto;
}

.psc-brand-profile-visual-arts .is-style-psc-card,
.psc-brand-profile-visual-arts .psc-resource-item,
.psc-brand-profile-visual-arts .psc-manual-news-item {
	border-top-color: var(--psc-site-accent, #a7252d);
	border-top-width: 4px;
}

/* On ordinary light article/page surfaces, Anna Red becomes a visible accent
   without replacing PSC navy/green as the structural brand colors. */
.psc-brand-profile-visual-arts :where(.psc-page-content-shell, .psc-entry-content-shell, .psc-utility-content-shell) h2.wp-block-heading:not(.has-text-color)::after {
	background: var(--psc-site-accent, #a7252d);
	content: "";
	display: block;
	height: 4px;
	margin-top: 0.4em;
	width: 46px;
}

.psc-brand-profile-visual-arts :where(.psc-page-content-shell, .psc-entry-content-shell, .psc-utility-content-shell) h2.wp-block-heading.has-text-align-center:not(.has-text-color)::after {
	margin-left: auto;
	margin-right: auto;
}

.psc-brand-profile-visual-arts :where(.psc-page-content-shell, .psc-entry-content-shell, .psc-utility-content-shell) a:not(.wp-element-button) {
	color: var(--psc-site-accent, #a7252d);
	text-decoration-color: var(--psc-site-accent, #a7252d);
}

.psc-brand-profile-visual-arts :where(.psc-page-content-shell, .psc-entry-content-shell, .psc-utility-content-shell) .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background) {
	background: var(--psc-site-accent, #a7252d);
	border-color: var(--psc-site-accent, #a7252d);
	color: var(--psc-site-accent-text, #ffffff);
}

.psc-brand-profile-visual-arts .psc-process-number {
	background: var(--psc-site-accent, #a7252d);
	color: var(--psc-site-accent-text, #ffffff);
}

.psc-brand-profile-visual-arts .psc-site-header--floating-minimal .current-menu-item > .wp-block-navigation-item__content,
.psc-brand-profile-visual-arts .psc-site-header--floating-minimal .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--psc-site-accent, #a7252d);
	text-decoration-color: var(--psc-site-accent, #a7252d);
	text-decoration-line: underline;
	text-decoration-thickness: 3px;
	text-underline-offset: 0.35em;
}

/* Dark PSC surfaces retain gold/white accents instead of red-on-navy or
   red-on-green combinations that do not meet the intended contrast. */
.psc-brand-profile-visual-arts :where(.psc-hero, .psc-section-hero--cover, .psc-section-hero--band, .has-brand-primary-background-color, .has-brand-secondary-background-color, .psc-site-footer) .psc-section-kicker {
	color: var(--psc-brand-accent, #f3d03e);
}

.psc-brand-profile-visual-arts :where(.has-brand-primary-background-color, .has-brand-secondary-background-color, .psc-site-footer) h2.wp-block-heading::after {
	display: none;
}

.psc-brand-profile-visual-arts :where(.has-brand-primary-background-color, .has-brand-secondary-background-color, .psc-site-footer) a:not(.wp-element-button) {
	color: inherit;
	text-decoration-color: currentColor;
}

.psc-brand-profile-visual-arts :where(.has-brand-primary-background-color, .has-brand-secondary-background-color) .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background) {
	background: var(--psc-brand-button, #036636);
	border-color: var(--psc-brand-button, #036636);
	color: var(--psc-brand-button-text, #ffffff);
}

.psc-brand-profile-visual-arts .has-site-accent-background-color,
.psc-brand-profile-visual-arts .wp-block-button__link.has-site-accent-background-color {
	color: var(--psc-site-accent-text, #ffffff);
}

/* Charter Academy has an approved full-color horizontal logo but no bundled
   reversed variant. Keep the official artwork intact and place it on a white
   surface when the standardized navy footer requires a dark background. */
.psc-brand-profile-charter-academy .psc-site-footer .psc-brand-lockup__logo {
	background: #ffffff;
	border-radius: 4px;
	display: inline-flex;
	padding: 8px 10px;
}

.psc-brand-profile-charter-academy .psc-site-footer .psc-brand-lockup__logo img {
	max-height: 52px;
	width: auto;
}
