/*
Theme Name: St. Andrew School
Theme URI: https://standrewschool.org/
Description: A content-safe custom Genesis child theme for St. Andrew Catholic School. Includes the maroon-and-cream design system and page-pattern library, but never creates, updates, deletes, or replaces WordPress pages, posts, menus, or homepage settings.
Author: St. Andrew School
Author URI: https://standrewschool.org/
Version: 1.4.10
Template: genesis
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: st-andrew-school
Requires at least: 6.4
Requires PHP: 7.4
Tags: accessibility-ready, block-styles, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-width-template, one-column, responsive-layout, wide-blocks
*/

/*
TABLE OF CONTENTS
1. Design tokens and reset
2. Base typography and elements
3. Layout
4. Utility bar and header
5. Navigation
6. Content and forms
7. Front page and block patterns
8. Footer
9. Accessibility
10. Responsive rules
*/

/* 1. Design tokens and reset
--------------------------------------------- */

:root {
	--sa-maroon: #6b2135;
	--sa-maroon-dark: #431421;
	--sa-maroon-soft: #8b4052;
	--sa-cream: #f5efe5;
	--sa-parchment: #fbf8f2;
	--sa-gold: #b48b52;
	--sa-charcoal: #262326;
	--sa-gray: #676167;
	--sa-border: #ded6ca;
	--sa-white: #ffffff;
	--sa-shadow: 0 18px 48px rgba(44, 24, 31, 0.12);
	--sa-radius: 4px;
	--sa-content: 760px;
	--sa-wide: 1180px;
	--sa-transition: 180ms ease;
}

html {
	box-sizing: border-box;
	font-size: 62.5%;
	scroll-behavior: smooth;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body {
	background: var(--sa-parchment);
	color: var(--sa-charcoal);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.7;
	margin: 0;
	-webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea {
	font: inherit;
}

img,
picture,
svg {
	display: block;
	height: auto;
	max-width: 100%;
}

figure {
	margin: 0;
}

/* 2. Base typography and elements
--------------------------------------------- */

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--sa-maroon-dark);
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.12;
	margin: 0 0 0.65em;
}

h1 { font-size: clamp(4.2rem, 7vw, 7.6rem); }
h2 { font-size: clamp(3.4rem, 5vw, 5.4rem); }
h3 { font-size: clamp(2.5rem, 3vw, 3.4rem); }
h4 { font-size: 2.2rem; }
h5 { font-size: 1.9rem; }
h6 { font-size: 1.7rem; }

p {
	margin: 0 0 1.35em;
}

p:last-child {
	margin-bottom: 0;
}

a {
	color: var(--sa-maroon);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color var(--sa-transition), background-color var(--sa-transition), border-color var(--sa-transition), transform var(--sa-transition);
}

a:hover,
a:focus {
	color: var(--sa-maroon-dark);
}

strong {
	font-weight: 700;
}

blockquote {
	border-left: 4px solid var(--sa-gold);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.2rem, 3vw, 3.2rem);
	font-style: italic;
	line-height: 1.45;
	margin: 3.2rem 0;
	padding: 0.5rem 0 0.5rem 2.8rem;
}

hr,
.wp-block-separator {
	border: 0;
	border-top: 1px solid var(--sa-border);
	margin: 4rem auto;
}

::selection {
	background: var(--sa-maroon);
	color: var(--sa-white);
}

/* 3. Layout
--------------------------------------------- */

.site-container {
	background: var(--sa-white);
	min-height: 100vh;
	overflow: hidden;
}

.wrap,
.site-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: var(--sa-wide);
	width: calc(100% - 4.8rem);
}

.site-inner {
	padding-bottom: 8rem;
	padding-top: 6.4rem;
}

.content-sidebar-wrap {
	display: grid;
	gap: 5.6rem;
	grid-template-columns: minmax(0, 1fr) 320px;
}

.full-width-content .content-sidebar-wrap,
.content-sidebar .content-sidebar-wrap {
	grid-template-columns: minmax(0, 1fr);
}

.content {
	min-width: 0;
}

.sidebar {
	font-size: 1.6rem;
}

.widget {
	margin-bottom: 4rem;
}

.widget-title {
	font-size: 2.2rem;
}

/* 4. Utility bar and header
--------------------------------------------- */

.sa-utility-bar {
	background: var(--sa-maroon-dark);
	color: var(--sa-white);
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.sa-utility-bar .wrap {
	align-items: center;
	display: flex;
	gap: 2.4rem;
	justify-content: space-between;
	min-height: 4.4rem;
}

.sa-utility-contact,
.sa-utility-menu {
	align-items: center;
	display: flex;
	gap: 2rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.sa-utility-bar a {
	color: var(--sa-white);
	text-decoration: none;
}

.sa-utility-bar a:hover,
.sa-utility-bar a:focus {
	color: var(--sa-cream);
	text-decoration: underline;
	text-underline-offset: 0.25em;
}


.site-header {
	background: rgba(255, 255, 255, 0.98);
	border-bottom: 1px solid rgba(107, 33, 53, 0.12);
	position: relative;
	z-index: 50;
}

.site-header > .wrap {
	align-items: center;
	display: flex;
	gap: 4rem;
	justify-content: space-between;
	min-height: 10.2rem;
}

.title-area {
	flex: 0 1 320px;
	padding: 1.6rem 0;
}

.site-title {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 3rem;
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1;
	margin: 0;
}

.site-title a,
.site-title a:hover,
.site-title a:focus {
	color: var(--sa-maroon-dark);
	text-decoration: none;
}

.site-description {
	color: var(--sa-gray);
	font-size: 1.35rem;
	letter-spacing: 0.08em;
	margin: 0.7rem 0 0;
	text-transform: uppercase;
}

.custom-logo-link {
	display: inline-block;
}

.custom-logo {
	max-height: 76px;
	max-width: 320px;
	width: auto;
}

/* 5. Navigation
--------------------------------------------- */

.nav-primary {
	margin-left: auto;
}

.genesis-nav-menu,
.genesis-nav-menu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.genesis-nav-menu {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.2rem;
}

.genesis-nav-menu .menu-item {
	position: relative;
}

.genesis-nav-menu a {
	color: var(--sa-charcoal);
	display: block;
	font-size: 1.45rem;
	font-weight: 700;
	letter-spacing: 0.035em;
	padding: 3.9rem 1.15rem;
	text-decoration: none;
	text-transform: uppercase;
}

.genesis-nav-menu a:hover,
.genesis-nav-menu a:focus,
.genesis-nav-menu .current-menu-item > a,
.genesis-nav-menu .current-menu-ancestor > a {
	color: var(--sa-maroon);
}

.genesis-nav-menu .menu-item-has-children > a::after {
	content: "\2304";
	font-size: 1.1rem;
	margin-left: 0.55rem;
}

.genesis-nav-menu .sub-menu {
	background: var(--sa-white);
	border-top: 3px solid var(--sa-maroon);
	box-shadow: var(--sa-shadow);
	left: -9999px;
	min-width: 255px;
	opacity: 0;
	position: absolute;
	top: 100%;
	transform: translateY(8px);
	transition: opacity var(--sa-transition), transform var(--sa-transition);
	z-index: 99;
}

.genesis-nav-menu .sub-menu a {
	border-bottom: 1px solid var(--sa-border);
	font-size: 1.35rem;
	letter-spacing: 0.02em;
	padding: 1.4rem 1.8rem;
	text-transform: none;
}

.genesis-nav-menu .menu-item:hover > .sub-menu,
.genesis-nav-menu .menu-item:focus-within > .sub-menu {
	left: 0;
	opacity: 1;
	transform: translateY(0);
}

.genesis-nav-menu .sub-menu .sub-menu {
	left: -9999px;
	top: -3px;
}

.genesis-nav-menu .sub-menu .menu-item:hover > .sub-menu,
.genesis-nav-menu .sub-menu .menu-item:focus-within > .sub-menu {
	left: 100%;
}

.sa-primary-menu-button,
.sa-primary-submenu-button {
	background: var(--sa-white);
	border: 0;
	color: var(--sa-maroon);
	cursor: pointer;
	display: none;
}

.sa-primary-menu-button {
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	padding: 1.4rem 0;
	text-transform: uppercase;
}

/* Hide any legacy Genesis controls so only the theme-owned controls can run. */
.menu-toggle,
.sub-menu-toggle {
	display: none !important;
}

/* 6. Content and forms
--------------------------------------------- */

.entry {
	margin-bottom: 7.2rem;
}

.entry-title {
	font-size: clamp(4rem, 6vw, 6.4rem);
}

.entry-meta {
	color: var(--sa-gray);
	font-size: 1.4rem;
}

.entry-content {
	margin-left: auto;
	margin-right: auto;
	max-width: var(--sa-content);
}

.full-width-content .entry-content {
	max-width: var(--sa-wide);
}

.entry-content > * + * {
	margin-top: 1.5em;
}

.entry-content > .alignwide {
	margin-left: calc((var(--sa-wide) - var(--sa-content)) / -2);
	margin-right: calc((var(--sa-wide) - var(--sa-content)) / -2);
	max-width: var(--sa-wide);
	width: var(--sa-wide);
}

.entry-content > .alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
	width: 100vw;
}

.wp-block-button__link,
.button,
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	background: var(--sa-maroon);
	border: 2px solid var(--sa-maroon);
	border-radius: 0;
	color: var(--sa-white);
	cursor: pointer;
	display: inline-flex;
	font-size: 1.45rem;
	font-weight: 600;
	justify-content: center;
	letter-spacing: 0.055em;
	line-height: 1.2;
	padding: 1.35rem 2.1rem;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color var(--sa-transition), border-color var(--sa-transition), color var(--sa-transition), transform var(--sa-transition);
}

