/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* Header: hide license / phone / Contact before the nav collides with them.
   Elementor tablet_extra is ~1200px; collision starts earlier (~1300–1400). */
@media (max-width: 1399px) {
	header.elementor-location-header .elementor-element-19ac27e,
	header.elementor-location-header .elementor-element-a27f876,
	header.elementor-location-header .elementor-element-48bd4e7 {
		display: none !important;
	}
}

/* Keep header + dropdowns above page sections that use their own z-index (hero copy, cards). */
header.elementor-location-header {
	position: relative;
	z-index: 100;
}

header.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown {
	z-index: 1000;
}

/* Keep the main nav list left-aligned (not pushed to the right of its container). */
header.elementor-location-header .elementor-element-4453879 {
	justify-content: flex-start !important;
	--justify-content: flex-start;
}

/* Burger mode (Elementor tablet_extra): keep the menu toggle on the right. */
@media (max-width: 1200px) {
	header.elementor-location-header .elementor-element-4453879 {
		justify-content: flex-end !important;
		--justify-content: flex-end;
	}

	header.elementor-location-header .elementor-element-9173769,
	header.elementor-location-header .elementor-element-27bbf6e {
		margin-left: auto;
	}

	/* More breathing room between the header bar and the first dropdown item. */
	header.elementor-location-header .elementor-nav-menu--dropdown {
		margin-top: 40px !important;
	}
}

/* Match large-screen breathing room between logo and HOME (Elementor laptop gap is 10px). */
header.elementor-location-header .elementor-element-f8cf3e3 {
	--gap: 30px;
	gap: 30px !important;
}

@media (min-width: 1400px) {
	header.elementor-location-header .elementor-element-9173769 {
		flex: 1 1 auto !important;
		min-width: 0;
	}

	header.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu {
		flex-wrap: nowrap !important;
		white-space: nowrap;
		gap: 0;
		justify-content: flex-start !important;
	}

	header.elementor-location-header .elementor-nav-menu--main .elementor-item {
		padding-left: 7px !important;
		padding-right: 7px !important;
		font-size: 15px !important;
	}

	header.elementor-location-header .elementor-element-a27f876,
	header.elementor-location-header .elementor-element-19ac27e {
		white-space: nowrap;
		flex-shrink: 0;
	}

	header.elementor-location-header .elementor-element-48bd4e7 {
		flex-shrink: 0;
	}

	header.elementor-location-header .elementor-element-48bd4e7 .elementor-button,
	header.elementor-location-header .elementor-element-48bd4e7 .elementor-button-text {
		white-space: nowrap !important;
	}

	header.elementor-location-header .elementor-element-c93c65f {
		gap: 12px !important;
		flex-shrink: 0;
	}
}

/* Extra breathing room once the full utility cluster is back. */
@media (min-width: 1500px) {
	header.elementor-location-header .elementor-nav-menu--main .elementor-item {
		padding-left: 10px !important;
		padding-right: 10px !important;
		font-size: 16px !important;
	}
}

.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > .menu-item.current-menu-item > a.elementor-item,
.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > .menu-item.current-menu-ancestor > a.elementor-item,
.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > .menu-item.current-menu-parent > a.elementor-item,
.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > .menu-item.current_page_item > a.elementor-item,
.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > .menu-item.current-page-ancestor > a.elementor-item {
	color: #136b9e;
}

.cust-testimonial-slider .testimonial-inline-quote {
	display: block;
	width: 40px;
	height: auto;
	margin: 0 0 28px;
}

.cust-testimonial-slider .elementor-widget-text-editor p:has(.testimonial-inline-quote) {
	margin-bottom: 0;
}

.cust-testimonial-slider .testimonial-service {
	margin: 12px 0 16px;
	color: rgba(255, 255, 255, 0.72);
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cust-testimonial-slider .elementor-image-box-description {
	color: rgba(255, 255, 255, 0.72);
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.04em;
}

.cust-testimonial-slider .elementor-image-box-img:not(:has(img[src])),
.cust-testimonial-slider .elementor-image-box-img:has(img[src=""]) {
	display: none;
}

#GetFreeEstimate,
#GetFreeInspection,
#contactus,
#contact-form {
	scroll-margin-top: 120px;
}

.cust-testimonial-slider .elementor-swiper-button,
.cust-testimonial-slider .elementor-swiper-button svg,
.cust-testimonial-slider .elementor-swiper-button path {
	color: #fff;
	fill: #fff;
}

.primmer-testimonials {
	width: 100%;
	position: relative;
	padding: 0 48px;
	box-sizing: border-box;
}

.primmer-testimonials__swiper {
	position: relative;
	overflow: hidden;
	padding: 0;
}

.primmer-testimonials .swiper-slide {
	height: auto;
	box-sizing: border-box;
}

.primmer-testimonials__swiper:not(.swiper-initialized) .swiper-slide:nth-child(n + 4) {
	display: none;
}

.primmer-testimonials__card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 320px;
	color: #fff;
}

.primmer-testimonials__stars {
	display: block;
	width: 116px;
	height: auto;
	margin: 0 0 8px;
}

.primmer-testimonials__body {
	flex: 1 1 auto;
}

.primmer-testimonials__body p {
	margin: 0;
	color: #fff;
	font-size: clamp(15px, 1.35vw, 18px);
	line-height: 1.55;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 8;
	overflow: hidden;
}

.primmer-testimonials__author {
	margin-top: 20px;
}

.primmer-testimonials__author .elementor-image-box-title {
	margin: 0;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
}

.primmer-testimonials .elementor-swiper-button {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 36px;
	height: 36px;
	cursor: pointer;
}

.primmer-testimonials .elementor-swiper-button svg {
	width: 28px;
	height: 28px;
	display: block;
}

.primmer-testimonials .elementor-swiper-button-prev {
	left: 0;
}

.primmer-testimonials .elementor-swiper-button-next {
	right: 0;
}

@media (max-width: 1024px) {
	.primmer-testimonials__swiper:not(.swiper-initialized) .swiper-slide:nth-child(n + 3) {
		display: none;
	}
}

@media (max-width: 767px) {
	.primmer-testimonials {
		padding: 0 36px;
	}

	.primmer-testimonials__swiper:not(.swiper-initialized) .swiper-slide:nth-child(n + 2) {
		display: none;
	}

	.primmer-testimonials__card {
		min-height: 0;
	}

	.primmer-testimonials__body p {
		-webkit-line-clamp: 10;
	}
}

/* Keep CTA / form button labels on one line at all breakpoints. */
.elementor-button,
.elementor-button .elementor-button-text,
.elementor-field-type-submit .elementor-button,
.tamko-catalog__btn {
	white-space: nowrap;
	box-sizing: border-box;
	max-width: 100%;
	font-weight: 700 !important;
}

/* Service-areas header CTA: stay inside the right column; stack when the column is too narrow. */
.elementor-element-31f0448 {
	min-width: 0;
	max-width: 100%;
}

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

.elementor-element-a2d321f .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 100%;
}

@media (max-width: 1240px) {
	.elementor-element-9562530 {
		flex-wrap: wrap !important;
	}

	.elementor-element-7efed72,
	.elementor-element-31f0448 {
		width: 100% !important;
		max-width: 100% !important;
		flex: 1 1 100% !important;
	}

	.elementor-element-31f0448 {
		align-items: flex-start !important;
	}

	.elementor-element-a2d321f .elementor-button {
		width: auto;
	}
}

/* Home About photos: the crew shot is absolutely positioned with no width, so on
   desktop it stretched across the column. Pin it to the right edge, overlapping. */
@media (min-width: 1025px) {
	.elementor-11 .elementor-element-e3cccf9 {
		width: 62% !important;
		max-width: 62% !important;
	}

	.elementor-11 .elementor-element-e3cccf9 img {
		width: 100%;
	}
}

.elementor-element-8feccca .elementor-widget-icon-box {
	--margin-top: 0px;
	margin-top: 16px !important;
}

/* Services hub storm band: keep the original 3-col card width after
   reducing to 1 card, but use auto rows so empty tracks don't add height. */
.elementor-894 .elementor-element-72d9145 {
	--e-con-grid-template-columns: repeat(3, 1fr);
	--e-con-grid-template-rows: auto;
	grid-template-columns: repeat(3, 1fr) !important;
	grid-template-rows: auto !important;
}

.elementor-894 .elementor-element-72d9145 > .e-con {
	width: 100%;
	max-width: 100%;
	height: auto !important;
	min-height: 0 !important;
	align-self: stretch;
	justify-content: flex-start;
}

.elementor-894 .elementor-element-72d9145 > .e-con .elementor-widget-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.elementor-894 .elementor-element-7ed4108 {
	--justify-content: flex-start;
	justify-content: flex-start !important;
}

@media (max-width: 1024px) {
	.elementor-894 .elementor-element-72d9145 {
		--e-con-grid-template-columns: repeat(2, 1fr);
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 767px) {
	.elementor-894 .elementor-element-72d9145 {
		--e-con-grid-template-columns: 1fr;
		grid-template-columns: 1fr !important;
	}
}

.county-heading-link .elementor-heading-title a,
.elementor-element-bbc14c1 .elementor-heading-title a,
.elementor-element-72d9145 > a.e-con .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* Elementor containers use display:var(--display) — need !important to collapse. */
.elementor-element-4a075ee:not(:has(.elementor-blockquote)) {
	display: none !important;
}

/* Approach + Result share the same navy, so collapse only the shared seam.
   Result keeps a full bottom pad so the media gallery / Related Services
   does not sit too close. */
.elementor-2016 .elementor-element-7d6caa8 {
	--padding-bottom: 36px;
	padding-bottom: 36px !important;
}

.elementor-2016 .elementor-element-b4ade63 {
	--padding-top: 36px;
	padding-top: 36px !important;
}

/* Project single hero — match service/materials hero measure, eyebrow, body, CTA. */
.elementor-2016 .elementor-element-75b79ff {
	width: min(640px, 100%) !important;
	max-width: 640px;
	--gap: 0px;
	gap: 0 !important;
}

.elementor-2016 .elementor-element-c7e2e5c .elementor-heading-title {
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.11em !important;
	line-height: 1.2 !important;
	text-transform: uppercase;
}

.elementor-2016 .elementor-element-c7e2e5c .elementor-heading-title::after {
	content: "";
	display: block;
	width: 42px;
	height: 3px;
	margin-top: 14px;
	background: #2f78ed;
	border-radius: 2px;
}

.elementor-2016 .elementor-element-56e5a5a {
	margin-top: 18px !important;
	max-width: 640px;
}

.elementor-2016 .elementor-element-56e5a5a .elementor-heading-title {
	color: #fff !important;
	font-size: clamp(42px, 4.15vw, 58px) !important;
	font-weight: 700 !important;
	line-height: 1.02 !important;
	letter-spacing: -0.03em !important;
}

.elementor-2016 .elementor-element-pHeroBody {
	width: min(420px, 100%) !important;
	max-width: 420px !important;
	margin-top: 16px !important;
	color: rgba(255, 255, 255, 0.94) !important;
	font-size: 16px !important;
	line-height: 1.55 !important;
}

.elementor-2016 .elementor-element-pHeroBody p {
	margin: 0;
	color: inherit;
}

.elementor-2016 .elementor-element-pHeroBtn {
	margin-top: 10px !important;
}

/* CTA photo bands — opaque navy cover so background photos don't wash out type. */
.elementor-element-c127323,
.elementor-element-c85aeb5,
.elementor-element-c56f276,
.elementor-element-f6b784a,
.elementor-element-fd8ba91,
.elementor-element-8c2b0ad,
.elementor-element-9179dc9,
.elementor-element-90925f4,
.elementor-element-265c592,
.elementor-element-2d07ae6,
.elementor-element-0a8b48f,
.elementor-element-06925d9 {
	position: relative;
	isolation: isolate;
}

.elementor-element-c127323::before,
.elementor-element-c85aeb5::before,
.elementor-element-c56f276::before,
.elementor-element-f6b784a::before,
.elementor-element-fd8ba91::before,
.elementor-element-8c2b0ad::before,
.elementor-element-9179dc9::before,
.elementor-element-90925f4::before,
.elementor-element-265c592::before,
.elementor-element-2d07ae6::before,
.elementor-element-0a8b48f::before,
.elementor-element-06925d9::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(8, 16, 28, 0.62);
	z-index: 0;
	pointer-events: none;
}

.elementor-element-c127323 > .elementor-element,
.elementor-element-c127323 > .e-con-inner,
.elementor-element-c85aeb5 > .elementor-element,
.elementor-element-c85aeb5 > .e-con-inner,
.elementor-element-c56f276 > .elementor-element,
.elementor-element-c56f276 > .e-con-inner,
.elementor-element-f6b784a > .elementor-element,
.elementor-element-f6b784a > .e-con-inner,
.elementor-element-fd8ba91 > .elementor-element,
.elementor-element-fd8ba91 > .e-con-inner,
.elementor-element-8c2b0ad > .elementor-element,
.elementor-element-8c2b0ad > .e-con-inner,
.elementor-element-9179dc9 > .elementor-element,
.elementor-element-9179dc9 > .e-con-inner,
.elementor-element-90925f4 > .elementor-element,
.elementor-element-90925f4 > .e-con-inner,
.elementor-element-265c592 > .elementor-element,
.elementor-element-265c592 > .e-con-inner,
.elementor-element-2d07ae6 > .elementor-element,
.elementor-element-2d07ae6 > .e-con-inner,
.elementor-element-0a8b48f > .elementor-element,
.elementor-element-0a8b48f > .e-con-inner,
.elementor-element-06925d9 > .elementor-element,
.elementor-element-06925d9 > .e-con-inner {
	position: relative;
	z-index: 1;
}

