/* LA Home Remodelers – Site: design tokens shared by every module. */
:root {
	--lahr-navy: #0C2C5A;
	--lahr-navy-deep: #0A2650;
	--lahr-navy-bottom: #071D3D;
	--lahr-hero: #0F4C8A;
	--lahr-blue: #146CB0;
	--lahr-red: #E12228;
	--lahr-red-text: #C41017;
	--lahr-amber: #F9A61A;
	--lahr-light: #EEF1F8;
	--lahr-line: #D5DEEA;
	--lahr-line-soft: #E6ECF4;
	--lahr-body: #52606D;
	--lahr-ink: #3E4C59;
	--lahr-muted: #6B7A8C;
	--lahr-white: #FFFFFF;
	--lahr-footer-text: #A9C4E2;
	--lahr-footer-dim: #7E9CC2;
	--lahr-font-head: 'Poppins', Helvetica, Arial, sans-serif;
	--lahr-font-body: 'Inter', Helvetica, Arial, sans-serif;
	--lahr-radius-card: 14px;
	--lahr-radius-pill: 999px;
	--lahr-shadow: 0 18px 50px rgba(12, 44, 90, .10);
	--lahr-container: 1296px;
}

.lahr-ic { display: inline-block; flex-shrink: 0; vertical-align: middle; }

/* Shared pill buttons. */
.lahr-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	min-height: 48px; padding: 0 22px; border-radius: var(--lahr-radius-pill);
	font-family: var(--lahr-font-head); font-size: 13.5px; font-weight: 700; letter-spacing: .05em;
	text-transform: uppercase; white-space: nowrap; text-decoration: none !important; line-height: 1;
	border: 2px solid transparent; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s;
}
.lahr-btn--red { background: var(--lahr-red); color: #fff !important; }
.lahr-btn--red:hover { background: #C41017; }
.lahr-btn--line { background: #fff; color: var(--lahr-navy) !important; border-color: var(--lahr-navy); }
.lahr-btn--line:hover { background: var(--lahr-navy); color: #fff !important; }
.lahr-btn--ghost { background: transparent; color: #fff !important; border-color: rgba(255, 255, 255, .55); }
.lahr-btn--ghost:hover { border-color: #fff; }
.lahr-btn--navy { background: var(--lahr-navy); color: #fff !important; }

.lahr-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Elementor column containers set to wrap make Chrome and Safari size a lead form card at its
   narrowest width, which leaves a tall empty card under the form on phones and tablets.
   A column never needs to wrap, so containers that hold a lead form stay on one line. */
@media (max-width: 1024px) {
	.e-con:has(> .elementor-widget-shortcode .lahr-lf) {
		flex-wrap: nowrap !important;
	}
}

/* ------------------------------------------------------------------ compact hero (2.0.3)
   The page's top section is the parent container that holds the H1, on every page type
   (service, hub, city, homepage, About, Contact, Free Estimate). These rules trim its
   height without touching the imported pages: less padding, no forced minimum height,
   a smaller H1 and lede, tighter spacing and the checklist in two columns. */
html body .e-con.e-parent:has(.elementor-widget-heading h1) {
	--min-height: 0px;
	min-height: 0 !important;
	--padding-top: 52px;
	--padding-bottom: 52px;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con {
	--row-gap: 12px;
}
/* the row that holds the copy column and the form card */
html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .e-con > .elementor-widget-heading h1) {
	--row-gap: 28px;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) h1.elementor-heading-title {
	font-size: 44px;
	line-height: 1.1;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .elementor-widget-heading:has(h1) + .elementor-widget-text-editor {
	font-size: 16px;
	line-height: 1.55;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .elementor-widget-heading:has(h1) + .elementor-widget-text-editor p {
	margin: 0 0 10px;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .elementor-widget-heading:has(h1) + .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .elementor-widget-icon-list .elementor-icon-list-items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 24px;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .elementor-widget-icon-list .elementor-icon-list-item {
	margin: 0 !important;
	padding: 0 !important;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .elementor-widget-icon-list .elementor-icon-list-item::after {
	display: none;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .elementor-widget-heading h1) .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}
@media (min-width: 1025px) {
	html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .elementor-widget-shortcode .lahr-lf) ~ .e-con:has(> .elementor-widget-heading h1),
	html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .elementor-widget-heading h1):has(~ .e-con > .elementor-widget-shortcode .lahr-lf) {
		--width: 57%;
	}
	html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .elementor-widget-shortcode .lahr-lf) {
		--width: 36%;
	}
}
/* the form card beside the copy */
html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .elementor-widget-shortcode .lahr-lf) {
	--padding-top: 24px;
	--padding-right: 26px;
	--padding-bottom: 24px;
	--padding-left: 26px;
	padding: 24px 26px !important;
	--row-gap: 6px;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .elementor-widget-shortcode .lahr-lf) .elementor-heading-title {
	font-size: 20px;
}
html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .elementor-widget-shortcode .lahr-lf) > .elementor-widget-text-editor {
	font-size: 14px;
	line-height: 1.5;
	margin-bottom: 6px;
}
@media (max-width: 1024px) {
	html body .e-con.e-parent:has(.elementor-widget-heading h1) {
		--padding-top: 40px;
		--padding-bottom: 44px;
	}
	html body .e-con.e-parent:has(.elementor-widget-heading h1) h1.elementor-heading-title {
		font-size: 38px;
	}
}
@media (max-width: 767px) {
	html body .e-con.e-parent:has(.elementor-widget-heading h1) {
		--padding-top: 28px;
		--padding-bottom: 32px;
	}
	html body .e-con.e-parent:has(.elementor-widget-heading h1) h1.elementor-heading-title {
		font-size: 30px;
	}
	html body .e-con.e-parent:has(.elementor-widget-heading h1) .elementor-widget-heading:has(h1) + .elementor-widget-text-editor {
		font-size: 15.5px;
	}
	html body .e-con.e-parent:has(.elementor-widget-heading h1) .elementor-widget-icon-list .elementor-icon-list-items {
		grid-template-columns: minmax(0, 1fr);
		gap: 6px;
	}
	html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .elementor-widget-shortcode .lahr-lf) {
		--padding-top: 20px;
		--padding-right: 18px;
		--padding-bottom: 20px;
		--padding-left: 18px;
		padding: 20px 18px !important;
	}
	html body .e-con.e-parent:has(.elementor-widget-heading h1) .e-con:has(> .elementor-widget-shortcode .lahr-lf) .elementor-heading-title {
		font-size: 19px;
	}
}
