:root {
	--school-color-bg: #f5f8fc;
	--school-color-surface: #ffffff;
	--school-color-surface-alt: #eef4fb;
	--school-color-text: #18324a;
	--school-color-text-soft: #41576c;
	--school-color-primary: #005f99;
	--school-color-primary-strong: #00456f;
	--school-color-secondary: #0b8f6d;
	--school-color-accent: #d97706;
	--school-color-border: #c9d9e8;
	--school-color-focus: #ffbf47;
	--school-color-danger: #a12622;
	--school-shadow-soft: 0 12px 30px rgba(24, 50, 74, 0.08);
	--school-shadow-strong: 0 20px 48px rgba(24, 50, 74, 0.14);
	--school-radius-soft: 18px;
	--school-radius-pill: 999px;
	--school-elementor-content-width: 1200px;
	--school-content-width: min(72rem, calc(100vw - 2rem));
	--school-space-xs: 0.5rem;
	--school-space-sm: 0.75rem;
	--school-space-md: 1rem;
	--school-space-lg: 1.5rem;
	--school-space-xl: 2rem;
	--school-space-2xl: 3rem;
	--school-font-scale: 1;
	--school-font-body: clamp(
		calc(1.125rem * var(--school-font-scale)),
		calc((1rem + 0.35vw) * var(--school-font-scale)),
		calc(1.25rem * var(--school-font-scale))
	);
	--school-font-page-title: clamp(
		calc(2rem * var(--school-font-scale)),
		calc((1.65rem + 1.25vw) * var(--school-font-scale)),
		calc(2.75rem * var(--school-font-scale))
	);
	--school-font-h1: clamp(
		calc(2.3rem * var(--school-font-scale)),
		calc(5vw * var(--school-font-scale)),
		calc(4.1rem * var(--school-font-scale))
	);
	--school-font-h2: clamp(
		calc(1.8rem * var(--school-font-scale)),
		calc(3.5vw * var(--school-font-scale)),
		calc(2.75rem * var(--school-font-scale))
	);
	--school-font-h3: clamp(
		calc(1.35rem * var(--school-font-scale)),
		calc(2.1vw * var(--school-font-scale)),
		calc(1.85rem * var(--school-font-scale))
	);
	--school-font-small: calc(1rem * var(--school-font-scale));
}

html {
	scroll-behavior: smooth;
}

body {
	--school-font-scale: var(--saw-font-scale-factor, 1);
	background:
		radial-gradient(circle at top left, rgba(11, 143, 109, 0.08), transparent 22%),
		radial-gradient(circle at top right, rgba(0, 95, 153, 0.08), transparent 28%),
		var(--school-color-bg);
	color: var(--school-color-text);
	font-size: var(--school-font-body);
	line-height: 1.7;
	text-rendering: optimizeLegibility;
}

body.ast-hfb-header {
	padding-top: 0 !important;
}

body.ast-hfb-header .site-content {
	padding-top: clamp(6.5rem, 8vw, 8.5rem);
}

.admin-bar.ast-hfb-header .site-content {
	padding-top: calc(clamp(6.5rem, 8vw, 8.5rem) + 32px);
}

.site-logo-img,
.custom-logo-link {
	overflow: visible;
}

header.site-header .custom-logo-link img.custom-logo {
	display: block;
	width: clamp(5rem, 7vw, 6.8rem) !important;
	max-width: clamp(5rem, 7vw, 6.8rem) !important;
	height: auto !important;
	max-height: clamp(4rem, 5.6vw, 5.45rem);
	object-fit: contain;
	object-position: center;
}

body,
button,
input,
select,
textarea {
	font-family: "Atkinson Hyperlegible", "Nunito Sans", "Segoe UI", sans-serif;
}

p,
li,
dd,
blockquote,
input,
textarea {
	font-size: var(--school-font-body);
}

h1,
.entry-title,
.elementor-heading-title:is(h1) {
	font-size: var(--school-font-h1);
	line-height: 1.08;
	letter-spacing: -0.02em;
}

