/* Shared layout safeguards for Elementor pages and their generated widgets. */
html,
body {
	max-width: 100%;
	overflow-x: clip;
}

body,
.elementor,
.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap,
.e-con,
.e-con-inner,
.elementor-widget,
.elementor-widget-container {
	min-width: 0;
}

.elementor img,
.elementor video,
.elementor iframe,
.elementor svg,
.elementor canvas {
	max-width: 100%;
}

.elementor-widget-image img {
	display: inline-block;
	height: auto;
}

.elementor iframe,
.elementor-video iframe {
	width: 100%;
	max-width: 100%;
}

.elementor-widget-text-editor,
.elementor-widget-text-editor .elementor-widget-container,
.elementor-widget-heading,
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-button .elementor-button-text {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.elementor table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.elementor .elementor-button,
.elementor .elementor-menu-toggle,
.elementor .elementor-swiper-button {
	min-height: 44px;
}

.elementor input,
.elementor select,
.elementor textarea {
	box-sizing: border-box;
	max-width: 100%;
}

.elementor-popup-modal .dialog-widget-content {
	max-width: calc(100vw - 24px);
	max-height: calc(100vh - 24px);
	max-height: calc(100dvh - 24px);
	overflow-y: auto;
}

@media (max-width: 1024px) {
	.elementor:not(.elementor-location-header) .elementor-section.elementor-section-boxed > .elementor-container {
		width: calc(100% - 40px);
		max-width: 1200px;
	}

	.elementor:not(.elementor-location-header) .e-con-boxed > .e-con-inner {
		width: 100%;
		max-width: min(var(--content-width, 1200px), calc(100vw - 40px));
	}

	.elementor:not(.elementor-location-header) .elementor-element,
	.elementor:not(.elementor-location-header) .e-con,
	.elementor:not(.elementor-location-header) .e-con-inner {
		max-width: 100%;
	}

	.elementor .elementor-location-header .elementor-nav-menu--dropdown {
		max-width: calc(100vw - 24px);
	}
}

@media (max-width: 767px) {
	.elementor:not(.elementor-location-header) .elementor-section.elementor-section-boxed > .elementor-container {
		width: calc(100% - 32px);
		max-width: none;
	}

	.elementor:not(.elementor-location-header) .e-con-boxed > .e-con-inner {
		width: 100%;
		max-width: calc(100vw - 32px);
	}

	.elementor:not(.elementor-location-header) .elementor-container {
		flex-wrap: wrap;
	}

	.elementor:not(.elementor-location-header) .elementor-column {
		width: 100% !important;
		max-width: 100% !important;
	}

	.elementor:not(.elementor-location-header) .e-con-inner > .e-con {
		width: 100% !important;
		max-width: 100% !important;
		--width: 100% !important;
	}

	.elementor .elementor-widget,
	.elementor .elementor-widget-container {
		max-width: 100%;
	}

	.elementor .elementor-heading-title {
		max-width: 100%;
		overflow-wrap: anywhere;
	}

	.elementor h1.elementor-heading-title {
		font-size: clamp(28px, 7.8vw, 40px) !important;
		line-height: 1.15 !important;
	}

	.elementor h2.elementor-heading-title {
		font-size: clamp(24px, 6.2vw, 32px) !important;
		line-height: 1.2 !important;
	}

	.elementor h3.elementor-heading-title {
		font-size: clamp(21px, 5.4vw, 27px) !important;
		line-height: 1.25 !important;
	}

	.elementor .elementor-widget-text-editor,
	.elementor .elementor-widget-text-editor p,
	.elementor .elementor-widget-icon-box .elementor-icon-box-description {
		font-size: clamp(15px, 4vw, 17px);
		line-height: 1.6;
	}

	.elementor .elementor-button-wrapper {
		max-width: 100%;
	}

	.elementor .elementor-button {
		max-width: 100%;
		white-space: normal;
	}

	.elementor .elementor-field-group {
		min-width: 0;
		max-width: 100%;
	}

	body .elementor-location-header .sub-menu.elementor-nav-menu--dropdown {
		width: 100% !important;
		min-width: 0 !important;
		max-width: calc(100vw - 32px) !important;
	}

	body .elementor-location-header .sub-menu .elementor-sub-item {
		white-space: normal !important;
	}

	.elementor .swiper,
	.elementor .swiper-container {
		max-width: 100%;
	}

	.elementor .swiper-slide {
		min-width: 0;
	}

	.elementor-popup-modal .dialog-widget-content {
		width: calc(100vw - 24px) !important;
		max-width: calc(100vw - 24px) !important;
		max-height: calc(100vh - 24px) !important;
		max-height: calc(100dvh - 24px) !important;
	}

	/* Reset the homepage partner-image offsets that were tuned for wide screens. */
	body.home .elementor-12 .elementor-element-04c32b5 {
		margin-top: 32px !important;
		padding-inline: 0 !important;
	}

	body.home .elementor-12 .elementor-element-62a846c,
	body.home .elementor-12 .elementor-element-240ff50,
	body.home .elementor-12 .elementor-element-9117249,
	body.home .elementor-12 .elementor-element-3e2d739 {
		position: relative !important;
		top: auto !important;
		right: auto !important;
		bottom: auto !important;
		left: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 8px auto !important;
	}

	body.home .elementor-12 .elementor-element-62a846c img,
	body.home .elementor-12 .elementor-element-240ff50 img,
	body.home .elementor-12 .elementor-element-9117249 img,
	body.home .elementor-12 .elementor-element-3e2d739 img {
		width: auto;
		max-width: min(100%, 240px);
		max-height: 120px;
		object-fit: contain;
	}
}

@media (max-width: 479px) {
	.elementor:not(.elementor-location-header) .elementor-section.elementor-section-boxed > .elementor-container {
		width: calc(100% - 24px);
	}

	.elementor:not(.elementor-location-header) .e-con-boxed > .e-con-inner {
		max-width: calc(100vw - 24px);
	}

	.elementor .elementor-widget-image img {
		max-width: 100%;
	}

	.elementor .elementor-button {
		padding-inline: 16px;
	}

	.elementor-location-header .elementor-nav-menu--dropdown {
		max-width: calc(100vw - 24px);
	}
}