.wp-block-button__link:hover,
.wp-block-button__link:focus,
.button:hover,
.button:focus,
button:hover,
button:focus,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="reset"]:hover,
input[type="reset"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus {
	background: var(--sa-maroon-dark);
	border-color: var(--sa-maroon-dark);
	color: var(--sa-white);
	transform: translateY(-2px);
}

.is-style-outline > .wp-block-button__link,
.wp-block-button__link.is-style-outline {
	background: transparent;
	border-color: currentColor;
	color: var(--sa-maroon);
}

.is-style-outline > .wp-block-button__link:hover,
.is-style-outline > .wp-block-button__link:focus {
	background: var(--sa-maroon);
	border-color: var(--sa-maroon);
	color: var(--sa-white);
}

input,
select,
textarea {
	background: var(--sa-white);
	border: 1px solid #bfb6ad;
	border-radius: 0;
	color: var(--sa-charcoal);
	padding: 1.2rem 1.4rem;
	width: 100%;
}

input:focus,
select:focus,
textarea:focus {
	border-color: var(--sa-maroon);
	box-shadow: 0 0 0 3px rgba(107, 33, 53, 0.12);
	outline: 0;
}

.breadcrumb {
	color: var(--sa-gray);
	font-size: 1.4rem;
	margin-bottom: 3.2rem;
}

.pagination {
	margin: 4.8rem 0;
}

.pagination ul {
	display: flex;
	gap: 0.8rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pagination a,
.pagination .active a {
	border: 1px solid var(--sa-border);
	display: inline-block;
	padding: 0.8rem 1.2rem;
	text-decoration: none;
}

.pagination .active a,
.pagination a:hover,
.pagination a:focus {
	background: var(--sa-maroon);
	border-color: var(--sa-maroon);
	color: var(--sa-white);
}

/* 7. Front page and block patterns
--------------------------------------------- */

.st-andrew-front-page .site-inner,
.page-template-full-width-blocks .site-inner {
	max-width: none;
	padding: 0;
	width: 100%;
}

.st-andrew-front-page .content-sidebar-wrap,
.page-template-full-width-blocks .content-sidebar-wrap {
	display: block;
}

.st-andrew-front-page .entry,
.page-template-full-width-blocks .entry {
	margin: 0;
}

.st-andrew-front-page .entry-content,
.page-template-full-width-blocks .entry-content {
	max-width: none;
}

.st-andrew-front-page .entry-content > *,
.page-template-full-width-blocks .entry-content > * {
	margin-top: 0;
}

.st-andrew-front-page .entry-content > .alignfull,
.page-template-full-width-blocks .entry-content > .alignfull {
	margin-left: 0;
	margin-right: 0;
	width: 100%;
}

.sa-home-hero {
	background-color: var(--sa-maroon-dark);
	background-image:
		linear-gradient(90deg, rgba(40, 10, 20, 0.82) 0%, rgba(55, 16, 28, 0.66) 46%, rgba(55, 16, 28, 0.32) 100%),
		url("assets/images/hero-placeholder.svg");
	background-position: center;
	background-size: cover;
	isolation: isolate;
	min-height: clamp(620px, 72vh, 780px);
}


.sa-home-hero > .wp-block-cover__image-background {
	height: 100%;
	object-fit: cover;
	object-position: center;
	width: 100%;
	z-index: 0;
}

.sa-home-hero::after {
	background: linear-gradient(90deg, rgba(40, 10, 20, 0.84) 0%, rgba(55, 16, 28, 0.68) 46%, rgba(55, 16, 28, 0.36) 100%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.sa-home-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

.sa-home-hero .wp-block-cover__background {
	background: transparent !important;
}

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

.sa-hero-inner {
	margin: 0 auto;
	max-width: var(--sa-wide);
	padding: 10rem 2.4rem 12rem;
}

.sa-eyebrow,
.sa-section-kicker,
.sa-card-kicker {
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	margin-bottom: 1.8rem;
	text-transform: uppercase;
}

.sa-home-hero .sa-eyebrow {
	color: #f4d7c0;
}

.sa-home-hero h1 {
	color: var(--sa-white);
	max-width: 860px;
	text-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}

.sa-home-hero .sa-hero-lede {
	color: rgba(255, 255, 255, 0.92);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 2.6vw, 2.8rem);
	line-height: 1.5;
	max-width: 720px;
}

.sa-home-hero .wp-block-button__link {
	background: var(--sa-white);
	border-color: var(--sa-white);
	color: var(--sa-maroon-dark);
}

.sa-home-hero .is-style-outline > .wp-block-button__link {
	background: transparent;
	border-color: var(--sa-white);
	color: var(--sa-white);
}

.sa-home-hero .wp-block-button__link:hover,
.sa-home-hero .wp-block-button__link:focus {
	background: var(--sa-cream);
	border-color: var(--sa-cream);
	color: var(--sa-maroon-dark);
}

.sa-mission-band {
	background: var(--sa-cream);
	padding: clamp(6rem, 9vw, 10rem) 2.4rem;
	text-align: center;
}

.sa-mission-band .sa-section-kicker,
.sa-pathways .sa-section-kicker,
.sa-section .sa-section-kicker {
	color: var(--sa-maroon);
}

.sa-mission-band p:not(.sa-section-kicker) {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 2.8vw, 3rem);
	line-height: 1.55;
	margin-left: auto;
	margin-right: auto;
	max-width: 900px;
}

.sa-pathways {
	background: var(--sa-white);
	padding: clamp(5.6rem, 8vw, 9rem) 2.4rem clamp(7rem, 10vw, 12rem);
}

.sa-pathways > .wp-block-group__inner-container,
.sa-section > .wp-block-group__inner-container,
.sa-giving-cta > .wp-block-cover__inner-container > .wp-block-group {
	margin-left: auto;
	margin-right: auto;
	max-width: var(--sa-wide);
}

.sa-pathway-grid {
	align-items: stretch;
	gap: 2.4rem;
}

.sa-pathway-grid > .wp-block-column {
	display: flex;
}

.sa-pathway-card {
	background: var(--sa-parchment);
	border-top: 5px solid var(--sa-maroon);
	box-shadow: 0 12px 30px rgba(39, 24, 29, 0.08);
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 100%;
	padding: 3.2rem;
	position: relative;
	transition: box-shadow var(--sa-transition), transform var(--sa-transition);
}

.sa-pathway-card:hover {
	box-shadow: var(--sa-shadow);
	transform: translateY(-6px);
}

.sa-pathway-card .sa-card-kicker {
	color: var(--sa-gold);
}

.sa-pathway-card h3 {
	font-size: 2.8rem;
}

.sa-pathway-card p {
	font-size: 1.65rem;
}

.sa-pathway-card .wp-block-buttons {
	justify-content: center;
	margin-top: auto;
	padding-top: 1.6rem;
	width: 100%;
}

.sa-pathway-card .wp-block-button__link {
	background: transparent;
	border: 0;
	color: var(--sa-maroon);
	justify-content: center;
	padding: 0;
	text-align: center;
}

.sa-pathway-card .wp-block-button__link:hover,
.sa-pathway-card .wp-block-button__link:focus {
	background: transparent;
	color: var(--sa-maroon-dark);
	transform: none;
}

.sa-section {
	padding: clamp(7rem, 10vw, 12rem) 2.4rem;
}

.sa-section--cream {
	background: var(--sa-cream);
}

.sa-section--maroon {
	background: var(--sa-maroon-dark);
	color: var(--sa-white);
}

.sa-section--maroon h2,
.sa-section--maroon h3,
.sa-section--maroon h4 {
	color: var(--sa-white);
}

.sa-section--maroon a:not(.wp-block-button__link) {
	color: var(--sa-white);
}

.sa-split {
	align-items: center !important;
	gap: clamp(4rem, 7vw, 8rem);
}

.sa-photo-panel {
	background-color: var(--sa-maroon);
	background-image:
		linear-gradient(rgba(72, 19, 33, 0.24), rgba(72, 19, 33, 0.58)),
		url("assets/images/hero-placeholder.svg");
	background-position: center;
	background-size: cover;
	box-shadow: var(--sa-shadow);
	min-height: 520px;
	position: relative;
}

.sa-photo-panel .wp-block-cover__background {
	background: transparent !important;
}

.sa-photo-panel .sa-photo-stat {
	color: var(--sa-white);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.8rem, 7vw, 8rem);
	font-weight: 700;
	line-height: 1;
	text-align: center;
	text-shadow: 0 3px 18px rgba(0, 0, 0, 0.25);
}

.sa-photo-panel .sa-photo-caption {
	color: var(--sa-white);
	font-size: 1.4rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-align: center;
	text-transform: uppercase;
}

.sa-values-grid {
	gap: 2.4rem;
}

.sa-value-card {
	border-left: 1px solid var(--sa-border);
	padding: 1rem 2.4rem 1rem 3rem;
}

.sa-value-card:first-child {
	border-left: 0;
}

.sa-value-number {
	color: var(--sa-gold);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 4.6rem;
	line-height: 1;
}

.sa-latest-posts {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sa-latest-posts li {
	border-top: 1px solid var(--sa-border);
	padding: 1.8rem 0;
}

.sa-latest-posts li:first-child {
	border-top: 0;
	padding-top: 0;
}

.sa-latest-posts a {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 2.2rem;
	font-weight: 700;
	text-decoration: none;
}

.sa-latest-posts .wp-block-latest-posts__post-date {
	color: var(--sa-gray);
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin-top: 0.4rem;
	text-transform: uppercase;
}

.sa-calendar-card {
	background: var(--sa-maroon);
	color: var(--sa-white);
	min-height: 100%;
	padding: clamp(3.6rem, 5vw, 5.6rem);
}

.sa-calendar-card h3,
.sa-calendar-card h4 {
	color: var(--sa-white);
}

.sa-calendar-card .wp-block-button__link {
	background: var(--sa-white);
	border-color: var(--sa-white);
	color: var(--sa-maroon-dark);
}

.sa-giving-cta {
	background-color: var(--sa-maroon-dark);
	background-image:
		linear-gradient(90deg, rgba(52, 12, 25, 0.92), rgba(78, 20, 39, 0.72)),
		url("assets/images/hero-placeholder.svg");
	background-position: center;
	background-size: cover;
	padding: clamp(7rem, 11vw, 13rem) 2.4rem;
}

.sa-giving-cta h2,
.sa-giving-cta p {
	color: var(--sa-white);
}

.sa-giving-cta .wp-block-button__link {
	background: var(--sa-white);
	border-color: var(--sa-white);
	color: var(--sa-maroon-dark);
}

/* Genesis Blocks compatibility. */
.gb-button,
.gb-block-button .gb-button {
	background: var(--sa-maroon);
	border-radius: 0;
	color: var(--sa-white);
	font-weight: 600;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.gb-block-container.sa-section .gb-container-inside {
	margin-left: auto;
	margin-right: auto;
	max-width: var(--sa-wide);
}

/* 8. Footer
--------------------------------------------- */

.site-footer {
	background: var(--sa-maroon-dark);
	color: rgba(255, 255, 255, 0.86);
	font-size: 1.5rem;
	padding: 6.4rem 0 2.4rem;
	text-align: left;
}

.sa-footer-grid {
	display: grid;
	gap: 4rem;
	grid-template-columns: 1.3fr 1fr 1fr;
}

.site-footer h2,
.site-footer h3 {
	color: var(--sa-white);
}

.site-footer h3 {
	font-size: 2.1rem;
}

.site-footer a {
	color: var(--sa-white);
}

.site-footer .custom-logo {
	filter: brightness(0) invert(1);
	max-height: 64px;
	max-width: 260px;
}

.sa-footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sa-footer-menu li {
	margin-bottom: 0.75rem;
}

.sa-footer-menu a {
	text-decoration: none;
}

.sa-footer-menu a:hover,
.sa-footer-menu a:focus {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.sa-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	font-size: 1.3rem;
	margin-top: 4.8rem;
	padding-top: 2rem;
}

.sa-footer-bottom p {
	margin: 0;
}

/* 9. Accessibility
--------------------------------------------- */

/* Keep the Genesis skip-link list from creating visible space above the site. */
.genesis-skip-link {
	height: 0;
	margin: 0;
	overflow: visible;
	padding: 0;
	position: relative;
	z-index: 100000;
}

.genesis-skip-link li {
	height: 0;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 0;
}

.screen-reader-text,
.screen-reader-text span,
.screen-reader-shortcut,
.genesis-skip-link .screen-reader-text,
.genesis-skip-link .screen-reader-shortcut,
.genesis-skip-link a {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	transition: none;
	white-space: nowrap;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus,
.screen-reader-shortcut:focus,
.genesis-skip-link .screen-reader-text:focus,
.genesis-skip-link .screen-reader-shortcut:focus,
.genesis-skip-link a:focus {
	background: var(--sa-white);
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: var(--sa-maroon-dark);
	display: block;
	font-size: 1.6rem;
	font-weight: 700;
	height: auto;
	left: 1rem;
	margin: 0;
	padding: 1.4rem 2rem;
	position: fixed !important;
	top: 1rem;
	white-space: normal;
	width: auto;
	z-index: 100000;
}

:focus-visible {
	outline: 3px solid var(--sa-gold);
	outline-offset: 3px;
}

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

/* 10. Responsive rules
--------------------------------------------- */

@media (max-width: 1100px) {
	.site-header > .wrap {
		align-items: stretch;
		flex-direction: column;
		gap: 0;
		padding-bottom: 1.2rem;
	}

	.title-area {
		align-self: flex-start;
		flex-basis: auto;
	}

	.nav-primary {
		margin-left: 0;
		width: 100%;
	}

	.genesis-nav-menu a {
		padding-bottom: 1.5rem;
		padding-top: 1.5rem;
	}

	.content-sidebar-wrap {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 960px) {
	.sa-utility-bar .wrap {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.8rem;
		padding-bottom: 1rem;
		padding-top: 1rem;
	}

	.sa-utility-contact,
	.sa-utility-menu {
		flex-wrap: wrap;
		gap: 0.6rem 1.4rem;
	}

	.sa-primary-menu-button,
	.sa-primary-submenu-button {
		display: flex;
	}

	.sa-primary-menu-button {
		width: 100%;
	}

	/* The navigation controller owns visibility with the native hidden
	   attribute. Hiding the not-yet-initialized menu prevents a flash without
	   creating a second CSS toggle state. */
	.js:not(.sa-nav-ready) .nav-primary {
		display: none;
	}

	.nav-primary[hidden],
	.genesis-nav-menu .sub-menu[hidden] {
		display: none !important;
	}

	.sa-nav-ready .nav-primary:not([hidden]) {
		display: block;
		width: 100%;
	}

	.no-js .sa-primary-menu-button,
	.no-js .sa-primary-submenu-button {
		display: none;
	}

	.no-js .nav-primary {
		display: block;
	}

	.nav-primary .genesis-nav-menu {
		display: block;
		width: 100%;
	}

	.genesis-nav-menu .menu-item {
		border-top: 1px solid var(--sa-border);
		width: 100%;
	}

	.genesis-nav-menu a {
		padding: 1.4rem 0;
	}

	.genesis-nav-menu .sub-menu {
		border-top: 0;
		box-shadow: none;
		display: block;
		left: auto;
		min-width: 0;
		opacity: 1;
		position: static;
		transform: none;
		width: 100%;
	}

	/* Override desktop hover/focus positioning on touch layouts. Visibility is
	   controlled only by the hidden attribute set by navigation-v146.js. */
	.genesis-nav-menu .menu-item:hover > .sub-menu,
	.genesis-nav-menu .menu-item:focus-within > .sub-menu,
	.genesis-nav-menu .sub-menu .menu-item:hover > .sub-menu,
	.genesis-nav-menu .sub-menu .menu-item:focus-within > .sub-menu {
		left: auto;
		opacity: 1;
		transform: none;
	}

	.genesis-nav-menu .sub-menu a {
		padding-left: 2rem;
		padding-right: 5.4rem;
	}

	.sa-primary-submenu-button {
		align-items: center;
		background: var(--sa-white);
		bottom: auto;
		color: var(--sa-maroon);
		justify-content: center;
		min-height: 4.8rem;
		padding: 0;
		position: absolute;
		right: 0;
		top: 0.25rem;
		width: 4.8rem;
	}

	.sa-primary-submenu-button:hover,
	.sa-primary-submenu-button:focus {
		background: var(--sa-cream);
		color: var(--sa-maroon-dark);
	}

	.sa-primary-submenu-button__icon {
		display: block;
		height: 1.2rem;
		position: relative;
		width: 1.2rem;
	}

	.sa-primary-submenu-button__icon::before,
	.sa-primary-submenu-button__icon::after {
		background: currentColor;
		content: "";
		left: 50%;
		position: absolute;
		top: 50%;
		transform: translate(-50%, -50%);
		transition: transform var(--sa-transition);
	}

	.sa-primary-submenu-button__icon::before {
		height: 2px;
		width: 1.2rem;
	}

	.sa-primary-submenu-button__icon::after {
		height: 1.2rem;
		width: 2px;
	}

	.sa-primary-submenu-button.is-expanded .sa-primary-submenu-button__icon::after,
	.sa-primary-submenu-button[aria-expanded="true"] .sa-primary-submenu-button__icon::after {
		transform: translate(-50%, -50%) rotate(90deg);
	}

	.sa-pathway-grid,
	.sa-values-grid {
		flex-wrap: wrap !important;
	}

	.sa-pathway-grid > .wp-block-column,
	.sa-values-grid > .wp-block-column {
		flex-basis: calc(50% - 1.2rem) !important;
	}

	.sa-value-card:nth-child(3) {
		border-left: 0;
	}

	.sa-footer-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 700px) {
	body {
		font-size: 1.7rem;
	}

	.wrap,
	.site-inner {
		width: calc(100% - 3.2rem);
	}

	.site-inner {
		padding-bottom: 5.6rem;
		padding-top: 4.8rem;
	}

	.sa-utility-contact {
		display: none;
	}

	.sa-utility-menu {
		justify-content: center;
		width: 100%;
	}

	.site-header > .wrap {
		min-height: auto;
	}

	.custom-logo {
		max-height: 64px;
		max-width: 250px;
	}

	.sa-hero-inner {
		padding-bottom: 8rem;
		padding-top: 8rem;
	}

	.sa-home-hero {
		min-height: 600px;
	}

	.sa-pathway-grid > .wp-block-column,
	.sa-values-grid > .wp-block-column {
		flex-basis: 100% !important;
	}

	.sa-value-card,
	.sa-value-card:nth-child(3) {
		border-left: 0;
		border-top: 1px solid var(--sa-border);
		padding-left: 0;
		padding-top: 2.4rem;
	}

	.sa-value-card:first-child {
		border-top: 0;
	}

	.sa-photo-panel {
		min-height: 390px;
	}

	.sa-footer-grid {
		grid-template-columns: 1fr;
	}

	.entry-content > .alignwide {
		margin-left: 0;
		margin-right: 0;
		max-width: 100%;
		width: 100%;
	}
}

/* Sticky header enhancement. */
.sa-header-marker {
	height: 1px;
	margin-bottom: -1px;
}

.site-header {
	position: sticky;
	top: 0;
}

.site-header.is-scrolled {
	box-shadow: 0 10px 30px rgba(43, 17, 27, 0.12);
}

.admin-bar .site-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}

/* 11. Complete interior page patterns
--------------------------------------------- */

.st-andrew-pattern-page .site-inner {
	max-width: none;
	padding: 0;
	width: 100%;
}

.st-andrew-pattern-page .content-sidebar-wrap {
	display: block;
}

.st-andrew-pattern-page .entry {
	margin: 0;
}

.st-andrew-pattern-page .entry-content {
	max-width: none;
}

.st-andrew-pattern-page .entry-content > * {
	margin-top: 0;
}

.st-andrew-pattern-page .entry-content > .alignfull {
	margin-left: 0;
	margin-right: 0;
	max-width: none;
	width: 100%;
}

.sa-page-hero {
	isolation: isolate;
	min-height: clamp(430px, 55vw, 560px);
	position: relative;
}

.sa-page-hero--image {
	align-items: flex-end;
}

.sa-page-hero--image .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(49, 10, 23, 0.94) 0%, rgba(67, 20, 33, 0.78) 50%, rgba(67, 20, 33, 0.45) 100%) !important;
	opacity: 1 !important;
}

.sa-page-hero--image .wp-block-cover__image-background {
	filter: saturate(0.8) contrast(1.04);
}

.sa-page-hero--solid {
	background:
		linear-gradient(110deg, rgba(53, 13, 27, 0.98), rgba(107, 33, 53, 0.9)),
		url("assets/images/hero-placeholder.svg") center right 8% / min(54vw, 720px) auto no-repeat;
	color: var(--sa-white);
	display: flex;
	min-height: clamp(390px, 48vw, 510px);
	padding: clamp(8rem, 11vw, 12rem) 2.4rem;
}

.sa-page-hero__inner {
	margin: 0 auto;
	padding: clamp(7rem, 10vw, 10rem) 2.4rem clamp(6rem, 8vw, 8rem);
	width: 100%;
}

.sa-page-hero--solid > .sa-page-hero__inner {
	padding: 0;
}

.sa-page-kicker {
	color: #f2cfaa;
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	margin-bottom: 2rem;
	text-transform: uppercase;
}

.sa-page-kicker a {
	color: inherit;
	text-decoration: none;
}

.sa-page-kicker a:hover,
.sa-page-kicker a:focus {
	color: var(--sa-white);
	text-decoration: underline;
}

.sa-page-title,
.sa-page-hero h1 {
	color: var(--sa-white);
	font-size: clamp(4.4rem, 7vw, 7.6rem);
	max-width: 980px;
	text-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}

.sa-page-hero__lede {
	color: rgba(255, 255, 255, 0.92);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 2.5vw, 2.8rem);
	line-height: 1.5;
	max-width: 880px;
}

.sa-section-nav {
	background: var(--sa-white);
	border-bottom: 1px solid var(--sa-border);
	box-shadow: 0 10px 30px rgba(43, 17, 27, 0.06);
	padding: 0 2.4rem;
	position: relative;
	z-index: 3;
}

.sa-section-nav__nav {
	align-items: center;
	display: flex;
	gap: 2.4rem;
	margin: 0 auto;
	max-width: var(--sa-wide);
	min-height: 7.2rem;
}

.sa-section-nav__root {
	color: var(--sa-maroon-dark);
	flex: 0 0 auto;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 2.2rem;
	font-weight: 700;
	text-decoration: none;
}

.sa-section-nav__links {
	align-items: center;
	display: flex;
	gap: 0.2rem;
	overflow-x: auto;
	scrollbar-width: thin;
	white-space: nowrap;
}

.sa-section-nav__links a {
	border-bottom: 3px solid transparent;
	color: var(--sa-charcoal);
	font-size: 1.35rem;
	font-weight: 600;
	letter-spacing: 0.035em;
	padding: 2.4rem 1.2rem 2.1rem;
	text-decoration: none;
	text-transform: uppercase;
}

.sa-section-nav__links a:hover,
.sa-section-nav__links a:focus,
.sa-section-nav__links a.is-current {
	border-bottom-color: var(--sa-maroon);
	color: var(--sa-maroon);
}

.sa-hub-band {
	background: var(--sa-white);
	padding: clamp(6rem, 9vw, 10rem) 2.4rem;
}

.sa-hub-grid {
	counter-reset: sa-hub-card;
	display: grid;
	gap: 2.4rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0 auto;
	max-width: var(--sa-wide);
}

.sa-hub-card {
	background: var(--sa-parchment);
	border-top: 5px solid var(--sa-maroon);
	box-shadow: 0 12px 30px rgba(39, 24, 29, 0.08);
	counter-increment: sa-hub-card;
	min-height: 230px;
	padding: 3.2rem;
	position: relative;
	transition: box-shadow var(--sa-transition), transform var(--sa-transition);
}

.sa-hub-card::before {
	color: var(--sa-gold);
	content: counter(sa-hub-card, decimal-leading-zero);
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: 0.16em;
}

.sa-hub-card:hover,
.sa-hub-card:focus-within {
	box-shadow: var(--sa-shadow);
	transform: translateY(-6px);
}

.sa-hub-card__title {
	font-size: clamp(2.5rem, 3vw, 3.2rem);
	margin-top: 3.2rem;
}

.sa-hub-card__title a {
	color: var(--sa-maroon-dark);
	text-decoration: none;
}

.sa-hub-card__title a::after {
	content: "";
	inset: 0;
	position: absolute;
}

.sa-intro-band {
	background: var(--sa-white);
	padding: clamp(6rem, 9vw, 10rem) 2.4rem;
}

.sa-intro-band > * {
	margin-left: auto;
	margin-right: auto;
	max-width: 900px;
}

.sa-intro-band > p:first-of-type {
	color: var(--sa-maroon-dark);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.2rem, 3.2vw, 3.3rem);
	line-height: 1.5;
}