h2,
.elementor-heading-title:is(h2) {
	font-size: var(--school-font-h2);
	line-height: 1.15;
}

h3,
.elementor-heading-title:is(h3) {
	font-size: var(--school-font-h3);
	line-height: 1.25;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--school-color-text);
	font-weight: 800;
}

a {
	color: var(--school-color-primary);
	text-underline-offset: 0.16em;
}

a:hover {
	color: var(--school-color-primary-strong);
}

.entry-content a.school-external-link::after {
	content: " (externer Link)";
	font-size: 0.85em;
	font-weight: 700;
	white-space: nowrap;
}

.school-external-link-notice {
	max-width: var(--school-content-width);
	margin: 0 auto var(--school-space-lg);
	padding: 0.9rem 1rem;
	border: 1px solid var(--school-color-border);
	border-left: 4px solid var(--school-color-primary);
	border-radius: 0.75rem;
	background: var(--school-color-surface-alt);
	color: var(--school-color-text-soft);
	font-size: 1rem;
	line-height: 1.5;
}

.school-external-link-label {
	font-weight: 800;
	color: var(--school-color-text);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
	outline: 4px solid var(--school-color-focus);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px rgba(255, 191, 71, 0.28);
}

.school-skip-link.screen-reader-text {
	position: fixed;
	left: 1rem;
	top: 1rem;
	z-index: 10050;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 12rem;
	min-height: 3rem;
	padding: 0.85rem 1rem;
	border-radius: var(--school-radius-pill);
	background: #0b2239;
	color: #ffffff;
	font-weight: 800;
	text-decoration: none;
	transform: translateY(-180%);
	transition: transform 0.2s ease;
	box-shadow: var(--school-shadow-strong);
}

.school-skip-link.screen-reader-text:focus,
.school-skip-link.screen-reader-text:active {
	transform: translateY(0);
	clip: auto !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	overflow: visible !important;
	white-space: normal !important;
}

#content:focus {
	outline: none;
}

button,
.button,
.wp-block-button__link,
.elementor-button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.ast-custom-button,
a.school-hit-target,
.school-quicklinks__card,
.school-emergency__primary,
.school-emergency__secondary {
	min-width: 44px;
	min-height: 44px;
}

.ast-header-break-point .main-navigation .menu-link,
.site-footer .menu-link {
	min-width: 44px;
	min-height: 44px;
}

.site-primary-footer-wrap {
	border-top: 1px solid rgba(201, 217, 232, 0.9);
}

.site-primary-footer-wrap .ast-builder-grid-row-container-inner {
	width: min(72rem, calc(100vw - 2rem));
	margin-inline: auto;
}

.site-primary-footer-wrap .site-primary-footer-inner-wrap {
	display: grid !important;
	grid-template-columns: minmax(9rem, 0.85fr) minmax(10rem, 1fr) minmax(16rem, 1.25fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}

.site-primary-footer-wrap .site-footer-section,
.site-primary-footer-wrap .footer-widget-area,
.site-primary-footer-wrap .widget {
	margin: 0;
}

.site-primary-footer-wrap [data-section="sidebar-widgets-footer-widget-4"] {
	display: grid;
	justify-items: start;
	gap: 0.75rem;
}

.site-primary-footer-wrap [data-section="sidebar-widgets-footer-widget-4"] .widget_media_image img {
	display: block;
	width: clamp(7.5rem, 13vw, 10.5rem);
	max-width: 100%;
	height: auto;
}

.site-primary-footer-wrap [data-section="sidebar-widgets-footer-widget-4"] .widget_text {
	display: none;
}

.site-footer .widget_text .textwidget,
.site-footer .widget_text .textwidget * {
	font-family: inherit !important;
	font-size: 1rem !important;
	line-height: 1.65 !important;
}

.site-primary-footer-wrap [data-section="sidebar-widgets-footer-widget-3"] .textwidget {
	display: grid;
	gap: 0.55rem;
	color: #111827;
}

.site-primary-footer-wrap [data-section="sidebar-widgets-footer-widget-3"] .textwidget :where(p, address) {
	margin: 0;
	font-style: normal;
}

.site-primary-footer-wrap [data-section="sidebar-widgets-footer-widget-3"] .textwidget :where(strong, a) {
	font-size: inherit !important;
	line-height: inherit !important;
}

.site-footer .widget-title,
.school-footer-menu-title,
.site-primary-footer-wrap [data-section="sidebar-widgets-footer-widget-3"] .widget-title {
	margin: 0 0 0.75rem;
	color: #111827;
	font-family: inherit;
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0;
	text-align: left;
}

.site-primary-footer-wrap [data-section="sidebar-widgets-footer-widget-1"] {
	display: none;
}

.site-primary-footer-wrap [data-section="section-footer-menu"] {
	display: grid !important;
	justify-content: start !important;
	justify-items: start !important;
}

.site-primary-footer-wrap [data-section="section-footer-menu"] nav,
#astra-footer-menu {
	width: 100% !important;
	max-width: 100%;
	margin: 0 !important;
}

