/* ── Container ── */
.container {
	width: 100%;
	max-width: var(--cires-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--cires-gutter);
	padding-right: var(--cires-gutter);
}

.container-wide {
	max-width: var(--cires-container-wide);
}

.container-narrow {
	max-width: var(--cires-container-narrow);
}

/* ── Grid ── */
.grid {
	display: grid;
	gap: var(--cires-gutter);
}

.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 61.99875em) {
	.grid-4 { grid-template-columns: repeat(2, 1fr); }
	.grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 35.99875em) {
	.grid-4,
	.grid-3,
	.grid-2 { grid-template-columns: 1fr; }
}

/* ── Section ── */
.section {
	padding: var(--cires-space-pad-section) 0;
}

.section-sm {
	padding: var(--cires-space-3xl) 0;
}

@media (max-width: 48em) {
	.section {
		padding: var(--cires-space-3xl) 0;
	}
}

.section-white { background: var(--cires-white); }
.section-light { background: var(--cires-neutral-50); }
.section-primary { background: var(--cires-color-primary); color: var(--cires-neutral-50); }
.section-dark { background: var(--cires-color-secondary); color: var(--cires-neutral-50); }
.section-gold { background: var(--cires-color-announcement); }

.section-primary h2,
.section-primary h3,
.section-dark h2,
.section-dark h3 {
	color: var(--cires-white);
}

.section-primary .section-header p,
.section-dark .section-header p {
	color: var(--cires-neutral-100);
}

/* ── Page Banner (single source of truth) ── */
.page-banner {
	position: relative;
	min-height: 200px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	overflow: hidden;
	text-align: left;
	background: var(--cires-color-primary);
}

.site-main > .page-banner:first-child {
	margin-top: calc(-1 * var(--cires-header-height));
}

.site-main > .page-banner:first-child .banner-content {
	padding-top: calc(var(--cires-space-3xl) + var(--cires-header-height));
}

.cires-breadcrumbs__bar + .site-main > .page-banner:first-child {
	margin-top: 0;
}

.cires-breadcrumbs__bar + .site-main > .page-banner:first-child .banner-content {
	padding-top: var(--cires-space-2xl);
	padding-bottom: var(--cires-space-2xl);
}

.page-banner .banner-bg {
	position: absolute;
	inset: 0;
}

.page-banner .banner-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.4;
}

.page-banner .banner-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 0%, var(--cires-overlay-mid) 100%);
	z-index: 1;
}

.page-banner .banner-content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--cires-container);
	margin: 0 auto;
	padding: var(--cires-space-3xl) var(--cires-gutter) var(--cires-space-xl);
}

.page-banner h1 {
	color: var(--cires-white);
	font-family: var(--cires-font-heading);
	font-weight: var(--cires-heading-weight);
	font-size: var(--cires-h1-size);
	margin-bottom: var(--cires-space-md);
}

.page-banner p {
	color: rgba(255, 255, 255, 0.9);
	font-size: var(--cires-text-lg);
}

@media (max-width: 48em) {
	.page-banner {
		min-height: 140px;
	}
	.page-banner .banner-content {
		padding: var(--cires-space-xl) var(--cires-gutter) var(--cires-space-lg);
	}
}

/* ── Hero (Homepage) ── */
.hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	overflow: hidden;
}

@media (max-width: 35.99875em) {
	.hero {
		min-height: 100vh;
	}
}

.hero-bg {
	position: absolute;
	inset: 0;
}

.hero-bg img,
.hero-bg video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, var(--cires-overlay-from) 0%, var(--cires-overlay-mid) 100%);
}

.hero-content {
	position: relative;
	z-index: 2;
	padding: var(--cires-space-3xl) var(--cires-gutter);
	width: 100%;
	max-width: var(--cires-container-wide);
	margin: 0 auto;
}

.hero h1 {
	color: var(--cires-white);
	font-family: var(--cires-font-heading);
	font-weight: var(--cires-heading-weight);
	margin-bottom: var(--cires-space-md);
}

.hero p {
	color: rgba(255, 255, 255, 0.9);
	font-size: var(--cires-text-lg);
	max-width: 600px;
}

/* ── Two Column ── */
.two-col {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--cires-space-3xl);
	align-items: center;
}

@media (max-width: 47.99875em) {
	.two-col {
		grid-template-columns: 1fr;
		gap: var(--cires-space-xl);
	}
}

.two-col-image img {
	width: 100%;
	height: auto;
	border-radius: var(--cires-radius-md);
	object-fit: cover;
}

.two-col-content h2 {
	margin-bottom: var(--cires-space-md);
}

.two-col-content p {
	color: var(--cires-neutral-700);
	line-height: var(--cires-leading-relaxed);
}

/* ── Flex utilities ── */
.flex { display: flex; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-sm { gap: var(--cires-space-sm); }
.gap-md { gap: var(--cires-space-md); }
.gap-lg { gap: var(--cires-space-lg); }
.gap-xl { gap: var(--cires-space-xl); }

/* ── Text utilities ── */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-white { color: var(--cires-white); }
.text-primary { color: var(--cires-color-primary); }
.text-heading { color: var(--cires-color-heading); }
.text-muted { color: var(--cires-neutral-600); }
.text-sm { font-size: var(--cires-text-sm); }
.text-lg { font-size: var(--cires-text-lg); }
.font-heading { font-family: var(--cires-font-heading); }
.font-alt { font-family: var(--cires-font-alt); }