.sa-content-band {
	padding: clamp(6rem, 9vw, 10rem) 2.4rem;
}

.sa-content-band--cream {
	background: var(--sa-cream);
}

.sa-content-band--white {
	background: var(--sa-white);
}

.sa-content-band__inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 980px !important;
	position: relative;
}

.sa-content-band__title {
	font-size: clamp(3.2rem, 4.8vw, 5.2rem);
	margin-bottom: 3rem;
	padding-top: 2rem;
}

.sa-content-band__title::before {
	background: var(--sa-gold);
	content: "";
	display: block;
	height: 4px;
	margin-bottom: 2.4rem;
	width: 72px;
}

.sa-content-band p,
.sa-content-band li {
	max-width: 82ch;
}

.sa-content-band ul,
.sa-content-band ol {
	padding-left: 1.4em;
}

.sa-content-band li {
	margin-bottom: 0.8em;
	padding-left: 0.35em;
}

.sa-content-band li::marker {
	color: var(--sa-maroon);
	font-weight: 800;
}

.sa-content-band .sa-inline-image {
	box-shadow: var(--sa-shadow);
	margin: 4rem auto;
	max-width: 1040px;
}

.sa-content-band .sa-inline-image img {
	width: 100%;
}

.sa-document-buttons {
	gap: 1.2rem;
	margin-top: 2.8rem;
}