#astra-footer-menu {
	display: grid !important;
	gap: 0.15rem;
	justify-content: flex-start !important;
	align-items: start;
}

.footer-widget-area[data-section="section-footer-menu"] .astra-footer-tablet-horizontal-menu,
.footer-widget-area[data-section="section-footer-menu"] .astra-footer-tablet-vertical-menu,
.footer-widget-area[data-section="section-footer-menu"] .astra-footer-mobile-horizontal-menu,
.footer-widget-area[data-section="section-footer-menu"] .astra-footer-mobile-vertical-menu {
	display: grid !important;
	justify-content: flex-start !important;
}

.footer-widget-area[data-section="section-footer-menu"] .astra-footer-vertical-menu .menu-item,
.footer-widget-area[data-section="section-footer-menu"] .astra-footer-tablet-vertical-menu .menu-item,
.footer-widget-area[data-section="section-footer-menu"] .astra-footer-mobile-vertical-menu .menu-item {
	align-items: flex-start !important;
}

.site-footer .menu-link {
	display: inline-flex;
	align-items: center;
	padding: 0.15rem 0 !important;
	color: #111827;
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.5;
}

.site-footer .menu-link:hover,
.site-footer .menu-link:focus {
	color: var(--school-color-primary-strong);
}

.ast-header-break-point nav.site-navigation .menu-item-has-children > .menu-link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.ast-header-break-point nav.site-navigation .menu-link .dropdown-menu-toggle.ast-header-navigation-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.5rem;
	min-height: 1.5rem;
	margin-inline-start: 0.15rem;
	line-height: 1;
	pointer-events: none;
}

.ast-header-break-point nav.site-navigation .menu-link .dropdown-menu-toggle.ast-header-navigation-arrow .ast-icon,
.ast-header-break-point nav.site-navigation .menu-link .dropdown-menu-toggle.ast-header-navigation-arrow .ast-icon svg {
	display: block;
	line-height: 1;
}

.ast-search-menu-icon .search-form .search-submit.ast-search-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0.5rem !important;
}

.ast-search-menu-icon .search-form .search-submit.ast-search-submit + input.search-submit {
	display: none !important;
}

.button,
.wp-block-button__link,
.elementor-button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.ast-custom-button,
.school-emergency__primary,
.school-emergency__secondary {
	border-radius: var(--school-radius-pill);
}

.elementor-widget:not(.elementor-widget-heading) > .elementor-widget-container,
.school-soft-card,
.school-quicklinks__card,
.school-emergency__dialog,
.ast-container > .entry-content > section,
.ast-container > .entry-content > article {
	border-radius: var(--school-radius-soft);
	box-shadow: var(--school-shadow-soft);
}

.elementor-section-boxed > .elementor-container,
.elementor-top-section > .elementor-container,
.school-section-shell {
	width: 100%;
	max-width: var(--school-content-width);
}

.page .ast-article-single > .entry-header {
	display: none;
}

.elementor-widget-container,
.elementor-column,
.elementor-section {
	max-width: 100%;
}

