/*
 * Component styles for the hand-authored header, footer and homepage
 * section templates. Scoped under top-level `.aislf-*` block classes with
 * `__element` / `--modifier` suffixes (BEM-ish) — this styles PHP templates,
 * not Elementor output, so it stays flat and readable rather than deeply
 * nested. All colour/spacing/type comes from tokens.css; no hex values or
 * magic numbers here.
 */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal;
}

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

body {
	color: var(--aislf-color-ink);
	font-family: var(--aislf-font-body);
	font-size: var(--aislf-font-size-body);
	line-height: var(--aislf-line-height-body);
	margin: 0;
}

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

/* ---------- Header ---------- */

.aislf-header {
	background: var(--aislf-color-white);
	position: relative;
}

.aislf-header__inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	gap: var(--aislf-space-2);
	margin-inline: auto;
	max-width: var(--aislf-max-width);
	min-height: var(--aislf-header-height);
	padding-inline: var(--aislf-container-padding);
}

.aislf-header__logos {
	align-items: center;
	display: flex;
	gap: var(--aislf-space-3);
}

.aislf-header__logo {
	height: 2.5rem;
	width: auto;
}

.aislf-header__trigger {
	align-items: center;
	background: none;
	border: 1px solid var(--aislf-color-navy);
	border-radius: var(--aislf-radius);
	color: var(--aislf-color-navy);
	cursor: pointer;
	display: flex;
	font-family: var(--aislf-font-body);
	font-size: var(--aislf-font-size-body);
	gap: var(--aislf-space-1);
	padding: var(--aislf-space-1) var(--aislf-space-2);
}

.aislf-header__trigger-icon {
	display: inline-block;
	height: 0.7rem;
	position: relative;
	width: 1.25rem;
}

.aislf-header__trigger-icon::before,
.aislf-header__trigger-icon::after {
	background: currentColor;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	width: 100%;
}

.aislf-header__trigger-icon::before {
	top: 0;
}

.aislf-header__trigger-icon::after {
	bottom: 0;
}

.aislf-header__trigger[aria-expanded="true"] .aislf-header__trigger-icon::before {
	top: 50%;
	transform: rotate(45deg);
}

.aislf-header__trigger[aria-expanded="true"] .aislf-header__trigger-icon::after {
	bottom: 50%;
	transform: rotate(-45deg);
}

.aislf-header__nav {
	background: var(--aislf-color-cream);
	border-top: 1px solid var(--aislf-color-navy-light);
}

.aislf-header__nav-list {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0;
	max-width: var(--aislf-max-width);
	margin-inline: auto;
	padding: var(--aislf-space-2) var(--aislf-container-padding);
}

.aislf-header__nav-list a {
	color: var(--aislf-color-navy);
	display: block;
	padding: var(--aislf-space-1) 0;
	text-decoration: none;
}

.aislf-header__nav-list a:hover,
.aislf-header__nav-list a:focus {
	text-decoration: underline;
}

@media (min-width: 768px) {
	.aislf-header__nav-list {
		flex-direction: row;
		gap: var(--aislf-space-4);
	}
}

.aislf-header__divider {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding-block: 3px;
}

.aislf-header__divider-line {
	background: var(--aislf-color-gold);
	display: block;
	height: 1px;
	width: 100%;
}

/* ---------- Hero ---------- */

.aislf-hero {
	background: var(--aislf-color-navy);
	color: var(--aislf-color-white);
	min-height: 70vh;
	position: relative;
}

.aislf-hero__video,
.aislf-hero__poster {
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
}

.aislf-hero__overlay {
	background: linear-gradient(to top, rgb(10 37 64 / 70%), rgb(10 37 64 / 10%));
	bottom: 0;
	left: 0;
	padding: var(--aislf-space-6) var(--aislf-container-padding);
	position: absolute;
	right: 0;
}

.aislf-hero__heading {
	font-family: var(--aislf-font-heading);
	font-size: var(--aislf-font-size-h1);
	line-height: var(--aislf-line-height-heading);
	margin: 0 0 var(--aislf-space-2);
	max-width: 40ch;
}

.aislf-hero__subheading {
	font-size: 1.125rem;
	margin: 0;
	max-width: 50ch;
}

/* ---------- Statement ---------- */

.aislf-statement {
	padding: var(--aislf-space-8) var(--aislf-container-padding);
}