/* CTA band eyebrows — center the blue bar under centered labels. */
.elementor-element-c127323 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-c85aeb5 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-c56f276 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-f6b784a .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-fd8ba91 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-8c2b0ad .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-9179dc9 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-90925f4 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-265c592 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-2d07ae6 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-0a8b48f .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-06925d9 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-c127323 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-c85aeb5 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-c56f276 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-f6b784a .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-fd8ba91 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-8c2b0ad .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-9179dc9 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-90925f4 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-265c592 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-2d07ae6 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-0a8b48f .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.elementor-element-06925d9 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title {
	text-align: center;
}

.elementor-element-c127323 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-c85aeb5 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-c56f276 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-f6b784a .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-fd8ba91 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-8c2b0ad .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-9179dc9 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-90925f4 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-265c592 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-2d07ae6 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-0a8b48f .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-06925d9 .elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-c127323 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-c85aeb5 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-c56f276 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-f6b784a .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-fd8ba91 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-8c2b0ad .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-9179dc9 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-90925f4 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-265c592 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-2d07ae6 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-0a8b48f .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-element-06925d9 .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after {
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 767px) {
	.elementor-2016 .elementor-element-56e5a5a .elementor-heading-title {
		font-size: 36px !important;
	}

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

.elementor-2016 .elementor-element-99d95ea {
	--gap: 0px;
	position: relative;
	background: transparent !important;
	border-radius: 0 !important;
	padding: 8px 0 !important;
	gap: 0 !important;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
	align-items: stretch !important;
}

.elementor-2016 .elementor-element-99d95ea::after {
	content: "";
	position: absolute;
	top: 36px;
	bottom: 36px;
	left: 50%;
	width: 1px;
	background: rgba(255, 255, 255, 0.18);
	pointer-events: none;
}

.elementor-2016 .elementor-element-3f6d096 {
	--gap: 14px;
	gap: 14px !important;
	padding: 28px 48px 28px 0 !important;
	justify-content: center !important;
}

.elementor-2016 .elementor-element-e3c7076 {
	position: relative;
	padding: 28px 0 28px 48px !important;
	justify-content: center !important;
}

.elementor-2016 .elementor-element-e3c7076::before {
	content: none;
}

.elementor-2016 .elementor-element-35ca899 {
	margin: 0 0 12px !important;
}

/* Project section eyebrows — one system across Situation / Approach / Result / Related. */
.elementor-2016 .elementor-element-505a9f2 .elementor-heading-title,
.elementor-2016 .elementor-element-1f2075d .elementor-heading-title,
.elementor-2016 .elementor-element-35ca899 .elementor-heading-title,
.elementor-2016 .elementor-element-7d26917 .elementor-heading-title {
	margin: 0 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.11em !important;
	line-height: 1.2 !important;
	text-transform: uppercase;
}

.elementor-2016 .elementor-element-505a9f2 .elementor-heading-title,
.elementor-2016 .elementor-element-7d26917 .elementor-heading-title {
	color: #1f4d7a !important;
}

.elementor-2016 .elementor-element-1f2075d .elementor-heading-title,
.elementor-2016 .elementor-element-35ca899 .elementor-heading-title {
	color: #fff !important;
}

/* Related Services — white band (was accent). */
.elementor-2016 .elementor-element-6541ac3,
.elementor-2016 .elementor-element-6541ac3:not(.elementor-motion-effects-element-type-background),
.elementor-2016 .elementor-element-6541ac3 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: #fff !important;
	background-image: none !important;
}

.elementor-2016 .elementor-element-6541ac3::before,
.elementor-2016 .elementor-element-6541ac3 > .elementor-background-video-container::before,
.elementor-2016 .elementor-element-6541ac3 > .elementor-background-slideshow::before,
.elementor-2016 .elementor-element-6541ac3 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before {
	display: none !important;
	content: none !important;
	background: none !important;
}

.elementor-2016 .elementor-element-c3d9830 .elementor-heading-title {
	color: #1a1c1c !important;
}

.elementor-2016 .elementor-element-505a9f2 .elementor-heading-title::after,
.elementor-2016 .elementor-element-1f2075d .elementor-heading-title::after,
.elementor-2016 .elementor-element-35ca899 .elementor-heading-title::after,
.elementor-2016 .elementor-element-7d26917 .elementor-heading-title::after {
	content: "";
	display: block;
	width: 42px;
	height: 3px;
	margin-top: 14px;
	background: #2f78ed;
	border-radius: 2px;
}

.elementor-2016 .elementor-element-505a9f2,
.elementor-2016 .elementor-element-1f2075d,
.elementor-2016 .elementor-element-7d26917 {
	margin: 0 0 12px !important;
}

.elementor-2016 .elementor-element-2cc9dfd {
	margin-top: 18px !important;
	max-width: 640px;
}

/* Project section titles — same weight/measure across Situation / Approach / Result / Related / CTA. */
.elementor-2016 .elementor-element-5684cfd .elementor-heading-title,
.elementor-2016 .elementor-element-9cd5586 .elementor-heading-title,
.elementor-2016 .elementor-element-2cc9dfd .elementor-heading-title,
.elementor-2016 .elementor-element-c3d9830 .elementor-heading-title,
.elementor-2016 .elementor-element-519617a .elementor-heading-title {
	margin: 0 !important;
	font-size: 52px !important;
	font-weight: 600 !important;
	letter-spacing: -0.03em !important;
	line-height: 58px !important;
}

.elementor-2016 .elementor-element-4314154,
.elementor-2016 .elementor-element-4314154 p {
	margin: 0 !important;
	color: rgba(255, 255, 255, 0.84) !important;
	font-size: 17px !important;
	line-height: 1.55 !important;
}