.school-kicker {
	margin: 0 0 0.4rem;
	color: var(--school-color-secondary);
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.school-surface,
.e-semantic-section,
.e-semantic-header,
.e-semantic-main,
.e-semantic-footer {
	padding: clamp(1rem, 2vw, 2rem);
	border: 1px solid var(--school-color-border);
	background: linear-gradient(180deg, var(--school-color-surface) 0%, #fbfdff 100%);
}

.school-page-shell {
	width: min(76rem, calc(100vw - 2rem));
	margin: 0 auto clamp(3rem, 6vw, 5rem);
}

.school-page-content {
	display: grid;
	gap: clamp(1rem, 2vw, 1.45rem);
	padding: clamp(1.15rem, 3vw, 2rem);
	border: 1px solid var(--school-color-border);
	border-radius: var(--school-radius-soft);
	background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
	box-shadow: var(--school-shadow-soft);
	overflow: hidden;
}

.school-page-content > * {
	max-width: 100%;
	margin-top: 0;
	margin-bottom: 0;
}

.school-page-content > * + * {
	margin-top: 0;
}

.school-page-content :where(h1, h2, h3, h4) {
	max-width: 62rem;
	margin: 0;
	color: var(--school-color-text) !important;
	letter-spacing: 0;
}

.school-page-content :where(h1, .elementor-heading-title:is(h1)) {
	width: 100%;
	max-width: 68rem;
	font-family: "Atkinson Hyperlegible", "Nunito Sans", "Segoe UI", sans-serif !important;
	font-size: var(--school-font-page-title) !important;
	font-weight: 800 !important;
	line-height: 1.16 !important;
	letter-spacing: 0 !important;
	text-align: left !important;
}

.school-page-content h1 {
	padding-bottom: 0.75rem;
	border-bottom: 1px solid rgba(201, 217, 232, 0.9);
}

.school-page-content h1 :where(a, span),
.school-page-content h1 a:visited {
	color: inherit !important;
}

.school-page-content :where(h2, h3, h4):not(:first-child) {
	margin-top: 0.55rem;
}

.school-page-content :where(p, ul, ol, dl, blockquote, header) {
	max-width: 68rem;
	margin: 0;
	color: var(--school-color-text-soft) !important;
	font-size: var(--school-font-body) !important;
	line-height: 1.68 !important;
}

.school-page-content :where(span, strong, em) {
	font-size: inherit !important;
	line-height: inherit !important;
}

.school-page-content strong {
	color: var(--school-color-text) !important;
	font-weight: 800;
}

.school-page-content :where(ul, ol) {
	padding-left: 1.35rem;
}

.school-page-content li + li {
	margin-top: 0.4rem;
}

.school-page-content a {
	font-weight: 800;
}

.school-page-content :where(img, iframe) {
	max-width: 100%;
	border-radius: 8px;
}

.school-page-content img {
	height: auto;
	box-shadow: 0 10px 24px rgba(24, 50, 74, 0.1);
}

.school-page-content figure {
	display: grid;
	justify-items: start;
	gap: 0.45rem;
	max-width: 100%;
	margin: 0;
}

.school-page-content figcaption {
	color: var(--school-color-text-soft) !important;
	font-size: 0.95rem !important;
	line-height: 1.45 !important;
}

.school-page-content hr {
	width: 100%;
	height: 1px;
	margin: 0.25rem 0;
	border: 0;
	background: var(--school-color-border);
}

.school-page-content table {
	width: 100%;
	border-collapse: collapse;
	overflow-wrap: anywhere;
}

.school-page-content :where(th, td) {
	padding: 0.7rem;
	border: 1px solid var(--school-color-border);
	vertical-align: top;
}

.page-id-2003 .school-page-content table,
.page-id-2003 .school-page-content thead,
.page-id-2003 .school-page-content tbody,
.page-id-2003 .school-page-content tr,
.page-id-2003 .school-page-content :where(th, td) {
	background: #f3f4f6 !important;
}

.page-id-2003 .school-page-content :where(th, td) {
	color: var(--school-color-text) !important;
}

.page-id-2003 .school-page-content tbody tr:hover {
	background: #e5e7eb !important;
}

.school-page-content .elementor {
	width: 100%;
}

.school-page-content .elementor > :where(.elementor-section, .e-con),
.school-page-content .elementor .e-con-inner,
.school-page-content .elementor-section-boxed > .elementor-container {
	width: 100%;
	max-width: 100% !important;
	margin-inline: 0;
	padding-inline: 0;
}

.school-page-content .elementor-widget:not(.elementor-widget-heading) > .elementor-widget-container {
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.school-page-content .elementor-widget + .elementor-widget,
.school-page-content .elementor-element + .elementor-element {
	margin-top: 0.75rem;
}

.school-page-content .elementor-widget-image {
	margin-block: 0.5rem;
}

.school-page-content .school-surface {
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.school-page-content .school-service-card {
	box-shadow: none;
}

.school-partner-page {
	display: grid;
	gap: 1.15rem;
}

.school-partner-list {
	display: grid;
	gap: 0;
	margin-top: 0.35rem;
	border-top: 1px solid var(--school-color-border);
}

.school-partner-item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.75rem;
	padding: clamp(1.15rem, 2.5vw, 1.65rem) 0;
	border-bottom: 1px solid var(--school-color-border);
}

.school-partner-item--media {
	grid-template-columns: minmax(0, 1fr) minmax(8rem, 12rem);
	align-items: center;
	column-gap: clamp(1rem, 3vw, 2rem);
}

.school-partner-item h2 {
	margin: 0;
	color: var(--school-color-text) !important;
	font-family: "Atkinson Hyperlegible", "Nunito Sans", "Segoe UI", sans-serif !important;
	font-size: clamp(1.25rem, 1.6vw, 1.55rem) !important;
	font-weight: 800;
	line-height: 1.24 !important;
	text-transform: none;
}

.school-partner-item :where(p, address) {
	margin: 0;
	color: var(--school-color-text-soft);
	font-size: var(--school-font-body);
	line-height: 1.65;
}

.school-partner-item address {
	font-style: normal;
}

.school-partner-item__body {
	display: grid;
	gap: 0.65rem;
}

.school-partner-item__media {
	display: grid;
	justify-items: start;
}

.school-partner-item__media img {
	width: min(100%, 11rem);
	height: auto;
	border-radius: 0;
	box-shadow: none;
	object-fit: contain;
}

.school-partner-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: 0.1rem;
}

.school-partner-link {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	min-height: 44px;
	padding: 0.58rem 0.85rem;
	border: 1px solid var(--school-color-border);
	border-radius: 8px;
	background: #ffffff;
	color: var(--school-color-primary-strong);
	font-weight: 800;
	line-height: 1.25;
	text-decoration: none;
}

.school-partner-link:hover,
.school-partner-link:focus {
	border-color: rgba(42, 109, 166, 0.35);
	background: var(--school-color-surface-alt);
	color: var(--school-color-primary-strong);
}

.school-partner-page .school-external-link-notice {
	max-width: 100%;
	margin: 0;
}

.school-news-hub {
	display: grid;
	gap: 1rem;
}

.school-news-list {
	display: grid;
	gap: 0;
	margin-top: 0.35rem;
	border-top: 1px solid var(--school-color-border);
}

.school-news-item {
	display: grid;
	gap: 0.65rem;
	padding: clamp(1.1rem, 2.4vw, 1.55rem) 0;
	border-bottom: 1px solid var(--school-color-border);
}

.school-news-item h2 {
	margin: 0;
	color: var(--school-color-text) !important;
	font-family: "Atkinson Hyperlegible", "Nunito Sans", "Segoe UI", sans-serif !important;
	font-size: clamp(1.25rem, 1.6vw, 1.55rem) !important;
	font-weight: 800;
	line-height: 1.24 !important;
}

.school-news-item :where(p, ul) {
	margin: 0;
}

.school-news-item--current {
	background: linear-gradient(90deg, rgba(238, 244, 251, 0.65), rgba(255, 255, 255, 0));
	padding-inline: 0.85rem;
}

.school-news-link {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	min-height: 44px;
	padding: 0.58rem 0.85rem;
	border: 1px solid var(--school-color-border);
	border-radius: 8px;
	background: #ffffff;
	color: var(--school-color-primary-strong);
	font-weight: 800;
	line-height: 1.25;
	text-decoration: none;
}

.school-news-link:hover,
.school-news-link:focus {
	border-color: rgba(42, 109, 166, 0.35);
	background: var(--school-color-surface-alt);
	color: var(--school-color-primary-strong);
}

.school-news-archive {
	display: grid;
	gap: 0.45rem;
	padding-left: 1.2rem;
}

@media (max-width: 720px) {
	.school-partner-item--media {
		grid-template-columns: 1fr;
	}
}

.school-quicklinks {
	display: grid;
	gap: 1.25rem;
	padding: clamp(1.2rem, 2vw, 2rem);
	border: 1px solid var(--school-color-border);
	border-radius: 24px;
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(238, 244, 251, 0.94)),
		var(--school-color-surface);
	box-shadow: var(--school-shadow-soft);
}

.school-quicklinks__intro p:last-child {
	margin-bottom: 0;
	color: var(--school-color-text-soft);
}

.school-quicklinks__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

/* Remove Astra menu transitions that make nested menus feel laggy on tap/click. */
#ast-mobile-popup,
#ast-mobile-popup .ast-mobile-popup-inner,
#ast-mobile-popup .main-navigation .sub-menu,
#ast-mobile-header .main-navigation .sub-menu,
.ast-desktop .main-header-menu > .menu-item > .sub-menu,
.ast-desktop .main-header-menu > .menu-item > .astra-full-megamenu-wrapper,
.ast-menu-toggle {
	animation: none !important;
	transition: none !important;
}

#ast-mobile-popup .main-navigation .menu-item-has-children > .sub-menu[data-school-fast-submenu="1"],
#ast-mobile-header .main-navigation .menu-item-has-children > .sub-menu[data-school-fast-submenu="1"] {
	will-change: auto;
	transform: none !important;
}

