/**
 * Make coded-site Tailwind utilities win over Elementor container defaults.
 * Keep native Elementor widgets; do not restyle the brand — only undo Elementor chrome.
 */

.elementor {
	width: 100%;
	max-width: none !important;
}

.elementor .e-con.mr-native.e-parent {
	width: 100% !important;
	max-width: none !important;
}

/* Zero Elementor spacing tokens on coded containers */
.elementor .e-con.mr-native {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--gap: 0px;
	--margin-block-start: 0px;
	--margin-block-end: 0px;
	--margin-inline-start: 0px;
	--margin-inline-end: 0px;
	box-sizing: border-box;
}

/*
 * CRITICAL: Elementor forces display:flex on every .e-con.
 * Original HTML mostly uses block layout; only nodes with .flex/.grid should flex/grid.
 * Do NOT force width/max-width/height here — elementor-bridge.css re-applies Tailwind
 * utilities with !important so coded-site sizing wins.
 */
.elementor .e-con.mr-native {
	display: block !important;
	flex: none !important;
	align-self: auto !important;
}

.elementor .e-con.mr-native.flex,
.elementor .e-con.mr-native.inline-flex {
	display: flex !important;
}

.elementor .e-con.mr-native.inline-flex {
	display: inline-flex !important;
}

.elementor .e-con.mr-native.grid {
	display: grid !important;
}

.elementor .e-con.mr-native.hidden {
	display: none !important;
}

.elementor .e-con.mr-native.block {
	display: block !important;
}

.elementor .e-con.mr-native.inline-block {
	display: inline-block !important;
}

.elementor .e-con.mr-native.contents {
	display: contents !important;
}

/* Flex utilities */
.elementor .e-con.mr-native.flex-1 {
	flex: 1 1 0% !important;
}
.elementor .e-con.mr-native.flex-col {
	flex-direction: column !important;
}
.elementor .e-con.mr-native.flex-row {
	flex-direction: row !important;
}
.elementor .e-con.mr-native.flex-wrap {
	flex-wrap: wrap !important;
}
.elementor .e-con.mr-native.items-center {
	align-items: center !important;
}
.elementor .e-con.mr-native.items-start {
	align-items: flex-start !important;
}
.elementor .e-con.mr-native.items-end {
	align-items: flex-end !important;
}
.elementor .e-con.mr-native.items-stretch {
	align-items: stretch !important;
}
.elementor .e-con.mr-native.justify-center {
	justify-content: center !important;
}
.elementor .e-con.mr-native.justify-between {
	justify-content: space-between !important;
}
.elementor .e-con.mr-native.justify-start {
	justify-content: flex-start !important;
}
.elementor .e-con.mr-native.justify-end {
	justify-content: flex-end !important;
}

/* Positioning — Elementor defaults .e-con to position:relative */
.elementor .e-con.mr-native.absolute,
.elementor .elementor-element.mr-native.absolute {
	position: absolute !important;
}
.elementor .e-con.mr-native.relative,
.elementor .elementor-element.mr-native.relative {
	position: relative !important;
}
.elementor .e-con.mr-native.fixed,
.elementor .elementor-element.mr-native.fixed {
	position: fixed !important;
}
.elementor .e-con.mr-native.static {
	position: static !important;
}
.elementor .e-con.mr-native.inset-0,
.elementor .elementor-element.mr-native.inset-0 {
	inset: 0 !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
}

/* Sizing */
.elementor .e-con.mr-native.min-h-screen,
.elementor .min-h-screen {
	min-height: 100vh !important;
}
/*
 * Elementor .e-con-full forces width:100%, which makes every flex child
 * (trust badges, icon rows, pill groups) stack full-width. Default to auto
 * so shrink-wrap matches the original HTML; restore 100% only where needed.
 */
.elementor .e-con.mr-native.e-con-full {
	width: auto !important;
	max-width: 100%;
	--width: auto;
}
.elementor .e-con.mr-native.e-parent,
.elementor .e-con.mr-native.w-full,
.elementor .e-con.mr-native.container,
.elementor .e-con.mr-native.flex-1,
.elementor .e-con.mr-native.min-h-screen,
.elementor .e-con.mr-native.grid,
.elementor .e-con.mr-native.absolute,
.elementor .e-con.mr-native.inset-0,
.elementor .elementor-element.mr-native.w-full {
	width: 100% !important;
}
.elementor .e-con.mr-native.e-parent,
.elementor .e-con.mr-native.w-full,
.elementor .e-con.mr-native.flex-1,
.elementor .e-con.mr-native.min-h-screen,
.elementor .e-con.mr-native.absolute,
.elementor .e-con.mr-native.inset-0 {
	max-width: none;
}
.elementor .e-con.mr-native.h-full,
.elementor .elementor-element.mr-native.h-full {
	height: 100% !important;
}
.elementor .e-con.mr-native.h-screen {
	height: 100vh !important;
}

/* Overflow */
.elementor .e-con.mr-native.overflow-hidden {
	overflow: hidden !important;
}

/* Reviews marquee — coded CSS uses #reviews .reviews-track { display:flex }
 * but Elementor reset forces display:block !important on .e-con. */
