/*
 * Global responsive safeguards for the MEC Elementor/Astra site.
 * Page-specific design remains controlled by Elementor.
 */

html,
body {
	max-width: 100%;
	overflow-x: hidden;
}

@supports (overflow: clip) {
	html,
	body {
		overflow-x: clip;
	}
}

body,
.site,
.site-content,
.site-main,
.ast-container,
.entry-content,
.elementor,
.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap,
.elementor-widget {
	min-width: 0;
}

img,
video,
svg {
	max-width: 100%;
	height: auto;
}

iframe {
	max-width: 100%;
}

.entry-content,
.elementor-widget-text-editor,
.elementor-heading-title {
	overflow-wrap: anywhere;
}

.elementor-section.elementor-section-stretched {
	max-width: 100vw;
}

/* The completed preloader must never intercept header taps. */
.preloader-plus.complete {
	pointer-events: none !important;
}

/* Shared HFE header (Elementor template 147). */
.elementor-location-header,
.elementor-147,
.elementor-147 .elementor-element-1e7dd7a,
.elementor-147 .elementor-element-1e7dd7a > .elementor-container {
	position: relative;
	z-index: 1001;
	overflow: visible !important;
}

.elementor-147 .elementor-element-4b571f2,
.elementor-147 .elementor-element-4b571f2 .elementor-widget-container {
	position: static;
}

.elementor-147 .elementor-element-4b571f2 .elementor-menu-toggle {
	position: relative;
	z-index: 1004;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 6px;
	cursor: pointer;
	touch-action: manipulation;
	pointer-events: auto;
}

.elementor-147 .elementor-element-4b571f2 .elementor-nav-menu--dropdown {
	z-index: 1003;
}

.elementor-147 .elementor-element-4b571f2 .elementor-nav-menu--dropdown.elementor-active {
	visibility: visible;
	overflow-y: auto;
	max-height: calc(100vh - 70px);
	opacity: 1;
}

.elementor-147
	.elementor-widget-nav-menu[data-mec-menu-fallback-open="true"]
	.elementor-nav-menu--dropdown {
	display: block !important;
	visibility: visible !important;
	overflow-y: auto !important;
	max-height: calc(100vh - 70px) !important;
	transform: scaleY(1) !important;
	opacity: 1 !important;
}

@media (max-width: 1024px) {
	.elementor-147 .elementor-element-4b571f2 .elementor-menu-toggle {
		display: flex !important;
	}

	.ast-container,
	.site-content > .ast-container {
		width: 100%;
		max-width: 100%;
	}

	.elementor-147 .elementor-element-1e7dd7a > .elementor-container {
		display: flex !important;
		flex-wrap: nowrap !important;
		align-items: center;
		width: 100%;
	}

	.elementor-147 .elementor-element-ffb62ec {
		flex: 1 1 auto;
		width: calc(100% - 64px) !important;
	}

	.elementor-147 .elementor-element-63f4150 {
		position: static;
		flex: 0 0 64px;
		width: 64px !important;
	}

	.elementor-147 .elementor-element-63f4150 > .elementor-widget-wrap {
		position: static;
		justify-content: flex-end;
	}

	.elementor-147 .elementor-element-4b571f2 .elementor-nav-menu--dropdown {
		right: auto !important;
		top: 100% !important;
		left: 50% !important;
		width: 100vw !important;
		max-width: 100vw;
		margin-top: 0 !important;
		margin-left: -50vw !important;
	}

	.elementor-147
		.elementor-element.elementor-element-4b571f2
		.elementor-nav-menu__container.elementor-nav-menu--dropdown {
		margin-top: 0 !important;
	}

	.elementor:not(.elementor-147) .elementor-container {
		max-width: 100%;
	}
}

@media (max-width: 767px) {
	.ast-container,
	.site-content > .ast-container {
		padding-right: 16px;
		padding-left: 16px;
	}

	.elementor:not(.elementor-147) .elementor-top-section > .elementor-container {
		flex-wrap: wrap !important;
		width: 100%;
	}

	.elementor:not(.elementor-147) .elementor-top-section > .elementor-container > .elementor-top-column {
		width: 100% !important;
		max-width: 100% !important;
	}

	.elementor-147 .elementor-element-1e7dd7a {
		padding-right: 10px !important;
		padding-left: 10px !important;
	}

	.elementor-147 .elementor-element-0bb2cc4 img {
		width: auto !important;
		max-width: 150px;
		max-height: 72px;
		object-fit: contain;
	}

	.elementor-147 .elementor-element-4b571f2 .elementor-nav-menu--dropdown a {
		min-height: 44px;
		padding: 12px 18px !important;
		text-align: center;
	}

	/* Homepage sections that must stack without a horizontal offset. */
	.elementor-page-6 #aboutus,
	.elementor-page-6 #subsites,
	.elementor-page-6 #followus,
	.elementor-page-6 #youtube,
	.elementor-page-6 #contactus {
		right: auto !important;
		left: auto !important;
		width: 100% !important;
		max-width: 100vw;
	}

	.elementor-page-6 #aboutus > .elementor-container,
	.elementor-page-6 #followus > .elementor-container,
	.elementor-page-6 #youtube > .elementor-container,
	.elementor-page-6 #contactus > .elementor-container {
		width: 100% !important;
		max-width: 100%;
	}

	/* Main inner pages and biographies use legacy Elementor sections. */
	.elementor-page-998 .elementor-top-column,
	.elementor-page-583 .elementor-top-column,
	.elementor-page-382 .elementor-top-column,
	.elementor-page-667 .elementor-top-column,
	.elementor-page-662 .elementor-top-column,
	.elementor-page-734 .elementor-top-column,
	.elementor-page-761 .elementor-top-column,
	.single-post .elementor-location-single .elementor-top-column {
		width: 100% !important;
		max-width: 100% !important;
	}

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

	input,
	select,
	textarea,
	button {
		max-width: 100%;
	}
}

@media (max-width: 375px) {
	.ast-container,
	.site-content > .ast-container {
		padding-right: 12px;
		padding-left: 12px;
	}

	.elementor-147 .elementor-element-0bb2cc4 img {
		max-width: 132px;
	}

	.elementor-heading-title {
		word-break: normal;
		hyphens: auto;
	}
}

@media (min-width: 1440px) {
	.elementor-section.elementor-section-boxed > .elementor-container {
		width: min(100%, 1400px);
	}
}