.elementor-2016 .elementor-element-4314154 a {
	color: #fff !important;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.elementor-2016 .elementor-element-4314154 a:hover,
.elementor-2016 .elementor-element-4314154 a:focus {
	color: #2f78ed !important;
}

.elementor-2016 .elementor-element-a88b4b5 .elementor-icon-list-item {
	align-items: flex-start !important;
	padding: 0 0 16px !important;
}

.elementor-2016 .elementor-element-a88b4b5 .elementor-icon-list-item:last-child {
	padding-bottom: 0 !important;
}

.elementor-2016 .elementor-element-a88b4b5 .elementor-icon-list-icon {
	margin-top: 3px;
}

.elementor-2016 .elementor-element-a88b4b5 .elementor-icon-list-icon svg {
	width: 14px !important;
	height: 14px !important;
	fill: rgba(255, 255, 255, 0.78) !important;
}

.elementor-2016 .elementor-element-a88b4b5 .elementor-icon-list-text {
	font-size: 17px !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	color: #fff !important;
}

@media (max-width: 767px) {
	.elementor-2016 .elementor-element-3f6d096,
	.elementor-2016 .elementor-element-e3c7076 {
		padding: 20px 0 !important;
	}

	.elementor-2016 .elementor-element-99d95ea::after,
	.elementor-2016 .elementor-element-e3c7076::before {
		display: none;
	}

	.elementor-2016 .elementor-element-e3c7076 {
		border-top: 1px solid rgba(255, 255, 255, 0.18);
	}

	.elementor-2016 .elementor-element-5684cfd .elementor-heading-title,
	.elementor-2016 .elementor-element-9cd5586 .elementor-heading-title,
	.elementor-2016 .elementor-element-2cc9dfd .elementor-heading-title,
	.elementor-2016 .elementor-element-c3d9830 .elementor-heading-title,
	.elementor-2016 .elementor-element-519617a .elementor-heading-title {
		font-size: 36px !important;
		line-height: 1.15 !important;
	}
}

/* After a collapsed (empty) testimonial, keep Related Services band padding
   aligned with other project sections — not a tight 36px stub. */
.elementor-element-4a075ee:not(:has(.elementor-blockquote)) + .elementor-element-prjMedia,
.elementor-element-4a075ee:not(:has(.elementor-blockquote)) + .elementor-element-6541ac3 {
	--padding-top: 100px;
	padding-top: 100px !important;
}

@media (max-width: 1200px) {
	.elementor-element-4a075ee:not(:has(.elementor-blockquote)) + .elementor-element-prjMedia,
	.elementor-element-4a075ee:not(:has(.elementor-blockquote)) + .elementor-element-6541ac3 {
		--padding-top: 80px;
		padding-top: 80px !important;
	}
}

@media (max-width: 1024px) {
	.elementor-element-4a075ee:not(:has(.elementor-blockquote)) + .elementor-element-prjMedia,
	.elementor-element-4a075ee:not(:has(.elementor-blockquote)) + .elementor-element-6541ac3 {
		--padding-top: 60px;
		padding-top: 60px !important;
	}
}

.elementor-element-9976b5b {
	padding-top: 56px !important;
	padding-bottom: 56px !important;
}

.project-facts,
.elementor-element-3f5dcbf {
	--grid-column-gap: 0px;
	--grid-row-gap: 0px;
	background: transparent !important;
	border-radius: 0 !important;
	padding: 28px 0 !important;
	border-top: 1px solid rgba(16, 38, 61, 0.14);
	border-bottom: 1px solid rgba(16, 38, 61, 0.14);
	gap: 0 !important;
}

.project-facts,
.elementor-element-3f5dcbf {
	align-items: start !important;
}

/* Reflow when empty fact cells (Timeline, etc.) are omitted per project. */
body.primmer-facts-cols-0 .elementor-element-3f5dcbf,
body.primmer-facts-cols-1 .elementor-element-3f5dcbf {
	grid-template-columns: 1fr !important;
}

body.primmer-facts-cols-2 .elementor-element-3f5dcbf {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.primmer-facts-cols-3 .elementor-element-3f5dcbf {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.primmer-facts-cols-4 .elementor-element-3f5dcbf {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.primmer-fact-hide-location .elementor-element-e282d54,
body.primmer-fact-hide-service .elementor-element-821e9a1,
body.primmer-fact-hide-roof-type .elementor-element-6c18210,
body.primmer-fact-hide-timeline .elementor-element-4e540fb,
body.primmer-facts-empty .elementor-element-3f5dcbf,
body.primmer-facts-empty .elementor-element-9976b5b {
	display: none !important;
}

.project-facts > .e-con,
.elementor-element-3f5dcbf > .e-con {
	position: relative;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	padding: 4px 28px 4px 32px !important;
}

.project-facts .elementor-widget-icon-box,
.elementor-element-3f5dcbf .elementor-widget-icon-box,
.project-facts .elementor-icon-box-wrapper,
.elementor-element-3f5dcbf .elementor-icon-box-wrapper,
.project-facts .elementor-icon-box-content,
.elementor-element-3f5dcbf .elementor-icon-box-content {
	width: 100%;
	margin-top: 0 !important;
	align-self: flex-start;
}

.project-facts > .e-con:first-child,
.elementor-element-3f5dcbf > .e-con:first-child {
	padding-left: 0 !important;
}

.project-facts > .e-con + .e-con::before,
.elementor-element-3f5dcbf > .e-con + .e-con::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	bottom: 2px;
	width: 1px;
	background: rgba(16, 38, 61, 0.12);
}

.project-facts .elementor-widget-icon,
.elementor-element-3f5dcbf .elementor-widget-icon {
	display: none !important;
}

.project-facts .elementor-icon-box-wrapper,
.elementor-element-3f5dcbf .elementor-icon-box-wrapper {
	text-align: left;
}

.project-facts .elementor-icon-box-title,
.elementor-element-3f5dcbf .elementor-icon-box-title {
	margin: 0 0 8px !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase;
	color: #6b7c8d !important;
}

.project-facts .elementor-icon-box-description,
.elementor-element-3f5dcbf .elementor-icon-box-description {
	margin: 0 !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	color: #10263d !important;
}

@media (max-width: 767px) {
	.project-facts > .e-con + .e-con::before,
	.elementor-element-3f5dcbf > .e-con + .e-con::before {
		display: none;
	}

	.project-facts > .e-con,
	.elementor-element-3f5dcbf > .e-con {
		padding: 16px 0 !important;
		border-bottom: 1px solid rgba(16, 38, 61, 0.1);
	}

	.project-facts > .e-con:last-child,
	.elementor-element-3f5dcbf > .e-con:last-child {
		border-bottom: 0;
	}
}

.elementor-widget-social-icons .elementor-social-icons-wrapper.elementor-grid,
.e--ua-appleWebkit .elementor-grid-0.elementor-widget-social-icons .elementor-grid {
	display: inline-flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--grid-column-gap, 15px);
	margin-inline: 0 !important;
	width: auto !important;
}

.elementor-widget-social-icons.e-grid-align-right .elementor-social-icons-wrapper.elementor-grid,
.e--ua-appleWebkit .elementor-grid-0.elementor-widget-social-icons.e-grid-align-right .elementor-grid {
	justify-content: flex-end !important;
}

.elementor-widget-social-icons.e-grid-align-left .elementor-social-icons-wrapper.elementor-grid {
	justify-content: flex-start !important;
}

.elementor-widget-social-icons .elementor-grid-item,
.e--ua-appleWebkit .elementor-grid-0.elementor-widget-social-icons .elementor-grid-item {
	display: flex !important;
	margin: 0 !important;
	margin-inline: 0 !important;
	padding: 0 !important;
}

.elementor-widget-social-icons .elementor-icon.elementor-social-icon {
	display: flex !important;
	align-items: center;
	justify-content: center;
	line-height: 0 !important;
	padding: 0 !important;
}

.elementor-widget-social-icons .elementor-social-icon svg {
	display: block;
	overflow: visible;
}

.cust-accordion-border {
	--acc-line: rgba(255, 255, 255, 0.2);
	--acc-title: #ffffff;
	--acc-body: rgba(255, 255, 255, 0.78);
	--acc-icon: rgba(255, 255, 255, 0.72);
	background: transparent !important;
}

.cust-accordion-border.is-on-light {
	--acc-line: rgba(16, 38, 61, 0.14);
	--acc-title: #1a1c1c;
	--acc-body: #44474d;
	--acc-icon: #136b9e;
}

.cust-accordion-border .e-n-accordion {
	display: flex;
	flex-direction: column;
	gap: 0;
	background: transparent !important;
}

.cust-accordion-border .e-n-accordion-item {
	margin: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--acc-line) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.cust-accordion-border .e-n-accordion-item:first-child {
	border-top: 1px solid var(--acc-line) !important;
}

.cust-accordion-border .e-n-accordion-item-title {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 22px 0 !important;
	gap: 20px !important;
	align-items: center;
	cursor: pointer;
}

.cust-accordion-border .e-n-accordion-item-title::-webkit-details-marker {
	display: none;
}

.cust-accordion-border .e-n-accordion-item-title-text {
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	letter-spacing: -0.015em;
	color: var(--acc-title) !important;
}

.cust-accordion-border .e-n-accordion-item-title-icon {
	margin-left: auto;
	width: 18px;
	height: 18px;
	color: var(--acc-icon);
}

.cust-accordion-border .e-n-accordion-item-title-icon svg {
	width: 14px !important;
	height: 14px !important;
	fill: currentColor !important;
}

.cust-accordion-border .e-n-accordion-item-title:hover .e-n-accordion-item-title-text {
	opacity: 0.82;
}

.cust-accordion-border .e-n-accordion-item[open] .e-n-accordion-item-title {
	padding-bottom: 10px !important;
}

.cust-accordion-border .e-n-accordion-item > .e-con {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 56px 22px 0 !important;
}

.cust-accordion-border .e-n-accordion-item > .e-con,
.cust-accordion-border .e-n-accordion-item > .e-con .elementor-element,
.cust-accordion-border .e-n-accordion-item > .e-con .elementor-widget-container,
.cust-accordion-border .e-n-accordion-item > .e-con p,
.cust-accordion-border .e-n-accordion-item > .e-con li {
	color: var(--acc-body) !important;
	font-size: 18px !important;
	line-height: 28px !important;
}

.cust-accordion-border .e-n-accordion-item > .e-con a {
	color: var(--acc-title) !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.elementor-element-c9c7172 .elementor-button-content-wrapper,
.elementor-element-c9c7172 .elementor-button-text {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.elementor-element-c9c7172 .elementor-button-text::before {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	flex: 0 0 auto;
	background-color: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.page-id-1866 .elementor-element-237ebc3 .elementor-widget-container,
.elementor-1866 .elementor-element-237ebc3 .elementor-widget-container {
	overflow: hidden;
	border-radius: 24px;
	background-color: #c5d3de;
}

body.page-id-1866 .elementor-element-237ebc3 img,
.elementor-1866 .elementor-element-237ebc3 img {
	object-fit: cover !important;
	object-position: center 40%;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 3;
	transform: none !important;
	border-radius: 24px;
}

@media (max-width: 1199px) {
	.elementor-element-b94189c {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 32px !important;
	}

	.elementor-element-b94189c > .e-con {
		width: 100% !important;
		max-width: 100% !important;
		flex: 1 1 auto !important;
	}

	.elementor-element-ff28de4 {
		align-items: stretch !important;
		justify-content: flex-start !important;
	}

	.elementor-element-237ebc3 img,
	body.page-id-1866 .elementor-element-237ebc3 img,
	.elementor-1866 .elementor-element-237ebc3 img {
		height: auto !important;
		aspect-ratio: 16 / 10;
		object-fit: cover !important;
		object-position: center 30%;
		transform: none !important;
	}
}

.elementor-element-3a7fd93 {
	background: transparent !important;
	border-radius: 0 !important;
	padding: 36px 0 !important;
	gap: 10px !important;
	border-top: 1px solid rgba(16, 38, 61, 0.14);
	border-bottom: 1px solid rgba(16, 38, 61, 0.14);
}

.elementor-element-3c11b25 {
	margin: 0 !important;
}

.elementor-element-3c11b25 .elementor-heading-title {
	margin: 0 !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	text-transform: uppercase;
	color: #1f4d7a !important;
}

.elementor-element-5c99eda {
	margin: 4px 0 0 !important;
}

.elementor-element-5c99eda .elementor-heading-title {
	margin: 0 !important;
	font-weight: 600 !important;
	letter-spacing: -0.03em !important;
	color: #1a1c1c !important;
}

.elementor-element-9c44a69 {
	margin-top: 8px !important;
}

.elementor-element-9c44a69,
.elementor-element-9c44a69 p {
	margin-bottom: 0 !important;
	color: #44474d !important;
	font-size: 18px !important;
	line-height: 28px !important;
}

.elementor-element-9c44a69 a {
	color: #136b9e !important;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.elementor-element-9c44a69 a:hover,
.elementor-element-9c44a69 a:focus {
	color: #1a1c1c !important;
}

@media (max-width: 767px) {
	.elementor-element-3a7fd93 {
		padding: 28px 0 !important;
	}

	.elementor-element-5c99eda .elementor-heading-title {
		letter-spacing: -0.02em !important;
	}
}

body.page-id-1747 .elementor-element-237ebc3 .elementor-widget-container {
	overflow: hidden;
	border-radius: 24px;
}

body.page-id-1747 .elementor-element-237ebc3 img {
	object-fit: cover !important;
	object-position: center 85% !important;
}

.elementor-element-20e9196 {
	justify-content: flex-start !important;
	align-items: stretch !important;
}

.elementor-element-a7518a1 {
	justify-content: flex-start !important;
	align-items: stretch !important;
	gap: 24px !important;
}

.elementor-element-a7518a1 > .e-con {
	flex: 1 1 0 !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	justify-content: flex-start !important;
	align-items: center !important;
	overflow: hidden;
}

.elementor-element-a7518a1 .elementor-widget-image,
.elementor-element-a7518a1 .elementor-widget-image .elementor-widget-container {
	width: 100%;
	margin: 0 !important;
	overflow: hidden;
	border-radius: 0;
}

.elementor-element-a7518a1 .elementor-widget-image img {
	display: block;
	width: 100% !important;
	height: 300px !important;
	object-fit: cover !important;
	object-position: center 18%;
	border-radius: 0 !important;
}

.elementor-element-b76e0f7 img {
	object-position: center 12% !important;
	background-color: #e8edf1;
}

.elementor-element-1cf8db2 .elementor-widget-container {
	overflow: hidden;
	height: 300px;
}

.elementor-element-1cf8db2 img {
	object-position: center 20% !important;
	transform: scale(2.35);
	transform-origin: center 18%;
}

.elementor-element-a7518a1 .elementor-widget-heading {
	width: 100%;
	text-align: center;
	padding: 16px 16px 0;
}

.elementor-element-a7518a1 .elementor-widget-text-editor {
	width: 100%;
	text-align: center;
	padding: 0 16px;
}

.elementor-element-a7518a1 .elementor-widget-social-icons {
	width: 100%;
	text-align: center;
	padding: 8px 16px 20px;
	margin-top: auto;
}

@media (max-width: 1024px) {
	.elementor-element-a7518a1 {
		flex-wrap: wrap !important;
	}

	.elementor-element-a7518a1 > .e-con {
		flex: 1 1 calc(50% - 12px) !important;
	}
}

@media (max-width: 767px) {
	.elementor-element-a7518a1 > .e-con {
		flex: 1 1 100% !important;
	}
}

.elementor-element-66771b2 > a.e-con,
.elementor-element-72d9145 > a.e-con {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}

.elementor-element-66771b2 > a.e-con:hover,
.elementor-element-66771b2 > a.e-con:focus,
.elementor-element-66771b2 > a.e-con:focus-visible,
.elementor-element-72d9145 > a.e-con:hover,
.elementor-element-72d9145 > a.e-con:focus,
.elementor-element-72d9145 > a.e-con:focus-visible {
	text-decoration: none;
	color: inherit;
}

.elementor-element-8aac816.e-con,
.elementor-element-3654e9e.e-con {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	height: 100%;
	align-self: stretch;
}

.elementor-element-0e30112 .e-loop-item,
.elementor-element-0e30112 .e-loop-item > .elementor {
	height: 100%;
}

.elementor-element-3654e9e.e-con > .elementor-element-0ac2fc4 {
	flex: 1 1 auto;
}

.elementor-element-8aac816.e-con:hover,
.elementor-element-8aac816.e-con:focus,
.elementor-element-8aac816.e-con:focus-visible,
.elementor-element-3654e9e.e-con:hover,
.elementor-element-3654e9e.e-con:focus,
.elementor-element-3654e9e.e-con:focus-visible {
	text-decoration: none;
	color: inherit;
}

.county-heading-link .elementor-heading-title a::after,
.elementor-element-bbc14c1 .elementor-heading-title a::after,
.elementor-element-72d9145 > a.e-con .elementor-heading-title::after {
	content: "";
	display: inline-block;
	width: 0.72em;
	height: 0.72em;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5 12h12.17l-4.58-4.59L14 6l7 7-7 7-1.41-1.41L17.17 13H5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5 12h12.17l-4.58-4.59L14 6l7 7-7 7-1.41-1.41L17.17 13H5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.elementor-location-footer .cust-footer-hours-heading {
	margin-top: 28px;
}

.elementor-location-footer .cust-footer-hours {
	margin: 0;
}

.elementor-location-footer .cust-footer-hours .elementor-widget-container,
.elementor-location-footer .cust-footer-hours p {
	margin: 0;
}

.elementor-location-footer .cust-footer-hours-list {
	display: grid;
	gap: 6px;
	margin: 0;
}

.elementor-location-footer .cust-footer-hours-list div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 16px;
	align-items: baseline;
}

.elementor-location-footer .cust-footer-hours-list span:last-child {
	white-space: nowrap;
}

.service-area-carousel .service-area-cities p {
	margin: 0;
	line-height: 1.75;
	color: #fff;
}

.service-area-carousel .service-area-cities a {
	color: #fff;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.35);
}

.service-area-carousel .service-area-cities a:hover,
.service-area-carousel .service-area-cities a:focus {
	border-bottom-color: #fff;
}

.service-area-carousel .elementor-heading-title,
.service-area-carousel .elementor-heading-title a {
	color: #fff;
}

/* Keep arrows in the side gutters so they don't sit on the city lists.
   Elementor n-carousel uses a PNG-mask SVG that breaks under fill overrides —
   hide it and draw crisp chevrons instead. */
.service-area-carousel.elementor-widget-n-carousel {
	overflow: visible;
}

.service-area-carousel .elementor-swiper-button {
	width: 44px !important;
	height: 44px !important;
	margin: 0 !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	border: 1px solid rgba(255, 255, 255, 0.35);
	backdrop-filter: blur(4px);
	color: #fff;
	box-sizing: border-box;
}

.service-area-carousel .elementor-swiper-button-prev {
	left: -48px !important;
	right: auto !important;
}

.service-area-carousel .elementor-swiper-button-next {
	right: -48px !important;
	left: auto !important;
}

.service-area-carousel .elementor-swiper-button svg {
	display: none !important;
}

.service-area-carousel .elementor-swiper-button::before {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	box-sizing: border-box;
}

.service-area-carousel .elementor-swiper-button-prev::before {
	transform: rotate(-135deg);
	margin-left: 3px;
}

.service-area-carousel .elementor-swiper-button-next::before {
	transform: rotate(45deg);
	margin-right: 3px;
}

.service-area-carousel .e-n-carousel,
.service-area-carousel .swiper {
	overflow: hidden;
}

/* Equal inset on both sides so arrows sit the same distance from city lists. */
.service-area-carousel .swiper-slide {
	padding-left: 20px;
	padding-right: 20px;
	box-sizing: border-box;
}

@media (max-width: 1500px) {
	.service-area-carousel .elementor-swiper-button-prev {
		left: -20px !important;
	}

	.service-area-carousel .elementor-swiper-button-next {
		right: -20px !important;
	}
}

@media (max-width: 1024px) {
	.service-area-carousel .elementor-swiper-button {
		top: auto !important;
		bottom: -56px !important;
		transform: none !important;
	}

	.service-area-carousel .elementor-swiper-button-prev {
		left: 0 !important;
	}

	.service-area-carousel .elementor-swiper-button-next {
		left: 56px !important;
		right: auto !important;
	}

	.service-area-carousel.elementor-widget-n-carousel {
		margin-bottom: 56px;
	}
}

.project-roof-filter .e-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.project-roof-filter .e-filter-item[data-filter="__all"] {
	order: -1;
}

.project-roof-filter .e-filter-item {
	margin: 0;
	border: 1px solid #136b9e;
	border-radius: 40px;
	padding: 10px 22px;
	background: transparent;
	color: #136b9e;
	cursor: pointer;
	font-weight: 600;
	line-height: 1.2;
}

.project-roof-filter .e-filter-item:hover,
.project-roof-filter .e-filter-item:focus {
	background: rgba(19, 107, 158, 0.08);
}

.project-roof-filter .e-filter-item[aria-pressed="true"] {
	background: #136b9e;
	color: #fff;
}

.project-gallery-slider .elementor-swiper-button,
.project-gallery-slider .elementor-swiper-button svg,
.project-gallery-slider .elementor-swiper-button path {
	color: #fff;
	fill: #fff;
}

.project-gallery-slider .swiper {
	overflow: hidden;
}

.project-gallery-slider .swiper-slide > .elementor-element {
	height: 100%;
}

.tamko-catalog {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
}

/* Temporarily hide TAMKO catalog sections on material pages. */
.tamko-catalog-section {
	display: none !important;
}

.tamko-catalog__eyebrow {
	margin: 0 0 16px;
}

.tamko-catalog__title {
	margin: 0;
	font-size: 32px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: #10263d;
}

.tamko-catalog__lede {
	margin: 12px 0 0;
	max-width: 46em;
	color: #4a5a6a;
	font-size: 17px;
	line-height: 1.55;
}

.tamko-catalog__layout {
	display: grid;
	grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
	gap: 40px;
	margin-top: 36px;
	align-items: start;
}

.tamko-catalog__swatches {
	margin: 0;
	padding: 0;
	border: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.tamko-catalog__swatch {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 8px;
	border: 1px solid rgba(16, 38, 61, 0.14);
	border-radius: 14px;
	cursor: pointer;
	background: #fff;
}

.tamko-catalog__swatch input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.tamko-catalog__chip {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	background-size: 10px 10px, 12px 8px, 9px 11px, cover;
	background-repeat: repeat, repeat, repeat, no-repeat;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18);
}

.tamko-catalog__swatch-name {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	color: #10263d;
}

.tamko-catalog__swatch.is-selected,
.tamko-catalog__swatch:has(input:focus-visible) {
	border-color: #136b9e;
	box-shadow: 0 0 0 1px #136b9e;
}

.tamko-catalog__line {
	margin: 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #6b7c8d;
}

.tamko-catalog__color-name {
	margin: 8px 0 0;
	font-size: 28px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #10263d;
}

.tamko-catalog__copy {
	margin: 10px 0 0;
	color: #4a5a6a;
	font-size: 16px;
	line-height: 1.6;
}

.tamko-catalog__homes-label {
	margin: 28px 0 12px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #10263d;
}

.tamko-catalog__homes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.tamko-catalog__home {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 14px;
	text-decoration: none;
	color: inherit;
	background: #f4f7f9;
}

.tamko-catalog__home img {
	display: block;
	width: 100%;
	height: 160px;
	object-fit: cover;
}

.tamko-catalog__home-meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px 14px 14px;
}

.tamko-catalog__home-meta strong {
	font-size: 15px;
	color: #10263d;
}

.tamko-catalog__home-meta em {
	font-style: normal;
	font-size: 13px;
	color: #6b7c8d;
}

.tamko-catalog__empty {
	margin: 24px 0 0;
	padding: 18px 20px;
	border-radius: 14px;
	background: #f4f7f9;
	color: #4a5a6a;
	font-size: 16px;
	line-height: 1.55;
}

.tamko-catalog__empty a {
	color: #136b9e;
	font-weight: 600;
}

.tamko-catalog__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

.tamko-catalog__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 22px;
	border-radius: 40px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
	line-height: 1.2;
}

.tamko-catalog__btn--primary {
	background: #136b9e;
	color: #fff;
}

.tamko-catalog__btn--ghost {
	border: 1px solid #136b9e;
	color: #136b9e;
}

.tamko-catalog__note {
	margin: 18px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: #6b7c8d;
}

.tamko-catalog__note a {
	color: #136b9e;
	font-weight: 600;
}

@media (max-width: 900px) {
	.tamko-catalog__title {
		font-size: 26px;
	}

	.tamko-catalog__layout {
		grid-template-columns: 1fr;
		gap: 28px;
		margin-top: 28px;
	}

	.tamko-catalog__swatches {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.tamko-catalog__swatches,
	.tamko-catalog__homes {
		grid-template-columns: 1fr 1fr;
	}
}

.tamko-catalog .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Materials details — same section type as project Situation / Approach / Result. */
.mat-details-section.e-con {
	--padding-block-start: 0px;
	--padding-block-end: 0px;
	--padding-inline-start: 0px;
	--padding-inline-end: 0px;
	padding: 0 !important;
}

.mat-details {
	width: 100%;
	margin: 0;
}

.mat-details__band {
	width: 100%;
	padding: 110px 30px;
}

.mat-details__band:first-child:not(.mat-details__band--blue) {
	padding-top: 0;
}

.mat-details__band:last-child {
	padding-bottom: 110px;
}

.mat-details__inner {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
}

.mat-details__band--blue {
	background: #136b9e;
}

.mat-details__eyebrow {
	margin: 0 0 16px;
}

.mat-details__title {
	margin: 0;
	max-width: 16em;
	font-size: 52px;
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 58px;
	color: #1a1c1c;
}

.mat-details__benefits {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px 40px;
	margin-top: 36px;
}

.mat-details__warranty-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin-top: 32px;
}

.mat-details__card {
	margin: 0;
	padding: 22px 0 0;
	border: 0;
	border-top: 1px solid rgba(19, 107, 158, 0.18);
	border-radius: 0;
	background: transparent;
}

.mat-details__card h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.3;
	color: #1a1c1c;
}

.mat-details__card p {
	margin: 10px 0 0;
	color: #44474d;
	font-size: 17px;
	line-height: 1.55;
}

.mat-details__lede {
	margin: 18px 0 0;
	max-width: 40em;
	color: #44474d;
	font-size: 18px;
	line-height: 28px;
}

/* Blue bands — Approach / Result type. */
.mat-details__band--blue .mat-details__eyebrow {
	color: #fff;
}

.mat-details__band--blue .mat-details__eyebrow::after {
	background: #7eb8e0;
}

.mat-details__band--blue .mat-details__title {
	color: #fff;
}

.mat-details__band--blue .mat-details__lede {
	color: rgba(255, 255, 255, 0.84);
}

.mat-details__band--blue .mat-details__card {
	border-top-color: rgba(255, 255, 255, 0.22);
}

.mat-details__band--blue .mat-details__card h3 {
	color: #fff;
}

.mat-details__band--blue .mat-details__card p {
	color: rgba(255, 255, 255, 0.84);
}

.mat-details__card--navy {
	padding: 24px 24px 22px;
	border: 0;
	border-radius: 16px;
	background: #136b9e;
}

.mat-details__band--blue .mat-details__card--navy {
	border: 1px solid rgba(255, 255, 255, 0.16);
	background: rgba(8, 40, 64, 0.28);
}

.mat-details__card--navy h3 {
	color: #fff;
}

.mat-details__card--navy p {
	color: rgba(255, 255, 255, 0.84);
}

.mat-details__note {
	margin: 20px 0 0;
	font-size: 14px;
	line-height: 1.5;
	color: #6b7c8d;
}

.mat-details__band--blue .mat-details__note {
	color: rgba(255, 255, 255, 0.72);
}

/* Material intro copy — match project Situation body. */
.elementor:has(.mat-details-section) > .e-con.e-parent:nth-child(2) .elementor-widget-text-editor,
.elementor:has(.mat-details-section) > .e-con.e-parent:nth-child(2) .elementor-widget-text-editor p {
	color: #44474d !important;
	font-size: 18px !important;
	line-height: 28px !important;
}

.elementor:has(.mat-details-section) > .e-con.e-parent:nth-child(2) h2.elementor-heading-title {
	margin: 0 !important;
	font-size: 52px !important;
	font-weight: 600 !important;
	letter-spacing: -0.03em !important;
	line-height: 58px !important;
	color: #1a1c1c !important;
}

.mat-carousel {
	position: relative;
	margin-top: 28px;
}

.mat-carousel__viewport {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 0 52px;
	scrollbar-width: none;
}

.mat-carousel__viewport::-webkit-scrollbar {
	display: none;
}

.mat-carousel__slide {
	flex: 0 0 calc(50% - 8px);
	margin: 0;
	scroll-snap-align: start;
	overflow: hidden;
	border-radius: 24px;
	background: #c5d3de;
}

.mat-carousel__slide img {
	display: block;
	width: 100%;
	height: 320px;
	object-fit: cover;
}

.mat-carousel__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #136b9e;
	color: #fff;
	transform: translateY(-50%);
	cursor: pointer;
}

.mat-carousel__nav--prev {
	left: 0;
}

.mat-carousel__nav--next {
	right: 0;
}

.mat-carousel__nav span {
	font-size: 18px;
	line-height: 1;
}

.mat-details__band--blue .mat-carousel__nav {
	background: #fff;
	color: #136b9e;
}

@media (max-width: 900px) {
	.mat-details__title {
		font-size: 36px;
		line-height: 42px;
	}

	.mat-details__band {
		padding: 72px 20px;
	}

	.mat-details__band:last-child {
		padding-bottom: 80px;
	}

	.mat-details__benefits,
	.mat-details__warranty-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.mat-carousel__slide {
		flex-basis: 100%;
	}

	.mat-carousel__slide img {
		height: 240px;
	}

	.mat-carousel__viewport {
		padding: 0 48px;
	}

	.elementor:has(.mat-details-section) > .e-con.e-parent:nth-child(2) h2.elementor-heading-title {
		font-size: 36px !important;
		line-height: 42px !important;
	}
}

/* About certifications — match homepage Materials band (4a0efd5) image + cards. */
.elementor-element-primCerts {
	--overlay-opacity: 0.6;
	background-color: #0f2a44 !important;
}

.elementor-element-primCerts:not(.elementor-motion-effects-element-type-background),
.elementor-element-primCerts > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
}

.elementor-element-primCerts::before,
.elementor-element-primCerts > .elementor-background-slideshow::before,
.elementor-element-primCerts > .elementor-motion-effects-container > .elementor-motion-effects-layer::before {
	background-color: #00000099 !important;
	background-image: none !important;
	opacity: var(--overlay-opacity, 0.6) !important;
	content: "" !important;
}

.elementor-element-primCerts .elementor-element-primCertBox > .e-con-inner,
.elementor-element-primCerts .primmer-certs {
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
	position: relative;
	z-index: 1;
}

.primmer-certs {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.primmer-certs__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
}

.primmer-certs__intro {
	max-width: 720px;
}

.primmer-certs__eyebrow {
	margin: 0 0 16px;
	color: #fff !important;
}

.primmer-certs__title-main {
	margin: 0;
	color: #fff;
	font-size: clamp(32px, 3.4vw, 48px);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.15;
}

.primmer-certs__cta {
	margin: 0 0 10px;
}

.primmer-certs__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 16px 30px;
	border-radius: 40px;
	background: var(--e-global-color-secondary, #0f2a44);
	color: var(--e-global-color-primary, #fff) !important;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none !important;
	text-transform: uppercase;
}

.primmer-certs__btn:hover,
.primmer-certs__btn:focus {
	background: var(--e-global-color-primary, #fff);
	color: var(--e-global-color-secondary, #0f2a44) !important;
}

.primmer-certs__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px;
}

.primmer-certs__card {
	margin: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 40px 48px;
	border-radius: 16px;
	border: 1px solid #c6c6c61a;
	background: var(--e-global-color-primary, #fff);
}

.primmer-certs__title {
	margin: 0;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.25;
	color: #1f4d7a;
}

.primmer-certs__copy {
	margin: 12px 0 0;
	color: #44474d;
	font-size: 16px;
	line-height: 1.5;
}

@media (max-width: 1366px) {
	.primmer-certs__card {
		padding: 30px;
	}
}

@media (max-width: 1200px) {
	.primmer-certs__card {
		padding: 24px;
	}

	.primmer-certs__grid {
		gap: 30px;
	}
}

@media (max-width: 1024px) {
	.primmer-certs {
		gap: 40px;
	}

	.primmer-certs__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}

	.primmer-certs__card {
		padding: 20px;
	}
}

@media (max-width: 640px) {
	.primmer-certs__grid {
		grid-template-columns: 1fr;
	}
}

/* About gallery — same band/carousel system as mat-details__photos. */
.about-gallery-section.e-con {
	--padding-block-start: 0px;
	--padding-block-end: 0px;
	--padding-inline-start: 0px;
	--padding-inline-end: 0px;
	padding: 0 !important;
}

.about-gallery {
	width: 100%;
	margin: 0;
	padding: 110px 30px;
}

.about-gallery__inner {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
}

.about-gallery__eyebrow {
	margin: 0 0 16px;
}

.about-gallery__intro {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
}

.about-gallery__title {
	margin: 0;
	max-width: 16em;
	font-size: 52px;
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 58px;
	color: #1a1c1c;
}

.about-gallery__all {
	flex-shrink: 0;
	padding-bottom: 8px;
	font-size: 15px;
	font-weight: 600;
	color: #136b9e;
	text-decoration: none;
}

.about-gallery__all:hover,
.about-gallery__all:focus {
	text-decoration: underline;
}

.about-gallery__carousel {
	position: relative;
	margin-top: 28px;
}

.about-gallery__track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 0 52px;
	scrollbar-width: none;
}

.about-gallery__track::-webkit-scrollbar {
	display: none;
}

.about-gallery__link {
	flex: 0 0 calc(50% - 8px);
	scroll-snap-align: start;
	color: inherit;
	text-decoration: none;
}

.about-gallery__slide {
	margin: 0;
	overflow: hidden;
	border: 1px solid rgba(16, 38, 61, 0.1);
	border-radius: 24px;
	background: #c5d3de;
}

.about-gallery__slide img {
	display: block;
	width: 100%;
	height: 320px;
	object-fit: cover;
}

.about-gallery__caption {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 22px 22px;
	background: #fff;
	font-style: normal;
}

.about-gallery__caption span {
	order: -1;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	line-height: 1.3;
	color: #1f4d7a;
}

.about-gallery__caption span::before {
	content: "";
	flex: 0 0 auto;
	width: 12px;
	height: 15px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M172.3 501.7C27 291 0 269.4 0 192 0 86 86 0 192 0s192 86 192 192c0 77.4-27 99-172.3 309.7a24 24 0 0 1-39.4 0zM192 272a80 80 0 1 0 0-160 80 80 0 0 0 0 160z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M172.3 501.7C27 291 0 269.4 0 192 0 86 86 0 192 0s192 86 192 192c0 77.4-27 99-172.3 309.7a24 24 0 0 1-39.4 0zM192 272a80 80 0 1 0 0-160 80 80 0 0 0 0 160z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.about-gallery__caption strong {
	font-size: 20px;
	font-weight: 500;
	line-height: 1.3;
	color: #1a1c1c;
}

.about-gallery__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #136b9e;
	color: #fff;
	transform: translateY(-50%);
	cursor: pointer;
}

.about-gallery__nav--prev {
	left: 0;
}

.about-gallery__nav--next {
	right: 0;
}

.about-gallery__nav span {
	font-size: 18px;
	line-height: 1;
}

@media (max-width: 900px) {
	.about-gallery {
		padding: 72px 20px;
	}

	.about-gallery__title {
		font-size: 36px;
		line-height: 42px;
	}

	.about-gallery__intro {
		flex-direction: column;
		align-items: flex-start;
	}

	.about-gallery__all {
		padding-bottom: 0;
	}

	.about-gallery__link {
		flex-basis: 100%;
	}

	.about-gallery__slide img {
		height: 240px;
	}

	.about-gallery__track {
		padding: 0 48px;
	}
}

.contact-faqs {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
}

.contact-faqs__eyebrow {
	margin: 0 0 16px;
}

.contact-faqs__intro {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 28px;
}

.contact-faqs__title {
	margin: 0;
	font-size: 32px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: #10263d;
}

.contact-faqs__all {
	flex-shrink: 0;
	font-size: 15px;
	font-weight: 600;
	color: #136b9e;
	text-decoration: none;
}

.contact-faqs__all:hover,
.contact-faqs__all:focus {
	text-decoration: underline;
}

.contact-faqs__item {
	margin: 0;
	border-bottom: 1px solid rgba(16, 38, 61, 0.14);
}

.contact-faqs__item:first-child {
	border-top: 1px solid rgba(16, 38, 61, 0.14);
}

.contact-faqs__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 22px 0;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -0.015em;
	color: #10263d;
	cursor: pointer;
	list-style: none;
}

.contact-faqs__q::-webkit-details-marker {
	display: none;
}

.contact-faqs__q::after {
	content: "";
	flex: 0 0 14px;
	width: 14px;
	height: 14px;
	background: #136b9e;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.contact-faqs__item[open] .contact-faqs__q {
	padding-bottom: 10px;
}

.contact-faqs__item[open] .contact-faqs__q::after {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 13H5v-2h14v2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 13H5v-2h14v2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.contact-faqs__q:hover {
	opacity: 0.82;
}

.contact-faqs__a {
	padding: 0 56px 22px 0;
	font-size: 16px;
	line-height: 1.65;
	color: #4a5a6a;
}

.contact-faqs__a a {
	color: #10263d;
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media (max-width: 900px) {
	.contact-faqs__title {
		font-size: 26px;
	}

	.contact-faqs__intro {
		flex-direction: column;
		align-items: flex-start;
	}
}

.primmer-blog {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
}

.primmer-blog__intro {
	margin-bottom: 28px;
}

.primmer-blog__title {
	margin: 0;
	font-size: 32px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: #1a1c1c;
}

.primmer-blog__cadence {
	margin: 8px 0 0;
	font-size: 18px;
	line-height: 28px;
	color: #44474d;
}

.primmer-blog__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.primmer-blog__grid:has(.primmer-blog__card:only-child) {
	grid-template-columns: minmax(0, 560px);
}

.primmer-blog__card {
	overflow: hidden;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 1px 0 rgba(16, 38, 61, 0.06);
}

.primmer-blog__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.primmer-blog__card img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.primmer-blog__body {
	padding: 20px 22px 24px;
}

.primmer-blog__date {
	display: block;
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #6b7c8d;
}

.primmer-blog__card-title {
	margin: 8px 0 0;
	font-size: 24px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.3;
	color: #1a1c1c;
}

.primmer-blog__excerpt {
	margin: 10px 0 0;
	font-size: 18px;
	line-height: 28px;
	color: #44474d;
}

.primmer-blog__more {
	display: inline-block;
	margin-top: 14px;
	font-size: 15px;
	font-weight: 600;
	color: #136b9e;
}

.primmer-blog__link:hover .primmer-blog__card-title,
.primmer-blog__link:focus .primmer-blog__card-title {
	color: #136b9e;
}

.primmer-blog__empty {
	margin: 0;
	font-size: 16px;
	line-height: 1.65;
	color: #4a5a6a;
}

.primmer-post {
	background: #f4f7fa;
}

.primmer-post__article {
	max-width: 760px;
	margin: 0 auto;
	padding: 48px 30px 100px;
}

.primmer-post__eyebrow {
	margin: 0 0 16px;
}

.primmer-post__eyebrow a {
	text-decoration: none;
}

.primmer-post__eyebrow a:hover,
.primmer-post__eyebrow a:focus {
	color: #136b9e;
}

.primmer-post__title {
	margin: 0;
	font-size: 40px;
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: #1a1c1c;
}

.primmer-post__date {
	display: block;
	margin-top: 12px;
	font-size: 14px;
	color: #6b7c8d;
}

.primmer-post__figure {
	margin: 28px 0 0;
}

.primmer-post__figure img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
}

.primmer-post__content {
	margin-top: 28px;
	font-size: 18px;
	line-height: 1.7;
	color: #44474d;
}

.primmer-post__content p {
	margin: 0 0 1.1em;
}

.primmer-post__content h2 {
	margin: 1.6em 0 0.6em;
	font-size: 24px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #1a1c1c;
}

.primmer-post__content a {
	color: #136b9e;
}

.primmer-post__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	margin: 36px 0 0;
}

.primmer-post__button {
	display: inline-flex;
	align-items: center;
	padding: 16px 30px;
	border-radius: 40px;
	background: #136b9e;
	color: #fff !important;
	font-size: 16px;
	font-weight: 500;
	text-decoration: none;
}

.primmer-post__back {
	font-size: 15px;
	font-weight: 600;
	color: #136b9e;
	text-decoration: none;
}

.primmer-post__button:hover,
.primmer-post__back:hover {
	text-decoration: underline;
}

@media (max-width: 900px) {
	.primmer-blog__title,
	.primmer-post__title {
		font-size: 28px;
	}

	.primmer-blog__grid {
		grid-template-columns: 1fr;
	}

	.primmer-post__article {
		padding: 32px 20px 72px;
	}
}

.city-list {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px 40px;
}

.city-list__county-title {
	margin: 0 0 12px;
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #10263d;
}

.city-list__county-title a {
	color: inherit;
	text-decoration: none;
}

.city-list__county-title a:hover,
.city-list__county-title a:focus {
	color: #136b9e;
}

.city-list__cities {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.city-list__cities a,
.city-list__cities span {
	font-size: 16px;
	line-height: 1.4;
	color: #4a5a6a;
}

.city-list__cities a {
	color: #136b9e;
	text-decoration: none;
}

.city-list__cities a:hover,
.city-list__cities a:focus {
	text-decoration: underline;
}

@media (max-width: 800px) {
	.city-list {
		grid-template-columns: 1fr;
	}
}

.primmer-financing {
	width: 100%;
}

.primmer-financing__offer {
	margin: 0 0 8px;
	font-family: Inter, sans-serif;
	font-size: 28px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 32px;
	color: #1a1c1c;
}

.primmer-financing__sub {
	margin: 0 0 28px;
	font-size: 18px;
	line-height: 28px;
	color: #44474d;
}

.primmer-financing__steps {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
	counter-reset: finance-step;
}

.primmer-financing__steps li {
	position: relative;
	margin: 0 0 18px;
	padding: 0 0 0 48px;
	font-size: 18px;
	line-height: 28px;
	color: #44474d;
	counter-increment: finance-step;
}

.primmer-financing__steps li::before {
	content: counter(finance-step);
	position: absolute;
	top: 0;
	left: 0;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #1f4d7a;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 32px;
	text-align: center;
}

.primmer-financing__steps strong {
	display: block;
	margin-bottom: 4px;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: #1a1c1c;
}

.primmer-financing__note,
.primmer-financing__disclaimer {
	margin: 0 0 16px;
	font-size: 18px;
	line-height: 28px;
	color: #44474d;
}

.primmer-financing__disclaimer {
	font-size: 14px;
	color: #6b7c8d;
}

.primmer-financing__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

.primmer-financing__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 30px;
	border-radius: 40px;
	border: 1px solid #1f4d7a;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	color: #1f4d7a;
	text-decoration: none;
}

.primmer-financing__btn--primary,
.primmer-legal .primmer-financing__btn--primary {
	background: #136b9e;
	border-color: #136b9e;
	color: #fff;
}

.primmer-financing__btn:hover,
.primmer-financing__btn:focus {
	opacity: 0.88;
}

.primmer-legal {
	width: 100%;
	max-width: 760px;
	margin: 0 auto;
}

.primmer-legal__updated {
	margin: 0 0 20px;
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #6b7c8d;
}

.primmer-legal h2 {
	margin: 36px 0 12px;
	font-family: Inter, sans-serif;
	font-size: 28px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 32px;
	color: #1a1c1c;
}

.primmer-legal p,
.primmer-legal li {
	font-size: 18px;
	line-height: 28px;
	color: #44474d;
}

.primmer-legal p {
	margin: 0 0 14px;
}

.primmer-legal ul {
	margin: 0 0 16px;
	padding: 0 0 0 20px;
}

.primmer-legal a {
	color: #136b9e;
}

.primmer-roofr {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}

.primmer-roofr iframe {
	display: block;
	width: 100%;
	height: 720px;
	border: 0;
}

@media (max-width: 767px) {
	.primmer-roofr iframe {
		height: 860px;
	}
}

/* Free estimate page hero */
.elementor-2505 .elementor-element-feEyebrow .elementor-heading-title {
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.11em !important;
	line-height: 1.2 !important;
	text-transform: uppercase;
}

.elementor-2505 .elementor-element-feEyebrow .elementor-heading-title::after {
	content: "";
	display: block;
	width: 42px;
	height: 3px;
	margin: 14px auto 0;
	background: #2f78ed;
	border-radius: 2px;
}

.elementor-2505 .elementor-element-feTitle {
	margin-top: 18px !important;
	max-width: 640px;
}

.elementor-2505 .elementor-element-feTitle .elementor-heading-title {
	color: #fff !important;
	font-size: clamp(42px, 4.15vw, 58px) !important;
	font-weight: 700 !important;
	line-height: 1.02 !important;
	letter-spacing: -0.03em !important;
}

.elementor-2505 .elementor-element-feLede {
	max-width: 520px;
	margin-top: 16px !important;
	color: rgba(255, 255, 255, 0.94) !important;
	font-size: 16px !important;
	line-height: 1.55 !important;
}

.elementor-2505 .elementor-element-feLede p {
	margin: 0;
	color: inherit;
}

.primmer-sms-consent {
	width: 100%;
	max-width: 800px;
	margin: 12px auto 0;
	font-size: 13px;
	line-height: 1.55;
	color: #4a5a6a;
}

.primmer-sms-consent__label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	font-weight: 400;
	cursor: pointer;
}

