.elementor-kit-137{--e-global-color-primary:#EE7D18;--e-global-color-secondary:#231F20;--e-global-color-text:#231F20;--e-global-color-accent:#3E2318;--e-global-typography-primary-font-family:"Open Sans";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Open Sans";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Open Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Open Sans";--e-global-typography-accent-font-weight:600;color:#231F20;font-family:"Open Sans", Sans-serif;font-size:16px;font-weight:400;}.elementor-kit-137 button,.elementor-kit-137 input[type="button"],.elementor-kit-137 input[type="submit"],.elementor-kit-137 .elementor-button{background-color:#EE7D18;font-family:"Open Sans", Sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#FFFFFF;}.elementor-kit-137 button:hover,.elementor-kit-137 button:focus,.elementor-kit-137 input[type="button"]:hover,.elementor-kit-137 input[type="button"]:focus,.elementor-kit-137 input[type="submit"]:hover,.elementor-kit-137 input[type="submit"]:focus,.elementor-kit-137 .elementor-button:hover,.elementor-kit-137 .elementor-button:focus{background-color:#3E2318;color:#FFFFFF;}.elementor-kit-137 e-page-transition{background-color:#FFBC7D;}.elementor-kit-137 a{color:#EE7D18;}.elementor-kit-137 a:hover{color:#3E2318;}.elementor-kit-137 h1{color:#231F20;font-family:"Open Sans", Sans-serif;font-weight:700;}.elementor-kit-137 h2{color:#231F20;font-family:"Open Sans", Sans-serif;font-weight:700;}.elementor-kit-137 h3{color:#231F20;font-family:"Open Sans", Sans-serif;font-weight:700;}.elementor-kit-137 h4{color:#231F20;font-family:"Open Sans", Sans-serif;font-weight:700;}.elementor-kit-137 h5{color:#231F20;font-family:"Open Sans", Sans-serif;font-weight:700;}.elementor-kit-137 h6{color:#231F20;font-family:"Open Sans", Sans-serif;font-weight:700;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* BSR form styling — orange submit button */
.gform_wrapper .gform_footer .gform_button,
.gform_wrapper input[type=submit] {
	background-color: #EE7D18 !important;
	color: #FFFFFF !important;
	border: none !important;
	padding: 14px 32px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	border-radius: 2px !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease !important;
}
.gform_wrapper .gform_footer .gform_button:hover,
.gform_wrapper input[type=submit]:hover {
	background-color: #3E2318 !important;
}
.gform_wrapper .gfield input[type=text],
.gform_wrapper .gfield input[type=email],
.gform_wrapper .gfield input[type=tel],
.gform_wrapper .gfield textarea {
	border: 1px solid #D8D8D8 !important;
	padding: 10px 14px !important;
	font-size: 14px !important;
	border-radius: 2px !important;
}

/* BSR — force form card to be a 420px floating overlay */
.bsr-form-card {
	max-width: 420px !important;
	width: 100% !important;
	flex-basis: 420px !important;
	flex-grow: 0 !important;
	flex-shrink: 1 !important;
	margin-left: auto !important;
}
@media (max-width: 767px) {
	.bsr-form-card {
		max-width: 100% !important;
		flex-basis: 100% !important;
	}
}

/* BSR — ensure header logo is visible + properly sized */
.elementor-location-header .bsr-logo img,
.elementor-location-header .elementor-widget-image img {
	min-width: 200px !important;
	max-height: 50px !important;
	width: auto !important;
	height: auto !important;
	display: inline-block !important;
	opacity: 1 !important;
}
.elementor-location-header {
	padding: 0 !important;
}

/* BSR — compact GF form rows in hero */
.bsr-form-card .gform_fields {
	gap: 10px !important;
}
.bsr-form-card .gfield {
	margin: 0 !important;
	padding: 0 !important;
}
.bsr-form-card .gform_wrapper input[type=text],
.bsr-form-card .gform_wrapper input[type=email],
.bsr-form-card .gform_wrapper input[type=tel] {
	height: 40px !important;
}
.bsr-form-card .gform_wrapper textarea {
	height: 80px !important;
}

/* BSR — 3-column Why Black Square grid */
.bsr-why-grid {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 24px !important;
	align-items: stretch !important;
}
.bsr-why-grid > .e-con,
.bsr-why-grid > .elementor-element {
	flex: 1 1 calc(33.333% - 16px) !important;
	min-width: 280px !important;
	max-width: calc(33.333% - 16px) !important;
}
@media (max-width: 900px) {
	.bsr-why-grid > .e-con,
	.bsr-why-grid > .elementor-element {
		flex: 1 1 100% !important;
		max-width: 100% !important;
	}
}

/* BSR — slightly larger header logo */
.elementor-location-header .bsr-logo img {
	min-width: 240px !important;
	max-height: 54px !important;
}

/* BSR — tighten CTA banner button spacing */
.elementor-widget-button.elementor-size-md .elementor-button {
	padding: 14px 28px !important;
}
/* ============ Secondary page polish ============ */

/* Two-column layout helper (About page story) */
.bsr-two-col {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 40px !important;
}
.bsr-two-col > .bsr-col-6 {
	flex: 1 1 calc(50% - 20px) !important;
	min-width: 280px !important;
}

/* Stat strip (About page) */
.bsr-stat-strip {
	display: flex !important;
	flex-wrap: wrap !important;
}
.bsr-stat-cell {
	flex: 1 1 calc(25% - 15px) !important;
	min-width: 140px !important;
	max-width: calc(25% - 15px) !important;
}
@media (max-width: 700px) {
	.bsr-stat-cell { flex: 1 1 50% !important; max-width: 50% !important; }
}

/* Service cards grid */
.bsr-service-grid {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 28px !important;
}
.bsr-service-grid > .bsr-service-card {
	flex: 1 1 calc(33.333% - 20px) !important;
	min-width: 280px !important;
	max-width: calc(33.333% - 20px) !important;
	display: flex !important;
	flex-direction: column !important;
	overflow: hidden !important;
	transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}
.bsr-service-grid > .bsr-service-card:hover {
	transform: translateY(-4px) !important;
	box-shadow: 0 8px 24px rgba(0,0,0,0.15) !important;
}
.bsr-service-card-img {
	width: 100% !important;
	height: 200px !important;
	overflow: hidden !important;
}
.bsr-service-card-img img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}
@media (max-width: 900px) {
	.bsr-service-grid > .bsr-service-card { flex: 1 1 calc(50% - 14px) !important; max-width: calc(50% - 14px) !important; }
}
@media (max-width: 600px) {
	.bsr-service-grid > .bsr-service-card { flex: 1 1 100% !important; max-width: 100% !important; }
}

