.cta-banner {
	padding-left: 0;
	padding-right: 0;
	padding-top: 0;
	padding-bottom: 0;
	box-sizing: border-box;
}

.cta-banner__media {
	position: relative;
	min-height: clamp(360px, 48vw, 560px);
	display: flex;
	align-items: center;
	background-color: var(--halbro-charcoal);
	background-size: cover;
	background-position: center;
	width: 100%;
	overflow: hidden;
}

.cta-banner__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		105deg,
		rgba(17, 17, 17, 0.88) 0%,
		rgba(17, 17, 17, 0.62) 48%,
		rgba(229, 62, 48, 0.42) 100%
	);
}

/* Legacy heritage banner — stronger colour wash */
.cta-banner--legacy .cta-banner__media {
	min-height: clamp(320px, 42vw, 480px);
}

.cta-banner--legacy .cta-banner__overlay {
	background:
		linear-gradient(
			105deg,
			rgba(17, 17, 17, 0.9) 0%,
			rgba(17, 17, 17, 0.55) 55%,
			rgba(229, 62, 48, 0.5) 100%
		);
}

/* Doddie / side-image banners — darker wash so cutout reads cleanly */
.cta-banner--doddie .cta-banner__media,
.cta-banner__media--with-side {
	min-height: clamp(340px, 40vw, 500px);
	background-color: #0a0a0a;
}

.cta-banner--doddie .cta-banner__overlay,
.cta-banner__media--with-side .cta-banner__overlay {
	background: linear-gradient(
		90deg,
		rgba(10, 10, 10, 0.92) 0%,
		rgba(10, 10, 10, 0.55) 45%,
		rgba(10, 10, 10, 0.15) 100%
	);
}

.cta-banner__media .container {
	position: relative;
	z-index: 1;
	padding-left: var(--container-x);
	padding-right: var(--container-x);
	width: 100%;
}

.cta-banner__layout {
	display: block;
	width: 100%;
}

.cta-banner__layout--split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	align-items: center;
	gap: clamp(1.5rem, 4vw, 3rem);
}

.cta-banner__content {
	position: relative;
	z-index: 1;
	max-width: 38rem;
	color: var(--halbro-white);
	padding: clamp(3rem, 8vw, 5rem) 0;
}

.cta-banner__layout--split .cta-banner__content {
	max-width: none;
	padding: clamp(2.5rem, 6vw, 4rem) 0;
}

.cta-banner .section-header__eyebrow {
	color: rgba(255, 255, 255, 0.6);
}

.cta-banner__heading {
	color: var(--halbro-white);
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
	margin-bottom: 1rem;
}

.cta-banner__text {
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.82);
	margin-bottom: 2rem;
}

.cta-banner__side {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	min-width: 0;
	padding: clamp(1rem, 3vw, 2rem) 0 0;
}

.cta-banner__side img {
	display: block;
	width: 100%;
	max-width: 44rem;
	height: auto;
	object-fit: contain;
	object-position: bottom center;
}

.cta-banner .btn-primary,
.cta-banner .btn-white {
	background-color: var(--halbro-white) !important;
	color: var(--halbro-charcoal) !important;
	border-color: var(--halbro-white) !important;
}

.cta-banner .btn-primary:hover,
.cta-banner .btn-white:hover {
	background-color: var(--halbro-grey-pale) !important;
}

.cta-banner .btn-outline-white {
	background: transparent;
	color: var(--halbro-white);
	border-color: rgba(255, 255, 255, 0.55);
}

.cta-banner .btn-outline-white:hover {
	background: rgba(255, 255, 255, 0.1) !important;
	color: var(--halbro-white);
}

@media (max-width: 900px) {
	.cta-banner__layout--split {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}

	.cta-banner__layout--split .cta-banner__content {
		padding-bottom: 1rem;
	}

	.cta-banner__side {
		order: -1;
		padding: clamp(1.5rem, 5vw, 2.5rem) 0 0;
		justify-content: center;
	}

	.cta-banner__side img {
		max-width: 28rem;
	}
}

@media (max-width: 768px) {
	.cta-banner__media {
		min-height: 360px;
	}

	.cta-banner .btn-group {
		flex-direction: column;
		align-items: stretch;
	}

	.cta-banner .btn {
		width: 100%;
	}
}