.primmer-sms-consent__check {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin: 3px 0 0;
	accent-color: #2f78ed;
}

.primmer-sms-consent__text {
	flex: 1 1 auto;
}

.primmer-sms-consent a {
	color: #136b9e;
}

.elementor-form .primmer-sms-consent {
	margin: 0 0 14px;
	max-width: none;
}

.primmer-roofr + .primmer-sms-consent,
.primmer-hero-roofr-slot + .primmer-sms-consent {
	margin-top: 14px;
}

.elementor-element-12e6f1f a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Silicone hub: Who this is for — 5 equal cards, stack on mobile. */
.silicone-who {
	width: 100%;
	margin: 0;
}

.silicone-who__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.silicone-who__card {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 112px;
	padding: 20px 16px;
	text-align: center;
	background: #f4f7fb;
	border: 1px solid rgba(16, 38, 61, 0.10);
	border-radius: 14px;
}

.silicone-who__title {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: #1a1c1c;
}

.silicone-who__note {
	margin: 20px 0 0;
	font-size: 16px;
	line-height: 1.55;
	color: #44474d;
}

@media (max-width: 1024px) {
	.silicone-who__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.silicone-who__grid {
		grid-template-columns: 1fr;
	}

	.silicone-who__card {
		min-height: 72px;
	}
}