@media (min-width: 922px) {
	.ast-desktop #ast-desktop-header .main-header-menu > .menu-item > .sub-menu > .menu-item-has-children[data-school-click-submenu]:hover > .sub-menu,
	.ast-desktop #ast-desktop-header .main-header-menu > .menu-item > .sub-menu > .menu-item-has-children[data-school-click-submenu]:focus-within > .sub-menu,
	.ast-desktop #ast-desktop-header .main-header-menu > .menu-item > .sub-menu > .menu-item-has-children[data-school-click-submenu] > .sub-menu {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	.ast-desktop #ast-desktop-header .main-header-menu > .menu-item > .sub-menu > .menu-item-has-children[data-school-click-submenu].school-submenu-open > .sub-menu,
	.ast-desktop #ast-desktop-header .main-header-menu > .menu-item > .sub-menu > .menu-item-has-children[data-school-click-submenu].ast-submenu-expanded > .sub-menu {
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}
}

@media (max-width: 921px) {
	/*
	 * Astra positions submenu toggles from the menu item's padding.
	 * On smaller screens the arrow button can sit too tight to the text and clip the
	 * lower part of the icon after the expanded-state rotation. Reserve space and
	 * center the toggle inside a consistent hit area.
	 */
	#ast-mobile-popup .main-navigation .menu-item-has-children,
	#ast-mobile-header .main-navigation .menu-item-has-children {
		position: relative;
	}

	#ast-mobile-popup .main-navigation .menu-item-has-children > .menu-link,
	#ast-mobile-header .main-navigation .menu-item-has-children > .menu-link {
		padding-right: 5.35rem !important;
	}

	#ast-mobile-popup .main-navigation .menu-item-has-children > .menu-link > .dropdown-menu-toggle.ast-header-navigation-arrow,
	#ast-mobile-header .main-navigation .menu-item-has-children > .menu-link > .dropdown-menu-toggle.ast-header-navigation-arrow {
		display: none !important;
	}

	#ast-mobile-popup .main-navigation .menu-item-has-children > .ast-menu-toggle,
	#ast-mobile-header .main-navigation .menu-item-has-children > .ast-menu-toggle {
		top: 0 !important;
		right: 0.45rem !important;
		bottom: 0 !important;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.35rem;
		height: 100%;
		min-width: 44px;
		min-height: 44px;
		padding: 0;
		line-height: 1;
		overflow: visible !important;
		transform: none !important;
	}

	#ast-mobile-popup .main-navigation .ast-submenu-expanded > .ast-menu-toggle,
	#ast-mobile-header .main-navigation .ast-submenu-expanded > .ast-menu-toggle {
		transform: none !important;
	}

	#ast-mobile-popup .main-navigation .menu-item-has-children > .ast-menu-toggle .icon-arrow,
	#ast-mobile-header .main-navigation .menu-item-has-children > .ast-menu-toggle .icon-arrow {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		line-height: 1;
		transform: none;
	}

	#ast-mobile-popup .main-navigation .menu-item-has-children > .ast-menu-toggle .icon-arrow svg,
	#ast-mobile-header .main-navigation .menu-item-has-children > .ast-menu-toggle .icon-arrow svg {
		display: block;
		width: 0.9rem;
		height: 0.9rem;
		margin: 0;
	}

	#ast-mobile-popup .main-navigation .ast-submenu-expanded > .ast-menu-toggle .icon-arrow,
	#ast-mobile-header .main-navigation .ast-submenu-expanded > .ast-menu-toggle .icon-arrow {
		transform: rotate(180deg);
	}
}

