/* Get Estimate page only (body.page-id-1473). */

/* Root cause: the form's parent .e-con-inner is align-items:center, so the
   widget shrink-wraps. Percentage field widths then collapse the card.
   form.css also sets container-type:inline-size and stacks columns whenever
   that card's content box is <=640px, independent of the viewport. */
body.page-id-1473 .e-con-inner:has(> .elementor-widget-form) {
	align-items: stretch !important;
	width: 100% !important;
	max-width: 1320px;
	min-width: 0;
}

body.page-id-1473 .elementor-widget-form {
	container-type: normal !important;
	align-self: center !important;
	flex: 0 0 auto !important;
	width: min(100%, 880px) !important;
	max-width: 880px !important;
	min-width: min(100%, 280px) !important;
	margin-inline: auto !important;
	box-sizing: border-box;
}

body.page-id-1473 .elementor-widget-form .elementor-form-fields-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.page-id-1473 .elementor-widget-form .elementor-field-type-submit .elementor-button {
	width: 100%;
	justify-content: center;
}

@media (min-width: 768px) {
	body.page-id-1473 .elementor-widget-form .elementor-form-fields-wrapper {
		display: flex !important;
		flex-flow: row wrap !important;
	}

	body.page-id-1473 .elementor-widget-form .elementor-field-group.elementor-col-50 {
		flex: 1 1 calc((100% - 16px) / 2) !important;
		width: calc((100% - 16px) / 2) !important;
		max-width: calc((100% - 16px) / 2) !important;
		min-width: 0 !important;
	}

	body.page-id-1473 .elementor-widget-form .elementor-field-group.elementor-col-100,
	body.page-id-1473 .elementor-widget-form .elementor-field-type-submit,
	body.page-id-1473 .elementor-widget-form .elementor-field-type-textarea,
	body.page-id-1473 .elementor-widget-form .elementor-field-type-recaptcha_v3 {
		flex: 1 1 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* Hero: 45/55 plus the 52px gap was wider than the 1320 box, so the photo wrapped under the copy. */
body.page-id-1473 .e-con-inner:has(.ehf-hero-img) {
	flex-wrap: nowrap !important;
	align-items: center !important;
}

body.page-id-1473 .e-con-inner:has(.ehf-hero-img) > .e-con {
	width: auto !important;
	min-width: 0 !important;
	flex-shrink: 1 !important;
}

body.page-id-1473 .e-con-inner:has(.ehf-hero-img) > .e-con:first-child {
	flex: 0 1 44% !important;
	max-width: 44%;
}

body.page-id-1473 .e-con-inner:has(.ehf-hero-img) > .e-con:last-child {
	flex: 1 1 52% !important;
	max-width: 54%;
}

body.page-id-1473 .ehf-hero-img img {
	width: 100%;
	height: 420px;
	object-fit: cover;
	border-radius: 18px;
	box-shadow: 0 8px 24px rgba(17, 24, 39, 0.08);
}

body.page-id-1473 .ehf-cover-img img {
	width: 100%;
	height: 360px;
	object-fit: cover;
	border-radius: 16px;
}

body.page-id-1473 .ehf-estimate-cta .elementor-button-text::after {
	content: " \2192";
}

/* Consultation cards. Longer titles were vertically centering the
   whole icon-box, so icons and paragraphs started on different lines,
   and Elementor widths (18% vs 20%) made one card wider.
   Grid keeps equal columns. A fixed icon slot and a 3-line title slot
   keep icon / title / text in the same order on every card. */
body.page-id-1473 .ehf-five {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 18px;
	align-items: stretch;
	width: 100%;
}

body.page-id-1473 .ehf-five > .ehf-consult-card {
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	height: auto !important;
	align-self: stretch;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-start !important;
}

body.page-id-1473 .ehf-consult-card > .elementor-widget-icon-box,
body.page-id-1473 .ehf-consult-card .elementor-widget-container,
body.page-id-1473 .ehf-consult-card .elementor-icon-box-wrapper {
	width: 100%;
	height: 100%;
}

body.page-id-1473 .ehf-consult-card .elementor-icon-box-wrapper {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 0 !important;
	row-gap: 0 !important;
	text-align: center;
}

body.page-id-1473 .ehf-consult-card .elementor-icon-box-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: 0 0 16px !important;
	flex: 0 0 52px;
}

body.page-id-1473 .ehf-consult-card .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px !important;
	height: 52px !important;
	font-size: 52px !important;
	line-height: 1 !important;
}

body.page-id-1473 .ehf-consult-card .elementor-icon svg {
	width: auto !important;
	height: 36px !important;
	max-width: 44px !important;
	max-height: 36px !important;
}

body.page-id-1473 .ehf-consult-card .elementor-icon-box-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	flex: 1 1 auto;
}

body.page-id-1473 .ehf-consult-card .elementor-icon-box-title {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	min-height: 3.75em;
	line-height: 1.25;
	margin: 0 0 12px !important;
	width: 100%;
}

body.page-id-1473 .ehf-consult-card .elementor-icon-box-description {
	margin: 0;
	width: 100%;
}