/* Match FAQ band above (7e29548): white bg, same outer pad, boxed inner measure. */
.elementor-element-silclhub {
	background-color: #ffffff !important;
}

.elementor-element-silclhub .elementor-element-silclbox > .e-con-inner,
.elementor-element-silclhub .silicone-cluster {
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
}

.silicone-cluster {
	--sc-line: rgba(16, 38, 61, 0.14);
	--sc-title: #1a1c1c;
	--sc-body: #44474d;
	--sc-icon: #136b9e;
	--sc-eyebrow: #1f4d7a;
	--sc-bar: #2f78ed;
	width: 100%;
	margin: 0;
}

.silicone-cluster__eyebrow {
	margin: 0 0 16px;
	color: var(--sc-eyebrow) !important;
}

.silicone-cluster__eyebrow::after {
	background: var(--sc-bar) !important;
}

.silicone-cluster__title {
	margin: 0 0 28px;
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--sc-title);
}

.silicone-cluster__list {
	margin: 0;
	padding: 0;
}

.silicone-cluster__item {
	margin: 0;
	border: 0;
	border-bottom: 1px solid var(--sc-line);
	background: transparent;
}

.silicone-cluster__item:first-child {
	border-top: 1px solid var(--sc-line);
}

.silicone-cluster__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 22px 0;
	cursor: pointer;
	list-style: none;
	color: var(--sc-title);
}

