/**
 * Media CTA — Frame 18
 */

.elementor-column > .elementor-element-populated:has(.elementor-widget-agency-media-cta) {
	padding: 0 !important;
}

.e-con:has(.elementor-widget-agency-media-cta) {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
}

.aew-media-cta {
	--aew-media-cta-bg: var(--aew-color-blue, #305b83);
	--aew-media-cta-panel-bg: var(--aew-color-blue-light, #5796bb);
	--aew-media-cta-image-height: 240px;
	position: relative;
	isolation: isolate;
	width: 100%;
	box-sizing: border-box;
}

.aew-media-cta::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	transform: translateX(-50%);
	background-color: var(--aew-media-cta-bg);
	z-index: -1;
	pointer-events: none;
}

.aew-media-cta__inner {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	/* Padding owned by the "Wrapper padding" (section_padding) control. */
	box-sizing: border-box;
}

.aew-media-cta__row {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	/* Gap owned by the "Gap between image and panel" (row_gap) control. */
	width: 100%;
}

.aew-media-cta__media {
	flex: 0 0 auto;
	width: 100%;
	height: var(--aew-media-cta-image-height);
	/* Border radius owned by the image "Border radius" (image_radius) control. */
	overflow: hidden;
	line-height: 0;
}

.aew-media-cta__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.aew-media-cta__panel {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	/* Gap owned by the panel_gap control; padding by the panel_padding control;
	   border-radius by the panel_radius control. */
	overflow: hidden;
	width: 100%;
	min-width: 0;
	background-color: var(--aew-media-cta-panel-bg);
	box-sizing: border-box;
}

.aew-media-cta__title {
	margin: 0;
	width: 100%;
	font-family: var(--aew-font-heading, 'DM Serif Display', serif);
	/* Font size owned by the title_typography control. */
	font-weight: 400;
	line-height: 1.15;
	color: var(--aew-color-white, #fff);
}

.aew-media-cta__body {
	display: flex;
	flex-direction: column;
	gap: 16px;
	width: 100%;
}

.aew-media-cta__text {
	margin: 0;
	font-family: var(--aew-font-body, Poppins, sans-serif);
	/* Font size owned by the description_typography control. */
	font-weight: 400;
	line-height: 1.5;
	color: var(--aew-color-white, #fff);
}

.aew-media-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	/* Padding owned by the button_padding control; border-radius by the
	   button_radius control; font size by the button_typography control. */
	border: 0;
	background-color: var(--aew-color-yellow, #ebc543);
	color: var(--aew-color-blue-dark, #252f37);
	font-family: var(--aew-font-body, Poppins, sans-serif);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.aew-media-cta__button:hover,
.aew-media-cta__button:focus-visible {
	opacity: 0.9;
	text-decoration: none;
}

/* Footnote — small line under the button. */
.aew-media-cta__footnote {
	margin: 16px 0 0;
	font-family: var(--aew-font-body, Poppins, sans-serif);
	/* Font size owned by the footnote_typography control. */
	font-weight: 700;
	line-height: 1.4;
	color: #252f37;
}

/* Mobile / tablet (stacked): show the image inside a blue padded frame on the
   navy background, with the photo rounded inside it. Desktop (>=1024px) keeps
   the full-bleed 50% layout below. */
@media (max-width: 1023px) {
	.aew-media-cta__media {
		box-sizing: border-box;
		/* Frame padding + radius owned by the "Image frame padding" and
		   "Border radius" controls (defaults 0 / 24–20 on tablet/mobile). */
		padding: var(--aew-mediacta-frame-pad, 0px);
	}

	.aew-media-cta__media img {
		border-radius: var(--aew-mediacta-img-radius, 16px);
		object-position: center top;
	}
}

@media (min-width: 768px) {
	.aew-media-cta {
		--aew-media-cta-image-height: 500px;
	}
}

@media (min-width: 1024px) {
	.aew-media-cta__row {
		flex-direction: row;
		align-items: stretch;
	}

	.aew-media-cta__row--image-right {
		flex-direction: row-reverse;
	}

	.aew-media-cta__media {
		flex: 1 1 50%;
		width: 50%;
		max-width: 50%;
		height: auto;
		min-height: 100%;
	}

	/* Desktop padding / font sizes / panel radius owned by the section_padding,
	   panel_padding, title_typography, description_typography and panel_radius
	   controls. */

	.aew-media-cta__panel {
		flex: 1 1 50%;
		width: 50%;
		max-width: 50%;
	}
}