.sa-document-buttons .wp-block-button__link {
	min-height: 5.2rem;
}

.sa-data-table-wrap {
	background: var(--sa-white);
	border: 1px solid var(--sa-border);
	box-shadow: 0 14px 36px rgba(43, 17, 27, 0.08);
	margin: 3.2rem 0;
	overflow-x: auto;
}

.sa-data-table {
	border-collapse: collapse;
	font-size: 1.6rem;
	margin: 0;
	min-width: 680px;
	width: 100%;
}

.sa-data-table th,
.sa-data-table td {
	border: 1px solid var(--sa-border);
	padding: 1.6rem 1.8rem;
	text-align: left;
	vertical-align: top;
}

.sa-data-table thead th {
	background: var(--sa-maroon-dark);
	color: var(--sa-white);
	font-size: 1.3rem;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.sa-data-table tbody tr:nth-child(even) td {
	background: var(--sa-parchment);
}

.sa-map-embed {
	border: 8px solid var(--sa-white);
	box-shadow: var(--sa-shadow);
	margin: 3.2rem 0;
	min-height: 420px;
}

.sa-map-embed iframe {
	border: 0;
	display: block;
	height: 480px;
	width: 100%;
}

.sa-process-band,
.sa-method-band,
.sa-faq-band,
.sa-jobs-band {
	padding: clamp(6rem, 9vw, 10rem) 2.4rem;
}

.sa-process-list {
	counter-reset: sa-process;
	display: grid;
	gap: 2.4rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 auto;
	max-width: var(--sa-wide);
}

.sa-process-card {
	background: var(--sa-white);
	border-left: 5px solid var(--sa-maroon);
	box-shadow: 0 12px 32px rgba(43, 17, 27, 0.08);
	counter-increment: sa-process;
	padding: 3.6rem;
}

.sa-process-card::before {
	color: var(--sa-gold);
	content: "Step " counter(sa-process, decimal-leading-zero);
	display: block;
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	margin-bottom: 2.2rem;
	text-transform: uppercase;
}

.sa-process-card h2,
.sa-process-card h3 {
	font-size: clamp(2.6rem, 3.4vw, 3.8rem);
}

.sa-faq-band,
.sa-jobs-band {
	display: grid;
	gap: 1.4rem;
}

.sa-faq-item {
	background: var(--sa-white);
	border: 1px solid var(--sa-border);
	box-shadow: 0 8px 22px rgba(43, 17, 27, 0.05);
	margin: 0;
	padding: 0 2.8rem;
}

.sa-faq-item summary {
	color: var(--sa-maroon-dark);
	cursor: pointer;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.2rem, 3vw, 3rem);
	font-weight: 700;
	list-style: none;
	padding: 2.4rem 4.4rem 2.4rem 0;
	position: relative;
}