@media (min-width: 922px) {
	/*
	 * Astra already opens desktop submenus via :hover and injects a bridge above the submenu.
	 * Increase that hit area so the cursor can move into the dropdown without dropping hover.
	 */
	.ast-desktop #ast-desktop-header .main-header-menu > .menu-item > .sub-menu:before,
	.ast-desktop #ast-desktop-header .main-header-menu > .menu-item > .astra-full-megamenu-wrapper:before {
		height: 18px !important;
	}
}

.school-service-stack {
	display: grid;
	gap: 1.25rem;
}

.school-service-bar {
	display: block;
	margin: 0;
	padding: 0.78rem 1rem;
	border-radius: 8px;
	background: var(--school-color-primary);
	color: #fff !important;
	font-family: var(--school-font-sans);
	font-size: clamp(1.15rem, 2vw, 1.45rem);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: 0;
}

.school-service-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
	gap: 1rem;
}

.school-counseling-flow {
	display: grid;
	gap: 1rem;
}

.school-service-card {
	display: grid;
	gap: 0.75rem;
	padding: clamp(1rem, 2vw, 1.5rem);
	border: 1px solid var(--school-color-border);
	border-radius: var(--school-radius-soft);
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
	box-shadow: var(--school-shadow-soft);
}

.school-service-card > * {
	margin: 0;
}