/* Project gallery — bigger thumbnails with hover */
.bsr-project-gallery .gallery {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 12px !important;
	margin: 0 !important;
}
.bsr-project-gallery .gallery-item {
	margin: 0 !important;
	width: auto !important;
	max-width: none !important;
	padding: 0 !important;
}
.bsr-project-gallery .gallery-item img {
	width: 100% !important;
	height: 220px !important;
	object-fit: cover !important;
	border-radius: 3px !important;
	transition: transform 0.25s ease, opacity 0.25s ease !important;
	border: none !important;
}
.bsr-project-gallery .gallery-item img:hover {
	opacity: 0.88 !important;
	transform: scale(1.02) !important;
}
@media (max-width: 1000px) {
	.bsr-project-gallery .gallery { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 700px) {
	.bsr-project-gallery .gallery { grid-template-columns: repeat(2, 1fr) !important; }
	.bsr-project-gallery .gallery-item img { height: 160px !important; }
}

/* Contact page 2-col */
.bsr-contact-grid {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 48px !important;
	align-items: flex-start !important;
}
.bsr-contact-grid > .bsr-contact-form-col {
	flex: 1 1 58% !important;
	min-width: 320px !important;
}
.bsr-contact-grid > .bsr-contact-info-col {
	flex: 1 1 38% !important;
	min-width: 260px !important;
	background: #FAFAFA !important;
	padding: 28px !important;
	border-radius: 4px !important;
}

/* ============ CSS v7 corrections ============ */

/* Contact 2-col — drop > child .elementor-kit-137, use descendant */
.bsr-contact-grid .bsr-contact-form-col {
	flex: 1 1 58% !important;
	min-width: 320px !important;
	max-width: 58% !important;
}
.bsr-contact-grid .bsr-contact-info-col {
	flex: 1 1 38% !important;
	min-width: 260px !important;
	max-width: 38% !important;
	background: #FAFAFA !important;
	padding: 28px !important;
	border-radius: 4px !important;
}
@media (max-width: 900px) {
	.bsr-contact-grid .bsr-contact-form-col,
	.bsr-contact-grid .bsr-contact-info-col {
		flex: 1 1 100% !important;
		max-width: 100% !important;
	}
}

/* Projects gallery — target via Elementor widget class */
.elementor-widget-image-gallery .gallery {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 12px !important;
	margin: 0 !important;
}
.elementor-widget-image-gallery .gallery-item {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	display: block !important;
}
.elementor-widget-image-gallery .gallery-item .gallery-icon {
	width: 100% !important;
	height: 220px !important;
	overflow: hidden !important;
	display: block !important;
}
.elementor-widget-image-gallery .gallery-item img {
	width: 100% !important;
	height: 220px !important;
	max-width: none !important;
	object-fit: cover !important;
	border: none !important;
	border-radius: 3px !important;
	display: block !important;
	transition: transform 0.25s ease, opacity 0.25s ease !important;
	padding: 0 !important;
}
.elementor-widget-image-gallery .gallery-item img:hover {
	opacity: 0.88 !important;
	transform: scale(1.02) !important;
}
.elementor-widget-image-gallery .gallery-caption {
	display: none !important;
}
@media (max-width: 1000px) {
	.elementor-widget-image-gallery .gallery {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}
@media (max-width: 700px) {
	.elementor-widget-image-gallery .gallery {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	.elementor-widget-image-gallery .gallery-item .gallery-icon,
	.elementor-widget-image-gallery .gallery-item img {
		height: 160px !important;
	}
}

/* Services cards — also loosen .elementor-kit-137 in case same issue */
.bsr-service-grid .bsr-service-card {
	flex: 1 1 calc(33.333% - 20px) !important;
	min-width: 280px !important;
	max-width: calc(33.333% - 20px) !important;
}
@media (max-width: 900px) {
	.bsr-service-grid .bsr-service-card {
		flex: 1 1 calc(50% - 14px) !important;
		max-width: calc(50% - 14px) !important;
	}
}
@media (max-width: 600px) {
	.bsr-service-grid .bsr-service-card {
		flex: 1 1 100% !important;
		max-width: 100% !important;
	}
}

/* About 2-col story — loosen .elementor-kit-137 too */
.bsr-two-col .bsr-col-6 {
	flex: 1 1 calc(50% - 20px) !important;
	min-width: 280px !important;
	max-width: calc(50% - 20px) !important;
}

/* Why Black Square on home — loosen .elementor-kit-137 */
.bsr-why-grid .bsr-why-card {
	flex: 1 1 calc(33.333% - 16px) !important;
	min-width: 280px !important;
	max-width: calc(33.333% - 16px) !important;
}

/* ============ Contact page: CSS Grid override ============ */
/* Force via display:grid regardless of Elementor's flex vars */
.elementor .bsr-contact-grid,
body .bsr-contact-grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) !important;
	gap: 32px !important;
	align-items: start !important;
}
.elementor .bsr-contact-grid > .bsr-contact-form-col,
.elementor .bsr-contact-grid > .bsr-contact-info-col,
body .bsr-contact-grid > .bsr-contact-form-col,
body .bsr-contact-grid > .bsr-contact-info-col {
	max-width: 100% !important;
	width: 100% !important;
	min-width: 0 !important;
	flex: initial !important;
}
.bsr-contact-info-col {
	background: #FAFAFA !important;
	padding: 28px !important;
	border-radius: 4px !important;
}
@media (max-width: 900px) {
	.elementor .bsr-contact-grid,
	body .bsr-contact-grid {
		grid-template-columns: 1fr !important;
	}
}

/* ============ MOBILE POLISH ============ */
@media (max-width: 900px) {

	/* Header — keep logo visible + show hamburger + tap-to-call */
	.elementor-location-header > .e-con {
		padding: 10px 16px !important;
		gap: 12px !important;
	}
	.elementor-location-header .bsr-logo {
		flex: 0 0 auto !important;
	}
	.elementor-location-header .bsr-logo img {
		min-width: 160px !important;
		max-width: 180px !important;
		max-height: 40px !important;
		width: auto !important;
		height: auto !important;
	}
	/* Right-group: phone + hamburger, visible and clickable */
	.elementor-location-header .e-con.e-con[data-element_type="container"]:not(:has(.bsr-logo)) {
		flex: 1 1 auto !important;
		justify-content: flex-end !important;
		gap: 12px !important;
	}
	.elementor-location-header .elementor-menu-toggle {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		padding: 8px 10px !important;
		border-radius: 4px !important;
		background: rgba(255,255,255,0.08) !important;
	}
	.elementor-location-header .elementor-menu-toggle svg,
	.elementor-location-header .elementor-menu-toggle i {
		color: #FFFFFF !important;
		fill: #FFFFFF !important;
		font-size: 22px !important;
		width: 22px !important;
		height: 22px !important;
	}
	/* Phone in header — compact on mobile */
	.elementor-location-header .elementor-widget-heading {
		margin: 0 !important;
	}
	.elementor-location-header .elementor-widget-heading .elementor-heading-title,
	.elementor-location-header .elementor-widget-heading .elementor-heading-title a {
		font-size: 14px !important;
		white-space: nowrap !important;
	}
	/* Mobile dropdown menu — full-width, dark, readable */
	.elementor-location-header .elementor-nav-menu--dropdown {
		background: #231F20 !important;
		width: 100vw !important;
		left: 0 !important;
		right: 0 !important;
	}
	.elementor-location-header .elementor-nav-menu--dropdown a {
		color: #FFFFFF !important;
		font-size: 16px !important;
		padding: 14px 20px !important;
		border-bottom: 1px solid rgba(255,255,255,0.1) !important;
	}
	.elementor-location-header .elementor-nav-menu--dropdown a:hover,
	.elementor-location-header .elementor-nav-menu--dropdown a:focus,
	.elementor-location-header .elementor-nav-menu--dropdown .current-menu-item a {
		background: rgba(238,125,24,0.15) !important;
		color: #EE7D18 !important;
	}

	/* Shrink heading sizes on mobile — fix overflow */
	.elementor-widget-heading h1.elementor-heading-title { font-size: 30px !important; line-height: 1.15 !important; }
	.elementor-widget-heading h2.elementor-heading-title { font-size: 26px !important; line-height: 1.2 !important; }
	.elementor-widget-heading h3.elementor-heading-title { font-size: 20px !important; line-height: 1.25 !important; }

	/* Body text + container breathing room */
	.elementor .e-con-boxed > .e-con-inner,
	.elementor section .e-con {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
	.elementor-widget-text-editor p {
		font-size: 15px !important;
		line-height: 1.65 !important;
	}

	/* Trust strip — tighter on mobile, 2-up instead of single column */
	.bsr-trust-strip,
	[data-element_type="container"] > .elementor-widget-heading + .elementor-widget-heading ~ * {
		font-size: 12px !important;
	}

	/* Hero form card — keep 100% width but add internal spacing */
	.bsr-form-card {
		padding: 20px !important;
	}
	.bsr-form-card .gform_wrapper .gform_fields { gap: 10px !important; }

	/* Service cards — slight padding tweak */
	.bsr-service-card-img { height: 180px !important; }
	.bsr-service-card h3 { font-size: 18px !important; }

	/* Why Black Square cards — readable on small */
	.bsr-why-card h3 { font-size: 20px !important; }

	/* CTA banner buttons — stack on narrow */
	.elementor-widget-button .elementor-button { font-size: 14px !important; padding: 12px 20px !important; }
}

/* Extra tight — phones under 480px */
@media (max-width: 480px) {
	.elementor-location-header .elementor-widget-heading .elementor-heading-title,
	.elementor-location-header .elementor-widget-heading .elementor-heading-title a {
		font-size: 13px !important;
	}
	.elementor-location-header .bsr-logo img {
		min-width: 140px !important;
		max-width: 150px !important;
	}
	.elementor-widget-heading h1.elementor-heading-title { font-size: 26px !important; }
	.elementor-widget-heading h2.elementor-heading-title { font-size: 22px !important; }
}

/* ============ MOBILE FIX V2 ============ */
@media (max-width: 900px) {

	/* Force phone heading in header to be visible, compact, and tappable */
	.elementor-location-header .elementor-widget-heading {
		display: block !important;
		visibility: visible !important;
		flex: 0 0 auto !important;
		margin-right: 8px !important;
	}
	.elementor-location-header .elementor-widget-heading .elementor-heading-title {
		font-size: 14px !important;
		margin: 0 !important;
	}
	.elementor-location-header .elementor-widget-heading .elementor-heading-title a {
		color: #EE7D18 !important;
		font-weight: 700 !important;
		white-space: nowrap !important;
		padding: 8px 10px !important;
		background: rgba(238,125,24,0.10) !important;
		border-radius: 4px !important;
		display: inline-block !important;
		font-size: 14px !important;
	}

	/* Aggressively prevent heading overflow everywhere */
	.elementor-heading-title,
	.elementor-widget-heading h1,
	.elementor-widget-heading h2,
	.elementor-widget-heading h3,
	.elementor-widget-heading h4 {
		word-wrap: break-word !important;
		overflow-wrap: break-word !important;
		hyphens: auto !important;
		max-width: 100% !important;
	}

	/* Body-level headings — smaller than before */
	.elementor-widget-heading h1.elementor-heading-title { font-size: 28px !important; line-height: 1.15 !important; }
	.elementor-widget-heading h2.elementor-heading-title { font-size: 22px !important; line-height: 1.2 !important; }
	.elementor-widget-heading h3.elementor-heading-title { font-size: 18px !important; line-height: 1.3 !important; }

	/* Service card headings — force smaller on mobile */
	.bsr-service-card .elementor-widget-heading .elementor-heading-title,
	.bsr-service-card h3 {
		font-size: 17px !important;
		line-height: 1.25 !important;
		word-break: break-word !important;
	}

	/* Why Black Square card headings */
	.bsr-why-card .elementor-heading-title,
	.bsr-why-card h3 {
		font-size: 18px !important;
		word-break: break-word !important;
	}

	/* Intro heading — "Trusted Roofing & Exteriors Across Chicagoland" */
	.elementor-widget-heading.elementor-widget-heading:first-of-type .elementor-heading-title {
		word-break: break-word !important;
	}

	/* Secondary-page hero titles */
	.elementor-location-header ~ * .elementor-widget-heading h1 { font-size: 32px !important; }

	/* Extra: make sure no text element overflows container */
	.elementor .elementor-widget,
	.elementor .elementor-element {
		max-width: 100% !important;
		overflow-wrap: break-word !important;
	}
}

@media (max-width: 480px) {
	.elementor-location-header .elementor-widget-heading .elementor-heading-title a {
		font-size: 13px !important;
		padding: 6px 8px !important;
	}
	.elementor-widget-heading h1.elementor-heading-title { font-size: 24px !important; }
	.elementor-widget-heading h2.elementor-heading-title { font-size: 20px !important; }
	.bsr-service-card .elementor-heading-title { font-size: 16px !important; }
}/* End custom CSS */