.sa-faq-item summary::-webkit-details-marker {
	display: none;
}

.sa-faq-item summary::after {
	color: var(--sa-maroon);
	content: "+";
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 3rem;
	font-weight: 400;
	position: absolute;
	right: 0;
	top: 1.8rem;
}

.sa-faq-item[open] summary::after {
	content: "\2212";
}

.sa-faq-item > :not(summary) {
	margin-left: 0;
	margin-right: 0;
}

.sa-faq-item[open] {
	padding-bottom: 2.8rem;
}

.sa-method-grid {
	counter-reset: sa-method;
	display: grid;
	gap: 2.4rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 auto;
	max-width: var(--sa-wide);
}

.sa-method-card {
	background: var(--sa-white);
	border-top: 5px solid var(--sa-maroon);
	box-shadow: 0 12px 32px rgba(43, 17, 27, 0.07);
	counter-increment: sa-method;
	padding: 3.6rem;
}

.sa-method-card::before {
	color: var(--sa-gold);
	content: counter(sa-method, decimal-leading-zero);
	display: block;
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	margin-bottom: 2rem;
}

.sa-method-card h2,
.sa-method-card h3 {
	font-size: clamp(2.6rem, 3.3vw, 3.8rem);
}

.sa-longform-band {
	padding: clamp(6rem, 8vw, 9rem) 2.4rem;
}

.sa-longform-layout {
	align-items: flex-start !important;
	gap: clamp(3.2rem, 6vw, 7rem);
}

.sa-longform-toc {
	border-top: 5px solid var(--sa-maroon);
	position: sticky;
	top: 13rem;
}

.sa-longform-toc ul {
	list-style: none;
	margin: 0;
	padding: 2.4rem 0 0;
}

.sa-longform-toc li {
	border-bottom: 1px solid var(--sa-border);
	margin: 0;
}

.sa-longform-toc a {
	display: block;
	font-size: 1.4rem;
	font-weight: 700;
	padding: 1rem 0;
	text-decoration: none;
}

.sa-longform-section {
	border-bottom: 1px solid var(--sa-border);
	padding: 0 0 4rem;
}

.sa-longform-section + .sa-longform-section {
	padding-top: 4rem;
}

.sa-longform-section h2 {
	font-size: clamp(3rem, 4vw, 4.4rem);
}

/* Graceful presentation for the previously generated migration XML before
   editors replace a page with its complete block pattern. */
.st-andrew-pattern-page .entry-content > .sacs-hero {
	background: linear-gradient(110deg, var(--sa-maroon-dark), var(--sa-maroon));
	color: var(--sa-white);
	isolation: isolate;
	margin: 0;
	min-height: 440px;
	overflow: hidden;
	padding: clamp(8rem, 11vw, 12rem) max(2.4rem, calc((100vw - var(--sa-wide)) / 2));
	position: relative;
}

.st-andrew-pattern-page .sacs-hero .sacs-hero-image {
	inset: 0;
	margin: 0;
	position: absolute;
	z-index: -2;
}

.st-andrew-pattern-page .sacs-hero .sacs-hero-image::after {
	background: linear-gradient(90deg, rgba(49, 10, 23, 0.94), rgba(67, 20, 33, 0.55));
	content: "";
	inset: 0;
	position: absolute;
}

.st-andrew-pattern-page .sacs-hero .sacs-hero-image img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.st-andrew-pattern-page .sacs-hero h1,
.st-andrew-pattern-page .sacs-hero p {
	color: var(--sa-white);
	max-width: 900px;
	position: relative;
}

.st-andrew-pattern-page .sacs-hero h1 {
	font-size: clamp(4.4rem, 7vw, 7.6rem);
}

.st-andrew-pattern-page .sacs-hero p {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 2.5vw, 2.8rem);
}

.st-andrew-pattern-page .entry-content > .sacs-link-grid {
	background: var(--sa-white);
	display: grid;
	gap: 2.4rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	padding: clamp(6rem, 9vw, 10rem) max(2.4rem, calc((100vw - var(--sa-wide)) / 2));
}

.st-andrew-pattern-page .sacs-link-card {
	background: var(--sa-parchment);
	border-top: 5px solid var(--sa-maroon);
	box-shadow: 0 12px 30px rgba(39, 24, 29, 0.08);
	min-height: 180px;
	padding: 3.2rem;
}

.st-andrew-pattern-page .sacs-link-card a {
	color: var(--sa-maroon-dark);
	text-decoration: none;
}

.st-andrew-pattern-page .entry-content > .sacs-content-section,
.st-andrew-pattern-page .entry-content > p,
.st-andrew-pattern-page .entry-content > figure,
.st-andrew-pattern-page .entry-content > ul,
.st-andrew-pattern-page .entry-content > ol,
.st-andrew-pattern-page .entry-content > .sacs-button-row,
.st-andrew-pattern-page .entry-content > .sacs-map-embed {
	margin-left: auto;
	margin-right: auto;
	max-width: 980px;
}

.st-andrew-pattern-page .entry-content > .sacs-content-section {
	border-top: 1px solid var(--sa-border);
	padding: clamp(5rem, 8vw, 8rem) 2.4rem;
}

.st-andrew-pattern-page .entry-content > .sacs-content-section h2:first-child::before {
	background: var(--sa-gold);
	content: "";
	display: block;
	height: 4px;
	margin-bottom: 2.4rem;
	width: 72px;
}