.silicone-cluster__q::-webkit-details-marker {
	display: none;
}

.silicone-cluster__q-text {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -0.015em;
}

.silicone-cluster__q::after {
	content: "";
	flex: 0 0 14px;
	width: 14px;
	height: 14px;
	background: var(--sc-icon);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.silicone-cluster__item[open] .silicone-cluster__q {
	padding-bottom: 10px;
}

.silicone-cluster__item[open] .silicone-cluster__q::after {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 13H5v-2h14v2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 13H5v-2h14v2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.silicone-cluster__q:hover {
	opacity: 0.9;
}

.silicone-cluster__a {
	padding: 0 56px 22px 0;
	color: var(--sc-body);
	font-size: 18px;
	line-height: 28px;
}

.silicone-cluster__a p {
	margin: 0;
}

.silicone-cluster__more {
	margin-top: 10px !important;
}

.silicone-cluster__more a {
	color: var(--sc-title);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.silicone-cluster__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 28px 0 0;
}

/* Silicone spoke notes: white article first, secondary-blue Related notes second. */
.elementor-element-ed5427a {
	background-color: #ffffff !important;
}

.elementor-element-ed5427a .primmer-legal--silicone {
	max-width: 1440px;
	margin: 0 auto;
}

/* Spoke article uses cluster accordion — drop legal prose measure/colors. */
.primmer-legal--silicone {
	max-width: none;
}

.primmer-legal--silicone .silicone-note {
	margin: 0;
}

.primmer-legal--silicone .silicone-cluster__cta {
	display: none !important;
}

.primmer-legal--silicone .silicone-cluster__title {
	text-transform: none;
}

.primmer-legal--silicone .silicone-cluster__a ul {
	margin: 0 0 14px;
	padding: 0 0 0 20px;
}

.primmer-legal--silicone .silicone-cluster__a p + p,
.primmer-legal--silicone .silicone-cluster__a ul + p {
	margin-top: 14px;
}

.elementor-element-silspkrel {
	background-color: var(--e-global-color-secondary, #1f4d7a) !important;
}

.elementor-element-silspkrel .elementor-element-silspkbox > .e-con-inner,
.elementor-element-silspkrel .silicone-cluster {
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
}

/* Related notes on blue — light FAQ/cluster tokens. */
.elementor-element-silspkrel .silicone-cluster {
	--sc-line: rgba(255, 255, 255, 0.22);
	--sc-title: #ffffff;
	--sc-body: rgba(255, 255, 255, 0.88);
	--sc-icon: #ffffff;
	--sc-eyebrow: rgba(255, 255, 255, 0.85);
	--sc-bar: #2f78ed;
}

.elementor-element-silspkrel .silicone-cluster__eyebrow {
	color: var(--sc-eyebrow) !important;
}

.elementor-element-silspkrel .silicone-cluster__more a {
	color: #fff;
}


/*
 * Section eyebrows — one system sitewide.
 * Elementor: a <p> heading widget sitting directly above an h2.
 * Theme shortcodes share the same type + 42px bar.
 */
.elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title,
.elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title,
.tamko-catalog__eyebrow,
.mat-details__eyebrow,
.contact-faqs__eyebrow,
.primmer-certs__eyebrow,
.about-gallery__eyebrow,
.primmer-post__eyebrow,
.primmer-home-services__eyebrow,
.silicone-cluster__eyebrow,
.project-media__eyebrow {
	font-family: Inter, sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.11em !important;
	line-height: 1.2 !important;
	text-transform: uppercase;
}

.elementor-widget-heading:has(+ .elementor-widget-heading h2) p.elementor-heading-title::after,
.elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h2) p.elementor-heading-title::after,
.tamko-catalog__eyebrow::after,
.mat-details__eyebrow::after,
.contact-faqs__eyebrow::after,
.primmer-certs__eyebrow::after,
.about-gallery__eyebrow::after,
.primmer-post__eyebrow::after,
.primmer-home-services__eyebrow::after,
.silicone-cluster__eyebrow::after,
.project-media__eyebrow::after {
	content: "";
	display: block;
	width: 42px;
	height: 3px;
	margin-top: 14px;
	background: #2f78ed;
	border-radius: 2px;
}

.tamko-catalog__eyebrow,
.mat-details__eyebrow,
.contact-faqs__eyebrow,
.about-gallery__eyebrow,
.primmer-post__eyebrow,
.primmer-home-services__eyebrow,
.silicone-cluster__eyebrow {
	color: #1f4d7a;
}

.primmer-post__eyebrow a {
	color: inherit;
}

/*
 * Interior page heroes — match homepage hero measure and eyebrow.
 * Homepage (.elementor-11) keeps its own tuned rules below.
 * Include both .e-con-parent and .e-parent (Elementor class variants).
 */
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .e-con:has(h1.elementor-heading-title),
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .e-con:has(h1.elementor-heading-title) {
	width: min(640px, 100%) !important;
	max-width: 640px !important;
}

.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(+ .elementor-widget-heading h1) .elementor-heading-title,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h1) .elementor-heading-title,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(+ .elementor-widget-heading h1) .elementor-heading-title,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h1) .elementor-heading-title {
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.11em !important;
	line-height: 1.2 !important;
	text-transform: uppercase;
}

.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(+ .elementor-widget-heading h1) .elementor-heading-title::after,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h1) .elementor-heading-title::after,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(+ .elementor-widget-heading h1) .elementor-heading-title::after,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(+ .elementor-element.elementor-widget-heading h1) .elementor-heading-title::after {
	content: "";
	display: block;
	width: 42px;
	height: 3px;
	margin-top: 14px;
	background: #2f78ed;
	border-radius: 2px;
}

.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child h1.elementor-heading-title,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child h1.elementor-heading-title {
	color: #fff !important;
	font-size: clamp(42px, 4.15vw, 58px) !important;
	font-weight: 700 !important;
	line-height: 1.02 !important;
	letter-spacing: -0.03em !important;
}

.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(h1),
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(h1) {
	margin-top: 18px !important;
	max-width: 640px;
}

.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(h1) + .elementor-widget-text-editor,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(h1) + .elementor-element.elementor-widget-text-editor,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(h1) + .elementor-widget-text-editor,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(h1) + .elementor-element.elementor-widget-text-editor {
	width: min(420px, 100%) !important;
	max-width: 420px !important;
	margin-top: 16px !important;
	color: rgba(255, 255, 255, 0.94) !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
}

.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(h1) + .elementor-widget-text-editor p,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(h1) + .elementor-element.elementor-widget-text-editor p,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(h1) + .elementor-widget-text-editor p,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(h1) + .elementor-element.elementor-widget-text-editor p {
	margin: 0;
	color: inherit;
}

@media (max-width: 767px) {
	.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child h1.elementor-heading-title,
	.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child h1.elementor-heading-title {
		font-size: 36px !important;
	}

	.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(h1) + .elementor-widget-text-editor,
	.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent:first-child .elementor-widget-heading:has(h1) + .elementor-element.elementor-widget-text-editor,
	.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(h1) + .elementor-widget-text-editor,
	.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent:first-child .elementor-widget-heading:has(h1) + .elementor-element.elementor-widget-text-editor {
		width: 100% !important;
		max-width: none !important;
	}
}

/* Explicit IDs for cloned service/city heroes and key landing pages
   (covers markup where :has() adjacency differs slightly). */
.elementor-element-4633dc6,
.elementor-element-b3b69ac,
.elementor-element-f5e288b,
.elementor-element-42a6f00,
.elementor-element-47b2657,
.elementor-element-4b75107,
.elementor-element-f9f5785,
.elementor-element-f4c3f34 {
	width: min(640px, 100%) !important;
	max-width: 640px;
}

.elementor-element-e492083 .elementor-heading-title,
.elementor-element-60c665f .elementor-heading-title,
.elementor-element-d2852bb .elementor-heading-title,
.elementor-element-ad1a8dc .elementor-heading-title,
.elementor-element-7f2538c .elementor-heading-title,
.elementor-element-411a8fc .elementor-heading-title,
.elementor-element-eb00a84 .elementor-heading-title,
.elementor-element-5ee8f29 .elementor-heading-title,
.elementor-element-a215e40 .elementor-heading-title {
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.11em !important;
	line-height: 1.2 !important;
	text-transform: uppercase;
}

.elementor-element-e492083 .elementor-heading-title::after,
.elementor-element-60c665f .elementor-heading-title::after,
.elementor-element-d2852bb .elementor-heading-title::after,
.elementor-element-ad1a8dc .elementor-heading-title::after,
.elementor-element-7f2538c .elementor-heading-title::after,
.elementor-element-411a8fc .elementor-heading-title::after,
.elementor-element-eb00a84 .elementor-heading-title::after,
.elementor-element-5ee8f29 .elementor-heading-title::after,
.elementor-element-a215e40 .elementor-heading-title::after {
	content: "";
	display: block;
	width: 42px;
	height: 3px;
	margin-top: 14px;
	background: #2f78ed;
	border-radius: 2px;
}

.elementor-element-d8a9490,
.elementor-element-5b76f56,
.elementor-element-2698cb0,
.elementor-element-3f856c8,
.elementor-element-7f8360b,
.elementor-element-3852943,
.elementor-element-d7f22f5,
.elementor-element-7cf95f6,
.elementor-element-c7336c1 {
	margin-top: 18px !important;
	max-width: 640px;
}

.elementor-element-d8a9490 .elementor-heading-title,
.elementor-element-5b76f56 .elementor-heading-title,
.elementor-element-2698cb0 .elementor-heading-title,
.elementor-element-3f856c8 .elementor-heading-title,
.elementor-element-7f8360b .elementor-heading-title,
.elementor-element-3852943 .elementor-heading-title,
.elementor-element-d7f22f5 .elementor-heading-title,
.elementor-element-7cf95f6 .elementor-heading-title,
.elementor-element-c7336c1 .elementor-heading-title {
	color: #fff !important;
	font-size: clamp(42px, 4.15vw, 58px) !important;
	font-weight: 700 !important;
	line-height: 1.02 !important;
	letter-spacing: -0.03em !important;
}

.elementor-element-0c5c916,
.elementor-element-94e537a,
.elementor-element-7d55ac0,
.elementor-element-80c3ae5,
.elementor-element-99a5104,
.elementor-element-250fee4,
.elementor-element-d4cae94,
.elementor-element-863fe0a {
	width: min(420px, 100%) !important;
	max-width: 420px !important;
	margin-top: 16px !important;
	color: rgba(255, 255, 255, 0.94) !important;
	font-size: 16px !important;
	line-height: 1.55 !important;
}

.elementor-element-0c5c916 p,
.elementor-element-94e537a p,
.elementor-element-7d55ac0 p,
.elementor-element-80c3ae5 p,
.elementor-element-99a5104 p,
.elementor-element-250fee4 p,
.elementor-element-d4cae94 p,
.elementor-element-863fe0a p {
	margin: 0;
	color: inherit;
}

/*
 * City/service-area intro (image + copy row). Hero body clones used the
 * kit primary color (white); this row sits on a light surface.
 */
.elementor[data-elementor-type="wp-page"] > .e-con.e-parent:nth-child(2) .elementor-widget-text-editor,
.elementor[data-elementor-type="wp-page"] > .e-con.e-parent:nth-child(2) .elementor-widget-text-editor p,
.elementor-element-9f83133 .elementor-widget-text-editor,
.elementor-element-9f83133 .elementor-widget-text-editor p,
.elementor-element-fa2159e .elementor-widget-text-editor,
.elementor-element-fa2159e .elementor-widget-text-editor p {
	color: #44474d !important;
}

