.bl-container,
.site-container {
	margin-inline: auto;
	max-width: none;
	padding-inline: var(--container-padding);
	width: 100%;
}

.bl-section {
	background: var(--color-background);
	padding-block: var(--space-2xl);
	width: 100%;
}

.bl-section--muted {
	background: var(--color-surface-muted);
}

.bl-section--compact {
	padding-block: var(--space-xl);
}

.bl-section--spacious {
	padding-block: clamp(var(--space-2xl), 8vw, 6rem);
}

.bl-section__header {
	align-items: end;
	display: flex;
	gap: var(--space-xl);
	justify-content: space-between;
	margin-bottom: var(--space-xl);
}

.bl-section__eyebrow {
	color: var(--color-text-muted);
	font-size: var(--font-size-small);
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: var(--space-sm);
}

.bl-section__title {
	margin-bottom: var(--space-sm);
}

.bl-section__description {
	color: var(--color-text-muted);
	line-height: var(--line-height-body);
	margin-bottom: 0;
	max-width: var(--content-width-normal);
	text-align: left;
	text-wrap: pretty;
}

.bl-section__actions {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	gap: var(--space-sm);
	justify-content: flex-end;
}

.bl-page-hero {
	background: var(--color-background);
	padding-block: clamp(var(--space-xl), 6vw, var(--space-2xl));
	width: 100%;
}

.bl-page-hero--compact {
	padding-block: var(--space-xl);
}

.bl-page-hero__inner {
	align-items: center;
	display: flex;
	gap: clamp(var(--space-xl), 5vw, var(--space-2xl));
	justify-content: space-between;
}

.bl-page-hero__content {
	flex: 1 1 42rem;
	min-width: 0;
}

.bl-page-hero__eyebrow {
	color: var(--color-text-muted);
	font-size: var(--font-size-small);
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: var(--space-sm);
}

.bl-page-hero__title {
	font-size: var(--font-size-h1);
	margin-bottom: var(--space-md);
	max-width: var(--content-width-normal);
}

.bl-page-hero__lead {
	color: var(--color-text-muted);
	font-size: 1.125rem;
	line-height: var(--line-height-body);
	margin-bottom: 0;
	max-width: var(--content-width-normal);
	text-align: left;
	text-wrap: pretty;
}

.bl-page-hero__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin-top: var(--space-lg);
}

.bl-page-hero__media {
	flex: 0 1 28rem;
	min-width: 16rem;
}

.bl-page-hero--centered .bl-page-hero__inner {
	justify-content: center;
	text-align: center;
}

.bl-page-hero--centered .bl-page-hero__content {
	flex-basis: var(--content-width-normal);
}

.bl-page-hero--centered .bl-page-hero__title,
.bl-page-hero--centered .bl-page-hero__lead {
	margin-inline: auto;
}

.bl-page-hero--centered .bl-page-hero__actions {
	justify-content: center;
}

.bl-grid {
	display: grid;
	gap: var(--space-lg);
}

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

.bl-grid--3,
.bl-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bl-grid--4,
.bl-grid-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bl-grid--auto {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.bl-grid--align-start {
	align-items: start;
}

.bl-grid--align-center {
	align-items: center;
}

.bl-grid--equal-height {
	align-items: stretch;
}

.bl-grid--equal-height > * {
	height: 100%;
}

.bl-content {
	hyphens: auto;
	max-width: var(--content-width-normal);
	overflow-wrap: break-word;
	text-wrap: pretty;
}

.bl-content--narrow {
	max-width: var(--content-width-narrow);
}

.bl-content--wide {
	max-width: var(--content-width-wide);
}

.bl-content p {
	line-height: var(--line-height-body);
	text-align: justify;
}

.bl-editorial-layout {
	align-items: start;
	display: grid;
	gap: clamp(var(--space-xl), 5vw, var(--space-2xl));
	grid-template-columns: minmax(0, 2fr) minmax(min(100%, 18rem), 1fr);
}

.bl-editorial-layout--reverse {
	grid-template-columns: minmax(min(100%, 18rem), 1fr) minmax(0, 2fr);
}

.bl-editorial-layout--reverse .bl-editorial-layout__content {
	grid-column: 2;
}

.bl-editorial-layout--reverse .bl-editorial-layout__aside {
	grid-column: 1;
	grid-row: 1;
}

.bl-editorial-layout__content,
.bl-editorial-layout__aside {
	min-width: 0;
}

.bl-editorial-layout__aside {
	color: var(--color-text-muted);
	line-height: var(--line-height-body);
	text-align: left;
}

.bl-hero__content > .bl-text,
.landing-entry-points__header .bl-text,
.landing-methodology__header .bl-text,
.landing-methodology__closing,
.landing-not__header .bl-text,
.landing-not__closing .bl-text,
.front-page-intro .bl-text,
.content-list p,
.page-placeholder__content .bl-text,
.hub-research__hero-copy .bl-text,
.hub-research__intro .bl-text,
.hub-research__group-header .bl-text,
.hub-systems__hero-copy .bl-text,
.hub-knowledge__hero-copy .bl-text,
.contact-page__intro .bl-text {
	hyphens: auto;
	line-height: var(--line-height-body);
	overflow-wrap: break-word;
	text-align: justify;
	text-wrap: pretty;
}

.bl-align-center {
	text-align: center;
}

.bl-align-right {
	text-align: right;
}

.bl-width-wide {
	max-width: var(--content-width-wide);
}

@media (max-width: 960px) {
	.bl-section__header {
		align-items: start;
		flex-direction: column;
	}

	.bl-section__actions {
		justify-content: flex-start;
	}

	.bl-page-hero__inner {
		align-items: start;
		flex-direction: column;
	}

	.bl-page-hero__media {
		min-width: 0;
		width: 100%;
	}

	.bl-grid--3,
	.bl-grid-3,
	.bl-grid--4,
	.bl-grid-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bl-editorial-layout,
	.bl-editorial-layout--reverse {
		grid-template-columns: 1fr;
	}

	.bl-editorial-layout--reverse .bl-editorial-layout__content,
	.bl-editorial-layout--reverse .bl-editorial-layout__aside {
		grid-column: auto;
		grid-row: auto;
	}
}

@media (max-width: 640px) {
	.bl-section,
	.bl-section--spacious {
		padding-block: var(--space-xl);
	}

	.bl-section--compact {
		padding-block: var(--space-lg);
	}

	.bl-page-hero,
	.bl-page-hero--compact {
		padding-block: var(--space-xl);
	}

	.bl-grid--2,
	.bl-grid-2,
	.bl-grid--3,
	.bl-grid-3,
	.bl-grid--4,
	.bl-grid-4 {
		grid-template-columns: 1fr;
	}

	.bl-content p {
		text-align: left;
	}

	.bl-hero__content > .bl-text,
	.landing-entry-points__header .bl-text,
	.landing-methodology__header .bl-text,
	.landing-methodology__closing,
	.landing-not__header .bl-text,
	.landing-not__closing .bl-text,
	.front-page-intro .bl-text,
	.content-list p,
	.page-placeholder__content .bl-text,
	.hub-research__hero-copy .bl-text,
	.hub-research__intro .bl-text,
	.hub-research__group-header .bl-text,
	.hub-systems__hero-copy .bl-text,
	.hub-knowledge__hero-copy .bl-text,
	.contact-page__intro .bl-text {
		text-align: left;
	}
}