@media (max-width: 960px) {
	.sa-hub-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sa-process-list,
	.sa-method-grid {
		grid-template-columns: 1fr;
	}

	.sa-longform-layout {
		flex-wrap: wrap !important;
	}

	.sa-longform-layout > .wp-block-column {
		flex-basis: 100% !important;
	}

	.sa-longform-toc {
		position: static;
	}

	.st-andrew-pattern-page .entry-content > .sacs-link-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.sa-page-hero,
	.sa-page-hero--solid {
		min-height: 390px;
	}

	.sa-page-hero__inner {
		padding: 6rem 2rem;
	}

	.sa-page-hero--solid {
		padding: 6rem 2rem;
	}

	.sa-section-nav {
		padding-left: 1.6rem;
		padding-right: 1.6rem;
	}

	.sa-section-nav__nav {
		align-items: flex-start;
		flex-direction: column;
		gap: 0;
		padding-top: 1.6rem;
	}

	.sa-section-nav__links {
		margin-left: -1.2rem;
		max-width: calc(100vw - 3.2rem);
		width: 100%;
	}

	.sa-section-nav__links a {
		padding-bottom: 1.5rem;
		padding-top: 1.5rem;
	}

	.sa-hub-grid,
	.st-andrew-pattern-page .entry-content > .sacs-link-grid {
		grid-template-columns: 1fr;
	}

	.sa-hub-card {
		min-height: 190px;
	}

	.sa-content-band,
	.sa-intro-band,
	.sa-hub-band,
	.sa-process-band,
	.sa-method-band,
	.sa-faq-band,
	.sa-jobs-band,
	.sa-longform-band {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.sa-process-card,
	.sa-method-card {
		padding: 2.8rem;
	}

	.sa-faq-item {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.sa-map-embed iframe {
		height: 360px;
	}
}

/* 12. Version 1.3 editorial header and navigation
--------------------------------------------- */

/*
 * The header now follows a calm, school-forward hierarchy: a slim utility
 * strip, a centered St. Andrew identity, and a full-width centered menu.
 * The bundled gryphon appears automatically; no Customizer upload is needed.
 */
body {
	background: var(--sa-white);
}

.sa-utility-bar {
	background: var(--sa-maroon-dark);
	font-size: 1.2rem;
	letter-spacing: 0.075em;
}

.sa-utility-bar .wrap {
	max-width: 1320px;
	min-height: 4.2rem;
	padding-left: 3.2rem;
	padding-right: 3.2rem;
	width: 100%;
}

.sa-utility-contact,
.sa-utility-menu {
	gap: 1.8rem;
}

.sa-utility-menu a {
	white-space: nowrap;
}


.site-header,
.site-header.is-scrolled {
	background: var(--sa-white);
	border-bottom: 0;
	box-shadow: none;
	position: relative;
	top: auto;
}

.sa-header-marker {
	display: none;
}

.site-header > .wrap {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	justify-content: center;
	max-width: none;
	min-height: 0;
	padding: 0;
	width: 100%;
}

.title-area {
	align-items: center;
	border-bottom: 1px solid rgba(67, 20, 33, 0.11);
	display: flex;
	flex: 0 0 100%;
	justify-content: center;
	max-width: none;
	padding: 1.8rem 2.4rem 1.6rem;
	text-align: center;
	width: 100%;
}

.site-title {
	font-size: inherit;
	line-height: inherit;
	margin: 0;
	width: 100%;
}

.site-description {
	display: none;
}

.sa-brand {
	align-items: center;
	color: var(--sa-maroon-dark);
	display: inline-flex;
	gap: 1.6rem;
	justify-content: center;
	line-height: 1;
	max-width: 100%;
	text-align: left;
	text-decoration: none;
}

.sa-brand:hover,
.sa-brand:focus {
	color: var(--sa-maroon);
	text-decoration: none;
}

.sa-brand__mark {
	display: block;
	height: 8.6rem;
	object-fit: contain;
	width: 11.6rem;
}

.sa-brand__copy {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.sa-brand__name {
	color: currentColor;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(3.1rem, 3.6vw, 4.4rem);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 0.92;
	white-space: nowrap;
}

.sa-brand__school {
	color: var(--sa-maroon);
	font-size: 1.25rem;
	font-weight: 850;
	letter-spacing: 0.22em;
	line-height: 1.2;
	margin-top: 0.7rem;
	text-transform: uppercase;
	white-space: nowrap;
}

.sa-brand__place {
	color: var(--sa-gray);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.2;
	margin-top: 0.55rem;
	text-transform: uppercase;
	white-space: nowrap;
}

.nav-primary {
	background: var(--sa-white);
	border-bottom: 5px solid var(--sa-maroon);
	flex: 0 0 100%;
	margin: 0;
	width: 100%;
}

.nav-primary > .wrap {
	max-width: none;
	padding: 0 2.4rem;
	width: 100%;
}

.genesis-nav-menu {
	flex-wrap: nowrap;
	gap: 0;
	justify-content: center;
	width: 100%;
}

.genesis-nav-menu > .menu-item {
	flex: 0 0 auto;
}

.genesis-nav-menu a {
	font-size: 1.28rem;
	font-weight: 700;
	letter-spacing: 0.065em;
	padding: 1.75rem clamp(1.3rem, 1.65vw, 2.4rem);
	position: relative;
	white-space: nowrap;
}

.genesis-nav-menu > .menu-item > a::before {
	background: var(--sa-gold);
	bottom: 0.85rem;
	content: "";
	height: 2px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%) scaleX(0);
	transform-origin: center;
	transition: transform var(--sa-transition);
	width: calc(100% - 2.6rem);
}

.genesis-nav-menu > .menu-item > a:hover::before,
.genesis-nav-menu > .menu-item > a:focus::before,
.genesis-nav-menu > .current-menu-item > a::before,
.genesis-nav-menu > .current-menu-ancestor > a::before {
	transform: translateX(-50%) scaleX(1);
}

/* Support is a full-height primary action on desktop. */
.genesis-nav-menu > .sa-menu-item--support {
	align-self: stretch;
	background: var(--sa-maroon);
	display: flex;
}

.genesis-nav-menu > .sa-menu-item--support > a {
	align-items: center;
	background: var(--sa-maroon);
	color: var(--sa-white);
	display: flex;
	margin: 0;
	padding-bottom: 1.75rem;
	padding-top: 1.75rem;
}

.genesis-nav-menu > .sa-menu-item--support > a::before {
	display: none;
}

.genesis-nav-menu > .sa-menu-item--support > a:hover,
.genesis-nav-menu > .sa-menu-item--support > a:focus,
.genesis-nav-menu > .sa-menu-item--support.current-menu-item > a,
.genesis-nav-menu > .sa-menu-item--support.current-menu-ancestor > a {
	background: var(--sa-maroon-dark);
	color: var(--sa-white);
}

.genesis-nav-menu .sub-menu {
	border-top: 4px solid var(--sa-gold);
	box-shadow: 0 18px 45px rgba(34, 15, 22, 0.16);
	min-width: 280px;
}

.genesis-nav-menu .sub-menu a {
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	padding: 1.25rem 1.7rem;
	white-space: normal;
}

.site-footer .sa-brand--footer {
	justify-content: flex-start;
}

.site-footer .sa-brand__mark {
	height: 6.4rem;
	width: 8.6rem;
}

.site-footer .sa-brand__name {
	color: var(--sa-white);
	font-size: 3rem;
}

.site-footer .sa-brand__school,
.site-footer .sa-brand__place {
	color: rgba(255, 255, 255, 0.76);
}

@media (max-width: 1120px) and (min-width: 961px) {
	.sa-brand__mark {
		height: 7.6rem;
		width: 10.2rem;
	}

	.genesis-nav-menu a {
		font-size: 1.18rem;
		letter-spacing: 0.045em;
		padding-left: 1.2rem;
		padding-right: 1.2rem;
	}
}

@media (max-width: 960px) {
	.site-header > .wrap {
		display: block;
		padding: 0;
	}

	.title-area {
		padding-bottom: 1.4rem;
		padding-top: 1.4rem;
	}

	.nav-primary {
		border-bottom-width: 4px;
		padding: 0;
	}

	.nav-primary > .wrap {
		padding: 0 2rem;
	}

	.sa-primary-menu-button {
		align-items: center;
		background: var(--sa-white);
		border-bottom: 1px solid var(--sa-border);
		border-top: 1px solid var(--sa-border);
		color: var(--sa-maroon);
		display: flex;
		font-size: 1.3rem;
		gap: 0.8rem;
		justify-content: center;
		min-height: 5rem;
		padding: 1.2rem 2rem;
		width: 100%;
	}

	.sa-primary-menu-button:hover,
	.sa-primary-menu-button:focus,
	.sa-primary-menu-button.is-expanded,
	.sa-primary-menu-button[aria-expanded="true"] {
		background: var(--sa-white);
		border-color: var(--sa-border);
		color: var(--sa-maroon-dark);
		transform: none;
	}

	.sa-primary-menu-button__icon {
		display: inline-flex;
		flex-direction: column;
		gap: 4px;
		height: 16px;
		justify-content: center;
		width: 20px;
	}

	.sa-primary-menu-button__icon span {
		background: currentColor;
		display: block;
		height: 2px;
		transform-origin: center;
		transition: opacity var(--sa-transition), transform var(--sa-transition);
		width: 20px;
	}

	.sa-primary-menu-button.is-expanded .sa-primary-menu-button__icon span:nth-child(1),
	.sa-primary-menu-button[aria-expanded="true"] .sa-primary-menu-button__icon span:nth-child(1) {
		transform: translateY(6px) rotate(45deg);
	}

	.sa-primary-menu-button.is-expanded .sa-primary-menu-button__icon span:nth-child(2),
	.sa-primary-menu-button[aria-expanded="true"] .sa-primary-menu-button__icon span:nth-child(2) {
		opacity: 0;
	}

	.sa-primary-menu-button.is-expanded .sa-primary-menu-button__icon span:nth-child(3),
	.sa-primary-menu-button[aria-expanded="true"] .sa-primary-menu-button__icon span:nth-child(3) {
		transform: translateY(-6px) rotate(-45deg);
	}

	.genesis-nav-menu {
		flex-wrap: wrap;
		justify-content: flex-start;
	}

	.genesis-nav-menu a {
		font-size: 1.35rem;
		padding: 1.35rem 0;
		white-space: normal;
	}

	.genesis-nav-menu .menu-item-has-children > a {
		padding-right: 5.4rem;
	}

	.genesis-nav-menu > .menu-item > a::before,
	.genesis-nav-menu .menu-item-has-children > a::after {
		display: none;
	}

	.genesis-nav-menu > .sa-menu-item--support {
		background: var(--sa-white);
		display: block;
	}

	.genesis-nav-menu > .sa-menu-item--support > a {
		background: var(--sa-white);
		color: var(--sa-maroon);
		margin: 0;
		padding: 1.35rem 0;
	}

	.genesis-nav-menu > .sa-menu-item--support > a:hover,
	.genesis-nav-menu > .sa-menu-item--support > a:focus,
	.genesis-nav-menu > .sa-menu-item--support.current-menu-item > a {
		background: var(--sa-cream);
		color: var(--sa-maroon-dark);
	}
}

@media (max-width: 700px) {
	.sa-utility-bar .wrap {
		align-items: center;
		padding-left: 1.6rem;
		padding-right: 1.6rem;
	}

	.sa-utility-navigation {
		width: 100%;
	}

	.sa-utility-menu {
		gap: 0.4rem 1.15rem;
		justify-content: center;
		margin-left: auto;
		margin-right: auto;
		width: 100%;
	}

	.sa-utility-menu a {
		font-size: 1.05rem;
	}

	.title-area {
		padding-left: 1.6rem;
		padding-right: 1.6rem;
	}

	.sa-brand {
		gap: 1rem;
	}

	.sa-brand__mark {
		height: 6.4rem;
		width: 8.4rem;
	}

	.sa-brand__name {
		font-size: clamp(2.6rem, 9vw, 3.6rem);
	}

	.sa-brand__school {
		font-size: 1rem;
		letter-spacing: 0.16em;
	}

	.sa-brand__place {
		display: none;
	}
}

@media (max-width: 420px) {
	.sa-brand__mark {
		height: 5.4rem;
		width: 6.9rem;
	}

	.sa-brand__name {
		font-size: 2.6rem;
	}
}

/* 13. Version 1.3 homepage flow
--------------------------------------------- */

.sa-home-hero {
	min-height: clamp(650px, 76vh, 820px);
}

.sa-home-hero::after {
	background: linear-gradient(90deg, rgba(36, 7, 17, 0.9) 0%, rgba(47, 10, 23, 0.72) 43%, rgba(47, 10, 23, 0.26) 76%, rgba(47, 10, 23, 0.12) 100%);
}

.sa-hero-inner {
	max-width: 1280px;
	padding: clamp(11rem, 15vw, 18rem) 3.2rem clamp(8rem, 11vw, 13rem);
}

.sa-home-hero h1 {
	font-size: clamp(5.4rem, 7.2vw, 9rem);
	letter-spacing: -0.045em;
	line-height: 0.96;
	max-width: 920px;
}

.sa-home-hero .sa-hero-lede {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: clamp(2rem, 2.25vw, 2.5rem);
	line-height: 1.58;
	max-width: 720px;
}

.sa-home-hero .wp-block-buttons {
	gap: 1.2rem;
	margin-top: 3rem;
}

.sa-home-hero .wp-block-button__link {
	min-width: 180px;
	text-align: center;
}

/* Mission is the first section after the photograph, matching the intended flow. */
.sa-mission-band {
	background: var(--sa-white);
	padding: clamp(7rem, 9vw, 11rem) 3.2rem;
	text-align: left;
}

.sa-mission-band > .wp-block-group__inner-container,
.sa-mission-band {
	margin-left: auto;
	margin-right: auto;
}

.sa-mission-band .sa-section-kicker,
.sa-mission-band h2,
.sa-mission-band p,
.sa-mission-band .wp-block-buttons {
	margin-left: auto;
	margin-right: auto;
	max-width: 980px;
}

.sa-mission-band .sa-section-kicker {
	text-align: left;
}

.sa-mission-band h2 {
	font-size: clamp(4.2rem, 5.5vw, 6.6rem);
	line-height: 1.03;
	text-align: left !important;
}

.sa-mission-band h2::after {
	background: var(--sa-gold);
	content: "";
	display: block;
	height: 4px;
	margin-top: 2.5rem;
	width: 76px;
}

.sa-mission-band p:not(.sa-section-kicker) {
	font-size: clamp(2.15rem, 2.6vw, 3rem);
	line-height: 1.55;
	text-align: left !important;
}

.sa-mission-band .wp-block-buttons {
	justify-content: flex-start !important;
	margin-top: 2.8rem;
}

/* Three direct pathways sit in one confident maroon band without card shadows. */
.sa-pathways {
	background: var(--sa-maroon-dark);
	color: var(--sa-white);
	padding: clamp(6.8rem, 8vw, 10rem) 3.2rem clamp(7.5rem, 9vw, 11rem);
}

.sa-pathways .sa-section-kicker {
	color: #efd5ad;
}

.sa-pathways h2 {
	color: var(--sa-white);
	font-size: clamp(3.8rem, 4.8vw, 5.8rem);
	margin-bottom: clamp(4rem, 5vw, 6rem);
}

.sa-pathway-grid {
	border-top: 1px solid rgba(255, 255, 255, 0.24);
	gap: 0;
}

.sa-pathway-grid > .wp-block-column {
	margin: 0 !important;
}

.sa-pathway-card {
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.24);
	border-left: 1px solid rgba(255, 255, 255, 0.24);
	box-shadow: none;
	color: var(--sa-white);
	min-height: 270px;
	padding: clamp(3rem, 4vw, 4.6rem);
}

.sa-pathway-grid > .wp-block-column:first-child .sa-pathway-card {
	border-left: 0;
}

.sa-pathway-card:hover {
	background: rgba(255, 255, 255, 0.055);
	box-shadow: none;
	transform: none;
}

.sa-pathway-card .sa-card-kicker {
	color: #efd5ad;
}

.sa-pathway-card h3,
.sa-pathway-card p {
	color: var(--sa-white);
}

.sa-pathway-card h3 {
	font-size: clamp(2.8rem, 3.2vw, 3.8rem);
}

.sa-pathway-card p {
	font-size: 1.75rem;
}

.sa-pathway-card .wp-block-button__link {
	color: var(--sa-white);
}

.sa-pathway-card .wp-block-button__link:hover,
.sa-pathway-card .wp-block-button__link:focus {
	color: #efd5ad;
}

/* Long-form homepage sections use full-width editorial bands. */
.sa-section {
	padding: clamp(7.5rem, 10vw, 12.5rem) 3.2rem;
}

.sa-section .sa-section-kicker {
	color: var(--sa-maroon);
}

.sa-section h2 {
	font-size: clamp(4rem, 5vw, 6rem);
	line-height: 1.05;
}

.sa-section p {
	font-size: 1.85rem;
	line-height: 1.78;
}

.sa-section--maroon .sa-section-kicker {
	color: #efd5ad;
}

.sa-section--maroon p {
	color: rgba(255, 255, 255, 0.9);
}

.sa-split {
	gap: clamp(4.5rem, 7vw, 8.5rem);
}

.sa-photo-panel {
	box-shadow: none;
	min-height: 560px;
}

.sa-values-grid {
	border-bottom: 1px solid var(--sa-border);
	border-top: 1px solid var(--sa-border);
	gap: 0;
	margin-top: 5rem;
}

.sa-value-card {
	border-left: 1px solid var(--sa-border);
	padding: 3.5rem clamp(2rem, 3vw, 3.6rem);
}

.sa-value-card:first-child {
	border-left: 0;
}

.sa-calendar-card {
	background: var(--sa-maroon-dark);
	padding: clamp(4rem, 5vw, 6rem);
}

.sa-giving-cta {
	padding: clamp(8rem, 12vw, 14rem) 3.2rem;
}

@media (max-width: 960px) {
	.sa-pathway-grid {
		flex-wrap: wrap !important;
	}

	.sa-pathway-grid > .wp-block-column {
		flex-basis: 100% !important;
	}

	.sa-pathway-card,
	.sa-pathway-grid > .wp-block-column:first-child .sa-pathway-card {
		border-left: 0;
		min-height: 0;
	}
}

@media (max-width: 700px) {
	.sa-hero-inner,
	.sa-mission-band,
	.sa-pathways,
	.sa-section,
	.sa-giving-cta {
		padding-left: 1.8rem;
		padding-right: 1.8rem;
	}

	.sa-home-hero {
		min-height: 620px;
	}

	.sa-home-hero h1 {
		font-size: clamp(4.8rem, 15vw, 6.8rem);
	}

	.sa-values-grid {
		border-bottom: 0;
	}
}


/* 14. Version 1.4 homepage and shared-page refinements
--------------------------------------------- */

/* Keep the photo and gradient behind all hero content, including when a cache
   or optimization plugin changes core block stylesheet order. */
.st-andrew-front-page .sa-home-hero {
	isolation: isolate;
	overflow: hidden;
	position: relative;
}

.st-andrew-front-page .sa-home-hero::after {
	background:
		linear-gradient(0deg, rgba(35, 6, 16, 0.88) 0%, rgba(53, 14, 27, 0.58) 45%, rgba(53, 14, 27, 0.18) 78%, rgba(53, 14, 27, 0.08) 100%),
		linear-gradient(90deg, rgba(42, 9, 20, 0.40), rgba(67, 20, 33, 0.02) 82%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 1 !important;
}

.st-andrew-front-page .sa-home-hero > .wp-block-cover__background {
	display: none !important;
}

.st-andrew-front-page .sa-home-hero > .wp-block-cover__image-background {
	inset: 0;
	position: absolute;
	z-index: 0 !important;
}

.st-andrew-front-page .sa-home-hero .wp-block-cover__inner-container,
.st-andrew-front-page .sa-home-hero .sa-hero-inner,
.st-andrew-front-page .sa-home-hero .sa-hero-inner > * {
	position: relative;
	z-index: 3 !important;
}

.st-andrew-front-page .sa-home-hero .sa-eyebrow,
.st-andrew-front-page .sa-home-hero h1,
.st-andrew-front-page .sa-home-hero .sa-hero-lede {
	color: #fff !important;
	opacity: 1 !important;
	text-shadow: 0 3px 22px rgba(0, 0, 0, 0.34);
}

.st-andrew-front-page .sa-home-hero .wp-block-button__link {
	position: relative;
	z-index: 4;
}

/* Mission statement sits alone, followed immediately by three useful paths. */
.sa-mission-band {
	background: var(--sa-white) !important;
	padding: clamp(7.5rem, 10vw, 12rem) 3.2rem clamp(6.5rem, 8vw, 9rem);
	text-align: center;
}

.sa-mission-band .sa-section-kicker,
.sa-mission-band h2,
.sa-mission-band p,
.sa-mission-band .wp-block-buttons {
	margin-left: auto;
	margin-right: auto;
	max-width: 980px;
	text-align: center !important;
}

.sa-mission-band h2 {
	font-size: clamp(4.2rem, 5.6vw, 6.8rem);
	line-height: 1.05;
}

.sa-mission-band h2::after {
	background: var(--sa-gold);
	content: "";
	display: block;
	height: 4px;
	margin: 2.7rem auto 0;
	width: 76px;
}

.sa-mission-band p:not(.sa-section-kicker) {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: clamp(1.9rem, 2vw, 2.3rem);
	line-height: 1.7;
}

.sa-mission-band .wp-block-buttons {
	justify-content: center !important;
	margin-top: 2.8rem;
}

.sa-home-actions {
	background: var(--sa-white);
	padding: 0 3.2rem clamp(7.5rem, 10vw, 11rem);
}

.sa-home-action-grid {
	border-bottom: 1px solid rgba(107, 33, 53, 0.22);
	border-top: 1px solid rgba(107, 33, 53, 0.22);
	display: grid !important;
	gap: 0;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0 auto;
	max-width: var(--sa-wide);
}

.sa-home-action-grid > .wp-block-column {
	border-left: 1px solid rgba(107, 33, 53, 0.22);
	display: flex;
	margin: 0 !important;
	min-width: 0;
}

.sa-home-action-grid > .wp-block-column:last-child {
	border-right: 1px solid rgba(107, 33, 53, 0.22);
}

.sa-home-action {
	align-items: flex-start;
	background: transparent;
	border: 0;
	box-shadow: none;
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: flex-start;
	min-height: 270px;
	padding: clamp(3.4rem, 4vw, 5.2rem);
	transition: background-color var(--sa-transition);
}

.sa-home-action:hover,
.sa-home-action:focus-within {
	background: var(--sa-cream);
	box-shadow: none;
	transform: none;
}

.sa-home-action h3 {
	font-size: clamp(3rem, 3vw, 4rem);
	margin-bottom: 1.5rem;
}

.sa-home-action p {
	font-size: 1.75rem;
	line-height: 1.65;
	margin-bottom: 2rem;
}

.sa-home-action .wp-block-buttons {
	justify-content: center;
	margin-top: auto;
	padding-top: 1.2rem;
	width: 100%;
}

.sa-home-action .wp-block-button__link {
	background: transparent;
	border: 0;
	color: var(--sa-maroon);
	justify-content: center;
	padding: 0;
	text-align: center;
}

.sa-home-action .wp-block-button__link:hover,
.sa-home-action .wp-block-button__link:focus {
	background: transparent;
	color: var(--sa-maroon-dark);
	transform: none;
}

/* Safety for already-imported older content until the setup repair updates it. */
.sa-page-link-card__number,
.sa-pathway-card .sa-card-kicker,
.sa-value-number {
	display: none !important;
}

@media (max-width: 860px) {
	.sa-home-action-grid {
		grid-template-columns: 1fr;
	}

	.sa-home-action-grid > .wp-block-column,
	.sa-home-action-grid > .wp-block-column:last-child {
		border-left: 1px solid rgba(107, 33, 53, 0.22);
		border-right: 1px solid rgba(107, 33, 53, 0.22);
		border-top: 1px solid rgba(107, 33, 53, 0.22);
	}

	.sa-home-action-grid > .wp-block-column:first-child {
		border-top: 0;
	}

	.sa-home-action {
		min-height: 210px;
	}
}

/* 15. Remove decorative sequencing
--------------------------------------------- */
/* Page titles and content establish the hierarchy. Keep real ordered lists in
   the copy, but do not add ornamental 01/02 or "Step 01" labels in the theme. */
.sa-hub-grid,
.sa-process-list,
.sa-method-grid,
.sa-page-pattern--process {
	counter-reset: none !important;
}

.sa-hub-card,
.sa-process-card,
.sa-method-card,
.sa-page-pattern--process .sa-page-section {
	counter-increment: none !important;
}

.sa-hub-card::before,
.sa-process-card::before,
.sa-method-card::before,
.sa-page-pattern--process .sa-page-section__inner::before {
	content: none !important;
	display: none !important;
}

.sa-page-pattern--process .sa-page-section__inner {
	padding-left: 0;
}

/* 1.4.6 deterministic mobile-navigation state
--------------------------------------------- */
@media (max-width: 960px) {
	.sa-primary-menu-button,
	.sa-primary-submenu-button {
		-webkit-tap-highlight-color: transparent;
		touch-action: manipulation;
		user-select: none;
	}

	/* The hidden attribute is the single source of truth on mobile. */
	.sa-nav-ready .nav-primary[hidden],
	.sa-nav-ready .genesis-nav-menu .sub-menu[hidden] {
		display: none !important;
	}

	.sa-nav-ready .nav-primary:not([hidden]) {
		display: block !important;
	}

	.sa-nav-ready .genesis-nav-menu .sub-menu:not([hidden]).is-expanded {
		display: block !important;
	}

	/* Keep the closed and open control surfaces visually consistent. */
	.sa-primary-menu-button,
	.sa-primary-menu-button:hover,
	.sa-primary-menu-button:focus,
	.sa-primary-menu-button.is-expanded,
	.sa-primary-menu-button[aria-expanded="true"] {
		background: var(--sa-white) !important;
		color: var(--sa-maroon) !important;
	}

	.genesis-nav-menu > .sa-menu-item--support,
	.genesis-nav-menu > .sa-menu-item--support > a,
	.genesis-nav-menu > .sa-menu-item--support > a:hover,
	.genesis-nav-menu > .sa-menu-item--support > a:focus,
	.genesis-nav-menu > .sa-menu-item--support.current-menu-item > a,
	.genesis-nav-menu > .sa-menu-item--support.current-menu-ancestor > a {
		background: var(--sa-white) !important;
		color: var(--sa-maroon) !important;
	}
}

/* 15. Version 1.4.6 reliability fixes
--------------------------------------------- */

/* Native hidden must always win over legacy navigation display rules. */
.nav-primary[hidden],
.nav-primary [hidden] {
	display: none !important;
}

/* WordPress flow layout can give every mission card except the first a block
   margin. Reset the entire desktop grid so all four cards share one baseline. */
.sa-page-pattern--about-our-mission .sa-pillar-grid {
	--wp--style--block-gap: 0;
	align-items: stretch !important;
	display: grid !important;
	gap: 2.2rem !important;
	grid-auto-rows: 1fr;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sa-page-pattern--about-our-mission .sa-pillar-grid > .sa-pillar-card,
.sa-page-pattern--about-our-mission .sa-pillar-grid.is-layout-flow > .sa-pillar-card,
.sa-page-pattern--about-our-mission .sa-pillar-grid > * + * {
	align-self: stretch !important;
	height: 100%;
	margin-block-end: 0 !important;
	margin-block-start: 0 !important;
	margin-bottom: 0 !important;
	margin-top: 0 !important;
	transform: none !important;
	width: 100%;
}

@media (max-width: 820px) {
	.sa-page-pattern--about-our-mission .sa-pillar-grid {
		grid-template-columns: 1fr;
	}
}

/* 17. Version 1.4.10 quick-link controls and typography
--------------------------------------------- */
/*
 * Keep the desktop utility bar compact, but make each link read as an actual
 * control. On phones, use one shallow four-button row rather than a two-row
 * tray. All quick links share the same treatment, including Apply.
 */
.sa-utility-navigation {
	min-width: 0;
}

.sa-utility-menu {
	gap: 0.8rem;
}

.sa-utility-menu > li {
	display: flex;
	margin: 0;
	min-width: 0;
}

.sa-utility-menu > li > a,
.sa-utility-menu .sa-utility-emphasis > a,
.sa-utility-menu .sa-utility-action--apply > a,
.sa-utility-menu .sa-utility-item--apply > a {
	align-items: center;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.52);
	border-radius: 0.5rem;
	color: var(--sa-white);
	display: inline-flex;
	font-size: 1.15rem;
	font-weight: 700;
	justify-content: center;
	letter-spacing: 0.035em;
	line-height: 1.2;
	min-height: 3.4rem;
	padding: 0.65rem 1.05rem;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color var(--sa-transition), border-color var(--sa-transition), box-shadow var(--sa-transition), color var(--sa-transition), transform var(--sa-transition);
	white-space: nowrap;
}

.sa-utility-menu > li > a:hover,
.sa-utility-menu > li > a:focus-visible,
.sa-utility-menu .sa-utility-emphasis > a:hover,
.sa-utility-menu .sa-utility-emphasis > a:focus-visible,
.sa-utility-menu .sa-utility-action--apply > a:hover,
.sa-utility-menu .sa-utility-action--apply > a:focus-visible,
.sa-utility-menu .sa-utility-item--apply > a:hover,
.sa-utility-menu .sa-utility-item--apply > a:focus-visible {
	background: var(--sa-white);
	border-color: var(--sa-white);
	box-shadow: 0 0.4rem 1.2rem rgba(36, 10, 18, 0.2);
	color: var(--sa-maroon-dark);
	text-decoration: none;
	transform: translateY(-1px);
}

@media (max-width: 700px) {
	.sa-utility-bar {
		background: var(--sa-cream);
		border-bottom: 1px solid rgba(107, 33, 53, 0.16);
		color: var(--sa-maroon-dark);
	}

	.sa-utility-bar .wrap {
		align-items: center;
		min-height: 0;
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.sa-utility-navigation {
		display: block;
		width: 100%;
	}

	.sa-utility-menu {
		display: grid;
		gap: 0.5rem;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		margin: 0;
		width: 100%;
	}

	.sa-utility-menu > li {
		min-width: 0;
		width: 100%;
	}

	.sa-utility-menu > li > a,
	.sa-utility-menu .sa-utility-emphasis > a,
	.sa-utility-menu .sa-utility-action--apply > a,
	.sa-utility-menu .sa-utility-item--apply > a {
		background: var(--sa-white);
		border: 1.5px solid var(--sa-maroon);
		border-radius: 0.65rem;
		box-shadow: 0 0.3rem 0.8rem rgba(71, 20, 37, 0.1);
		color: var(--sa-maroon-dark);
		font-size: clamp(1rem, 2.85vw, 1.15rem);
		font-weight: 600;
		letter-spacing: 0.01em;
		line-height: 1.12;
		padding: 0.45rem 0.35rem;
		text-transform: uppercase;
		white-space: normal;
		width: 100%;
	}

	.sa-utility-menu > li > a:hover,
	.sa-utility-menu > li > a:focus-visible,
	.sa-utility-menu .sa-utility-emphasis > a:hover,
	.sa-utility-menu .sa-utility-emphasis > a:focus-visible,
	.sa-utility-menu .sa-utility-action--apply > a:hover,
	.sa-utility-menu .sa-utility-action--apply > a:focus-visible,
	.sa-utility-menu .sa-utility-item--apply > a:hover,
	.sa-utility-menu .sa-utility-item--apply > a:focus-visible {
		background: var(--sa-parchment);
		border-color: var(--sa-maroon-dark);
		box-shadow: 0 0.4rem 1rem rgba(71, 20, 37, 0.14);
		color: var(--sa-maroon-dark);
		transform: none;
	}
}

@media (max-width: 360px) {
	.sa-utility-bar .wrap {
		padding-left: 0.7rem;
		padding-right: 0.7rem;
	}

	.sa-utility-menu {
		gap: 0.35rem;
	}

	.sa-utility-menu > li > a,
	.sa-utility-menu .sa-utility-emphasis > a,
	.sa-utility-menu .sa-utility-action--apply > a,
	.sa-utility-menu .sa-utility-item--apply > a {
		font-size: 0.98rem;
		padding-left: 0.2rem;
		padding-right: 0.2rem;
	}
}