/* Materials cards sit on navy (secondary); beat the light-surface intro rule above. */
.elementor[data-elementor-type="wp-page"].elementor-2436 > .e-con.e-parent:nth-child(2) .elementor-element-3ba5a21 .elementor-widget-text-editor,
.elementor[data-elementor-type="wp-page"].elementor-2436 > .e-con.e-parent:nth-child(2) .elementor-element-3ba5a21 .elementor-widget-text-editor p,
.elementor-2436 .elementor-element-3ba5a21 .elementor-widget-text-editor,
.elementor-2436 .elementor-element-3ba5a21 .elementor-widget-text-editor p {
	color: #fff !important;
}

/* About "Company" band is navy too; same override for its intro copy. */
.elementor[data-elementor-type="wp-page"].elementor-622 > .e-con.e-parent:nth-child(2) .elementor-element-6a34176,
.elementor[data-elementor-type="wp-page"].elementor-622 > .e-con.e-parent:nth-child(2) .elementor-element-6a34176 p {
	color: #fff !important;
}

/* Materials hub cards — stretch to equal row height (TPO title wraps to 2 lines). */
.elementor-2436 .elementor-element-3ba5a21 {
	align-items: stretch !important;
}

.elementor-2436 .elementor-element-3ba5a21 > .e-con {
	align-self: stretch !important;
	height: auto !important;
	min-height: 100% !important;
	display: flex !important;
	flex-direction: column !important;
}

.elementor-2436 .elementor-element-3ba5a21 > .e-con > .e-con:not(.cust-metal) {
	flex: 1 1 auto !important;
}

@media (max-width: 767px) {
	.elementor-element-d8a9490 .elementor-heading-title,
	.elementor-element-5b76f56 .elementor-heading-title,
	.elementor-element-2698cb0 .elementor-heading-title,
	.elementor-element-3f856c8 .elementor-heading-title,
	.elementor-element-7f8360b .elementor-heading-title,
	.elementor-element-3852943 .elementor-heading-title,
	.elementor-element-d7f22f5 .elementor-heading-title {
		font-size: 36px !important;
	}

	.elementor-element-0c5c916,
	.elementor-element-94e537a,
	.elementor-element-7d55ac0,
	.elementor-element-80c3ae5,
	.elementor-element-99a5104,
	.elementor-element-250fee4 {
		width: 100% !important;
		max-width: none !important;
	}
}

/* Homepage hero — copy on the left, Roofr estimate card on the right. */
.elementor-11 .cust-request-form {
	display: flex !important;
	flex-direction: column;
	align-items: stretch;
	background: #fff !important;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border: 0 !important;
	border-radius: 20px !important;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15) !important;
	max-width: 380px;
	width: 100%;
	margin-left: auto;
	padding: 28px 26px !important;
	color: #111;
}

.elementor-11 .elementor-element.elementor-element-4d5fc0b {
	--overlay-opacity: 1;
	--background-overlay: "";
	--justify-content: flex-start;
	--align-items: flex-start;
	--gap: 20px;
	--padding-top: 96px;
	--padding-bottom: 80px;
	--padding-left: 48px;
	--padding-right: 48px;
	min-height: 580px;
	--align-items: center;
}

.elementor-11 .elementor-element.elementor-element-4d5fc0b:not(.elementor-motion-effects-element-type-background),
.elementor-11 .elementor-element.elementor-element-4d5fc0b > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: #101820 !important;
	background-image: url("assets/primmer-home-hero-poster.jpg") !important;
	background-position: center center !important;
	background-size: cover !important;
}

/* Hold the hosted video until its first frame is decoded so the poster
   does not flash black or jump to a different crop. */
.elementor-11 .elementor-element.elementor-element-4d5fc0b > .elementor-background-video-container {
	opacity: 0;
	transition: none;
	z-index: 0;
	pointer-events: none;
}

.elementor-11 .elementor-element.elementor-element-4d5fc0b > .elementor-background-video-container.primmer-hero-video-ready {
	opacity: 1;
}

/* Kill Elementor’s duplicate black overlays on nested layers. */
.elementor-11 .elementor-element.elementor-element-4d5fc0b > .elementor-background-video-container::before,
.elementor-11 .elementor-element.elementor-element-4d5fc0b > .e-con-inner > .elementor-background-video-container::before,
.elementor-11 .elementor-element.elementor-element-4d5fc0b > .elementor-background-slideshow::before,
.elementor-11 .elementor-element.elementor-element-4d5fc0b > .e-con-inner > .elementor-background-slideshow::before,
.elementor-11 .elementor-element.elementor-element-4d5fc0b > .elementor-motion-effects-container > .elementor-motion-effects-layer::before {
	content: none !important;
	background: none !important;
	opacity: 0 !important;
}

/* Single cover above the video, under hero copy. */
.elementor-11 .elementor-element.elementor-element-4d5fc0b::before {
	content: "" !important;
	background-color: rgba(8, 16, 28, 0.12) !important;
	background-image: linear-gradient(90deg, rgba(8, 16, 28, 0.28) 0%, rgba(8, 16, 28, 0.12) 30%, rgba(8, 16, 28, 0) 58%) !important;
	opacity: 1 !important;
	z-index: 1 !important;
	pointer-events: none;
}

.elementor-11 .elementor-element.elementor-element-4d5fc0b > .elementor-element,
.elementor-11 .elementor-element.elementor-element-4d5fc0b .primmer-hero-trust {
	position: relative;
	z-index: 2;
}

.elementor-11 .elementor-element.elementor-element-1456e6b {
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	--gap: 0px;
	--content-width: 1120px;
	flex: 1 1 auto;
	width: 100%;
}

.elementor-11 .elementor-element.elementor-element-1456e6b > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between;
	gap: 32px;
	width: 100%;
	max-width: 1120px;
	margin-inline: auto;
}

.elementor-11 .elementor-element.elementor-element-a4c1358 {
	--width: 100%;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	gap: 0 !important;
	flex: 1 1 0;
	width: auto !important;
	max-width: none;
}

.elementor-11 .elementor-element.elementor-element-728f785 {
	flex: 0 0 400px;
	width: 400px;
	max-width: 100%;
}

/* Roofr card also shown in the contact-band column. */
.elementor-11 .elementor-element.elementor-element-9963633 .primmer-hero-roofr {
	height: 100%;
	justify-content: center;
	padding: 28px 24px;
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}

.elementor-11 .elementor-element.elementor-element-febda25 {
	position: relative;
	z-index: 3;
	margin: 22px 0 0 !important;
}

.primmer-hero-roofr {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	text-align: center;
}

.primmer-hero-roofr__logo {
	display: block;
	width: 88px;
	height: auto;
	margin: 0 auto 12px;
}

.primmer-hero-roofr__title {
	margin: 0 0 8px;
	color: #111;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

.primmer-hero-roofr__title em {
	font-style: italic;
	font-weight: 800;
	text-decoration: underline;
}

.primmer-hero-roofr__lede {
	margin: 0 0 16px;
	color: #5b6570;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.5;
}

.primmer-hero-roofr__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	padding: 14px 20px;
	background: #1d2a38;
	color: #fff !important;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

.primmer-hero-roofr__btn:hover,
.primmer-hero-roofr__btn:focus {
	background: #15202b;
	color: #fff !important;
}

.primmer-hero-roofr__btn span {
	width: 7px;
	height: 7px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
}

.primmer-hero-roofr__powered {
	margin: 12px 0 0;
	color: #111;
	opacity: 0.5;
	font-size: 12px;
	font-weight: 600;
}

/* Interior page heroes that already have a Get Free Estimate CTA.
   Match homepage hero: full-bleed band, centered 1120 content row. */
.primmer-hero-band {
	--padding-top: 96px;
	--padding-bottom: 80px;
	--padding-left: 48px;
	--padding-right: 48px;
	--content-width: 100%;
	min-height: 580px;
	width: 100% !important;
	max-width: none !important;
}

.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent.primmer-hero-band:first-child > .e-con-inner,
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent.primmer-hero-band:first-child > .e-con-inner,
.elementor-2016 > .elementor-element.e-parent.primmer-hero-band > .e-con-inner,
.elementor-622 > .elementor-element.e-parent.primmer-hero-band > .e-con-inner,
.elementor-1398 > .elementor-element.e-parent.primmer-hero-band > .e-con-inner,
.elementor-1898 > .elementor-element.e-parent.primmer-hero-band > .e-con-inner,
.elementor-2443 > .elementor-element.e-parent.primmer-hero-band > .e-con-inner,
.elementor-2456 > .elementor-element.e-parent.primmer-hero-band > .e-con-inner,
.elementor-2457 > .elementor-element.e-parent.primmer-hero-band > .e-con-inner,
.elementor-2458 > .elementor-element.e-parent.primmer-hero-band > .e-con-inner {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
	display: flex;
	justify-content: center;
}

.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent.primmer-hero-band:first-child .e-con:has(> .e-con-inner > .primmer-hero-roofr-slot),
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent.primmer-hero-band:first-child .e-con:has(> .e-con-inner > .primmer-hero-roofr-slot),
.elementor-2016 > .elementor-element.e-parent.primmer-hero-band .e-con:has(> .e-con-inner > .primmer-hero-roofr-slot),
.elementor-622 .elementor-element.elementor-element-e4d40d1,
.elementor-1398 .elementor-element.elementor-element-e30ec43,
.elementor-1898 .elementor-element.elementor-element-1bdb512,
.elementor-2443 .elementor-element.elementor-element-8c821dd,
.elementor-2456 .elementor-element.elementor-element-8c821dd,
.elementor-2457 .elementor-element.elementor-element-8c821dd,
.elementor-2458 .elementor-element.elementor-element-8c821dd {
	--content-width: 1120px;
	--padding-left: 0px;
	--padding-right: 0px;
	--padding-top: 0px;
	--padding-bottom: 0px;
	width: 100% !important;
	max-width: 1120px !important;
	margin-inline: auto;
}

.primmer-hero-band .e-con-inner:has(> .primmer-hero-roofr-slot) {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between;
	gap: 32px;
	width: 100%;
	max-width: 1120px;
	margin-inline: auto;
}

.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-parent.primmer-hero-band:first-child .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot),
.elementor[data-elementor-type="wp-page"]:not(.elementor-11) > .elementor-element.e-con-parent.primmer-hero-band:first-child .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot),
.elementor-2016 > .elementor-element.e-parent.primmer-hero-band .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot),
.elementor-622 .elementor-element.elementor-element-e4d40d1 > .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot),
.elementor-1398 .elementor-element.elementor-element-e30ec43 > .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot),
.elementor-1898 .elementor-element.elementor-element-1bdb512 > .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot),
.elementor-2443 .elementor-element.elementor-element-8c821dd > .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot),
.elementor-2456 .elementor-element.elementor-element-8c821dd > .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot),
.elementor-2457 .elementor-element.elementor-element-8c821dd > .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot),
.elementor-2458 .elementor-element.elementor-element-8c821dd > .e-con-inner > .e-con:has(+ .primmer-hero-roofr-slot) {
	flex: 1 1 auto;
	width: min(640px, 100%) !important;
	max-width: 640px !important;
}

.primmer-hero-roofr-slot {
	flex: 0 0 380px;
	width: 380px;
	max-width: 100%;
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
	padding: 28px 26px;
	color: #111;
	position: relative;
	z-index: 1;
}

.primmer-hero-band .elementor-widget-button:has(.elementor-button[href*="free-estimate"]) {
	display: none !important;
}

@media (max-width: 1100px) {
	.primmer-hero-band {
		--padding-left: 28px;
		--padding-right: 28px;
	}

	.primmer-hero-band .e-con-inner:has(> .primmer-hero-roofr-slot) {
		flex-direction: column !important;
		align-items: flex-start !important;
	}

	.primmer-hero-roofr-slot {
		flex: 0 0 auto;
		width: min(380px, 100%);
	}
}

@media (max-width: 767px) {
	.primmer-hero-band {
		--padding-left: 20px;
		--padding-right: 20px;
		--padding-top: 48px;
		min-height: 0;
	}
}

.elementor-11 .elementor-element.elementor-element-35d3071 {
	margin: 0 !important;
}

.elementor-11 .elementor-element.elementor-element-35d3071 .elementor-heading-title {
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.11em;
	line-height: 1.2;
}

.elementor-11 .elementor-element.elementor-element-35d3071 .elementor-heading-title::after {
	content: "";
	display: block;
	width: 42px;
	height: 3px;
	margin-top: 10px;
	background: #2f78ed;
	border-radius: 2px;
}

.elementor-11 .elementor-element.elementor-element-626b251 {
	margin: 12px 0 0 !important;
	width: 100%;
	max-width: 640px;
}