.school-service-card ul,
.school-service-card ol {
	margin: 0;
	padding-left: 1.2rem;
}

.school-service-card li + li {
	margin-top: 0.45rem;
}

.school-service-card a {
	font-weight: 700;
}

.ast-builder-social-element[href="#"],
.ast-builder-social-element[href=""],
.header-social-item[href="#"],
.header-social-item[href=""],
.school-hidden-placeholder-link {
	display: none !important;
}

.school-quicklinks__card {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.9rem;
	align-items: start;
	padding: 1rem;
	border: 1px solid var(--school-color-border);
	background: var(--school-color-surface);
	color: inherit;
	text-decoration: none;
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.school-quicklinks__card:hover {
	transform: translateY(-2px);
	border-color: rgba(0, 95, 153, 0.34);
	box-shadow: var(--school-shadow-strong);
}

.school-quicklinks__icon {
	display: inline-grid;
	place-items: center;
	width: 3.1rem;
	height: 3.1rem;
	border-radius: 16px;
	background: linear-gradient(160deg, #e6f4ff, #f6fbff);
	color: var(--school-color-primary);
}

.school-quicklinks__icon svg {
	width: 1.5rem;
	height: 1.5rem;
	fill: currentColor;
}

.school-quicklinks__content {
	display: grid;
	gap: 0.25rem;
}

.school-quicklinks__content strong {
	color: var(--school-color-text);
	font-size: 1.08rem;
	line-height: 1.25;
}

.school-quicklinks__content span:last-child {
	color: var(--school-color-text-soft);
	font-size: 1rem;
	line-height: 1.5;
}

.school-touch-target a,
.school-touch-target button,
.elementor-widget-button .elementor-button,
.elementor-widget-icon-box a,
.elementor-icon-list-item a {
	display: inline-flex;
	align-items: center;
}

.school-semantic-helper::before {
	display: inline-block;
	margin-bottom: 0.65rem;
	padding: 0.22rem 0.55rem;
	border-radius: var(--school-radius-pill);
	background: rgba(0, 95, 153, 0.08);
	color: var(--school-color-primary-strong);
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: 0.04em;
}

.e-semantic-header.school-semantic-helper::before {
	content: "Header";
}

.e-semantic-main.school-semantic-helper::before {
	content: "Main";
}

.e-semantic-footer.school-semantic-helper::before {
	content: "Footer";
}

.e-semantic-section.school-semantic-helper::before {
	content: "Section";
}

.school-emergency[hidden] {
	display: none;
}

.school-emergency {
	position: fixed;
	inset: 0;
	z-index: 10060;
	display: grid;
	place-items: center;
	padding: 1rem;
}

.school-emergency__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(11, 28, 47, 0.6);
	backdrop-filter: blur(4px);
}

.school-emergency__dialog {
	position: relative;
	z-index: 1;
	width: min(36rem, 100%);
	padding: 1.5rem;
	border: 1px solid rgba(161, 38, 34, 0.24);
	background: linear-gradient(180deg, #fffefe 0%, #fff8f6 100%);
}

.school-emergency__dialog h2 {
	margin-top: 0;
}

.school-emergency__dialog p:last-of-type {
	color: var(--school-color-text-soft);
}

.school-emergency__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1rem;
}

.school-emergency__primary,
.school-emergency__secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1.1rem;
	font-weight: 800;
	text-decoration: none;
	border: 0;
	cursor: pointer;
}