@media (max-width: 1100px) {
	body.page-id-1473 .ehf-five {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	body.page-id-1473 .ehf-five {
		grid-template-columns: 1fr;
	}

	body.page-id-1473 .ehf-consult-card .elementor-icon-box-title {
		min-height: 0;
	}
}

/* Facility type strip: short cover photos, centered names. */
body.page-id-1473 .ehf-types .elementor-image-box-img img {
	width: 100%;
	height: 108px;
	object-fit: cover;
	border-radius: 12px 12px 0 0;
}

body.page-id-1473 .ehf-types .elementor-image-box-title {
	font-size: 14px;
	line-height: 1.3;
	text-align: center;
	margin-top: 10px;
}

body.page-id-1473 .ehf-types .elementor-image-box-wrapper {
	text-align: center;
}

/* Process: number beside the copy, arrow between steps. */
body.page-id-1473 .ehf-steps {
	align-items: flex-start !important;
}

body.page-id-1473 .ehf-steps > .e-con {
	display: grid !important;
	grid-template-columns: 36px 1fr;
	column-gap: 12px;
	row-gap: 4px;
	align-items: start;
	text-align: left;
	position: relative;
	background: transparent;
	justify-items: start;
}

body.page-id-1473 .ehf-steps > .e-con > .e-con:first-child {
	grid-row: 1 / span 2;
	width: 36px !important;
	min-height: 36px !important;
	margin: 0;
}

body.page-id-1473 .ehf-steps > .e-con > .elementor-widget-heading,
body.page-id-1473 .ehf-steps > .e-con > .elementor-widget-text-editor,
body.page-id-1473 .ehf-steps > .e-con .elementor-heading-title {
	text-align: left;
}

body.page-id-1473 .ehf-steps > .e-con:not(:last-child)::after {
	content: "\203A";
	position: absolute;
	top: 4px;
	right: -14px;
	color: #9bbfd0;
	font-size: 22px;
	line-height: 1;
}

body.page-id-1473 .ehf-steps::before {
	display: none;
}

/* Final CTA image should match the text block height. */
body.page-id-1473 .ehf-final-cta > .e-con-inner {
	align-items: center !important;
	flex-wrap: nowrap !important;
}

body.page-id-1473 .ehf-final-cta .ehf-cover-img img {
	height: 280px;
}

@media (max-width: 1024px) {
	body.page-id-1473 .e-con-inner:has(.ehf-hero-img),
	body.page-id-1473 .ehf-final-cta {
		flex-wrap: wrap !important;
		flex-direction: column !important;
	}

	body.page-id-1473 .e-con-inner:has(.ehf-hero-img) > .e-con,
	body.page-id-1473 .ehf-final-cta > .e-con {
		flex: 1 1 100% !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	body.page-id-1473 .ehf-hero-img img,
	body.page-id-1473 .ehf-cover-img img,
	body.page-id-1473 .ehf-final-cta .ehf-cover-img img {
		height: auto !important;
		aspect-ratio: 16 / 10;
	}

	body.page-id-1473 .ehf-steps > .e-con:not(:last-child)::after {
		display: none;
	}

	body.page-id-1473 .ehf-types .elementor-image-box-img img {
		height: 120px;
	}
}

@media (max-width: 767px) {
	body.page-id-1473 .ehf-estimate-cta {
		align-self: stretch;
		width: auto;
	}

	body.page-id-1473 .ehf-estimate-cta .elementor-widget-container,
	body.page-id-1473 .ehf-estimate-cta .elementor-button-wrapper,
	body.page-id-1473 .ehf-estimate-cta .elementor-button {
		width: 100%;
	}

	body.page-id-1473 .ehf-estimate-cta .elementor-button {
		justify-content: center;
	}

	body.page-id-1473 .ehf-steps > .e-con {
		grid-template-columns: 36px 1fr;
	}

	/* Hero is one container with a 1679px background (size:auto).
	   On a phone that shows only the white left edge of the photo.
	   Paint a scaled crop above the copy. Desktop position/size stay. */
	body.page-id-1473 .elementor-element-a2100a {
		background-image: none !important;
		min-height: 0 !important;
		--min-height: 0px;
	}

	body.page-id-1473 .elementor-element-a2100a::before {
		content: "";
		position: relative !important;
		inset: auto !important;
		display: block;
		flex: 0 0 auto;
		align-self: stretch;
		box-sizing: border-box;
		width: calc(100% + 72px) !important;
		max-width: none !important;
		height: auto !important;
		margin: 0 -36px 20px !important;
		aspect-ratio: 16 / 10;
		background-image: url("https://everestcleaning.ca/wp-content/uploads/Get-a-Free-Estimate-2.png");
		background-repeat: no-repeat;
		background-size: cover;
		background-position: 78% center;
	}

	body.page-id-1473 .elementor-element-d24b642,
	body.page-id-1473 .elementor-element-e21055c {
		width: 100% !important;
		max-width: 100% !important;
		--container-widget-width: 100%;
		align-self: stretch !important;
	}
}

/* Select open was flashing the field (focus swaps the fill to white
   and transitions repaint). Keep the resting fill. Fields unchanged. */
body.page-id-1473 .elementor-widget-form .elementor-select-wrapper select,
body.page-id-1473 .elementor-widget-form .elementor-select-wrapper select:hover,
body.page-id-1473 .elementor-widget-form .elementor-select-wrapper select:focus {
	background-color: #f4f6f8 !important;
	transition: none !important;
}