.elementor #reviews .e-con.mr-native.reviews-track,
.elementor .e-con.mr-native.reviews-track {
	display: flex !important;
	flex-direction: row !important;
	width: max-content !important;
	max-width: none !important;
	gap: 1.5rem !important;
	padding-left: 1.5rem !important;
}
.elementor #reviews .e-con.mr-native.review-card,
.elementor .e-con.mr-native.review-card {
	display: flex !important;
	flex-direction: column !important;
	width: 300px !important;
	min-width: 300px !important;
	max-width: 300px !important;
	flex-shrink: 0 !important;
}
.elementor #reviews .e-con.mr-native.group.relative,
.elementor .e-con.mr-native.group.relative {
	overflow: hidden !important;
	width: 100% !important;
}

/* Pass-through Elementor chrome wrappers */
.elementor .mr-native > .e-con-inner {
	display: contents !important;
}
.elementor .elementor-widget.mr-native {
	display: contents;
}
.elementor .elementor-widget.mr-native > .elementor-widget-container {
	display: contents !important;
}

/* Headings */
.elementor .elementor-widget-heading.mr-native .elementor-heading-title {
	margin: 0;
	padding: 0;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	line-height: inherit;
}

/* Buttons — strip Elementor skin only; Tailwind utilities (via bridge) style the link */
.elementor .elementor-widget-button.mr-native .elementor-button-wrapper,
.elementor .elementor-widget-button.mr-native .elementor-button-content-wrapper,
.elementor .elementor-widget-button.mr-native .elementor-button-text {
	display: contents;
}
.elementor .elementor-widget-button.mr-native .elementor-button {
	/* Do not use `all: unset` — it beats Tailwind utilities on the same node. */
	background-color: transparent;
	background-image: none;
	border: none;
	box-shadow: none;
	box-sizing: border-box;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	font: inherit;
	color: inherit;
	fill: currentColor;
	line-height: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	padding: 0;
	margin: 0;
	--e-button-context-color: transparent;
}
.elementor .elementor-widget-button.mr-native .elementor-button:hover,
.elementor .elementor-widget-button.mr-native .elementor-button:focus {
	color: inherit;
}

/* Images */
.elementor .elementor-widget-image.mr-native img {
	display: block;
	max-width: 100%;
}
.elementor .elementor-widget-image.mr-native.h-full img,
.elementor .elementor-widget-image.mr-native img.h-full {
	height: 100%;
}
.elementor .elementor-widget-image.mr-native.w-full img,
.elementor .elementor-widget-image.mr-native img.w-full {
	width: 100%;
}
.elementor .elementor-widget-image.mr-native.object-cover img,
.elementor .elementor-widget-image.mr-native img.object-cover {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.elementor .elementor-widget-text-editor.mr-native p {
	margin: 0;
}

body.elementor-page .site-main,
body.elementor-page main.maxrooter-page {
	padding: 0;
	margin: 0;
	max-width: none;
}

/* Responsive display (Tailwind breakpoints) */
@media (min-width: 640px) {
	.elementor .e-con.mr-native.sm\:flex { display: flex !important; }
	.elementor .e-con.mr-native.sm\:inline-flex { display: inline-flex !important; }
	.elementor .e-con.mr-native.sm\:grid { display: grid !important; }
	.elementor .e-con.mr-native.sm\:block { display: block !important; }
	.elementor .e-con.mr-native.sm\:hidden { display: none !important; }
	.elementor .e-con.mr-native.sm\:flex-row { flex-direction: row !important; }
	.elementor .e-con.mr-native.sm\:flex-col { flex-direction: column !important; }
	.elementor .e-con.mr-native.sm\:items-center { align-items: center !important; }
	.elementor .e-con.mr-native.sm\:justify-between { justify-content: space-between !important; }
}
@media (min-width: 768px) {
	.elementor .e-con.mr-native.md\:flex { display: flex !important; }
	.elementor .e-con.mr-native.md\:grid { display: grid !important; }
	.elementor .e-con.mr-native.md\:block { display: block !important; }
	.elementor .e-con.mr-native.md\:hidden { display: none !important; }
	.elementor .e-con.mr-native.md\:flex-row { flex-direction: row !important; }
	.elementor .e-con.mr-native.md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.elementor .e-con.mr-native.md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (min-width: 1024px) {
	.elementor .e-con.mr-native.lg\:flex { display: flex !important; }
	.elementor .e-con.mr-native.lg\:grid { display: grid !important; }
	.elementor .e-con.mr-native.lg\:block { display: block !important; }
	.elementor .e-con.mr-native.lg\:hidden { display: none !important; }
	.elementor .e-con.mr-native.lg\:flex-row { flex-direction: row !important; }
	.elementor .e-con.mr-native.lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.elementor .e-con.mr-native.lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.elementor .e-con.mr-native.lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.elementor .e-con.mr-native.lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; }
}
@media (max-width: 639px) {
	.elementor .e-con.mr-native.hidden.sm\:flex,
	.elementor .elementor-element.mr-native.hidden.sm\:flex {
		display: none !important;
	}
}

/*
 * FRONTEND keeps display:contents so coded layout is pixel-true.
 * EDITOR/PREVIEW must keep real boxes — Elementor times out (Safe Mode)
 * if it cannot measure widgets.
 */
body.elementor-editor-active .elementor .elementor-widget.mr-native,
body.elementor-editor-preview .elementor .elementor-widget.mr-native {
	display: block !important;
}
body.elementor-editor-active .elementor .mr-native > .e-con-inner,
body.elementor-editor-preview .elementor .mr-native > .e-con-inner {
	display: flex !important;
	width: 100% !important;
}
body.elementor-editor-active .elementor .elementor-widget.mr-native > .elementor-widget-container,
body.elementor-editor-preview .elementor .elementor-widget.mr-native > .elementor-widget-container {
	display: block !important;
	width: 100% !important;
}