.school-emergency__primary {
	background: var(--school-color-danger);
	color: #ffffff;
}

.school-emergency__secondary {
	background: #ffffff;
	color: var(--school-color-text);
	border: 1px solid var(--school-color-border);
}

body.school-emergency-open {
	overflow: hidden;
}

@media (max-width: 921px) {
	.site-primary-footer-wrap .site-primary-footer-inner-wrap {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}

	.site-primary-footer-wrap [data-section="sidebar-widgets-footer-widget-4"] .widget_media_image img {
		width: 8.75rem;
	}
}

@media (max-width: 768px) {
	body.ast-hfb-header .site-content {
		padding-top: 6.25rem;
	}

	.admin-bar.ast-hfb-header .site-content {
		padding-top: calc(6.25rem + 46px);
	}

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

	.school-service-grid {
		grid-template-columns: 1fr;
	}

	body,
	p,
	li,
	dd,
	blockquote {
		font-size: var(--school-font-body);
	}
}

@media (max-width: 360px) {
	:root {
		--school-font-body: clamp(
			calc(1.125rem * var(--school-font-scale)),
			calc(1.125rem * var(--school-font-scale)),
			calc(1.125rem * var(--school-font-scale))
		);
	}

	.school-quicklinks__grid {
		grid-template-columns: 1fr;
	}

	.school-quicklinks__card,
	.school-emergency__dialog,
	.e-semantic-section,
	.e-semantic-header,
	.e-semantic-main,
	.e-semantic-footer {
		padding: 0.95rem;
	}
}