.aislf-statement__inner {
	margin-inline: auto;
	max-width: 65ch;
	text-align: center;
}

.aislf-statement__eyebrow {
	color: var(--aislf-color-gold);
	font-size: var(--aislf-font-size-eyebrow);
	font-weight: bold;
	letter-spacing: 0.08em;
	margin: 0 0 var(--aislf-space-2);
	text-transform: uppercase;
}

.aislf-statement__heading {
	font-family: var(--aislf-font-heading);
	font-size: var(--aislf-font-size-h2);
	line-height: var(--aislf-line-height-heading);
	margin: 0 0 var(--aislf-space-3);
}

.aislf-statement__body {
	color: var(--aislf-color-ink);
}

/* ---------- Pillar grid ---------- */

.aislf-pillar-grid {
	padding: var(--aislf-space-8) var(--aislf-container-padding);
	margin-inline: auto;
	max-width: var(--aislf-max-width);
}

.aislf-pillar-grid__list {
	display: grid;
	gap: var(--aislf-space-4);
	grid-template-columns: 1fr;
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 640px) {
	.aislf-pillar-grid__list {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 960px) {
	.aislf-pillar-grid__list {
		grid-template-columns: repeat(3, 1fr);
	}
}

.aislf-pillar-card {
	background: var(--aislf-color-cream);
	border-radius: var(--aislf-radius);
	padding: var(--aislf-space-4);
}

.aislf-pillar-card__eyebrow {
	color: var(--aislf-color-gold);
	font-size: var(--aislf-font-size-eyebrow);
	font-weight: bold;
	letter-spacing: 0.08em;
	margin: 0 0 var(--aislf-space-1);
	text-transform: uppercase;
}

.aislf-pillar-card__heading {
	font-family: var(--aislf-font-heading);
	font-size: var(--aislf-font-size-h3);
	margin: 0 0 var(--aislf-space-2);
}

.aislf-pillar-card__body {
	margin: 0 0 var(--aislf-space-3);
}

.aislf-pillar-card__link {
	color: var(--aislf-color-navy);
	font-weight: bold;
	text-decoration: none;
}

.aislf-pillar-card__link:hover,
.aislf-pillar-card__link:focus {
	text-decoration: underline;
}

/* ---------- News / events feed ---------- */

.aislf-news-feed {
	margin-inline: auto;
	max-width: var(--aislf-max-width);
	padding: var(--aislf-space-8) var(--aislf-container-padding);
}

.aislf-news-feed__header {
	margin-bottom: var(--aislf-space-4);
}

.aislf-news-feed__heading {
	font-family: var(--aislf-font-heading);
	font-size: var(--aislf-font-size-h2);
	margin: 0 0 var(--aislf-space-1);
}

.aislf-news-feed__group-heading {
	font-family: var(--aislf-font-heading);
	font-size: var(--aislf-font-size-h3);
	margin: var(--aislf-space-6) 0 var(--aislf-space-3);
}

.aislf-news-feature {
	background: var(--aislf-color-cream);
	border-radius: var(--aislf-radius);
	display: grid;
	gap: var(--aislf-space-4);
	grid-template-columns: 1fr;
	overflow: hidden;
}

@media (min-width: 768px) {
	.aislf-news-feature {
		grid-template-columns: 1fr 1fr;
	}
}

.aislf-news-feature__media img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.aislf-news-feature__body {
	padding: var(--aislf-space-4);
}

.aislf-news-feature__type {
	color: var(--aislf-color-gold);
	font-size: var(--aislf-font-size-eyebrow);
	font-weight: bold;
	letter-spacing: 0.08em;
	margin: 0 0 var(--aislf-space-1);
	text-transform: uppercase;
}

.aislf-news-feature__title {
	font-family: var(--aislf-font-heading);
	font-size: var(--aislf-font-size-h3);
	margin: 0 0 var(--aislf-space-2);
}

.aislf-card-grid {
	display: grid;
	gap: var(--aislf-space-4);
	grid-template-columns: 1fr;
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 960px) {
	.aislf-card-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.aislf-news-card,
.aislf-event-card {
	border: 1px solid var(--aislf-color-cream);
	border-radius: var(--aislf-radius);
	padding: var(--aislf-space-3);
}

.aislf-news-card__category {
	color: var(--aislf-color-gold);
	font-size: var(--aislf-font-size-eyebrow);
	font-weight: bold;
	letter-spacing: 0.08em;
	margin: 0 0 var(--aislf-space-1);
	text-transform: uppercase;
}

.aislf-news-card__title,
.aislf-event-card__title {
	font-family: var(--aislf-font-heading);
	font-size: 1.125rem;
	margin: 0 0 var(--aislf-space-2);
}

.aislf-event-card__date {
	color: var(--aislf-color-navy-light);
	font-weight: bold;
	margin: 0 0 var(--aislf-space-2);
}

.aislf-news-card__link,
.aislf-event-card__link,
.aislf-news-feature__link {
	color: var(--aislf-color-navy);
	font-weight: bold;
	text-decoration: none;
}

.aislf-news-card__link:hover,
.aislf-news-card__link:focus,
.aislf-event-card__link:hover,
.aislf-event-card__link:focus,
.aislf-news-feature__link:hover,
.aislf-news-feature__link:focus {
	text-decoration: underline;
}

/* ---------- CTA band ---------- */

.aislf-cta-band {
	background: var(--aislf-color-navy);
	color: var(--aislf-color-white);
	padding: var(--aislf-space-8) var(--aislf-container-padding);
}

.aislf-cta-band__inner {
	margin-inline: auto;
	max-width: 60ch;
	text-align: center;
}

.aislf-cta-band__heading {
	font-family: var(--aislf-font-heading);
	font-size: var(--aislf-font-size-h2);
	margin: 0 0 var(--aislf-space-2);
}

.aislf-cta-band__body {
	margin: 0 0 var(--aislf-space-4);
}

.aislf-cta-band__button {
	background: var(--aislf-color-gold);
	border-radius: var(--aislf-radius);
	color: var(--aislf-color-navy);
	display: inline-block;
	font-weight: bold;
	padding: var(--aislf-space-2) var(--aislf-space-4);
	text-decoration: none;
}

.aislf-cta-band__button:hover,
.aislf-cta-band__button:focus {
	background: var(--aislf-color-white);
}

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

.aislf-footer {
	background: var(--aislf-color-navy);
	color: var(--aislf-color-white);
}

.aislf-footer__inner {
	display: grid;
	gap: var(--aislf-space-4);
	grid-template-columns: 1fr;
	margin-inline: auto;
	max-width: var(--aislf-max-width);
	padding: var(--aislf-space-8) var(--aislf-container-padding);
}

@media (min-width: 640px) {
	.aislf-footer__inner {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 960px) {
	.aislf-footer__inner {
		grid-template-columns: 1.4fr repeat(4, 1fr);
	}
}

.aislf-footer__logo {
	height: 2.5rem;
	margin-bottom: var(--aislf-space-2);
	width: auto;
}

.aislf-footer__address {
	font-style: normal;
	opacity: 0.85;
}

.aislf-footer__column-title {
	color: var(--aislf-color-gold);
	font-size: var(--aislf-font-size-eyebrow);
	font-weight: bold;
	letter-spacing: 0.08em;
	margin: 0 0 var(--aislf-space-2);
	text-transform: uppercase;
}

.aislf-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.aislf-footer__list li {
	margin-bottom: var(--aislf-space-1);
}

.aislf-footer__list a {
	color: var(--aislf-color-white);
	text-decoration: none;
}

.aislf-footer__list a:hover,
.aislf-footer__list a:focus {
	text-decoration: underline;
}

.aislf-footer__list--locations {
	column-gap: var(--aislf-space-3);
	columns: 2;
}

.aislf-footer__values {
	border-top: 1px solid var(--aislf-color-navy-light);
}

.aislf-footer__values-strip {
	color: var(--aislf-color-gold);
	font-family: var(--aislf-font-heading);
	letter-spacing: 0.05em;
	margin: 0 auto;
	max-width: var(--aislf-max-width);
	padding: var(--aislf-space-3) var(--aislf-container-padding);
	text-align: center;
}

.aislf-footer__values-strip span {
	margin-inline: var(--aislf-space-2);
}

/* ---------- Fallback page template ---------- */

.aislf-main {
	margin-inline: auto;
	max-width: var(--aislf-max-width);
}

.aislf-article {
	padding: var(--aislf-space-6) var(--aislf-container-padding);
}

.aislf-article__title {
	font-family: var(--aislf-font-heading);
	font-size: var(--aislf-font-size-h1);
}