.elementor-11 .elementor-element.elementor-element-626b251 .elementor-heading-title {
	color: #fff;
	font-size: clamp(38px, 3.6vw, 52px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -0.03em;
	width: 100%;
}

.primmer-hero-line {
	display: block;
}

.elementor-11 .elementor-element.elementor-element-c349f02 {
	width: min(420px, 100%) !important;
	max-width: 420px !important;
	margin: 12px 0 0 !important;
	color: rgba(255, 255, 255, 0.94);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.55;
}

.elementor-11 .elementor-element.elementor-element-c349f02 p {
	margin: 0;
	color: inherit;
}

/*
 * Hero free-estimate CTAs — match homepage style (#2f78ed pill + chevron).
 * Targets the H1 hero band (not mid-page estimate buttons).
 * Include both .e-con-parent and .e-parent (Elementor class variants).
 */
.e-con-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"],
.e-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"],
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-con-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"],
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"],
.elementor-element-febda25 .elementor-button,
.elementor-element-b862076 .elementor-button,
.elementor-element-aa1af71 .elementor-button,
.elementor-element-7b06985 .elementor-button,
.elementor-element-dbb11bd .elementor-button,
.elementor-element-pHeroBtn .elementor-button,
.elementor-element-faqHeroBtn .elementor-button,
.elementor-element-blogHeroBtn .elementor-button,
.elementor-element-4e5d493 .elementor-button,
.elementor-element-saCtaBtn .elementor-button {
	background-color: #2f78ed !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 15px 28px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	line-height: 1 !important;
	text-transform: uppercase;
}

.e-con-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"]:hover,
.e-con-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"]:focus,
.e-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"]:hover,
.e-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"]:focus,
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-con-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"]:hover,
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-con-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"]:focus,
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"]:hover,
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"]:focus,
.elementor-element-febda25 .elementor-button:hover,
.elementor-element-febda25 .elementor-button:focus,
.elementor-element-b862076 .elementor-button:hover,
.elementor-element-b862076 .elementor-button:focus,
.elementor-element-aa1af71 .elementor-button:hover,
.elementor-element-aa1af71 .elementor-button:focus,
.elementor-element-7b06985 .elementor-button:hover,
.elementor-element-7b06985 .elementor-button:focus,
.elementor-element-dbb11bd .elementor-button:hover,
.elementor-element-dbb11bd .elementor-button:focus,
.elementor-element-pHeroBtn .elementor-button:hover,
.elementor-element-pHeroBtn .elementor-button:focus,
.elementor-element-faqHeroBtn .elementor-button:hover,
.elementor-element-faqHeroBtn .elementor-button:focus,
.elementor-element-blogHeroBtn .elementor-button:hover,
.elementor-element-blogHeroBtn .elementor-button:focus,
.elementor-element-4e5d493 .elementor-button:hover,
.elementor-element-4e5d493 .elementor-button:focus,
.elementor-element-saCtaBtn .elementor-button:hover,
.elementor-element-saCtaBtn .elementor-button:focus {
	background-color: #1f64d6 !important;
	color: #fff !important;
}

.e-con-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"] .elementor-button-content-wrapper,
.e-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"] .elementor-button-content-wrapper,
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-con-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"] .elementor-button-content-wrapper,
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"] .elementor-button-content-wrapper,
.elementor-element-febda25 .elementor-button-content-wrapper,
.elementor-element-b862076 .elementor-button-content-wrapper,
.elementor-element-aa1af71 .elementor-button-content-wrapper,
.elementor-element-7b06985 .elementor-button-content-wrapper,
.elementor-element-dbb11bd .elementor-button-content-wrapper,
.elementor-element-pHeroBtn .elementor-button-content-wrapper,
.elementor-element-faqHeroBtn .elementor-button-content-wrapper,
.elementor-element-blogHeroBtn .elementor-button-content-wrapper,
.elementor-element-4e5d493 .elementor-button-content-wrapper,
.elementor-element-saCtaBtn .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.e-con-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"] .elementor-button-content-wrapper::after,
.e-parent:has(h1.elementor-heading-title) .elementor-widget-button .elementor-button[href*="free-estimate"] .elementor-button-content-wrapper::after,
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-con-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"] .elementor-button-content-wrapper::after,
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-button .elementor-button[href*="free-estimate"] .elementor-button-content-wrapper::after,
.elementor-element-febda25 .elementor-button-content-wrapper::after,
.elementor-element-b862076 .elementor-button-content-wrapper::after,
.elementor-element-aa1af71 .elementor-button-content-wrapper::after,
.elementor-element-7b06985 .elementor-button-content-wrapper::after,
.elementor-element-dbb11bd .elementor-button-content-wrapper::after,
.elementor-element-pHeroBtn .elementor-button-content-wrapper::after,
.elementor-element-faqHeroBtn .elementor-button-content-wrapper::after,
.elementor-element-blogHeroBtn .elementor-button-content-wrapper::after,
.elementor-element-4e5d493 .elementor-button-content-wrapper::after,
.elementor-element-saCtaBtn .elementor-button-content-wrapper::after {
	content: "";
	width: 7px;
	height: 7px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
	margin-right: 2px;
}

.elementor-element-faqHeroBtn,
.elementor-element-blogHeroBtn,
.elementor-element-4e5d493,
.elementor-element-saCtaBtn,
.e-parent:has(h1.elementor-heading-title) .elementor-widget-button:has(.elementor-button[href*="free-estimate"]),
.e-con-parent:has(h1.elementor-heading-title) .elementor-widget-button:has(.elementor-button[href*="free-estimate"]),
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-button:has(.elementor-button[href*="free-estimate"]),
.elementor[data-elementor-type="wp-page"] > .elementor-element.e-con-parent:first-child .elementor-widget-button:has(.elementor-button[href*="free-estimate"]) {
	margin: 22px 0 0 !important;
}

.primmer-hero-trust {
	display: flex;
	align-items: flex-start;
	gap: 0;
	width: 100%;
	max-width: 720px;
	margin: 18px 0 0;
	color: #fff;
}

.primmer-hero-trust__item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 0 22px 0 20px;
	flex: 1 1 0;
	min-width: 0;
}

.primmer-hero-trust__item:first-child {
	padding-left: 0;
}

.primmer-hero-trust__item + .primmer-hero-trust__item {
	border-left: 1px solid rgba(255, 255, 255, 0.7);
}

.primmer-hero-trust svg {
	width: 28px;
	height: 28px;
	flex: none;
	margin-top: 1px;
}

.primmer-hero-trust span {
	font-family: Inter, sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
}

@media (max-width: 1100px) {
	.elementor-11 .elementor-element.elementor-element-1456e6b > .e-con-inner {
		flex-direction: column !important;
		align-items: flex-start !important;
	}

	.elementor-11 .elementor-element.elementor-element-a4c1358 {
		width: 100% !important;
		max-width: 640px;
	}

	.elementor-11 .elementor-element.elementor-element-728f785,
	.elementor-11 .cust-request-form {
		flex: 0 0 auto;
		width: min(380px, 100%);
		margin-left: 0;
	}
}

@media (max-width: 1024px) {
	.elementor-11 .elementor-element.elementor-element-4d5fc0b {
		--padding-top: 72px;
		--padding-bottom: 48px;
		--padding-left: 28px;
		--padding-right: 28px;
		--gap: 24px;
		min-height: 0;
	}

	.primmer-hero-trust {
		flex-wrap: wrap;
		gap: 16px 0;
	}

	.primmer-hero-trust__item + .primmer-hero-trust__item {
		border-left: 0;
		padding-left: 0;
	}
}

@media (max-width: 767px) {
	.elementor-11 .elementor-element.elementor-element-4d5fc0b {
		--padding-top: 48px;
		--padding-left: 20px;
		--padding-right: 20px;
		min-height: 0;
		background-position: center center;
	}

	.elementor-11 .elementor-element.elementor-element-626b251 .elementor-heading-title {
		font-size: 36px;
	}

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

	.elementor-11 .elementor-element.elementor-element-728f785,
	.elementor-11 .cust-request-form {
		width: 100%;
		max-width: 380px;
	}

	.primmer-hero-trust {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}

	.primmer-hero-trust__item,
	.primmer-hero-trust__item + .primmer-hero-trust__item {
		padding: 0;
		border-left: 0;
	}
}

/* Homepage featured services — sits above the Elementor services band. */
.primmer-home-services {
	width: 100%;
	padding: 100px 30px;
	background: #1f4d7a;
}

.primmer-home-services__inner {
	width: min(100%, 1440px);
	max-width: 1440px;
	margin: 0 auto;
}

.primmer-home-services__intro {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 32px;
}

.primmer-home-services__eyebrow {
	margin: 0 0 14px;
	color: #fff !important;
}

.primmer-home-services__eyebrow::after {
	background: #2f78ed;
}

.primmer-home-services__title {
	margin: 0;
	max-width: 16ch;
	color: #fff;
	font-size: clamp(32px, 3.4vw, 44px);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.1;
}

.primmer-home-services__all {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 22px;
	border-radius: 999px;
	background: #fff;
	color: #1f4d7a !important;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
}

.primmer-home-services__all:hover,
.primmer-home-services__all:focus {
	background: #e8eef5;
	color: #1f4d7a !important;
}

.primmer-home-services__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.primmer-home-services__card {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(16, 38, 61, 0.08);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.primmer-home-services__card:hover,
.primmer-home-services__card:focus {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(16, 38, 61, 0.14);
	color: inherit;
}

.primmer-home-services__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #d9e2ec;
}

.primmer-home-services__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.primmer-home-services__card:hover .primmer-home-services__media img,
.primmer-home-services__card:focus .primmer-home-services__media img {
	transform: scale(1.04);
}

.primmer-home-services__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 16px 20px;
}

.primmer-home-services__name {
	color: #10263d;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
}

.primmer-home-services__blurb {
	color: #5b6570;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.45;
}

@media (max-width: 1100px) {
	.primmer-home-services__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 1024px) {
	.primmer-home-services {
		padding: 72px 24px;
	}

	.primmer-home-services__intro {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 720px) {
	.primmer-home-services__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 520px) {
	.primmer-home-services {
		padding: 56px 20px;
	}

	.primmer-home-services__grid {
		grid-template-columns: 1fr;
	}

	.primmer-home-services__title {
		max-width: none;
	}
}

/* Contact — map full-bleed to footer, no bottom section pad. */
.elementor-1109 .elementor-element-a9c2707 {
	--padding-bottom: 0px;
	padding-bottom: 0 !important;
	overflow-x: clip;
}

/* Keep intro → cards → map stacked (no space-between stretch), but restore
   the vertical rhythm the gap:0 map-bleed override had wiped out. */
.elementor-1109 .elementor-element-52fea52 {
	--gap: 48px;
	gap: 48px !important;
	justify-content: flex-start !important;
}

.elementor-1109 .elementor-element-ac18fc2 {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.elementor-1109 .elementor-element-e7031f2 {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding: 0 !important;
}

.elementor-1109 .elementor-element-dd557ca {
	width: 100% !important;
	margin: 0 !important;
	border-radius: 0 !important;
}

.elementor-1109 .elementor-element-dd557ca .elementor-custom-embed,
.elementor-1109 .elementor-element-dd557ca iframe {
	display: block;
	width: 100% !important;
	border: 0;
	border-radius: 0 !important;
}

/* Project single — media gallery on secondary navy, before Related Services. */
.elementor-2016 .elementor-element-prjMedia {
	background-color: var(--e-global-color-secondary, #1f4d7a) !important;
	--padding-top: 80px;
	--padding-bottom: 80px;
	--padding-left: 30px;
	--padding-right: 30px;
}

.project-media {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	color: #fff;
}

.project-media__eyebrow {
	margin: 0 0 16px;
	color: rgba(255, 255, 255, 0.88) !important;
}

.project-media__eyebrow::after {
	background: #7eb8e0 !important;
}

.project-media__title {
	margin: 0;
	max-width: 16em;
	font-size: 40px;
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: #fff;
}

.project-media__carousel {
	position: relative;
	margin-top: 28px;
}

.project-media__track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 0 52px;
	scrollbar-width: none;
}

.project-media__track::-webkit-scrollbar {
	display: none;
}

.project-media__slide {
	flex: 0 0 calc(50% - 8px);
	margin: 0;
	overflow: hidden;
	border-radius: 24px;
	background: rgba(0, 0, 0, 0.18);
	scroll-snap-align: start;
}

.project-media__link {
	position: relative;
	display: block;
	color: inherit;
	text-decoration: none;
}

.project-media__slide img {
	display: block;
	width: 100%;
	height: 320px;
	object-fit: cover;
}

.project-media__zoom {
	position: absolute;
	right: 14px;
	bottom: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.94);
	color: #136b9e;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
	opacity: 0;
	transform: translateY(4px);
	transition: opacity 0.18s ease, transform 0.18s ease;
	pointer-events: none;
}

.project-media__link:hover .project-media__zoom,
.project-media__link:focus .project-media__zoom,
.project-media__link:focus-visible .project-media__zoom {
	opacity: 1;
	transform: translateY(0);
}

@media (hover: none) {
	.project-media__zoom {
		opacity: 1;
		transform: none;
	}
}

.project-media__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: #136b9e;
	cursor: pointer;
}

.project-media__nav--prev {
	left: 0;
}

.project-media__nav--next {
	right: 0;
}

.project-media__nav:hover,
.project-media__nav:focus {
	background: #f2f7fb;
}

.project-media__nav span {
	font-size: 18px;
	line-height: 1;
}

@media (max-width: 1024px) {
	.elementor-2016 .elementor-element-prjMedia {
		--padding-top: 64px;
		--padding-bottom: 64px;
	}

	.project-media__title {
		font-size: 32px;
	}
}

@media (max-width: 900px) {
	.project-media__slide {
		flex-basis: 100%;
	}

	.project-media__slide img {
		height: 240px;
	}

	.project-media__track {
		padding: 0 48px;
	}
}

@media (max-width: 767px) {
	.elementor-2016 .elementor-element-prjMedia {
		--padding-top: 56px;
		--padding-bottom: 56px;
		--padding-left: 20px;
		--padding-right: 20px;
	}
}

