﻿/**
 * Page and hub-specific styles.
 */

.bl-hero {
	padding: 112px 0 72px;
}

.bl-hero .bl-grid-2 {
	align-items: center;
	gap: 72px;
}

.bl-hero__content {
	max-width: 760px;
}

.bl-hero__content h1 {
	margin-bottom: 20px;
}

.bl-hero__lead {
	color: var(--bl-color-primary);
	font-size: 1.25rem;
	line-height: 1.5;
	margin-bottom: 18px;
}

.bl-hero__lead strong {
	display: block;
	font-weight: 700;
}

.bl-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 26px;
}

.bl-process-card {
	background: var(--bl-surface-raised);
	border: 1px solid var(--bl-border);
	border-radius: var(--bl-radius);
	box-shadow: var(--bl-shadow-md);
	justify-self: end;
	max-width: 420px;
	padding: 26px 30px;
	width: 100%;
}

.bl-process-card__list {
	counter-reset: process-step;
	display: grid;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.bl-process-card__list li {
	align-items: center;
	color: var(--bl-color-primary);
	counter-increment: process-step;
	display: flex;
	font-weight: 600;
	gap: 14px;
	margin: 0;
	min-height: 36px;
	position: relative;
}

.bl-process-card__list li::before {
	align-items: center;
	background: var(--bl-surface);
	border: 1px solid var(--bl-border);
	border-radius: 999px;
	color: var(--bl-color-secondary);
	content: counter(process-step);
	display: inline-flex;
	flex: 0 0 28px;
	font-size: 0.8125rem;
	height: 28px;
	justify-content: center;
	position: relative;
	width: 28px;
	z-index: 1;
}

.bl-process-card__list li:not(:last-child)::after {
	color: var(--bl-text-light);
	content: "\2193";
	font-size: 0.875rem;
	left: 14px;
	line-height: 1;
	position: absolute;
	top: calc(100% + 5px);
	transform: translateX(-50%);
}

.landing-entry-points {
	background: var(--bl-background);
	padding-top: 72px;
}

.landing-entry-points__header {
	margin-bottom: 40px;
	max-width: 920px;
}

.landing-entry-points__header h2 {
	margin-bottom: 16px;
}

.landing-entry-points__header p:last-child {
	margin-bottom: 0;
}

.landing-entry-points__grid {
	align-items: stretch;
}

.landing-entry-card {
	display: flex;
	flex-direction: column;
	min-height: 100%;
}

.landing-entry-card:hover {
	border-color: rgba(37, 99, 235, 0.42);
	box-shadow: var(--bl-shadow-lg);
	transform: translateY(-4px);
}

.landing-entry-card__icon {
	font-size: 2rem;
	line-height: 1;
	margin-bottom: 24px;
}

.landing-entry-card h3 {
	font-size: 1.35rem;
	margin-bottom: 14px;
}

.landing-entry-card .bl-button {
	align-self: flex-start;
	margin-top: auto;
}

.landing-methodology {
	background: var(--bl-surface);
	padding-bottom: 76px;
	padding-top: 76px;
}

.landing-methodology__header {
	margin-bottom: 40px;
	max-width: 1040px;
}

.landing-methodology__header h2 {
	margin-bottom: 16px;
}

.landing-methodology__flow {
	background: var(--bl-surface-raised);
	border: 1px solid var(--bl-border);
	border-radius: var(--bl-radius);
	box-shadow: var(--bl-shadow-sm);
	color: var(--bl-color-primary);
	display: grid;
	gap: 0;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 24px;
}

.landing-methodology__step {
	align-items: center;
	display: flex;
	flex-direction: column;
	font-weight: 600;
	gap: 12px;
	margin: 0;
	min-height: 112px;
	justify-content: center;
	padding: 0 20px;
	position: relative;
	text-align: center;
}

.landing-methodology__step:not(:last-child)::after {
	color: var(--bl-text-light);
	content: "\2192";
	font-size: 1rem;
	line-height: 1;
	position: absolute;
	right: -8px;
	top: 50%;
	transform: translateY(-50%);
}

.landing-methodology__icon {
	align-items: center;
	background: var(--bl-surface);
	border: 1px solid var(--bl-border);
	border-radius: 999px;
	display: inline-flex;
	font-size: 1.5rem;
	height: 52px;
	justify-content: center;
	line-height: 1;
	width: 52px;
}

.landing-methodology__closing {
	color: var(--bl-color-primary);
	font-size: 1.125rem;
	margin: 28px 0 0;
	max-width: 1040px;
}

.landing-not {
	background: var(--bl-background);
	padding-bottom: 76px;
	padding-top: 76px;
}

.landing-not__header {
	margin-bottom: 40px;
	max-width: 900px;
}

.landing-not__header h2 {
	margin-bottom: 16px;
}

.landing-not__header p:last-child {
	margin-bottom: 0;
}

.landing-not__grid {
	align-items: stretch;
}

.landing-not__card {
	min-height: 100%;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.landing-not__card:hover,
.landing-not__card:focus-within {
	border-color: rgba(37, 99, 235, 0.22);
	box-shadow: var(--bl-shadow-md);
	transform: translateY(-3px);
}

.landing-not__card-heading {
	align-items: center;
	display: flex;
	gap: 12px;
	margin-bottom: 20px;
}

.landing-not__card-heading h3 {
	font-size: 1.35rem;
	margin-bottom: 0;
}

.landing-not__icon {
	align-items: center;
	background: var(--bl-surface);
	border: 1px solid var(--bl-border);
	border-radius: 999px;
	color: var(--bl-text-light);
	display: inline-flex;
	flex: 0 0 28px;
	font-size: 0.9rem;
	font-weight: 700;
	height: 28px;
	justify-content: center;
	line-height: 1;
	width: 28px;
}

.landing-not__icon--negative::before {
	content: "\2212";
}

.landing-not__icon--positive {
	background: rgba(37, 99, 235, 0.06);
	border-color: rgba(37, 99, 235, 0.24);
	color: var(--bl-color-accent);
}

.landing-not__icon--positive::before {
	content: "\2713";
}

.landing-not__card--positive {
	border-color: rgba(37, 99, 235, 0.24);
	box-shadow: var(--bl-shadow-md);
}

.landing-not__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.landing-not__list li {
	align-items: flex-start;
	display: flex;
	gap: 10px;
	margin: 0;
}

.landing-not__list li + li {
	margin-top: 14px;
}

.landing-not__list li::before {
	color: var(--bl-text-light);
	content: "\2022";
	flex: 0 0 auto;
	line-height: 1.6;
}

.landing-not__card--positive .landing-not__list li::before {
	color: var(--bl-color-accent);
}

.landing-not__closing {
	margin-top: 36px;
	max-width: 900px;
}

.landing-not__closing p:last-child {
	margin-bottom: 0;
}

.landing-manifest {
	margin-top: 32px;
	max-width: 760px;
}

.landing-manifest h3 {
	font-size: 1.35rem;
	margin-bottom: 12px;
}

.landing-manifest .bl-text {
	margin-bottom: 20px;
}

.landing-manifest .bl-text:last-child {
	margin-bottom: 0;
}

.bl-badge {
	align-items: center;
	background: var(--bl-surface);
	border: 1px solid var(--bl-border);
	border-radius: 999px;
	color: var(--bl-color-secondary);
	display: inline-flex;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1;
	padding: 7px 11px;
}

.bl-timeline {
	display: grid;
	gap: 24px;
	position: relative;
}

.bl-timeline__item {
	border-left: 1px solid var(--bl-border);
	padding-left: 24px;
	position: relative;
}

.bl-timeline__item::before {
	background: var(--bl-background);
	border: 2px solid var(--bl-color-accent);
	border-radius: 999px;
	content: "";
	height: 10px;
	left: -6px;
	position: absolute;
	top: 8px;
	width: 10px;
}

.hub-research {
	padding: 0;
}

.hub-research__container {
	max-width: 1040px;
}

.hub-research__hero {
	padding: 88px 0 48px;
}

.hub-research__eyebrow {
	color: var(--bl-color-secondary);
	font-size: 0.875rem;
	font-weight: 700;
	margin-bottom: 14px;
	text-transform: uppercase;
}

.hub-research__hero h1 {
	margin-bottom: 24px;
	max-width: 720px;
}

.hub-research__hero-copy {
	max-width: 760px;
}

.hub-research__hero-copy .bl-text {
	font-size: 1.125rem;
	line-height: 1.7;
}

.hub-research__intro-section {
	padding: 32px 0 64px;
}

.hub-research__intro {
	border-left: 2px solid var(--bl-border);
	max-width: 760px;
	padding-left: 24px;
}

.hub-research__intro h2 {
	font-size: 1.5rem;
	margin-bottom: 16px;
}

.hub-research__intro .bl-text {
	line-height: 1.7;
}

.hub-research__intro p:last-child {
	margin-bottom: 0;
}

.hub-research__guide {
	background: var(--bl-surface);
	padding: 72px 0;
}

.hub-research__guide-header {
	margin-bottom: 40px;
	max-width: 760px;
}

.hub-research__guide-header h2 {
	margin-bottom: 16px;
}

.hub-research__guide-header p:last-child {
	margin-bottom: 0;
}

.hub-research__groups {
	display: grid;
	gap: 24px;
}

.hub-research__group {
	background: var(--bl-surface-raised);
	border: 1px solid var(--bl-border);
	border-radius: var(--bl-radius);
	box-shadow: var(--bl-shadow-sm);
	padding: 28px;
}

.hub-research__group-header {
	border-bottom: 1px solid var(--bl-border);
	margin-bottom: 24px;
	padding-bottom: 20px;
}

.hub-research__group-number {
	color: var(--bl-color-secondary);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.hub-research__group-header p {
	margin-top: 10px;
}

.hub-research__group-header p:last-child {
	margin-bottom: 0;
}

.hub-research__resources {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hub-research__resource {
	border: 1px solid var(--bl-border);
	border-radius: var(--bl-radius);
	display: flex;
	flex-direction: column;
	padding: 22px;
}

.hub-research__resource h3 {
	font-size: 1.25rem;
	margin-bottom: 12px;
}

.hub-research__resource .bl-text {
	line-height: 1.65;
}

.hub-research__resource .bl-button {
	align-self: flex-start;
	margin-top: auto;
}

.hub-research__cta {
	padding: 72px 0;
}

.hub-research__cta-content {
	max-width: 760px;
}

.hub-research__cta h2 {
	font-size: 2rem;
	margin-bottom: 22px;
}

.hub-research__cta p:last-child {
	margin-bottom: 0;
}

.hub-systems {
	padding: 0;
}

.hub-systems__container {
	max-width: 1120px;
}

.hub-systems__hero {
	padding: 88px 0 48px;
}

.hub-systems__eyebrow {
	color: var(--bl-color-secondary);
	font-size: 0.875rem;
	font-weight: 700;
	margin-bottom: 14px;
	text-transform: uppercase;
}

.hub-systems__hero h1 {
	margin-bottom: 24px;
	max-width: 760px;
}

.hub-systems__hero-copy {
	max-width: 760px;
}

.hub-systems__hero-copy .bl-text {
	font-size: 1.125rem;
	line-height: 1.7;
}

.hub-systems__catalog {
	background: var(--bl-surface);
	padding: 72px 0;
}

.hub-systems__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 28px;
}

.hub-systems__filter {
	background: var(--bl-surface-raised);
	border: 1px solid var(--bl-border);
	border-radius: 999px;
	color: var(--bl-text-light);
	font-size: 0.875rem;
	font-weight: 600;
	padding: 8px 14px;
	text-decoration: none;
	transition:
		background-color var(--bl-transition),
		border-color var(--bl-transition),
		color var(--bl-transition);
}

.hub-systems__filter:hover,
.hub-systems__filter:focus {
	border-color: rgba(37, 99, 235, 0.28);
	color: var(--bl-color-primary);
}

.hub-systems__filter--active {
	background: #eef2f7;
	border-color: rgba(37, 99, 235, 0.28);
	color: var(--bl-color-primary);
}

.hub-systems__grid {
	display: grid;
	gap: 24px;
	grid-template-columns: 1fr;
}

.hub-system-card {
	background: var(--bl-surface-raised);
	border: 1px solid var(--bl-border);
	border-radius: var(--bl-radius);
	box-shadow: var(--bl-shadow-sm);
	display: flex;
	flex-direction: row;
	overflow: hidden;
}

.hub-system-card[hidden],
.hub-systems__empty[hidden] {
	display: none;
}

.hub-system-card__image {
	aspect-ratio: 16 / 9;
	background: var(--bl-surface);
	border-right: 1px solid var(--bl-border);
	flex: 0 0 32%;
	overflow: hidden;
}

.hub-system-card__image img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.hub-system-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 28px;
}

.hub-system-card h2 {
	font-size: 1.5rem;
	margin-bottom: 8px;
}

.hub-system-card__description {
	line-height: 1.65;
}

.hub-system-card__details {
	align-items: stretch;
	display: grid;
	gap: 22px;
	grid-template-columns: minmax(0, 1fr) auto;
	margin-top: 10px;
}

.hub-system-card__meta {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
}

.hub-system-card__meta div {
	border-top: 1px solid var(--bl-border);
	display: grid;
	gap: 6px;
	grid-template-columns: 1fr;
	padding-top: 14px;
}

.hub-system-card__meta dt {
	color: var(--bl-text-light);
	font-size: 0.875rem;
	font-weight: 700;
}

.hub-system-card__meta dd {
	color: var(--bl-color-primary);
	font-weight: 600;
	margin: 0;
}

.hub-system-card__action {
	align-items: center;
	border-top: 1px solid var(--bl-border);
	display: flex;
	min-width: 184px;
	padding-top: 0;
}

.hub-system-card__action .bl-button {
	width: 100%;
	white-space: nowrap;
}

.hub-systems__empty {
	margin-bottom: 0;
}

.hub-systems__cta {
	padding: 72px 0;
}

.hub-systems__cta-content {
	max-width: 760px;
}

.hub-systems__cta h2 {
	font-size: 2rem;
	margin-bottom: 22px;
}

.hub-knowledge {
	padding: 0;
}

.hub-knowledge__container {
	max-width: 1120px;
}

.hub-knowledge__hero {
	padding: 88px 0 64px;
}

.hub-knowledge__eyebrow {
	color: var(--bl-color-secondary);
	font-size: 0.875rem;
	font-weight: 700;
	margin-bottom: 14px;
	text-transform: uppercase;
}

.hub-knowledge__hero h1 {
	margin-bottom: 24px;
	max-width: 760px;
}

.hub-knowledge__hero-copy {
	max-width: 760px;
}

.hub-knowledge__hero-copy .bl-text {
	font-size: 1.125rem;
	line-height: 1.7;
}

.hub-knowledge__categories {
	background: var(--bl-surface);
	padding: 72px 0;
}

.hub-knowledge__grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hub-knowledge-card {
	background: var(--bl-surface-raised);
	border: 1px solid var(--bl-border);
	border-radius: var(--bl-radius);
	box-shadow: var(--bl-shadow-sm);
	display: flex;
	flex-direction: column;
	padding: 28px;
}

.hub-knowledge-card__content {
	flex: 1;
}

.hub-knowledge-card h2 {
	font-size: 1.375rem;
	margin-bottom: 14px;
}

.hub-knowledge-card .bl-text {
	line-height: 1.65;
}

.hub-knowledge-card__footer {
	align-items: center;
	border-top: 1px solid var(--bl-border);
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin-top: 24px;
	padding-top: 20px;
}

.hub-knowledge-card__count {
	color: var(--bl-text-light);
	font-size: 0.875rem;
	font-weight: 700;
}

.hub-knowledge-card__footer .bl-button {
	white-space: nowrap;
}

.hub-knowledge__cta {
	padding: 72px 0;
}

.hub-knowledge__cta-content {
	max-width: 760px;
}

.hub-knowledge__cta h2 {
	font-size: 2rem;
	margin-bottom: 22px;
}

.hub-about {
	padding: 0;
}

.hub-about__container {
	max-width: 1120px;
}

.hub-about__hero {
	padding: 88px 0 64px;
}

.hub-about__eyebrow {
	color: var(--bl-color-secondary);
	font-size: 0.875rem;
	font-weight: 700;
	margin-bottom: 14px;
	text-transform: uppercase;
}

.hub-about__hero h1 {
	margin-bottom: 24px;
	max-width: 760px;
}

.hub-about__hero-copy {
	max-width: 760px;
}

.hub-about__hero-copy .bl-text {
	font-size: 1.125rem;
	line-height: 1.7;
}

.hub-about__sections {
	background: var(--bl-surface);
	padding: 72px 0;
}

.hub-about__grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hub-knowledge-card--simple {
	min-height: 100%;
}

.hub-knowledge-card--simple .hub-knowledge-card__footer {
	justify-content: flex-start;
}

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

	.hub-system-card__details {
		align-items: stretch;
		grid-template-columns: 1fr;
	}

	.hub-system-card__action {
		justify-self: start;
		min-width: 0;
		padding-top: 14px;
	}

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

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

@media (max-width: 640px) {
	.bl-hero {
		padding: 72px 0 64px;
	}

	.bl-hero .bl-grid-2 {
		gap: 48px;
	}

	.bl-hero__lead {
		font-size: 1.125rem;
	}

	.bl-process-card {
		justify-self: stretch;
		max-width: none;
		padding: 22px;
	}

	.landing-methodology__flow {
		grid-template-columns: 1fr;
		padding: 20px;
	}

	.landing-methodology__step {
		min-height: 96px;
		padding: 0;
	}

	.landing-methodology__step:not(:last-child)::after {
		content: "\2193";
		right: auto;
		top: calc(100% - 8px);
		transform: none;
	}

	.landing-not__grid {
		grid-template-columns: 1fr;
	}

	.hub-research__hero {
		padding: 64px 0 40px;
	}

	.hub-research__intro-section {
		padding: 24px 0 48px;
	}

	.hub-research__guide {
		padding: 56px 0;
	}

	.hub-research__group {
		padding: 24px;
	}

	.hub-research__resources {
		grid-template-columns: 1fr;
	}

	.hub-research__cta {
		padding: 56px 0;
	}

	.hub-systems__hero {
		padding: 64px 0 40px;
	}

	.hub-systems__catalog {
		padding: 56px 0;
	}

	.hub-systems__grid {
		grid-template-columns: 1fr;
	}

	.hub-system-card {
		flex-direction: column;
	}

	.hub-system-card__image {
		border-bottom: 1px solid var(--bl-border);
		border-right: 0;
		flex-basis: auto;
	}

	.hub-system-card__content {
		padding: 24px;
	}

	.hub-system-card__meta {
		grid-template-columns: 1fr;
	}

	.hub-system-card__meta div {
		grid-template-columns: 1fr;
	}

	.hub-systems__cta {
		padding: 56px 0;
	}

	.hub-knowledge__hero {
		padding: 64px 0 48px;
	}

	.hub-knowledge__categories {
		padding: 56px 0;
	}

	.hub-knowledge__grid {
		grid-template-columns: 1fr;
	}

	.hub-knowledge-card {
		padding: 24px;
	}

	.hub-knowledge-card__footer {
		align-items: flex-start;
		flex-direction: column;
	}

	.hub-knowledge__cta {
		padding: 56px 0;
	}

	.hub-about__hero {
		padding: 64px 0 48px;
	}

	.hub-about__sections {
		padding: 56px 0;
	}

	.hub-about__grid {
		grid-template-columns: 1fr;
	}
}

/* Editorial alignment overrides for current templates. */
.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,
.hub-about__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;
}

@media (max-width: 640px) {
	.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,
	.hub-about__hero-copy .bl-text,
	.contact-page__intro .bl-text {
		text-align: left;
	}
}

/* Home hub spacing aligned with the internal hub rhythm. */
.home .bl-hero,
.front-page .bl-hero {
	padding: 88px 0 48px;
}

.home .bl-hero .bl-grid-2,
.front-page .bl-hero .bl-grid-2 {
	gap: clamp(48px, 6vw, 72px);
}

.home .bl-hero__content,
.front-page .bl-hero__content {
	max-width: var(--content-width-narrow);
}

.home .bl-hero__content h1,
.front-page .bl-hero__content h1 {
	margin-bottom: 24px;
	max-width: var(--content-width-narrow);
}

.home .bl-hero__lead,
.front-page .bl-hero__lead {
	font-size: 1.125rem;
	line-height: var(--line-height-body);
	margin-bottom: 18px;
}

.home .bl-hero__actions,
.front-page .bl-hero__actions {
	margin-top: 28px;
}

.home .landing-entry-points,
.front-page .landing-entry-points {
	padding-top: 56px;
}

@media (max-width: 640px) {
	.home .bl-hero,
	.front-page .bl-hero {
		padding: 64px 0 40px;
	}

	.home .landing-entry-points,
	.front-page .landing-entry-points {
		padding-top: 48px;
	}
}

/* Shared hub shell: align all public hubs with Automatic Systems. */
.hub-research__container,
.hub-systems__container,
.hub-knowledge__container,
.hub-about__container,
.home .bl-hero > .bl-container,
.front-page .bl-hero > .bl-container,
.home .landing-entry-points > .bl-container,
.front-page .landing-entry-points > .bl-container,
.home .landing-methodology > .bl-container,
.front-page .landing-methodology > .bl-container,
.home .landing-not > .bl-container,
.front-page .landing-not > .bl-container {
	max-width: 1120px;
}

.hub-research__hero h1,
.hub-systems__hero h1,
.hub-knowledge__hero h1,
.hub-about__hero h1,
.landing-entry-points__header,
.landing-methodology__header,
.landing-not__header,
.landing-not__closing {
	max-width: 100%;
}

.hub-research__hero-copy,
.hub-systems__hero-copy,
.hub-knowledge__hero-copy,
.hub-about__hero-copy,
.landing-methodology__closing {
	max-width: 100%;
}

.home .bl-hero__content h1,
.front-page .bl-hero__content h1,
.home .bl-hero__content,
.front-page .bl-hero__content {
	max-width: 760px;
}

.hub-research__hero,
.hub-systems__hero,
.hub-knowledge__hero,
.hub-about__hero,
.home .bl-hero,
.front-page .bl-hero {
	padding: 88px 0 48px;
}

@media (max-width: 640px) {
	.hub-research__hero,
	.hub-systems__hero,
	.hub-knowledge__hero,
	.hub-about__hero,
	.home .bl-hero,
	.front-page .bl-hero {
		padding: 64px 0 40px;
	}
}

.contact-page {
	background: var(--color-background);
	padding: 0;
}

.contact-page__container {
	max-width: 1120px;
}

.contact-page__hero {
	padding: 56px 0 40px;
}

.contact-page__eyebrow {
	color: var(--color-text-muted);
	font-size: var(--font-size-small);
	font-weight: 700;
	margin-bottom: 14px;
}

.contact-page__hero h1 {
	margin-bottom: 24px;
	max-width: 760px;
}

.contact-page__intro {
	color: var(--color-text-muted);
	max-width: 100%;
}

.contact-page__intro p {
	font-size: 1.125rem;
	line-height: 1.7;
	margin-bottom: 1rem;
}

.contact-page__intro p:last-child {
	margin-bottom: 0;
}

.contact-page__body {
	background: var(--bl-surface);
	padding: 72px 0;
}

.contact-page__layout {
	align-items: start;
	display: grid;
	gap: clamp(32px, 5vw, 72px);
	grid-template-columns: minmax(0, 0.4fr) minmax(0, 0.6fr);
}

.contact-page__info h2,
.contact-page__form-panel h2 {
	font-size: clamp(1.75rem, 3vw, 2.35rem);
	margin-bottom: 1.5rem;
}

.contact-page__info-list {
	display: grid;
	gap: 1.35rem;
}

.contact-page__info-item {
	border-left: 2px solid var(--color-border);
	padding-left: 1rem;
}

.contact-page__info-item h3 {
	font-size: 1.125rem;
	margin-bottom: 0.35rem;
}

.contact-page__info-item p,
.contact-page__response-note,
.contact-page__email {
	color: var(--color-text-muted);
	line-height: 1.65;
	margin-bottom: 0;
}

.contact-page__response-note {
	margin-top: 1.75rem;
}

.contact-page__email {
	font-weight: 700;
	margin-top: 0.75rem;
}

.contact-page__email a {
	color: var(--color-accent);
	text-decoration: none;
}

.contact-page__email a:hover,
.contact-page__email a:focus {
	color: var(--color-accent-hover);
	text-decoration: underline;
}

.contact-page__form-panel {
	box-shadow: var(--shadow-sm);
	padding: clamp(24px, 4vw, 40px);
}

.contact-form {
	display: grid;
	gap: 1.125rem;
}

.contact-form__field {
	display: grid;
	gap: 0.45rem;
}

.contact-form label {
	color: var(--color-text);
	font-weight: 700;
	line-height: 1.35;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	color: var(--color-text);
	font: inherit;
	line-height: 1.45;
	min-height: 46px;
	padding: 0.7rem 0.85rem;
	transition:
		border-color var(--transition-normal),
		box-shadow var(--transition-normal);
	width: 100%;
}

.contact-form textarea {
	min-height: 180px;
	resize: vertical;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
	border-color: var(--color-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 18%, transparent);
	outline: none;
}

.contact-form input[aria-invalid="true"],
.contact-form select[aria-invalid="true"],
.contact-form textarea[aria-invalid="true"] {
	border-color: var(--color-negative);
	box-shadow: inset 3px 0 0 var(--color-negative);
}

.contact-form__error {
	color: var(--color-negative);
	font-size: var(--font-size-small);
	font-weight: 700;
	line-height: 1.45;
	margin: 0;
}

.contact-form__financial-notice {
	background: var(--color-surface-muted);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	color: var(--color-text-muted);
	line-height: 1.55;
	margin: 0.25rem 0 0;
	padding: 0.9rem 1rem;
}

.contact-form__field--checkbox {
	align-items: start;
	column-gap: 0.75rem;
	grid-template-columns: auto 1fr;
}

.contact-form__field--checkbox input {
	height: 1.1rem;
	margin-top: 0.25rem;
	min-height: 0;
	padding: 0;
	width: 1.1rem;
}

.contact-form__field--checkbox .contact-form__error {
	grid-column: 2;
}

.contact-form__notice {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	line-height: 1.55;
	margin-bottom: 1.25rem;
	padding: 1rem;
}

.contact-form__notice h3 {
	font-size: 1.25rem;
	margin-bottom: 0.35rem;
}

.contact-form__notice p {
	margin: 0;
}

.contact-form__notice--success {
	background: color-mix(in srgb, var(--color-positive) 8%, var(--color-surface));
	border-color: color-mix(in srgb, var(--color-positive) 30%, var(--color-border));
}

.contact-form__notice--error {
	background: color-mix(in srgb, var(--color-negative) 7%, var(--color-surface));
	border-color: color-mix(in srgb, var(--color-negative) 26%, var(--color-border));
}

.contact-form__honeypot {
	height: 1px;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

.contact-form__submit {
	justify-self: start;
	margin-top: 0.25rem;
}

@media (max-width: 960px) {
	.contact-page__layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.contact-page__hero {
		padding: 48px 0 32px;
	}

	.contact-page__hero h1 {
		max-width: 100%;
	}

	.contact-page__form-panel {
		padding: 22px;
	}
}
