/*!
Theme Name: TSSG Digital - Elevated Power
Theme URI: https://www.tssgcoaching.com
Author: TSSG Digital
Author URI: https://www.tssgcoaching.com
Description: Elevated Power custom WordPress theme based on the TSSG Digital framework
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: tssg-local
Tags: generator-installation, generac, local-service, elevated-power

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

TSSG is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

/* ================================
   Variables
================================ */
:root {
	--brand-primary: #d71920;
	--brand-primary-dark: #9f1016;
	--brand-primary-soft: rgba(215, 25, 32, .12);
	--brand-dark: #111111;
	--brand-dark-2: #1c1c1c;
	--brand-gray: #4b5563;
	--brand-muted: #6b7280;
	--brand-border: rgba(0, 0, 0, .09);
	--brand-light: #f5f6f8;
	--brand-white: #ffffff;
	--brand-gradient: linear-gradient(135deg, #d71920, #ff3b42);
	--brand-shadow: 0 24px 70px rgba(215, 25, 32, .2);
	--brand-dark-shadow: 0 34px 90px rgba(0, 0, 0, .24);
	--radius-sm: 10px;
	--radius-md: 16px;
	--radius-lg: 26px;
	--container: 1240px;
	--font-heading: "Sora", sans-serif;
	--font-body: "Inter", sans-serif;
}

/* ================================
   Reset / Base
================================ */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--brand-white);
	color: var(--brand-dark);
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.65;
	font-weight: 400;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.admin-bar .ep-site-header {
	top: 32px;
}

img,
picture,
video,
svg,
canvas {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

a {
	color: var(--brand-primary);
}

a:hover {
	color: var(--brand-primary-dark);
}

button,
input,
select,
textarea {
	font: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	color: var(--brand-dark);
	font-family: var(--font-heading);
	font-weight: 800;
	letter-spacing: -.055em;
	line-height: .95;
	text-wrap: balance;
}

p {
	margin: 0 0 1.5rem;
	color: var(--brand-gray);
	max-width: 70ch;
}

.site-main {
	overflow: hidden;
}

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

.screen-reader-text:focus {
	top: 8px;
	left: 8px;
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 12px 16px;
	clip: auto !important;
	background: #fff;
	color: #111;
	border-radius: 8px;
	box-shadow: 0 8px 30px rgba(0, 0, 0, .2);
}

/* ================================
   Global Layout / Utilities
================================ */
.ep-container {
	width: min(var(--container), calc(100% - 40px));
	margin-inline: auto;
}

.ep-section {
	position: relative;
	padding: 96px 0;
}

.ep-section-header {
	max-width: 880px;
	margin-bottom: 54px;
}

.ep-section-header h2 {
	font-size: clamp(2.7rem, 5.4vw, 5.8rem);
	line-height: .9;
}

.ep-section-header p {
	margin-top: 22px;	
	font-size: 1.1rem;
	line-height: 1.8;
	color: var(--brand-muted);
}

.ep-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 24px;
	color: var(--brand-primary);
	font-size: .73rem;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.ep-eyebrow::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--brand-primary);
	box-shadow: 0 0 0 6px rgba(215, 25, 32, .14);
}

.ep-eyebrow--light,
.ep-hero .ep-eyebrow,
.ep-services-dark .ep-eyebrow,
.ep-proof .ep-eyebrow,
.ep-final-cta .ep-eyebrow,
.ep-footer-cta .ep-eyebrow {
	color: #fff;
}

.ep-eyebrow--light::before,
.ep-hero .ep-eyebrow::before,
.ep-services-dark .ep-eyebrow::before,
.ep-proof .ep-eyebrow::before,
.ep-final-cta .ep-eyebrow::before,
.ep-footer-cta .ep-eyebrow::before {
	background: var(--brand-primary);
}

.ep-reveal {
	opacity: 0;
	transform: translateY(26px);
	animation: epReveal .8s cubic-bezier(.16, 1, .3, 1) forwards;
}

.ep-reveal-delay-1 {
	animation-delay: .12s;
}

.ep-reveal-delay-2 {
	animation-delay: .24s;
}

.ep-reveal-delay-3 {
	animation-delay: .36s;
}

@keyframes epReveal {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ================================
   Buttons
================================ */
.ep-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 22px;
	border-radius: var(--radius-sm);
	border: 1px solid transparent;
	font-size: .95rem;
	font-weight: 800;
	letter-spacing: -.02em;
	text-decoration: none;
	white-space: nowrap;
	transition: transform .24s ease, box-shadow .24s ease, background .24s ease, color .24s ease, border-color .24s ease;
}

.ep-btn:hover {
	transform: translateY(-2px);
	text-decoration: none;
}

.ep-btn-primary {
	background: var(--brand-gradient);
	color: #fff !important;
	box-shadow: var(--brand-shadow);
}

.ep-btn-primary:hover {
	color: #fff !important;
	box-shadow: 0 28px 80px rgba(215, 25, 32, .3);
}

.ep-btn-light {
	background: rgba(255, 255, 255, .12);
	color: #fff !important;
	border-color: rgba(255, 255, 255, .24);
	backdrop-filter: blur(12px);
}

.ep-btn-light:hover {
	background: #fff;
	color: var(--brand-dark) !important;
}

.ep-btn-secondary {
	background: #fff;
	color: var(--brand-dark) !important;
	border-color: var(--brand-border);
	box-shadow: 0 14px 34px rgba(0, 0, 0, .07);
}

.ep-btn-secondary:hover {
	color: var(--brand-primary) !important;
	box-shadow: 0 20px 48px rgba(0, 0, 0, .1);
}

/* ================================
   Header
================================ */
.ep-site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 9999;
	background: rgba(255, 255, 255, .98);
	backdrop-filter: blur(18px);
	border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.ep-topbar {
	background: var(--brand-dark);
	color: rgba(255, 255, 255, .72);
	font-size: .82rem;
}

.ep-topbar__inner {
	min-height: 36px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.ep-topbar__right {
	display: flex;
	align-items: center;
	gap: 18px;
}

.ep-topbar a {
	color: rgba(255, 255, 255, .78);
	text-decoration: none;
	font-weight: 800;
}

.ep-topbar a:hover,
.ep-topbar strong {
	color: #fff;
}

.ep-nav-wrap {
	position: relative;
	background: rgba(255, 255, 255, .98);
}

.ep-nav-wrap::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--brand-primary), transparent);
	opacity: .9;
	transform: translateX(-100%);
	animation: epHeaderLine 8s ease-in-out infinite;
}

@keyframes epHeaderLine {
	0% { transform: translateX(-100%); }
	45% { transform: translateX(0); }
	100% { transform: translateX(100%); }
}

.ep-nav-inner {
	height: 88px;
	display: flex;
	align-items: center;
	gap: 34px;
}

.ep-brand {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	text-decoration: none;
}

.ep-brand img {
	width: 220px;
	height: auto;
	max-height: 68px;
	object-fit: contain;
}

.ep-main-nav {
	margin-left: auto;
}

.ep-main-nav ul {
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ep-main-nav a {
	position: relative;
	color: var(--brand-dark);
	font-size: .92rem;
	font-weight: 850;
	text-decoration: none;
}

.ep-main-nav > ul > li > a {
	min-height: 88px;
	display: flex;
	align-items: center;
}

.ep-main-nav a:hover {
	color: var(--brand-primary);
}

.has-dropdown {
	position: relative;
}

.has-dropdown > a::after {
	content: "";
	width: 7px;
	height: 7px;
	margin-left: 9px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	opacity: .55;
}

.ep-dropdown {
	position: absolute;
	top: 100%;
	left: -18px;
	display: grid !important;
	gap: 4px !important;
	width: 270px;
	margin: 0;
	padding: 12px !important;
	list-style: none;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: var(--radius-md);
	box-shadow: 0 24px 70px rgba(0, 0, 0, .16);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: .22s ease;
}

.ep-dropdown--wide {
	width: 320px;
}

.has-dropdown:hover .ep-dropdown,
.has-dropdown:focus-within .ep-dropdown {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.ep-dropdown a {
	display: block;
	padding: 12px 14px;
	border-radius: 10px;
	color: var(--brand-dark);
	font-size: .9rem;
}

.ep-dropdown a:hover {
	background: var(--brand-light);
	color: var(--brand-primary);
}

.ep-header-actions {
	display: flex;
	align-items: center;
	gap: 14px;
}

.ep-phone-link {
	color: var(--brand-dark);
	font-weight: 900;
	text-decoration: none;
	white-space: nowrap;
}

.ep-phone-link:hover {
	color: var(--brand-primary);
}

.ep-menu-toggle {
	display: none;
	width: 48px;
	height: 48px;
	border: 1px solid rgba(0, 0, 0, .1);
	border-radius: var(--radius-sm);
	background: #fff;
	cursor: pointer;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 5px;
}

.ep-menu-toggle span {
	width: 20px;
	height: 2px;
	background: var(--brand-dark);
	border-radius: 99px;
}

.ep-mobile-panel {
	display: none;
	padding: 18px 20px 22px;
	background: #fff;
	border-top: 1px solid rgba(0, 0, 0, .08);
}

.ep-mobile-panel a {
	display: block;
	padding: 13px 0;
	color: var(--brand-dark);
	font-weight: 850;
	text-decoration: none;
}

.ep-mobile-panel .ep-btn {
	margin-top: 14px;
	text-align: center;
}

/* ================================
   Homepage Hero
================================ */
.ep-hero--home {
	position: relative;
	min-height: 820px;
	padding: 180px 0 130px;
	background: var(--brand-dark);
	color: #fff;
	overflow: visible;
}

.ep-hero__bg,
.ep-hero__shade,
.ep-hero__glow {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.ep-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 75% center;
	transform: scale(1.08);
	will-change: transform;
}

@keyframes epHeroSlowZoom {
	from { transform: scale(1.08); }
	to { transform: scale(1.14); }
}

.ep-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .96) 0%, rgba(0, 0, 0, .76) 46%, rgba(0, 0, 0, .34) 100%),
		linear-gradient(180deg, rgba(0, 0, 0, .16), rgba(0, 0, 0, .82));
}

.ep-hero__glow {
	z-index: 2;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 28%, rgba(215, 25, 32, .34), transparent 32%),
		radial-gradient(circle at 88% 74%, rgba(215, 25, 32, .18), transparent 28%);
	mix-blend-mode: screen;
}

.ep-hero__inner {
	position: relative;
	z-index: 3;
	min-height: 510px;
	display: grid;
	align-content: end;
}

.ep-hero__content {
	max-width: 860px;
}

.ep-hero--home h1 {
	max-width: 900px;
	color: #fff;
	font-size: clamp(4rem, 8vw, 8.2rem);
	line-height: .84;
	letter-spacing: -.07em;
	animation: epTitleIn 1.1s cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes epTitleIn {
	from {
		opacity: 0;
		transform: translateY(36px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.ep-hero--home .ep-hero__content > p:not(.ep-eyebrow) {
	max-width: 680px;
	margin: 28px 0 0;
	color: rgba(255, 255, 255, .84);
	font-size: 1.18rem;
	line-height: 1.78;
}

.ep-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 36px;
}

.ep-hero-proof {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	width: min(100%, 760px);
	margin-top: 58px;
	margin-bottom: -42px;
	transform: translateY(42px);
	position: relative;
	z-index: 20;
	background: rgba(255, 255, 255, .16);
	border: 1px solid rgba(255, 255, 255, .2);
	backdrop-filter: blur(18px);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 30px 90px rgba(0, 0, 0, .28);
}

.ep-hero-proof div {
	padding: 24px;
	background: rgba(255, 255, 255, .12);
}

.ep-hero-proof span {
	display: block;
	margin-bottom: 10px;
	color: var(--brand-primary);
	font-size: .75rem;
	font-weight: 950;
	letter-spacing: .18em;
}

.ep-hero-proof strong {
	display: block;
	color: #fff;
	font-size: .98rem;
	font-weight: 850;
}

.ep-hero-card {
	position: absolute;
	right: 0;
	bottom: 62px;
	width: min(100%, 330px);
	padding: 24px;
	border-radius: 20px;
	background: rgba(255, 255, 255, .94);
	backdrop-filter: blur(18px);
	box-shadow: 0 30px 90px rgba(0, 0, 0, .3);
}

.ep-hero-card span {
	display: block;
	color: var(--brand-muted);
	font-size: .74rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .12em;
}

.ep-hero-card strong {
	display: block;
	margin-top: 8px;
	color: var(--brand-dark);
	font-size: 1.35rem;
	font-weight: 900;
}

.ep-hero-card a {
	display: inline-flex;
	margin-top: 12px;
	color: var(--brand-primary);
	font-weight: 900;
	text-decoration: none;
}

/* ================================
   Homepage Intro
================================ */
.ep-home-intro {
	position: relative;
	padding: 96px 0 110px;
	background: #fff;
}

.ep-home-intro__grid,
.ep-install-feature__grid,
.ep-service-area__grid,
.ep-proof__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-home-intro h2,
.ep-install-feature h2,
.ep-service-area h2 {
	font-size: clamp(2.7rem, 5vw, 5.6rem);
	line-height: .9;
}

.ep-home-intro__content > p,
.ep-install-feature__content > p,
.ep-service-area p {
	color: var(--brand-muted);
	font-size: 1.1rem;
	line-height: 1.8;
}

.ep-home-intro__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	margin-top: 34px;
}

.ep-home-intro__stats div {
	padding: 22px;
	border-radius: 18px;
	background: var(--brand-light);
	border: 1px solid rgba(0, 0, 0, .06);
}

.ep-home-intro__stats strong {
	display: block;
	color: var(--brand-primary);
	font-size: 2rem;
	font-weight: 950;
	line-height: 1;
}

.ep-home-intro__stats span {
	display: block;
	margin-top: 8px;
	color: var(--brand-gray);
	font-size: .9rem;
	font-weight: 800;
	line-height: 1.35;
}

.ep-image-overlay {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-lg);
}

.ep-image-overlay img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s ease;
}

.ep-image-overlay::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, transparent, rgba(0, 0, 0, .45)),
		radial-gradient(circle at 20% 20%, rgba(215, 25, 32, .18), transparent 32%);
	pointer-events: none;
}

.ep-image-overlay:hover img {
	transform: scale(1.06);
}

.ep-home-intro__image {
	position: relative;
	height: 100%;
	min-height: 0;
	overflow: hidden;
	border-radius: 24px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-home-intro__image img {
	width: 100%;
	height: 100%;
	min-height: 420px;
	object-fit: cover;
	display: block;
}

/* ================================
   Installation Feature
================================ */
.ep-install-feature {
	background: linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-stacked-visual {
	position: relative;
	min-height: 540px;
}

.ep-stack {
	position: absolute;
	display: block;
	object-fit: cover;
	border-radius: 24px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-stack--main {
	left: 0;
	top: 24px;
	width: 76%;
	aspect-ratio: 4 / 5;
}

.ep-stack--small {
	right: 0;
	bottom: 42px;
	width: 54%;
	aspect-ratio: 4 / 3;
	border: 8px solid #fff;
}

.ep-visual-badge {
	position: absolute;
	right: 30px;
	top: 0;
	z-index: 4;
	padding: 20px;
	border-radius: 18px;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 24px 80px rgba(0, 0, 0, .18);
}

.ep-visual-badge strong,
.ep-visual-badge span {
	display: block;
}

.ep-visual-badge strong {
	color: var(--brand-primary);
	font-size: 1.4rem;
	font-weight: 950;
}

.ep-visual-badge span {
	margin-top: 4px;
	color: var(--brand-gray);
	font-weight: 800;
}

.ep-check-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin: 32px 0;
}

.ep-check-list div {
	position: relative;
	padding: 16px 16px 16px 42px;
	border-radius: 14px;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .07);
	color: var(--brand-dark);
	font-weight: 850;
}

.ep-check-list div::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 18px;
	width: 14px;
	height: 8px;
	border-left: 3px solid var(--brand-primary);
	border-bottom: 3px solid var(--brand-primary);
	transform: rotate(-45deg);
}

/* ================================
   Dark Services
================================ */
.ep-services-dark {
	position: relative;
	padding: 120px 0;
	background:
		radial-gradient(circle at 14% 18%, rgba(215, 25, 32, .18), transparent 30%),
		linear-gradient(135deg, #111, #252525);
	color: #fff;
	overflow: hidden;
}

.ep-services-dark__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-services-dark h2,
.ep-proof h2,
.ep-final-cta h2,
.ep-footer-cta h2 {
	color: #fff;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-services-dark__header p,
.ep-proof__content p,
.ep-final-cta__content p,
.ep-footer-cta p:not(.ep-eyebrow) {
	max-width: 760px;
	margin-top: 22px;
	color: rgba(255, 255, 255, .74);
	font-size: 1.1rem;
	line-height: 1.8;
}

.ep-services-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-service-card {
	position: relative;
	min-height: 440px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	border-radius: 24px;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 30px 90px rgba(0, 0, 0, .24);
}

.ep-service-card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.ep-service-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(0, 0, 0, .05), rgba(0, 0, 0, .86)),
		radial-gradient(circle at 20% 24%, rgba(215, 25, 32, .24), transparent 32%);
}

.ep-service-card:hover img {
	transform: scale(1.08);
}

.ep-service-card div {
	position: relative;
	z-index: 2;
	padding: 24px;
}

.ep-service-card span {
	display: block;
	margin-bottom: 12px;
	color: var(--brand-primary);
	font-size: .75rem;
	font-weight: 950;
	letter-spacing: .16em;
}

.ep-service-card h3 {
	color: #fff;
	font-size: 1.35rem;
}

.ep-service-card p {
	margin: 12px 0 0;
	color: rgba(255, 255, 255, .72);
	line-height: 1.65;
}

/* ================================
   Process
================================ */
.ep-process {
	background: #fff;
}

.ep-process-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-process-step {
	padding: 28px;
	border-radius: 22px;
	background: var(--brand-light);
	border: 1px solid rgba(0, 0, 0, .06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-process-step:hover {
	transform: translateY(-7px);
	box-shadow: 0 24px 70px rgba(0, 0, 0, .08);
}

.ep-process-step span {
	display: inline-flex;
	margin-bottom: 26px;
	color: var(--brand-primary);
	font-size: 2.8rem;
	font-weight: 900;
	line-height: .8;
}

.ep-process-step h3 {
	margin-bottom: 12px;
}

.ep-process-step p {
	margin: 0;
	color: var(--brand-muted);
	line-height: 1.7;
}

/* ================================
   Financing / Full Image Feature
================================ */
.ep-financing,
.ep-final-cta,
.ep-footer-cta {
	position: relative;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-financing {
	min-height: 760px;
}

.ep-final-cta {
	min-height: 720px;
}

.ep-footer-cta {
	min-height: 540px;
}

.ep-financing__image,
.ep-final-cta__bg,
.ep-footer-cta__bg,
.ep-final-cta__shade,
.ep-footer-cta__shade {
	position: absolute;
	inset: 0;
}

.ep-financing__image img,
.ep-final-cta__bg img,
.ep-footer-cta__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.ep-financing::after,
.ep-final-cta__shade,
.ep-footer-cta__shade {
	content: "";
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .92), rgba(0, 0, 0, .64), rgba(0, 0, 0, .24)),
		radial-gradient(circle at 18% 40%, rgba(215, 25, 32, .28), transparent 32%);
}

.ep-financing__content,
.ep-final-cta__content,
.ep-footer-cta__inner {
	position: relative;
	z-index: 2;
}

.ep-financing__content > div {
	max-width: 680px;
}

.ep-financing h2 {
	color: #fff;
	font-size: clamp(3rem, 6vw, 6.4rem);
	line-height: .88;
}

.ep-financing p {
	color: rgba(255, 255, 255, .76);
	font-size: 1.12rem;
	line-height: 1.8;
}

.ep-financing-card {
	margin: 32px 0;
	padding: 24px;
	border-radius: 18px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .14);
	backdrop-filter: blur(18px);
}

.ep-financing-card strong,
.ep-financing-card span {
	display: block;
}

.ep-financing-card strong {
	color: #fff;
	font-size: 1.15rem;
}

.ep-financing-card span {
	margin-top: 6px;
	color: rgba(255, 255, 255, .68);
}

/* ================================
   Service Area
================================ */
.ep-service-area {
	background: var(--brand-light);
}

.ep-area-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 32px 0;
}

.ep-area-list span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 13px;
	border-radius: 10px;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .08);
	color: var(--brand-dark);
	font-size: .86rem;
	font-weight: 850;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .04);
}

/* ================================
   Proof / Review
================================ */
.ep-proof {
	position: relative;
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215, 25, 32, .18), transparent 32%),
		linear-gradient(135deg, #151515, #282828);
	color: #fff;
}

.ep-proof__grid {
	grid-template-columns: 1fr 460px;
}

.ep-review-card {
	padding: 34px;
	border-radius: 24px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .14);
	backdrop-filter: blur(18px);
	box-shadow: 0 30px 90px rgba(0, 0, 0, .2);
}

.ep-stars {
	color: var(--brand-primary);
	letter-spacing: .14em;
	font-weight: 950;
	margin-bottom: 24px;
}

.ep-review-card blockquote {
	margin: 0;
	color: #fff;
	font-size: 1.7rem;
	line-height: 1.25;
	letter-spacing: -.04em;
	font-family: var(--font-heading);
	font-weight: 700;
}

.ep-review-author {
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, .14);
}

.ep-review-author strong,
.ep-review-author span {
	display: block;
}

.ep-review-author strong {
	color: #fff;
}

.ep-review-author span {
	margin-top: 4px;
	color: rgba(255, 255, 255, .62);
}

/* ================================
   Final CTA
================================ */
.ep-final-cta:hover .ep-final-cta__bg img,
.ep-footer-cta:hover .ep-footer-cta__bg img {
	transform: scale(1.06);
}

.ep-final-cta__content {
	max-width: 860px;
}

/* ================================
   Footer
================================ */
.ep-footer {
	background: var(--brand-dark);
	color: rgba(255, 255, 255, .72);
}

.ep-footer-cta__inner {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 60px;
	align-items: end;
}

.ep-footer-cta h2 {
	max-width: 900px;
	font-size: clamp(3rem, 6vw, 6.6rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-footer-cta__actions {
	display: grid;
	gap: 12px;
	min-width: 230px;
}

.ep-footer-main {
	position: relative;
	padding: 86px 0 64px;
	background:
		radial-gradient(circle at 12% 12%, rgba(215, 25, 32, .14), transparent 28%),
		linear-gradient(135deg, #151515, #222);
	border-top: 1px solid rgba(255, 255, 255, .1);
}

.ep-footer-main__grid {
	display: grid;
	grid-template-columns: 1.7fr 1fr 1fr 1.15fr;
	gap: 56px;
	align-items: start;
}

.ep-footer-brand img {
	width: 240px;
	height: auto;
	max-height: 82px;
	object-fit: contain;
	margin-bottom: 24px;
}

.ep-footer-brand p {
	max-width: 430px;
	margin: 0;
	color: rgba(255, 255, 255, .68);
	line-height: 1.8;
}

.ep-footer-contact-card {
	margin-top: 28px;
	padding: 20px;
	border-radius: 18px;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .12);
	backdrop-filter: blur(16px);
}

.ep-footer-contact-card span {
	display: block;
	color: rgba(255, 255, 255, .58);
	font-size: .74rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-footer-contact-card a {
	display: inline-flex;
	margin-top: 8px;
	color: #fff;
	font-size: 1.35rem;
	font-weight: 950;
	text-decoration: none;
}

.ep-footer h3 {
	margin: 0 0 20px;
	color: #fff;
	font-size: .82rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ep-footer li + li {
	margin-top: 12px;
}

.ep-footer a {
	color: rgba(255, 255, 255, .72);
	text-decoration: none;
	transition: color .2s ease, transform .2s ease;
}

.ep-footer a:hover {
	color: #fff;
}

.ep-footer-main ul a {
	display: inline-flex;
	position: relative;
}

.ep-footer-main ul a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -4px;
	width: 0;
	height: 2px;
	background: var(--brand-primary);
	transition: width .2s ease;
}

.ep-footer-main ul a:hover::after {
	width: 100%;
}

.ep-footer-area-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px 14px;
}

.ep-footer-area-list li {
	margin: 0;
	color: rgba(255, 255, 255, .66);
	font-size: .92rem;
}

.ep-footer-area-link {
	display: inline-flex;
	margin-top: 22px;
	color: #fff !important;
	font-weight: 900;
}

.ep-footer-bottom {
	padding: 22px 0;
	background: #0f0f0f;
	border-top: 1px solid rgba(255, 255, 255, .08);
}

.ep-footer-bottom__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.ep-footer-bottom p {
	margin: 0;
	color: rgba(255, 255, 255, .56);
	font-size: .88rem;
}

.ep-footer-legal {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.ep-footer-legal a {
	color: rgba(255, 255, 255, .56);
	font-size: .88rem;
}

.ep-footer-legal a:hover {
	color: #fff;
}

/* ================================
   Forms
================================ */
.ep-form {
	display: grid;
	gap: 18px;
}

.ep-form-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.ep-form label {
	display: grid;
	gap: 8px;
	color: var(--brand-dark);
	font-weight: 850;
}

.ep-form input,
.ep-form select,
.ep-form textarea {
	width: 100%;
	min-height: 52px;
	padding: 13px 15px;
	border: 1px solid rgba(0, 0, 0, .14);
	border-radius: var(--radius-sm);
	background: #fff;
	color: var(--brand-dark);
}

.ep-form textarea {
	min-height: 130px;
	resize: vertical;
}

.ep-form input:focus,
.ep-form select:focus,
.ep-form textarea:focus {
	outline: 3px solid rgba(215, 25, 32, .16);
	border-color: var(--brand-primary);
}

/* ================================
   Responsive
================================ */
@media (max-width: 1180px) {
	.ep-main-nav,
	.ep-header-actions {
		display: none;
	}

	.ep-menu-toggle {
		display: flex;
		margin-left: auto;
	}

	.ep-site-header.is-open .ep-mobile-panel {
		display: grid;
	}

	.ep-nav-inner {
		height: 78px;
	}

	.ep-brand img {
		width: 190px;
	}
}

@media (max-width: 1100px) {
	.ep-services-grid,
	.ep-process-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ep-footer-main__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 900px) {
	body.admin-bar .ep-site-header {
		top: 46px;
	}

	.ep-topbar {
		display: none;
	}

	.ep-container {
		width: min(100% - 24px, var(--container));
	}

	.ep-section {
		padding: 72px 0;
	}

	.ep-hero--home {
		min-height: auto;
		padding: 145px 0 72px;
	}

	.ep-hero__inner {
		min-height: auto;
	}

	.ep-hero--home h1 {
		font-size: clamp(3.35rem, 16vw, 5.4rem);
	}

	.ep-hero-card {
		position: relative;
		right: auto;
		bottom: auto;
		margin-top: 24px;
	}

	.ep-hero-proof {
		grid-template-columns: 1fr;
		margin-top: 44px;
		margin-bottom: 0;
		transform: none;
	}

	.ep-home-intro__grid,
	.ep-install-feature__grid,
	.ep-service-area__grid,
	.ep-proof__grid,
	.ep-footer-cta__inner {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.ep-home-intro__stats,
	.ep-check-list,
	.ep-services-grid,
	.ep-process-grid,
	.ep-form-grid {
		grid-template-columns: 1fr;
	}

	.ep-home-intro__image,
	.ep-service-area__visual {
		min-height: 0;
	}

	.ep-home-intro__image img,
	.ep-service-area__visual img {
		min-height: 420px;
		object-fit: cover;
	}

	.ep-stacked-visual {
		min-height: 430px;
	}

	.ep-services-dark,
	.ep-proof {
		padding: 82px 0;
	}

	.ep-service-card {
		min-height: 360px;
	}

	.ep-financing,
	.ep-final-cta,
	.ep-footer-cta {
		min-height: 640px;
	}

	.ep-review-card blockquote {
		font-size: 1.35rem;
	}

	.ep-footer-cta__actions {
		max-width: 320px;
	}
}

@media (max-width: 700px) {
	.ep-brand img {
		width: 165px;
	}

	.ep-hero__actions,
	.ep-footer-cta__actions {
		display: grid;
	}

	.ep-btn {
		width: 100%;
	}

	.ep-footer-main__grid,
	.ep-footer-area-list {
		grid-template-columns: 1fr;
	}

	.ep-footer-bottom__inner {
		flex-direction: column;
		text-align: center;
	}

	.ep-footer-legal {
		justify-content: center;
	}
}
/* ================================
   Motion / Scroll Reveals
================================ */

.ep-scroll-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity 1.15s cubic-bezier(.22, 1, .36, 1),
		transform 1.15s cubic-bezier(.22, 1, .36, 1);
	will-change: opacity, transform;
}

.ep-scroll-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.ep-service-card.ep-scroll-reveal:nth-child(2),
.ep-process-step.ep-scroll-reveal:nth-child(2) {
	transition-delay: .08s;
}

.ep-service-card.ep-scroll-reveal:nth-child(3),
.ep-process-step.ep-scroll-reveal:nth-child(3) {
	transition-delay: .16s;
}

.ep-service-card.ep-scroll-reveal:nth-child(4),
.ep-process-step.ep-scroll-reveal:nth-child(4) {
	transition-delay: .24s;
}

.ep-services-dark::before,
.ep-proof::before {
	content: "";
	position: absolute;
	inset: -20%;
	background:
		radial-gradient(circle at 20% 30%, rgba(215,25,32,.18), transparent 28%),
		radial-gradient(circle at 80% 70%, rgba(215,25,32,.12), transparent 30%);
	animation: epGlowDrift 12s ease-in-out infinite alternate;
	pointer-events: none;
}

@keyframes epGlowDrift {
	from {
		transform: translate3d(-2%, -2%, 0) scale(1);
	}

	to {
		transform: translate3d(2%, 2%, 0) scale(1.08);
	}
}

.ep-services-dark > *,
.ep-proof > * {
	position: relative;
	z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
	.ep-scroll-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.ep-services-dark::before,
	.ep-proof::before {
		animation: none;
	}
}
/* ================================
   Generator Installation Page
================================ */

.ep-install-page {
	background: #fff;
}

.ep-install-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-install-hero__bg,
.ep-install-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-install-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1.04);
}

.ep-install-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.68), rgba(0,0,0,.18)),
		radial-gradient(circle at 20% 45%, rgba(215,25,32,.28), transparent 34%);
}

.ep-install-hero__inner {
	position: relative;
	z-index: 2;
}

.ep-install-hero__content {
	max-width: 760px;
}

.ep-install-hero .ep-eyebrow {
	color: #fff;
}

.ep-install-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.6rem, 7vw, 7.4rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-install-hero__content > p:not(.ep-eyebrow) {
	max-width: 640px;
	margin-top: 28px;
	color: rgba(255,255,255,.78);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-install-hero__badges {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	margin-top: 42px;
}

.ep-install-hero__badges div {
	padding: 18px;
	border-radius: 16px;
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(16px);
}

.ep-install-hero__badges strong {
	display: block;
	color: #fff;
	font-size: .9rem;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.ep-install-hero__badges span {
	display: block;
	margin-top: 6px;
	color: rgba(255,255,255,.7);
	font-size: .86rem;
	line-height: 1.45;
}

.ep-install-strip {
	background: #111;
	color: #fff;
}

.ep-install-strip__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: rgba(255,255,255,.12);
}

.ep-install-strip__grid div {
	padding: 28px;
	background: #171717;
}

.ep-install-strip span {
	display: block;
	margin-bottom: 14px;
	color: var(--brand-primary);
	font-size: 2rem;
	line-height: 1;
}

.ep-install-strip strong {
	display: block;
	color: #fff;
	font-size: .95rem;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.ep-install-strip p {
	margin: 8px 0 0;
	color: rgba(255,255,255,.64);
	font-size: .9rem;
	line-height: 1.55;
}

.ep-install-why {
	background: #fff;
}

.ep-install-why__grid {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: 76px;
	align-items: center;
}

.ep-install-why h2,
.ep-install-process h2,
.ep-install-reviews h2,
.ep-install-faq h2,
.ep-install-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-install-why p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-install-why__image {
	min-height: 520px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-install-process {
	position: relative;
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 18%, rgba(215,25,32,.16), transparent 30%),
		linear-gradient(135deg, #111, #242424);
	color: #fff;
	overflow: hidden;
}

.ep-install-process .ep-eyebrow {
	color: #fff;
}

.ep-install-process__header {
	display: grid;
	grid-template-columns: .9fr 1fr;
	gap: 70px;
	align-items: end;
	margin-bottom: 56px;
}

.ep-install-process h2 {
	color: #fff;
}

.ep-install-process__header > p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-install-process__steps {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 18px;
}

.ep-install-process__steps div {
	position: relative;
	padding: 28px;
	border-radius: 20px;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(14px);
}

.ep-install-process__steps span {
	position: absolute;
	top: -16px;
	left: 24px;
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--brand-primary);
	color: #fff;
	font-weight: 900;
}

.ep-install-process__steps h3 {
	margin: 22px 0 12px;
	color: #fff;
	font-size: 1.05rem;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.ep-install-process__steps p {
	margin: 0;
	color: rgba(255,255,255,.64);
	font-size: .9rem;
	line-height: 1.65;
}

.ep-install-finance-band {
	display: grid;
	grid-template-columns: 1.2fr 1fr auto;
	gap: 28px;
	align-items: center;
	margin-top: 52px;
	padding: 30px;
	border-radius: 24px;
	background:
		linear-gradient(135deg, rgba(215,25,32,.22), rgba(255,255,255,.06));
	border: 1px solid rgba(215,25,32,.35);
}

.ep-install-finance-band h3 {
	margin: 0;
	color: #fff;
	font-size: 2rem;
}

.ep-install-finance-band p {
	margin: 10px 0 0;
	color: rgba(255,255,255,.7);
}

.ep-install-finance-band__items {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.ep-install-finance-band__items strong,
.ep-install-finance-band__items span {
	display: block;
	text-align: center;
}

.ep-install-finance-band__items strong {
	color: #fff;
	font-size: 1.5rem;
}

.ep-install-finance-band__items span {
	margin-top: 6px;
	color: rgba(255,255,255,.66);
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.ep-install-reviews {
	background: #fff;
}

.ep-install-reviews__header {
	max-width: 860px;
	margin: 0 auto 48px;
	text-align: center;
}

.ep-install-reviews__header .ep-eyebrow {
	justify-content: center;
}

.ep-install-review-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.ep-install-review-grid article {
	padding: 30px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,.08);
}

.ep-install-review-grid p {
	color: var(--brand-gray);
	line-height: 1.75;
}

.ep-install-review-grid strong,
.ep-install-review-grid span {
	display: block;
}

.ep-install-review-grid strong {
	color: var(--brand-dark);
}

.ep-install-review-grid span {
	margin-top: 4px;
	color: var(--brand-muted);
	font-size: .9rem;
}

.ep-install-faq {
	padding: 110px 0;
	background:
		radial-gradient(circle at 14% 18%, rgba(215,25,32,.16), transparent 30%),
		#151515;
	color: #fff;
}

.ep-install-faq .ep-eyebrow {
	color: #fff;
}

.ep-install-faq__grid {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	gap: 70px;
	align-items: start;
}

.ep-install-faq h2 {
	color: #fff;
}

.ep-install-faq p {
	color: rgba(255,255,255,.68);
	line-height: 1.8;
}

.ep-install-faq__items {
	display: grid;
	gap: 12px;
}

.ep-install-faq__items details {
	border-bottom: 1px solid rgba(255,255,255,.16);
}

.ep-install-faq__items summary {
	list-style: none;
	cursor: pointer;
	padding: 22px 0;
	color: #fff;
	font-weight: 850;
}

.ep-install-faq__items summary::-webkit-details-marker {
	display: none;
}

.ep-install-faq__items p {
	margin: 0;
	padding: 0 0 22px;
}

.ep-install-final {
	position: relative;
	min-height: 620px;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-install-final__bg,
.ep-install-final__shade {
	position: absolute;
	inset: 0;
}

.ep-install-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ep-install-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.65), rgba(0,0,0,.28)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-install-final__content {
	position: relative;
	z-index: 2;
	max-width: 840px;
}

.ep-install-final h2 {
	color: #fff;
}

.ep-install-final p {
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

@media (max-width: 1100px) {
	.ep-install-process__steps {
		grid-template-columns: repeat(2, 1fr);
	}

	.ep-install-finance-band {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.ep-install-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-install-hero__badges,
	.ep-install-strip__grid,
	.ep-install-why__grid,
	.ep-install-process__header,
	.ep-install-review-grid,
	.ep-install-faq__grid {
		grid-template-columns: 1fr;
	}

	.ep-install-strip__grid {
		gap: 0;
	}

	.ep-install-why__image {
		min-height: 420px;
	}

	.ep-install-process,
	.ep-install-faq {
		padding: 80px 0;
	}

	.ep-install-process__steps {
		grid-template-columns: 1fr;
	}

	.ep-install-finance-band__items {
		grid-template-columns: 1fr;
	}
}
/* ================================
   Generac Generators Page
================================ */

.ep-generac-page {
	background: #fff;
}

.ep-generac-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-generac-hero__bg,
.ep-generac-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-generac-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1.04);
}

.ep-generac-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.66), rgba(0,0,0,.2)),
		radial-gradient(circle at 20% 44%, rgba(215,25,32,.28), transparent 34%);
}

.ep-generac-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 60px;
	align-items: end;
}

.ep-generac-hero__content {
	max-width: 780px;
}

.ep-generac-hero .ep-eyebrow {
	color: #fff;
}

.ep-generac-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.6rem, 7vw, 7.4rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-generac-hero__content > p:not(.ep-eyebrow) {
	max-width: 650px;
	margin-top: 28px;
	color: rgba(255,255,255,.78);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-generac-hero-card {
	padding: 26px;
	border-radius: 22px;
	background: rgba(255,255,255,.94);
	box-shadow: 0 30px 90px rgba(0,0,0,.3);
	backdrop-filter: blur(18px);
}

.ep-generac-hero-card span {
	display: block;
	color: var(--brand-muted);
	font-size: .74rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .12em;
}

.ep-generac-hero-card strong {
	display: block;
	margin-top: 8px;
	color: var(--brand-primary);
	font-size: 2.4rem;
	font-weight: 950;
	line-height: 1;
}

.ep-generac-hero-card p {
	margin: 12px 0 0;
	color: var(--brand-gray);
	line-height: 1.65;
}

.ep-generac-intro {
	background: #fff;
}

.ep-generac-intro__grid,
.ep-generac-sizing__grid,
.ep-generac-dark__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-generac-intro h2,
.ep-generac-options h2,
.ep-generac-sizing h2,
.ep-generac-dark h2,
.ep-generac-financing h2,
.ep-generac-reviews h2,
.ep-generac-faq h2,
.ep-generac-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-generac-intro p,
.ep-generac-sizing p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-generac-intro__image {
	min-height: 560px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-generac-options {
	padding: 120px 0;
	background:
		linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-generac-options__header {
	max-width: 880px;
	margin-bottom: 54px;
}

.ep-generac-options__header p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-generac-option-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}

.ep-generac-option-grid article {
	overflow: hidden;
	border-radius: 24px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-generac-option-grid article:hover {
	transform: translateY(-7px);
	box-shadow: 0 34px 90px rgba(0,0,0,.12);
}

.ep-generac-option-grid img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.ep-generac-option-grid article > div {
	padding: 26px;
}

.ep-generac-option-grid span {
	display: block;
	margin-bottom: 12px;
	color: var(--brand-primary);
	font-size: .72rem;
	font-weight: 950;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-generac-option-grid h3 {
	margin: 0 0 12px;
	font-size: 1.45rem;
}

.ep-generac-option-grid p {
	margin: 0;
	color: var(--brand-muted);
	line-height: 1.7;
}

.ep-generac-sizing {
	background: #fff;
}

.ep-generac-sizing-list {
	display: grid;
	gap: 14px;
	margin: 32px 0;
}

.ep-generac-sizing-list div {
	padding: 20px;
	border-radius: 18px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.06);
}

.ep-generac-sizing-list strong,
.ep-generac-sizing-list span {
	display: block;
}

.ep-generac-sizing-list strong {
	color: var(--brand-dark);
	font-size: 1.05rem;
}

.ep-generac-sizing-list span {
	margin-top: 6px;
	color: var(--brand-muted);
	line-height: 1.65;
}

.ep-generac-dark {
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215,25,32,.18), transparent 32%),
		linear-gradient(135deg, #111, #252525);
	color: #fff;
}

.ep-generac-dark .ep-eyebrow {
	color: #fff;
}

.ep-generac-dark h2 {
	color: #fff;
}

.ep-generac-dark p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-generac-dark-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}

.ep-generac-dark-card div {
	padding: 24px;
	border-radius: 20px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(16px);
}

.ep-generac-dark-card span {
	display: block;
	margin-bottom: 18px;
	color: var(--brand-primary);
	font-size: 2.4rem;
	font-weight: 950;
	line-height: .8;
}

.ep-generac-dark-card strong {
	display: block;
	color: #fff;
	font-size: 1.05rem;
}

.ep-generac-financing {
	position: relative;
	min-height: 700px;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-generac-financing__bg,
.ep-generac-financing__shade {
	position: absolute;
	inset: 0;
}

.ep-generac-financing__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ep-generac-financing__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.66), rgba(0,0,0,.24)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-generac-financing__content {
	position: relative;
	z-index: 2;
	max-width: 760px;
}

.ep-generac-financing .ep-eyebrow {
	color: #fff;
}

.ep-generac-financing h2 {
	color: #fff;
}

.ep-generac-financing p {
	max-width: 660px;
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

.ep-generac-reviews {
	background: #fff;
}

.ep-generac-reviews__header {
	max-width: 860px;
	margin: 0 auto 48px;
	text-align: center;
}

.ep-generac-reviews__header .ep-eyebrow {
	justify-content: center;
}

.ep-generac-faq {
	padding: 110px 0;
	background:
		radial-gradient(circle at 14% 18%, rgba(215,25,32,.16), transparent 30%),
		#151515;
	color: #fff;
}

.ep-generac-faq .ep-eyebrow {
	color: #fff;
}

.ep-generac-faq__grid {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	gap: 70px;
	align-items: start;
}

.ep-generac-faq h2 {
	color: #fff;
}

.ep-generac-faq p {
	color: rgba(255,255,255,.68);
	line-height: 1.8;
}

.ep-generac-final {
	position: relative;
	min-height: 620px;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-generac-final__bg,
.ep-generac-final__shade {
	position: absolute;
	inset: 0;
}

.ep-generac-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ep-generac-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.65), rgba(0,0,0,.28)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-generac-final__content {
	position: relative;
	z-index: 2;
	max-width: 860px;
}

.ep-generac-final h2 {
	color: #fff;
}

.ep-generac-final p {
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

@media (max-width: 1000px) {
	.ep-generac-hero__inner,
	.ep-generac-intro__grid,
	.ep-generac-sizing__grid,
	.ep-generac-dark__grid,
	.ep-generac-faq__grid {
		grid-template-columns: 1fr;
	}

	.ep-generac-option-grid {
		grid-template-columns: 1fr;
	}

	.ep-generac-dark-card {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	.ep-generac-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-generac-options,
	.ep-generac-dark,
	.ep-generac-faq {
		padding: 80px 0;
	}

	.ep-generac-intro__image {
		min-height: 420px;
	}
}
/* ================================
   Generator Maintenance Page
================================ */

.ep-maintenance-page {
	background: #fff;
}

.ep-maintenance-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-maintenance-hero__bg,
.ep-maintenance-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-maintenance-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 68% center;
	transform: scale(1.05);
}

.ep-maintenance-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.94), rgba(0,0,0,.72), rgba(0,0,0,.18)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.3), transparent 34%);
}

.ep-maintenance-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 60px;
	align-items: end;
}

.ep-maintenance-hero__content {
	max-width: 820px;
}

.ep-maintenance-hero .ep-eyebrow {
	color: #fff;
}

.ep-maintenance-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.7rem, 7.2vw, 7.8rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-maintenance-hero__content > p:not(.ep-eyebrow) {
	max-width: 660px;
	margin-top: 28px;
	color: rgba(255,255,255,.8);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-maintenance-hero-card {
	padding: 28px;
	border-radius: 22px;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.18);
	box-shadow: 0 30px 90px rgba(0,0,0,.28);
	backdrop-filter: blur(18px);
}

.ep-maintenance-hero-card span {
	display: block;
	margin-bottom: 18px;
	color: rgba(255,255,255,.72);
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-maintenance-hero-card strong {
	display: block;
	color: #fff;
	font-size: 2.2rem;
	line-height: .95;
	font-weight: 950;
	letter-spacing: -.06em;
}

.ep-maintenance-hero-card p {
	margin: 16px 0 0;
	color: rgba(255,255,255,.72);
	line-height: 1.7;
}

.ep-maintenance-intro {
	background: #fff;
}

.ep-maintenance-intro__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-maintenance-intro h2,
.ep-maintenance-included h2,
.ep-maintenance-timeline h2,
.ep-maintenance-risk h2,
.ep-maintenance-plans h2,
.ep-maintenance-faq h2,
.ep-maintenance-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-maintenance-intro p,
.ep-maintenance-included__header p,
.ep-maintenance-plans__header p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-maintenance-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	margin-top: 34px;
}

.ep-maintenance-stats div {
	padding: 22px;
	border-radius: 18px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.06);
}

.ep-maintenance-stats strong {
	display: block;
	color: var(--brand-primary);
	font-size: 2rem;
	font-weight: 950;
	line-height: 1;
}

.ep-maintenance-stats span {
	display: block;
	margin-top: 8px;
	color: var(--brand-gray);
	font-size: .9rem;
	font-weight: 850;
	line-height: 1.35;
}

.ep-maintenance-stacked .ep-stack--main {
	aspect-ratio: 4 / 5;
}

.ep-maintenance-included {
	padding: 110px 0;
	background:
		linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-maintenance-included__header {
	max-width: 900px;
	margin: 0 auto 52px;
	text-align: center;
}

.ep-maintenance-included__header .ep-eyebrow {
	justify-content: center;
}

.ep-maintenance-included__header p {
	margin-inline: auto;
}

.ep-maintenance-card-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 16px;
}

.ep-maintenance-card-grid article {
	padding: 24px;
	border-radius: 20px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-maintenance-card-grid article:hover {
	transform: translateY(-7px);
	box-shadow: 0 30px 80px rgba(0,0,0,.1);
}

.ep-maintenance-card-grid span {
	display: block;
	margin-bottom: 22px;
	color: var(--brand-primary);
	font-size: 2.1rem;
	font-weight: 950;
	line-height: .8;
}

.ep-maintenance-card-grid h3 {
	margin: 0 0 12px;
	font-size: 1.05rem;
	line-height: 1;
	letter-spacing: -.04em;
}

.ep-maintenance-card-grid p {
	margin: 0;
	color: var(--brand-muted);
	font-size: .9rem;
	line-height: 1.65;
}

.ep-maintenance-timeline {
	position: relative;
	padding: 110px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215,25,32,.2), transparent 32%),
		linear-gradient(135deg, #111, #242424);
	color: #fff;
	overflow: hidden;
}

.ep-maintenance-timeline::before {
	content: "";
	position: absolute;
	inset: -20%;
	background:
		radial-gradient(circle at 20% 30%, rgba(215,25,32,.18), transparent 28%),
		radial-gradient(circle at 80% 70%, rgba(215,25,32,.12), transparent 30%);
	animation: epGlowDrift 12s ease-in-out infinite alternate;
	pointer-events: none;
}

.ep-maintenance-timeline > * {
	position: relative;
	z-index: 1;
}

.ep-maintenance-timeline .ep-eyebrow {
	color: #fff;
}

.ep-maintenance-timeline h2 {
	color: #fff;
	text-align: center;
}

.ep-maintenance-timeline__header {
	max-width: 820px;
	margin: 0 auto 58px;
	text-align: center;
}

.ep-maintenance-timeline__header .ep-eyebrow {
	justify-content: center;
}

.ep-maintenance-timeline__grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.ep-maintenance-timeline__grid::before {
	content: "";
	position: absolute;
	top: 34px;
	left: 12%;
	right: 12%;
	height: 1px;
	background: rgba(255,255,255,.18);
}

.ep-maintenance-timeline__grid div {
	position: relative;
	z-index: 1;
	text-align: center;
}

.ep-maintenance-timeline__grid span {
	width: 68px;
	height: 68px;
	display: grid;
	place-items: center;
	margin: 0 auto 24px;
	border-radius: 50%;
	background: var(--brand-primary);
	color: #fff;
	font-weight: 950;
	box-shadow: 0 18px 48px rgba(215,25,32,.34);
}

.ep-maintenance-timeline__grid h3 {
	color: #fff;
	font-size: 1.4rem;
}

.ep-maintenance-timeline__grid p {
	max-width: 280px;
	margin: 12px auto 0;
	color: rgba(255,255,255,.68);
	font-size: .95rem;
	line-height: 1.7;
}

.ep-maintenance-risk {
	position: relative;
	padding: 120px 0;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-maintenance-risk__bg,
.ep-maintenance-risk__shade {
	position: absolute;
	inset: 0;
}

.ep-maintenance-risk__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.ep-maintenance-risk__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.94), rgba(0,0,0,.8), rgba(0,0,0,.36)),
		radial-gradient(circle at 16% 42%, rgba(215,25,32,.24), transparent 34%);
}

.ep-maintenance-risk__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: .82fr 1.18fr;
	gap: 70px;
	align-items: end;
}

.ep-maintenance-risk .ep-eyebrow {
	color: #fff;
}

.ep-maintenance-risk h2 {
	color: #fff;
}

.ep-maintenance-risk__content p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-maintenance-risk__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

.ep-maintenance-risk__cards div {
	min-height: 250px;
	padding: 26px;
	border-radius: 20px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.16);
	backdrop-filter: blur(16px);
}

.ep-maintenance-risk__cards span {
	display: block;
	margin-bottom: 28px;
	color: var(--brand-primary);
	font-size: 2.2rem;
	font-weight: 950;
	line-height: .8;
}

.ep-maintenance-risk__cards h3 {
	color: #fff;
	font-size: 1.18rem;
	line-height: 1.05;
}

.ep-maintenance-risk__cards p {
	margin: 12px 0 0;
	color: rgba(255,255,255,.66);
	font-size: .92rem;
	line-height: 1.65;
}

.ep-maintenance-plans {
	background: #fff;
}

.ep-maintenance-plans__header {
	max-width: 860px;
	margin-bottom: 52px;
}

.ep-maintenance-plan-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	align-items: stretch;
}

.ep-maintenance-plan-grid article {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 34px;
	border-radius: 24px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-maintenance-plan-grid article:hover {
	transform: translateY(-7px);
	box-shadow: 0 34px 90px rgba(0,0,0,.12);
}

.ep-maintenance-plan-grid article.is-featured {
	border-color: rgba(215,25,32,.35);
	box-shadow: 0 30px 90px rgba(215,25,32,.14);
}

.ep-plan-badge {
	position: absolute;
	top: 0;
	left: 28px;
	right: 28px;
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	min-height: 30px;
	border-radius: 8px;
	background: var(--brand-primary);
	color: #fff;
	font-size: .72rem;
	font-weight: 950;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-maintenance-plan-grid h3 {
	margin: 0 0 12px;
	font-size: 1.7rem;
}

.ep-maintenance-plan-grid p {
	margin: 0;
	color: var(--brand-muted);
	line-height: 1.7;
}

.ep-maintenance-plan-grid ul {
	display: grid;
	gap: 12px;
	margin: 26px 0 30px;
	padding: 0;
	list-style: none;
}

.ep-maintenance-plan-grid li {
	position: relative;
	padding-left: 28px;
	color: var(--brand-gray);
	font-weight: 750;
	line-height: 1.5;
}

.ep-maintenance-plan-grid li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	width: 13px;
	height: 7px;
	border-left: 2px solid var(--brand-primary);
	border-bottom: 2px solid var(--brand-primary);
	transform: rotate(-45deg);
}

.ep-maintenance-plan-grid .ep-btn {
	margin-top: auto;
}

.ep-maintenance-faq {
	padding: 110px 0;
	background:
		radial-gradient(circle at 14% 18%, rgba(215,25,32,.16), transparent 30%),
		#151515;
	color: #fff;
}

.ep-maintenance-faq .ep-eyebrow {
	color: #fff;
}

.ep-maintenance-faq__grid {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	gap: 70px;
	align-items: start;
}

.ep-maintenance-faq h2 {
	color: #fff;
}

.ep-maintenance-faq p {
	color: rgba(255,255,255,.68);
	line-height: 1.8;
}

.ep-maintenance-faq__items {
	display: grid;
	gap: 12px;
}

.ep-maintenance-faq__items details {
	border-bottom: 1px solid rgba(255,255,255,.16);
}

.ep-maintenance-faq__items summary {
	list-style: none;
	cursor: pointer;
	padding: 22px 0;
	color: #fff;
	font-weight: 850;
}

.ep-maintenance-faq__items summary::-webkit-details-marker {
	display: none;
}

.ep-maintenance-faq__items p {
	margin: 0;
	padding: 0 0 22px;
}

.ep-maintenance-final {
	position: relative;
	min-height: 650px;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-maintenance-final__bg,
.ep-maintenance-final__shade {
	position: absolute;
	inset: 0;
}

.ep-maintenance-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.ep-maintenance-final:hover .ep-maintenance-final__bg img {
	transform: scale(1.06);
}

.ep-maintenance-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.68), rgba(0,0,0,.28)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-maintenance-final__content {
	position: relative;
	z-index: 2;
	max-width: 900px;
}

.ep-maintenance-final .ep-eyebrow {
	color: #fff;
}

.ep-maintenance-final h2 {
	color: #fff;
}

.ep-maintenance-final p {
	max-width: 760px;
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

@media (max-width: 1180px) {
	.ep-maintenance-card-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.ep-maintenance-risk__grid {
		grid-template-columns: 1fr;
	}

	.ep-maintenance-risk__cards {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 1000px) {
	.ep-maintenance-hero__inner,
	.ep-maintenance-intro__grid,
	.ep-maintenance-faq__grid {
		grid-template-columns: 1fr;
	}

	.ep-maintenance-plan-grid,
	.ep-maintenance-risk__cards {
		grid-template-columns: 1fr;
	}

	.ep-maintenance-hero-card {
		max-width: 420px;
	}
}

@media (max-width: 900px) {
	.ep-maintenance-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-maintenance-hero h1 {
		font-size: clamp(3.2rem, 15vw, 5.4rem);
	}

	.ep-maintenance-stats,
	.ep-maintenance-card-grid,
	.ep-maintenance-timeline__grid {
		grid-template-columns: 1fr;
	}

	.ep-maintenance-timeline__grid::before {
		display: none;
	}

	.ep-maintenance-included,
	.ep-maintenance-timeline,
	.ep-maintenance-risk,
	.ep-maintenance-faq {
		padding: 80px 0;
	}

	.ep-maintenance-final {
		min-height: 640px;
	}
}

@media (max-width: 700px) {
	.ep-maintenance-hero-card,
	.ep-maintenance-plan-grid article,
	.ep-maintenance-risk__cards div {
		padding: 24px;
	}

	.ep-maintenance-card-grid article {
		padding: 22px;
	}
}
/* ================================
   Generator Repair Page
================================ */

.ep-repair-page {
	background: #fff;
}

.ep-repair-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-repair-hero__bg,
.ep-repair-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-repair-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 68% center;
	transform: scale(1.05);
}

.ep-repair-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.95), rgba(0,0,0,.72), rgba(0,0,0,.2)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.32), transparent 34%);
}

.ep-repair-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 60px;
	align-items: end;
}

.ep-repair-hero__content {
	max-width: 820px;
}

.ep-repair-hero .ep-eyebrow {
	color: #fff;
}

.ep-repair-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.7rem, 7.2vw, 7.8rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-repair-hero__content > p:not(.ep-eyebrow) {
	max-width: 660px;
	margin-top: 28px;
	color: rgba(255,255,255,.8);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-repair-hero-card {
	padding: 28px;
	border-radius: 22px;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.18);
	box-shadow: 0 30px 90px rgba(0,0,0,.28);
	backdrop-filter: blur(18px);
}

.ep-repair-hero-card span {
	display: block;
	margin-bottom: 18px;
	color: rgba(255,255,255,.72);
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-repair-hero-card div {
	display: grid;
	gap: 12px;
}

.ep-repair-hero-card strong {
	display: block;
	padding: 14px 16px;
	border-radius: 12px;
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.14);
	color: #fff;
	font-size: 1rem;
	font-weight: 900;
}

.ep-repair-intro {
	background: #fff;
}

.ep-repair-intro__grid,
.ep-repair-service-area__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-repair-intro h2,
.ep-repair-alert h2,
.ep-repair-process h2,
.ep-repair-dark h2,
.ep-repair-service-area h2,
.ep-repair-maintenance h2,
.ep-repair-faq h2,
.ep-repair-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-repair-intro p,
.ep-repair-alert p,
.ep-repair-process__header p,
.ep-repair-service-area p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-repair-intro__image,
.ep-repair-service-area__image {
	min-height: 540px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-repair-alert {
	padding: 120px 0;
	background:
		linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-repair-alert__grid {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	gap: 70px;
	align-items: start;
}

.ep-repair-alert__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

.ep-repair-alert__cards article {
	padding: 26px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-repair-alert__cards article:hover {
	transform: translateY(-7px);
	box-shadow: 0 30px 80px rgba(0,0,0,.1);
}

.ep-repair-alert__cards span {
	display: block;
	margin-bottom: 24px;
	color: var(--brand-primary);
	font-size: 2.2rem;
	font-weight: 950;
	line-height: .8;
}

.ep-repair-alert__cards h3 {
	margin: 0 0 12px;
	font-size: 1.18rem;
	line-height: 1.05;
}

.ep-repair-alert__cards p {
	margin: 0;
	font-size: .92rem;
	line-height: 1.65;
}

.ep-repair-process {
	background: #fff;
}

.ep-repair-process__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-repair-process__steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-repair-process__steps div {
	padding: 30px;
	border-radius: 22px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-repair-process__steps div:hover {
	transform: translateY(-7px);
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.ep-repair-process__steps span {
	display: inline-flex;
	margin-bottom: 28px;
	color: var(--brand-primary);
	font-size: 2.8rem;
	font-weight: 950;
	line-height: .8;
}

.ep-repair-process__steps h3 {
	margin: 0 0 12px;
	font-size: 1.22rem;
}

.ep-repair-process__steps p {
	margin: 0;
	color: var(--brand-muted);
	line-height: 1.7;
}

.ep-repair-dark {
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215,25,32,.18), transparent 32%),
		linear-gradient(135deg, #111, #252525);
	color: #fff;
	overflow: hidden;
}

.ep-repair-dark .ep-eyebrow {
	color: #fff;
}

.ep-repair-dark__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-repair-dark h2 {
	color: #fff;
}

.ep-repair-dark p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-repair-dark__visual {
	min-height: 560px;
	box-shadow: 0 34px 90px rgba(0,0,0,.24);
}

.ep-repair-dark-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin: 32px 0;
}

.ep-repair-dark-card div {
	padding: 24px;
	border-radius: 20px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(16px);
}

.ep-repair-dark-card span {
	display: block;
	margin-bottom: 18px;
	color: var(--brand-primary);
	font-size: 2.2rem;
	font-weight: 950;
	line-height: .8;
}

.ep-repair-dark-card strong {
	display: block;
	color: #fff;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ep-repair-service-area {
	background: var(--brand-light);
}

.ep-repair-maintenance,
.ep-repair-final {
	position: relative;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-repair-maintenance {
	min-height: 700px;
}

.ep-repair-final {
	min-height: 650px;
}

.ep-repair-maintenance__bg,
.ep-repair-maintenance__shade,
.ep-repair-final__bg,
.ep-repair-final__shade {
	position: absolute;
	inset: 0;
}

.ep-repair-maintenance__bg img,
.ep-repair-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.ep-repair-maintenance:hover .ep-repair-maintenance__bg img,
.ep-repair-final:hover .ep-repair-final__bg img {
	transform: scale(1.06);
}

.ep-repair-maintenance__shade,
.ep-repair-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.66), rgba(0,0,0,.24)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-repair-maintenance__content,
.ep-repair-final__content {
	position: relative;
	z-index: 2;
	max-width: 860px;
}

.ep-repair-maintenance .ep-eyebrow,
.ep-repair-final .ep-eyebrow {
	color: #fff;
}

.ep-repair-maintenance h2,
.ep-repair-final h2 {
	color: #fff;
}

.ep-repair-maintenance p,
.ep-repair-final p {
	max-width: 720px;
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

.ep-repair-faq {
	padding: 110px 0;
	background:
		radial-gradient(circle at 14% 18%, rgba(215,25,32,.16), transparent 30%),
		#151515;
	color: #fff;
}

.ep-repair-faq .ep-eyebrow {
	color: #fff;
}

.ep-repair-faq__grid {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	gap: 70px;
	align-items: start;
}

.ep-repair-faq h2 {
	color: #fff;
}

.ep-repair-faq p {
	color: rgba(255,255,255,.68);
	line-height: 1.8;
}

.ep-repair-faq__items {
	display: grid;
	gap: 12px;
}

.ep-repair-faq__items details {
	border-bottom: 1px solid rgba(255,255,255,.16);
}

.ep-repair-faq__items summary {
	list-style: none;
	cursor: pointer;
	padding: 22px 0;
	color: #fff;
	font-weight: 850;
}

.ep-repair-faq__items summary::-webkit-details-marker {
	display: none;
}

.ep-repair-faq__items p {
	margin: 0;
	padding: 0 0 22px;
}

@media (max-width: 1180px) {
	.ep-repair-alert__cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.ep-repair-process__steps {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 1000px) {
	.ep-repair-hero__inner,
	.ep-repair-intro__grid,
	.ep-repair-alert__grid,
	.ep-repair-dark__grid,
	.ep-repair-service-area__grid,
	.ep-repair-faq__grid {
		grid-template-columns: 1fr;
	}

	.ep-repair-hero-card {
		max-width: 420px;
	}

	.ep-repair-dark-card {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.ep-repair-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-repair-hero h1 {
		font-size: clamp(3.2rem, 15vw, 5.4rem);
	}

	.ep-repair-alert,
	.ep-repair-dark,
	.ep-repair-faq {
		padding: 80px 0;
	}

	.ep-repair-alert__cards,
	.ep-repair-process__steps {
		grid-template-columns: 1fr;
	}

	.ep-repair-intro__image,
	.ep-repair-service-area__image,
	.ep-repair-dark__visual {
		min-height: 420px;
	}

	.ep-repair-maintenance,
	.ep-repair-final {
		min-height: 640px;
	}
}

@media (max-width: 700px) {
	.ep-repair-hero-card,
	.ep-repair-alert__cards article,
	.ep-repair-process__steps div,
	.ep-repair-dark-card div {
		padding: 24px;
	}
}
/* ================================
   Global Premium Hero Glow
================================ */

.ep-install-hero,
.ep-generac-hero,
.ep-maintenance-hero,
.ep-repair-hero {
	position: relative;
}

.ep-install-hero::before,
.ep-generac-hero::before,
.ep-maintenance-hero::before,
.ep-repair-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 28%, rgba(215, 25, 32, .34), transparent 32%),
		radial-gradient(circle at 88% 74%, rgba(215, 25, 32, .18), transparent 28%);
	mix-blend-mode: screen;
	animation: epHeroGlowDrift 10s ease-in-out infinite alternate;
}

@keyframes epHeroGlowDrift {
	from {
		opacity: .72;
		transform: translate3d(-1.5%, -1.5%, 0) scale(1);
	}

	to {
		opacity: 1;
		transform: translate3d(1.5%, 1.5%, 0) scale(1.06);
	}
}

.ep-install-hero__inner,
.ep-generac-hero__inner,
.ep-maintenance-hero__inner,
.ep-repair-hero__inner {
	z-index: 3;
}

/* ================================
   Financing Page
================================ */

.ep-financing-page {
	background: #fff;
}

.ep-financing-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-financing-hero__bg,
.ep-financing-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-financing-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1.05);
}

.ep-financing-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.94), rgba(0,0,0,.72), rgba(0,0,0,.2)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.32), transparent 34%);
}

.ep-financing-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 28%, rgba(215,25,32,.34), transparent 32%),
		radial-gradient(circle at 88% 74%, rgba(215,25,32,.18), transparent 28%);
	mix-blend-mode: screen;
	animation: epHeroGlowDrift 10s ease-in-out infinite alternate;
}

.ep-financing-hero__inner {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 60px;
	align-items: end;
}

.ep-financing-hero__content {
	max-width: 820px;
}

.ep-financing-hero .ep-eyebrow {
	color: #fff;
}

.ep-financing-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.7rem, 7.2vw, 7.8rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-financing-hero__content > p:not(.ep-eyebrow) {
	max-width: 660px;
	margin-top: 28px;
	color: rgba(255,255,255,.8);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-financing-hero-card {
	padding: 28px;
	border-radius: 22px;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.18);
	box-shadow: 0 30px 90px rgba(0,0,0,.28);
	backdrop-filter: blur(18px);
}

.ep-financing-hero-card span {
	display: block;
	margin-bottom: 18px;
	color: rgba(255,255,255,.72);
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-financing-hero-card strong {
	display: block;
	color: #fff;
	font-size: 2.2rem;
	line-height: .95;
	font-weight: 950;
	letter-spacing: -.06em;
}

.ep-financing-hero-card p {
	margin: 16px 0 0;
	color: rgba(255,255,255,.72);
	line-height: 1.7;
}

.ep-financing-intro {
	background: #fff;
}

.ep-financing-intro__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-financing-intro h2,
.ep-financing-benefits h2,
.ep-financing-dark h2,
.ep-financing-process h2,
.ep-financing-area h2,
.ep-financing-faq h2,
.ep-financing-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-financing-intro p,
.ep-financing-benefits__header p,
.ep-financing-process__header p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-financing-intro__image {
	min-height: 540px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-financing-benefits {
	padding: 120px 0;
	background:
		linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-financing-benefits__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-financing-benefit-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-financing-benefit-grid article {
	padding: 28px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-financing-benefit-grid article:hover {
	transform: translateY(-7px);
	box-shadow: 0 30px 80px rgba(0,0,0,.1);
}

.ep-financing-benefit-grid span {
	display: block;
	margin-bottom: 28px;
	color: var(--brand-primary);
	font-size: 2.5rem;
	font-weight: 950;
	line-height: .8;
}

.ep-financing-benefit-grid h3 {
	margin: 0 0 12px;
	font-size: 1.28rem;
}

.ep-financing-benefit-grid p {
	margin: 0;
	color: var(--brand-muted);
	font-size: .94rem;
	line-height: 1.7;
}

.ep-financing-dark {
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215,25,32,.18), transparent 32%),
		linear-gradient(135deg, #111, #252525);
	color: #fff;
	overflow: hidden;
}

.ep-financing-dark .ep-eyebrow {
	color: #fff;
}

.ep-financing-dark__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-financing-dark h2 {
	color: #fff;
}

.ep-financing-dark p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-financing-dark__visual {
	min-height: 560px;
	box-shadow: 0 34px 90px rgba(0,0,0,.24);
}

.ep-financing-dark-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin: 32px 0;
}

.ep-financing-dark-card div {
	padding: 24px;
	border-radius: 20px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(16px);
}

.ep-financing-dark-card span {
	display: block;
	margin-bottom: 18px;
	color: var(--brand-primary);
	font-size: 2.2rem;
	font-weight: 950;
	line-height: .8;
}

.ep-financing-dark-card strong {
	display: block;
	color: #fff;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ep-financing-process {
	background: #fff;
}

.ep-financing-process__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-financing-process__steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-financing-process__steps div {
	padding: 30px;
	border-radius: 22px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-financing-process__steps div:hover {
	transform: translateY(-7px);
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.ep-financing-process__steps span {
	display: inline-flex;
	margin-bottom: 28px;
	color: var(--brand-primary);
	font-size: 2.8rem;
	font-weight: 950;
	line-height: .8;
}

.ep-financing-process__steps h3 {
	margin: 0 0 12px;
	font-size: 1.22rem;
}

.ep-financing-process__steps p {
	margin: 0;
	color: var(--brand-muted);
	line-height: 1.7;
}

.ep-financing-area,
.ep-financing-final {
	position: relative;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-financing-area {
	min-height: 720px;
}

.ep-financing-final {
	min-height: 650px;
}

.ep-financing-area__bg,
.ep-financing-area__shade,
.ep-financing-final__bg,
.ep-financing-final__shade {
	position: absolute;
	inset: 0;
}

.ep-financing-area__bg img,
.ep-financing-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.ep-financing-area:hover .ep-financing-area__bg img,
.ep-financing-final:hover .ep-financing-final__bg img {
	transform: scale(1.06);
}

.ep-financing-area__shade,
.ep-financing-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.68), rgba(0,0,0,.28)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-financing-area__content,
.ep-financing-final__content {
	position: relative;
	z-index: 2;
	max-width: 900px;
}

.ep-financing-area .ep-eyebrow,
.ep-financing-final .ep-eyebrow {
	color: #fff;
}

.ep-financing-area h2,
.ep-financing-final h2 {
	color: #fff;
}

.ep-financing-area p,
.ep-financing-final p {
	max-width: 760px;
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

.ep-financing-area .ep-area-list span {
	background: rgba(255,255,255,.12);
	border-color: rgba(255,255,255,.16);
	color: #fff;
	backdrop-filter: blur(14px);
}

.ep-financing-faq {
	padding: 110px 0;
	background:
		radial-gradient(circle at 14% 18%, rgba(215,25,32,.16), transparent 30%),
		#151515;
	color: #fff;
}

.ep-financing-faq .ep-eyebrow {
	color: #fff;
}

.ep-financing-faq__grid {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	gap: 70px;
	align-items: start;
}

.ep-financing-faq h2 {
	color: #fff;
}

.ep-financing-faq p {
	color: rgba(255,255,255,.68);
	line-height: 1.8;
}

.ep-financing-faq__items {
	display: grid;
	gap: 12px;
}

.ep-financing-faq__items details {
	border-bottom: 1px solid rgba(255,255,255,.16);
}

.ep-financing-faq__items summary {
	list-style: none;
	cursor: pointer;
	padding: 22px 0;
	color: #fff;
	font-weight: 850;
}

.ep-financing-faq__items summary::-webkit-details-marker {
	display: none;
}

.ep-financing-faq__items p {
	margin: 0;
	padding: 0 0 22px;
}

@media (max-width: 1180px) {
	.ep-financing-benefit-grid,
	.ep-financing-process__steps {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 1000px) {
	.ep-financing-hero__inner,
	.ep-financing-intro__grid,
	.ep-financing-dark__grid,
	.ep-financing-faq__grid {
		grid-template-columns: 1fr;
	}

	.ep-financing-hero-card {
		max-width: 420px;
	}

	.ep-financing-dark-card {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.ep-financing-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-financing-hero h1 {
		font-size: clamp(3.2rem, 15vw, 5.4rem);
	}

	.ep-financing-benefits,
	.ep-financing-dark,
	.ep-financing-faq {
		padding: 80px 0;
	}

	.ep-financing-benefit-grid,
	.ep-financing-process__steps {
		grid-template-columns: 1fr;
	}

	.ep-financing-intro__image,
	.ep-financing-dark__visual {
		min-height: 420px;
	}

	.ep-financing-area,
	.ep-financing-final {
		min-height: 640px;
	}
}

@media (max-width: 700px) {
	.ep-financing-hero-card,
	.ep-financing-benefit-grid article,
	.ep-financing-process__steps div,
	.ep-financing-dark-card div {
		padding: 24px;
	}
}
.ep-financing{
	position:relative;
	overflow:hidden;
}

.ep-financing__image,
.ep-financing__shade{
	position:absolute;
	inset:0;
}

.ep-financing__image img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .8s ease;
}

.ep-financing:hover .ep-financing__image img{
	transform:scale(1.05);
}

.ep-financing__shade{
	z-index:1;
	background:
		linear-gradient(
			90deg,
			rgba(0,0,0,.90),
			rgba(0,0,0,.65),
			rgba(0,0,0,.25)
		),
		radial-gradient(
			circle at 18% 40%,
			rgba(215,25,32,.28),
			transparent 34%
		);
}

.ep-financing__content{
	position:relative;
	z-index:2;
}
/* ================================
   About Page
================================ */

.ep-about-page {
	background: #fff;
}

.ep-about-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-about-hero__bg,
.ep-about-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-about-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 68% center;
	transform: scale(1.05);
}

.ep-about-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.94), rgba(0,0,0,.72), rgba(0,0,0,.2)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.32), transparent 34%);
}

.ep-about-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 28%, rgba(215,25,32,.34), transparent 32%),
		radial-gradient(circle at 88% 74%, rgba(215,25,32,.18), transparent 28%);
	mix-blend-mode: screen;
	animation: epHeroGlowDrift 10s ease-in-out infinite alternate;
}

.ep-about-hero__inner {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 60px;
	align-items: end;
}

.ep-about-hero__content {
	max-width: 850px;
}

.ep-about-hero .ep-eyebrow {
	color: #fff;
}

.ep-about-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.7rem, 7.2vw, 7.8rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-about-hero__content > p:not(.ep-eyebrow) {
	max-width: 680px;
	margin-top: 28px;
	color: rgba(255,255,255,.8);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-about-hero-card {
	padding: 28px;
	border-radius: 22px;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.18);
	box-shadow: 0 30px 90px rgba(0,0,0,.28);
	backdrop-filter: blur(18px);
}

.ep-about-hero-card span {
	display: block;
	margin-bottom: 18px;
	color: rgba(255,255,255,.72);
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-about-hero-card strong {
	display: block;
	color: #fff;
	font-size: 2.2rem;
	line-height: .95;
	font-weight: 950;
	letter-spacing: -.06em;
}

.ep-about-hero-card p {
	margin: 16px 0 0;
	color: rgba(255,255,255,.72);
	line-height: 1.7;
}

.ep-about-intro {
	background: #fff;
}

.ep-about-intro__grid,
.ep-about-service-area__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-about-intro h2,
.ep-about-values h2,
.ep-about-dark h2,
.ep-about-process h2,
.ep-about-proof h2,
.ep-about-service-area h2,
.ep-about-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-about-intro p,
.ep-about-values__header p,
.ep-about-process__header p,
.ep-about-service-area p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-about-intro__image,
.ep-about-service-area__image {
	min-height: 540px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-about-values {
	padding: 120px 0;
	background:
		linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-about-values__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-about-value-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-about-value-grid article {
	padding: 28px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-about-value-grid article:hover {
	transform: translateY(-7px);
	box-shadow: 0 30px 80px rgba(0,0,0,.1);
}

.ep-about-value-grid span {
	display: block;
	margin-bottom: 28px;
	color: var(--brand-primary);
	font-size: 2.5rem;
	font-weight: 950;
	line-height: .8;
}

.ep-about-value-grid h3 {
	margin: 0 0 12px;
	font-size: 1.28rem;
}

.ep-about-value-grid p {
	margin: 0;
	color: var(--brand-muted);
	font-size: .94rem;
	line-height: 1.7;
}

.ep-about-dark {
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215,25,32,.18), transparent 32%),
		linear-gradient(135deg, #111, #252525);
	color: #fff;
	overflow: hidden;
}

.ep-about-dark .ep-eyebrow {
	color: #fff;
}

.ep-about-dark__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-about-dark h2 {
	color: #fff;
}

.ep-about-dark p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-about-dark__visual {
	min-height: 560px;
	box-shadow: 0 34px 90px rgba(0,0,0,.24);
}

.ep-about-dark-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin: 32px 0;
}

.ep-about-dark-card div {
	padding: 24px;
	border-radius: 20px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(16px);
}

.ep-about-dark-card span {
	display: block;
	margin-bottom: 18px;
	color: var(--brand-primary);
	font-size: 2.2rem;
	font-weight: 950;
	line-height: .8;
}

.ep-about-dark-card strong {
	display: block;
	color: #fff;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ep-about-process {
	background: #fff;
}

.ep-about-process__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-about-process__steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-about-process__steps div {
	padding: 30px;
	border-radius: 22px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-about-process__steps div:hover {
	transform: translateY(-7px);
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.ep-about-process__steps span {
	display: inline-flex;
	margin-bottom: 28px;
	color: var(--brand-primary);
	font-size: 2.8rem;
	font-weight: 950;
	line-height: .8;
}

.ep-about-process__steps h3 {
	margin: 0 0 12px;
	font-size: 1.22rem;
}

.ep-about-process__steps p {
	margin: 0;
	color: var(--brand-muted);
	line-height: 1.7;
}

.ep-about-proof,
.ep-about-final {
	position: relative;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-about-proof {
	min-height: 700px;
	padding: 120px 0;
}

.ep-about-final {
	min-height: 650px;
}

.ep-about-proof__bg,
.ep-about-proof__shade,
.ep-about-final__bg,
.ep-about-final__shade {
	position: absolute;
	inset: 0;
}

.ep-about-proof__bg img,
.ep-about-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.ep-about-proof:hover .ep-about-proof__bg img,
.ep-about-final:hover .ep-about-final__bg img {
	transform: scale(1.06);
}

.ep-about-proof__shade,
.ep-about-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.68), rgba(0,0,0,.28)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-about-proof__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr 460px;
	gap: 70px;
	align-items: center;
}

.ep-about-proof .ep-eyebrow,
.ep-about-final .ep-eyebrow {
	color: #fff;
}

.ep-about-proof h2,
.ep-about-final h2 {
	color: #fff;
}

.ep-about-proof p,
.ep-about-final p {
	max-width: 760px;
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

.ep-about-service-area {
	background: var(--brand-light);
}

.ep-about-final__content {
	position: relative;
	z-index: 2;
	max-width: 900px;
}

@media (max-width: 1180px) {
	.ep-about-value-grid,
	.ep-about-process__steps {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 1000px) {
	.ep-about-hero__inner,
	.ep-about-intro__grid,
	.ep-about-dark__grid,
	.ep-about-proof__grid,
	.ep-about-service-area__grid {
		grid-template-columns: 1fr;
	}

	.ep-about-hero-card {
		max-width: 420px;
	}

	.ep-about-dark-card {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.ep-about-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-about-hero h1 {
		font-size: clamp(3.2rem, 15vw, 5.4rem);
	}

	.ep-about-values,
	.ep-about-dark,
	.ep-about-proof {
		padding: 80px 0;
	}

	.ep-about-value-grid,
	.ep-about-process__steps {
		grid-template-columns: 1fr;
	}

	.ep-about-intro__image,
	.ep-about-dark__visual,
	.ep-about-service-area__image {
		min-height: 420px;
	}

	.ep-about-final {
		min-height: 640px;
	}
}

@media (max-width: 700px) {
	.ep-about-hero-card,
	.ep-about-value-grid article,
	.ep-about-process__steps div,
	.ep-about-dark-card div {
		padding: 24px;
	}
}
/* ================================
   Service Areas Page
================================ */

.ep-areas-page {
	background: #fff;
}

.ep-areas-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-areas-hero__bg,
.ep-areas-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-areas-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 68% center;
	transform: scale(1.05);
}

.ep-areas-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.94), rgba(0,0,0,.72), rgba(0,0,0,.2)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.32), transparent 34%);
}

.ep-areas-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 28%, rgba(215,25,32,.34), transparent 32%),
		radial-gradient(circle at 88% 74%, rgba(215,25,32,.18), transparent 28%);
	mix-blend-mode: screen;
	animation: epHeroGlowDrift 10s ease-in-out infinite alternate;
}

.ep-areas-hero__inner {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 60px;
	align-items: end;
}

.ep-areas-hero__content {
	max-width: 850px;
}

.ep-areas-hero .ep-eyebrow {
	color: #fff;
}

.ep-areas-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.7rem, 7.2vw, 7.8rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-areas-hero__content > p:not(.ep-eyebrow) {
	max-width: 680px;
	margin-top: 28px;
	color: rgba(255,255,255,.8);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-areas-hero-card {
	padding: 28px;
	border-radius: 22px;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.18);
	box-shadow: 0 30px 90px rgba(0,0,0,.28);
	backdrop-filter: blur(18px);
}

.ep-areas-hero-card span {
	display: block;
	margin-bottom: 18px;
	color: rgba(255,255,255,.72);
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-areas-hero-card strong {
	display: block;
	color: #fff;
	font-size: 2.2rem;
	line-height: .95;
	font-weight: 950;
	letter-spacing: -.06em;
}

.ep-areas-hero-card p {
	margin: 16px 0 0;
	color: rgba(255,255,255,.72);
	line-height: 1.7;
}

.ep-areas-intro {
	background: #fff;
}

.ep-areas-intro__grid,
.ep-areas-nearby__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-areas-intro h2,
.ep-areas-grid-section h2,
.ep-areas-dark h2,
.ep-areas-nearby h2,
.ep-areas-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-areas-intro p,
.ep-areas-grid-section__header p,
.ep-areas-nearby p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-areas-intro__image,
.ep-areas-nearby__image {
	min-height: 540px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-areas-grid-section {
	padding: 120px 0;
	background:
		linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-areas-grid-section__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-areas-card-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-areas-card-grid a {
	display: block;
	padding: 28px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,.06);
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-areas-card-grid a:hover {
	transform: translateY(-7px);
	box-shadow: 0 30px 80px rgba(0,0,0,.1);
}

.ep-areas-card-grid span {
	display: block;
	margin-bottom: 26px;
	color: var(--brand-primary);
	font-size: 2.3rem;
	font-weight: 950;
	line-height: .8;
}

.ep-areas-card-grid h3 {
	margin: 0 0 12px;
	color: var(--brand-dark);
	font-size: 1.35rem;
}

.ep-areas-card-grid p {
	margin: 0;
	color: var(--brand-muted);
	font-size: .94rem;
	line-height: 1.7;
}

.ep-areas-dark {
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215,25,32,.18), transparent 32%),
		linear-gradient(135deg, #111, #252525);
	color: #fff;
	overflow: hidden;
}

.ep-areas-dark .ep-eyebrow {
	color: #fff;
}

.ep-areas-dark__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-areas-dark h2 {
	color: #fff;
}

.ep-areas-dark p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-areas-dark__visual {
	min-height: 560px;
	box-shadow: 0 34px 90px rgba(0,0,0,.24);
}

.ep-areas-dark-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin: 32px 0;
}

.ep-areas-dark-card div {
	padding: 24px;
	border-radius: 20px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(16px);
}

.ep-areas-dark-card span {
	display: block;
	margin-bottom: 18px;
	color: var(--brand-primary);
	font-size: 2.2rem;
	font-weight: 950;
	line-height: .8;
}

.ep-areas-dark-card strong {
	display: block;
	color: #fff;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ep-areas-nearby {
	background: #fff;
}

.ep-areas-final {
	position: relative;
	min-height: 650px;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-areas-final__bg,
.ep-areas-final__shade {
	position: absolute;
	inset: 0;
}

.ep-areas-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.ep-areas-final:hover .ep-areas-final__bg img {
	transform: scale(1.06);
}

.ep-areas-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.68), rgba(0,0,0,.28)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-areas-final__content {
	position: relative;
	z-index: 2;
	max-width: 900px;
}

.ep-areas-final .ep-eyebrow {
	color: #fff;
}

.ep-areas-final h2 {
	color: #fff;
}

.ep-areas-final p {
	max-width: 760px;
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

@media (max-width: 1180px) {
	.ep-areas-card-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 1000px) {
	.ep-areas-hero__inner,
	.ep-areas-intro__grid,
	.ep-areas-dark__grid,
	.ep-areas-nearby__grid {
		grid-template-columns: 1fr;
	}

	.ep-areas-hero-card {
		max-width: 420px;
	}

	.ep-areas-dark-card {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.ep-areas-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-areas-hero h1 {
		font-size: clamp(3.2rem, 15vw, 5.4rem);
	}

	.ep-areas-grid-section,
	.ep-areas-dark {
		padding: 80px 0;
	}

	.ep-areas-card-grid {
		grid-template-columns: 1fr;
	}

	.ep-areas-intro__image,
	.ep-areas-dark__visual,
	.ep-areas-nearby__image {
		min-height: 420px;
	}

	.ep-areas-final {
		min-height: 640px;
	}
}

@media (max-width: 700px) {
	.ep-areas-hero-card,
	.ep-areas-card-grid a,
	.ep-areas-dark-card div {
		padding: 24px;
	}
}
/* ================================
   Contact Page
================================ */

.ep-contact-page {
	background: #fff;
}

.ep-contact-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-contact-hero__bg,
.ep-contact-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-contact-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 68% center;
	transform: scale(1.05);
}

.ep-contact-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.94), rgba(0,0,0,.72), rgba(0,0,0,.2)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.32), transparent 34%);
}

.ep-contact-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 28%, rgba(215,25,32,.34), transparent 32%),
		radial-gradient(circle at 88% 74%, rgba(215,25,32,.18), transparent 28%);
	mix-blend-mode: screen;
	animation: epHeroGlowDrift 10s ease-in-out infinite alternate;
}

.ep-contact-hero__inner {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 60px;
	align-items: end;
}

.ep-contact-hero__content {
	max-width: 850px;
}

.ep-contact-hero .ep-eyebrow {
	color: #fff;
}

.ep-contact-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.7rem, 7.2vw, 7.8rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-contact-hero__content > p:not(.ep-eyebrow) {
	max-width: 680px;
	margin-top: 28px;
	color: rgba(255,255,255,.8);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-contact-hero-card {
	padding: 28px;
	border-radius: 22px;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.18);
	box-shadow: 0 30px 90px rgba(0,0,0,.28);
	backdrop-filter: blur(18px);
}

.ep-contact-hero-card span {
	display: block;
	margin-bottom: 18px;
	color: rgba(255,255,255,.72);
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-contact-hero-card strong {
	display: block;
	color: #fff;
	font-size: 2rem;
	line-height: .95;
	font-weight: 950;
	letter-spacing: -.05em;
}

.ep-contact-hero-card p {
	margin: 16px 0 0;
	color: rgba(255,255,255,.72);
	line-height: 1.7;
}

.ep-contact-form-section {
	background: #fff;
}

.ep-contact-form__grid,
.ep-contact-service-area__grid {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: 76px;
	align-items: start;
}

.ep-contact-form__content {
	position: sticky;
	top: 150px;
}

.ep-contact-form__content h2,
.ep-contact-options h2,
.ep-contact-dark h2,
.ep-contact-service-area h2,
.ep-contact-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-contact-form__content p,
.ep-contact-options__header p,
.ep-contact-service-area p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-contact-info-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin: 34px 0;
}

.ep-contact-info-grid a {
	display: block;
	padding: 22px;
	border-radius: 18px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.06);
	text-decoration: none;
}

.ep-contact-info-grid span {
	display: block;
	color: var(--brand-muted);
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .12em;
}

.ep-contact-info-grid strong {
	display: block;
	margin-top: 8px;
	color: var(--brand-dark);
	font-size: 1.1rem;
	font-weight: 950;
}

.ep-contact-note {
	padding: 22px;
	border-radius: 18px;
	background: rgba(215,25,32,.08);
	border: 1px solid rgba(215,25,32,.18);
}

.ep-contact-note strong,
.ep-contact-note span {
	display: block;
}

.ep-contact-note strong {
	color: var(--brand-primary);
}

.ep-contact-note span {
	margin-top: 6px;
	color: var(--brand-gray);
	line-height: 1.65;
}

.ep-contact-form-card {
	padding: 34px;
	border-radius: 26px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 30px 90px rgba(0,0,0,.1);
}

.ep-form label span {
	color: var(--brand-dark);
	font-size: .9rem;
	font-weight: 850;
}

.ep-form-disclaimer {
	margin: -4px 0 0;
	color: var(--brand-muted);
	font-size: .82rem;
	line-height: 1.55;
}

.ep-contact-options {
	padding: 120px 0;
	background:
		linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-contact-options__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-contact-option-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-contact-option-grid a {
	display: block;
	padding: 28px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,.06);
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-contact-option-grid a:hover {
	transform: translateY(-7px);
	box-shadow: 0 30px 80px rgba(0,0,0,.1);
}

.ep-contact-option-grid span {
	display: block;
	margin-bottom: 26px;
	color: var(--brand-primary);
	font-size: 2.3rem;
	font-weight: 950;
	line-height: .8;
}

.ep-contact-option-grid h3 {
	margin: 0 0 12px;
	color: var(--brand-dark);
	font-size: 1.28rem;
}

.ep-contact-option-grid p {
	margin: 0;
	color: var(--brand-muted);
	font-size: .94rem;
	line-height: 1.7;
}

.ep-contact-dark {
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215,25,32,.18), transparent 32%),
		linear-gradient(135deg, #111, #252525);
	color: #fff;
	overflow: hidden;
}

.ep-contact-dark .ep-eyebrow {
	color: #fff;
}

.ep-contact-dark__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-contact-dark h2 {
	color: #fff;
}

.ep-contact-dark p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-contact-dark__visual {
	min-height: 560px;
	box-shadow: 0 34px 90px rgba(0,0,0,.24);
}

.ep-contact-dark-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin: 32px 0;
}

.ep-contact-dark-card div {
	padding: 24px;
	border-radius: 20px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(16px);
}

.ep-contact-dark-card span {
	display: block;
	margin-bottom: 18px;
	color: var(--brand-primary);
	font-size: 2.2rem;
	font-weight: 950;
	line-height: .8;
}

.ep-contact-dark-card strong {
	display: block;
	color: #fff;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ep-contact-service-area {
	background: #fff;
}

.ep-contact-service-area__image {
	min-height: 540px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-contact-final {
	position: relative;
	min-height: 650px;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-contact-final__bg,
.ep-contact-final__shade {
	position: absolute;
	inset: 0;
}

.ep-contact-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.ep-contact-final:hover .ep-contact-final__bg img {
	transform: scale(1.06);
}

.ep-contact-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.68), rgba(0,0,0,.28)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-contact-final__content {
	position: relative;
	z-index: 2;
	max-width: 900px;
}

.ep-contact-final .ep-eyebrow {
	color: #fff;
}

.ep-contact-final h2 {
	color: #fff;
}

.ep-contact-final p {
	max-width: 760px;
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

@media (max-width: 1180px) {
	.ep-contact-option-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 1000px) {
	.ep-contact-hero__inner,
	.ep-contact-form__grid,
	.ep-contact-dark__grid,
	.ep-contact-service-area__grid {
		grid-template-columns: 1fr;
	}

	.ep-contact-form__content {
		position: static;
	}

	.ep-contact-hero-card {
		max-width: 420px;
	}

	.ep-contact-dark-card {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.ep-contact-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-contact-hero h1 {
		font-size: clamp(3.2rem, 15vw, 5.4rem);
	}

	.ep-contact-options,
	.ep-contact-dark {
		padding: 80px 0;
	}

	.ep-contact-option-grid,
	.ep-contact-info-grid {
		grid-template-columns: 1fr;
	}

	.ep-contact-dark__visual,
	.ep-contact-service-area__image {
		min-height: 420px;
	}

	.ep-contact-final {
		min-height: 640px;
	}
}

@media (max-width: 700px) {
	.ep-contact-hero-card,
	.ep-contact-form-card,
	.ep-contact-option-grid a,
	.ep-contact-dark-card div {
		padding: 24px;
	}
}
.ep-form-grid--three {
	grid-template-columns: repeat(3, 1fr);
}

.ep-form-fieldset {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	border: 0;
}

.ep-form-fieldset legend {
	margin-bottom: 2px;
	color: var(--brand-dark);
	font-size: .9rem;
	font-weight: 850;
}

.ep-checkbox {
	display: flex !important;
	grid-template-columns: none !important;
	align-items: flex-start;
	gap: 12px;
	padding: 14px;
	border-radius: var(--radius-sm);
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.07);
	cursor: pointer;
}

.ep-checkbox input {
	width: 18px;
	min-width: 18px;
	height: 18px;
	min-height: 18px;
	margin-top: 3px;
	accent-color: var(--brand-primary);
}

.ep-checkbox span {
	color: var(--brand-gray);
	font-size: .9rem;
	line-height: 1.55;
}

.ep-form-consent {
	display: grid;
	gap: 12px;
}

.ep-form-consent p {
	margin: 4px 0 0;
	color: var(--brand-muted);
	font-size: .78rem;
	line-height: 1.55;
}

@media (max-width: 900px) {
	.ep-form-grid--three {
		grid-template-columns: 1fr;
	}
}
/* ================================
   City Service Area Page
================================ */

.ep-city-page {
	background: #fff;
}

.ep-city-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-city-hero__bg,
.ep-city-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-city-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 68% center;
	transform: scale(1.05);
}

.ep-city-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.94), rgba(0,0,0,.72), rgba(0,0,0,.2)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.32), transparent 34%);
}

.ep-city-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 28%, rgba(215,25,32,.34), transparent 32%),
		radial-gradient(circle at 88% 74%, rgba(215,25,32,.18), transparent 28%);
	mix-blend-mode: screen;
	animation: epHeroGlowDrift 10s ease-in-out infinite alternate;
}

.ep-city-hero__inner {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 60px;
	align-items: end;
}

.ep-city-hero__content {
	max-width: 850px;
}

.ep-city-hero .ep-eyebrow {
	color: #fff;
}

.ep-city-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.7rem, 7.2vw, 7.8rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-city-hero__content > p:not(.ep-eyebrow) {
	max-width: 680px;
	margin-top: 28px;
	color: rgba(255,255,255,.8);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-city-hero-card {
	padding: 28px;
	border-radius: 22px;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.18);
	box-shadow: 0 30px 90px rgba(0,0,0,.28);
	backdrop-filter: blur(18px);
}

.ep-city-hero-card span {
	display: block;
	margin-bottom: 18px;
	color: rgba(255,255,255,.72);
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-city-hero-card strong {
	display: block;
	color: #fff;
	font-size: 2.2rem;
	line-height: .95;
	font-weight: 950;
	letter-spacing: -.06em;
}

.ep-city-hero-card p {
	margin: 16px 0 0;
	color: rgba(255,255,255,.72);
	line-height: 1.7;
}

.ep-city-intro {
	background: #fff;
}

.ep-city-intro__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-city-intro h2,
.ep-city-services h2,
.ep-city-dark h2,
.ep-city-process h2,
.ep-city-nearby h2,
.ep-city-faq h2,
.ep-city-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-city-intro p,
.ep-city-services__header p,
.ep-city-process__header p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-city-intro__image {
	min-height: 540px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-city-services {
	padding: 120px 0;
	background:
		linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-city-services__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-city-service-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-city-service-grid a {
	position: relative;
	min-height: 430px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	border-radius: 24px;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 30px 90px rgba(0,0,0,.18);
}

.ep-city-service-grid img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.ep-city-service-grid a::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.86)),
		radial-gradient(circle at 20% 24%, rgba(215,25,32,.24), transparent 32%);
}

.ep-city-service-grid a:hover img {
	transform: scale(1.08);
}

.ep-city-service-grid div {
	position: relative;
	z-index: 2;
	padding: 24px;
}

.ep-city-service-grid span {
	display: block;
	margin-bottom: 12px;
	color: var(--brand-primary);
	font-size: .75rem;
	font-weight: 950;
	letter-spacing: .16em;
}

.ep-city-service-grid h3 {
	color: #fff;
	font-size: 1.35rem;
}

.ep-city-service-grid p {
	margin: 12px 0 0;
	color: rgba(255,255,255,.72);
	line-height: 1.65;
}

.ep-city-dark {
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215,25,32,.18), transparent 32%),
		linear-gradient(135deg, #111, #252525);
	color: #fff;
	overflow: hidden;
}

.ep-city-dark .ep-eyebrow {
	color: #fff;
}

.ep-city-dark__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-city-dark h2 {
	color: #fff;
}

.ep-city-dark p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-city-dark__visual {
	min-height: 560px;
	box-shadow: 0 34px 90px rgba(0,0,0,.24);
}

.ep-city-dark-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin: 32px 0;
}

.ep-city-dark-card div {
	padding: 24px;
	border-radius: 20px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(16px);
}

.ep-city-dark-card span {
	display: block;
	margin-bottom: 18px;
	color: var(--brand-primary);
	font-size: 2.2rem;
	font-weight: 950;
	line-height: .8;
}

.ep-city-dark-card strong {
	display: block;
	color: #fff;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ep-city-process {
	background: #fff;
}

.ep-city-process__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-city-process__steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-city-process__steps div {
	padding: 30px;
	border-radius: 22px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-city-process__steps div:hover {
	transform: translateY(-7px);
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.ep-city-process__steps span {
	display: inline-flex;
	margin-bottom: 28px;
	color: var(--brand-primary);
	font-size: 2.8rem;
	font-weight: 950;
	line-height: .8;
}

.ep-city-process__steps h3 {
	margin: 0 0 12px;
	font-size: 1.22rem;
}

.ep-city-process__steps p {
	margin: 0;
	color: var(--brand-muted);
	line-height: 1.7;
}

.ep-city-nearby,
.ep-city-final {
	position: relative;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-city-nearby {
	min-height: 700px;
}

.ep-city-final {
	min-height: 650px;
}

.ep-city-nearby__bg,
.ep-city-nearby__shade,
.ep-city-final__bg,
.ep-city-final__shade {
	position: absolute;
	inset: 0;
}

.ep-city-nearby__bg img,
.ep-city-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.ep-city-nearby:hover .ep-city-nearby__bg img,
.ep-city-final:hover .ep-city-final__bg img {
	transform: scale(1.06);
}

.ep-city-nearby__shade,
.ep-city-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.68), rgba(0,0,0,.28)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-city-nearby__content,
.ep-city-final__content {
	position: relative;
	z-index: 2;
	max-width: 900px;
}

.ep-city-nearby .ep-eyebrow,
.ep-city-final .ep-eyebrow {
	color: #fff;
}

.ep-city-nearby h2,
.ep-city-final h2 {
	color: #fff;
}

.ep-city-nearby p,
.ep-city-final p {
	max-width: 760px;
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

.ep-city-nearby .ep-area-list span {
	background: rgba(255,255,255,.12);
	border-color: rgba(255,255,255,.16);
	color: #fff;
	backdrop-filter: blur(14px);
}

.ep-city-faq {
	padding: 110px 0;
	background:
		radial-gradient(circle at 14% 18%, rgba(215,25,32,.16), transparent 30%),
		#151515;
	color: #fff;
}

.ep-city-faq .ep-eyebrow {
	color: #fff;
}

.ep-city-faq__grid {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	gap: 70px;
	align-items: start;
}

.ep-city-faq h2 {
	color: #fff;
}

.ep-city-faq p {
	color: rgba(255,255,255,.68);
	line-height: 1.8;
}

.ep-city-faq__items {
	display: grid;
	gap: 12px;
}

.ep-city-faq__items details {
	border-bottom: 1px solid rgba(255,255,255,.16);
}

.ep-city-faq__items summary {
	list-style: none;
	cursor: pointer;
	padding: 22px 0;
	color: #fff;
	font-weight: 850;
}

.ep-city-faq__items summary::-webkit-details-marker {
	display: none;
}

.ep-city-faq__items p {
	margin: 0;
	padding: 0 0 22px;
}

@media (max-width: 1180px) {
	.ep-city-service-grid,
	.ep-city-process__steps {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 1000px) {
	.ep-city-hero__inner,
	.ep-city-intro__grid,
	.ep-city-dark__grid,
	.ep-city-faq__grid {
		grid-template-columns: 1fr;
	}

	.ep-city-hero-card {
		max-width: 420px;
	}

	.ep-city-dark-card {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.ep-city-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-city-hero h1 {
		font-size: clamp(3.2rem, 15vw, 5.4rem);
	}

	.ep-city-services,
	.ep-city-dark,
	.ep-city-faq {
		padding: 80px 0;
	}

	.ep-city-service-grid,
	.ep-city-process__steps {
		grid-template-columns: 1fr;
	}

	.ep-city-intro__image,
	.ep-city-dark__visual {
		min-height: 420px;
	}

	.ep-city-service-grid a {
		min-height: 360px;
	}

	.ep-city-nearby,
	.ep-city-final {
		min-height: 640px;
	}
}

@media (max-width: 700px) {
	.ep-city-hero-card,
	.ep-city-process__steps div,
	.ep-city-dark-card div {
		padding: 24px;
	}
}
/* ================================
   Get A Quote Page
================================ */

.ep-quote-page {
	background: #fff;
}

.ep-quote-hero {
	position: relative;
	min-height: 820px;
	display: grid;
	align-items: center;
	padding: 180px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-quote-hero__bg,
.ep-quote-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-quote-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 68% center;
	transform: scale(1.05);
}

.ep-quote-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.94), rgba(0,0,0,.72), rgba(0,0,0,.2)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.32), transparent 34%);
}

.ep-quote-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 28%, rgba(215,25,32,.34), transparent 32%),
		radial-gradient(circle at 88% 74%, rgba(215,25,32,.18), transparent 28%);
	mix-blend-mode: screen;
	animation: epHeroGlowDrift 10s ease-in-out infinite alternate;
}

.ep-quote-hero__inner {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 60px;
	align-items: end;
}

.ep-quote-hero__content {
	max-width: 850px;
}

.ep-quote-hero .ep-eyebrow {
	color: #fff;
}

.ep-quote-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.7rem, 7.2vw, 7.8rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-quote-hero__content > p:not(.ep-eyebrow) {
	max-width: 680px;
	margin-top: 28px;
	color: rgba(255,255,255,.8);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-quote-hero-card {
	padding: 28px;
	border-radius: 22px;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.18);
	box-shadow: 0 30px 90px rgba(0,0,0,.28);
	backdrop-filter: blur(18px);
}

.ep-quote-hero-card span {
	display: block;
	margin-bottom: 18px;
	color: rgba(255,255,255,.72);
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-quote-hero-card strong {
	display: block;
	color: #fff;
	font-size: 2rem;
	line-height: .98;
	font-weight: 950;
	letter-spacing: -.05em;
}

.ep-quote-hero-card p {
	margin: 16px 0 0;
	color: rgba(255,255,255,.72);
	line-height: 1.7;
}

.ep-quote-form-section {
	background: #fff;
}

.ep-quote-form__grid,
.ep-quote-area__grid {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: 76px;
	align-items: start;
}

.ep-quote-form__content {
	position: sticky;
	top: 150px;
}

.ep-quote-form__content h2,
.ep-quote-steps h2,
.ep-quote-dark h2,
.ep-quote-area h2,
.ep-quote-final h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5vw, 5.8rem);
	line-height: .9;
}

.ep-quote-form__content p,
.ep-quote-steps__header p,
.ep-quote-area p {
	color: var(--brand-muted);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-quote-proof-grid {
	display: grid;
	gap: 14px;
	margin: 34px 0;
}

.ep-quote-proof-grid div {
	padding: 22px;
	border-radius: 18px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.06);
}

.ep-quote-proof-grid strong {
	display: block;
	color: var(--brand-primary);
	font-size: 2rem;
	font-weight: 950;
	line-height: 1;
}

.ep-quote-proof-grid span {
	display: block;
	margin-top: 8px;
	color: var(--brand-gray);
	font-weight: 850;
	line-height: 1.35;
}

.ep-quote-form-card {
	padding: 34px;
	border-radius: 26px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 30px 90px rgba(0,0,0,.1);
}

.ep-quote-steps {
	padding: 120px 0;
	background:
		linear-gradient(180deg, #fff, var(--brand-light));
}

.ep-quote-steps__header {
	max-width: 900px;
	margin-bottom: 54px;
}

.ep-quote-step-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.ep-quote-step-grid div {
	padding: 30px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-quote-step-grid div:hover {
	transform: translateY(-7px);
	box-shadow: 0 30px 80px rgba(0,0,0,.1);
}

.ep-quote-step-grid span {
	display: inline-flex;
	margin-bottom: 28px;
	color: var(--brand-primary);
	font-size: 2.8rem;
	font-weight: 950;
	line-height: .8;
}

.ep-quote-step-grid h3 {
	margin: 0 0 12px;
	font-size: 1.22rem;
}

.ep-quote-step-grid p {
	margin: 0;
	color: var(--brand-muted);
	line-height: 1.7;
}

.ep-quote-dark {
	padding: 120px 0;
	background:
		radial-gradient(circle at 16% 24%, rgba(215,25,32,.18), transparent 32%),
		linear-gradient(135deg, #111, #252525);
	color: #fff;
	overflow: hidden;
}

.ep-quote-dark .ep-eyebrow {
	color: #fff;
}

.ep-quote-dark__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 76px;
	align-items: center;
}

.ep-quote-dark h2 {
	color: #fff;
}

.ep-quote-dark p {
	color: rgba(255,255,255,.72);
	font-size: 1.08rem;
	line-height: 1.8;
}

.ep-quote-dark__visual {
	min-height: 560px;
	box-shadow: 0 34px 90px rgba(0,0,0,.24);
}

.ep-quote-dark-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin: 32px 0;
}

.ep-quote-dark-card div {
	padding: 24px;
	border-radius: 20px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(16px);
}

.ep-quote-dark-card span {
	display: block;
	margin-bottom: 18px;
	color: var(--brand-primary);
	font-size: 2.2rem;
	font-weight: 950;
	line-height: .8;
}

.ep-quote-dark-card strong {
	display: block;
	color: #fff;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ep-quote-area {
	background: #fff;
}

.ep-quote-area__image {
	min-height: 540px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-quote-final {
	position: relative;
	min-height: 650px;
	display: grid;
	align-items: center;
	background: #111;
	color: #fff;
	overflow: hidden;
}

.ep-quote-final__bg,
.ep-quote-final__shade {
	position: absolute;
	inset: 0;
}

.ep-quote-final__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.ep-quote-final:hover .ep-quote-final__bg img {
	transform: scale(1.06);
}

.ep-quote-final__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.68), rgba(0,0,0,.28)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.28), transparent 34%);
}

.ep-quote-final__content {
	position: relative;
	z-index: 2;
	max-width: 900px;
}

.ep-quote-final .ep-eyebrow {
	color: #fff;
}

.ep-quote-final h2 {
	color: #fff;
}

.ep-quote-final p {
	max-width: 760px;
	color: rgba(255,255,255,.74);
	font-size: 1.12rem;
	line-height: 1.8;
}

@media (max-width: 1180px) {
	.ep-quote-step-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 1000px) {
	.ep-quote-hero__inner,
	.ep-quote-form__grid,
	.ep-quote-dark__grid,
	.ep-quote-area__grid {
		grid-template-columns: 1fr;
	}

	.ep-quote-form__content {
		position: static;
	}

	.ep-quote-hero-card {
		max-width: 420px;
	}

	.ep-quote-dark-card {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.ep-quote-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-quote-hero h1 {
		font-size: clamp(3.2rem, 15vw, 5.4rem);
	}

	.ep-quote-steps,
	.ep-quote-dark {
		padding: 80px 0;
	}

	.ep-quote-step-grid {
		grid-template-columns: 1fr;
	}

	.ep-quote-dark__visual,
	.ep-quote-area__image {
		min-height: 420px;
	}

	.ep-quote-final {
		min-height: 640px;
	}
}

@media (max-width: 700px) {
	.ep-quote-hero-card,
	.ep-quote-form-card,
	.ep-quote-step-grid div,
	.ep-quote-dark-card div {
		padding: 24px;
	}
}
/* ================================
   Default WordPress Templates
================================ */

.ep-default-page {
	background: #fff;
}

.ep-default-hero {
	position: relative;
	min-height: 680px;
	display: grid;
	align-items: center;
	padding: 170px 0 90px;
	background: var(--brand-dark);
	color: #fff;
	overflow: hidden;
}

.ep-default-hero__bg,
.ep-default-hero__shade {
	position: absolute;
	inset: 0;
}

.ep-default-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1.05);
}

.ep-default-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.94), rgba(0,0,0,.72), rgba(0,0,0,.24)),
		radial-gradient(circle at 18% 42%, rgba(215,25,32,.32), transparent 34%);
}

.ep-default-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 28%, rgba(215,25,32,.34), transparent 32%),
		radial-gradient(circle at 88% 74%, rgba(215,25,32,.18), transparent 28%);
	mix-blend-mode: screen;
	animation: epHeroGlowDrift 10s ease-in-out infinite alternate;
}

.ep-default-hero__inner {
	position: relative;
	z-index: 3;
}

.ep-default-hero__content {
	max-width: 900px;
}

.ep-default-hero .ep-eyebrow {
	color: #fff;
}

.ep-default-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.5rem, 7vw, 7.4rem);
	line-height: .86;
	letter-spacing: -.07em;
}

.ep-default-hero p:not(.ep-eyebrow) {
	max-width: 680px;
	margin-top: 28px;
	color: rgba(255,255,255,.8);
	font-size: 1.14rem;
	line-height: 1.75;
}

.ep-default-content {
	background: #fff;
}

.ep-default-content__inner {
	max-width: 880px;
}

.ep-default-content__inner > * + * {
	margin-top: 1.4rem;
}

.ep-default-content__inner h2,
.ep-default-content__inner h3,
.ep-default-content__inner h4 {
	margin-top: 2.4rem;
	line-height: 1;
}

.ep-default-content__inner h2 {
	font-size: clamp(2.4rem, 4vw, 4rem);
}

.ep-default-content__inner h3 {
	font-size: clamp(1.8rem, 3vw, 2.6rem);
}

.ep-default-content__inner p,
.ep-default-content__inner li {
	color: var(--brand-gray);
	font-size: 1.05rem;
	line-height: 1.8;
}

.ep-default-content__inner a {
	font-weight: 850;
}

.ep-default-content__inner img {
	border-radius: 24px;
	box-shadow: var(--brand-dark-shadow);
}

.ep-post-archive {
	background: #fff;
}

.ep-post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.ep-post-card a {
	display: block;
	height: 100%;
	overflow: hidden;
	border-radius: 24px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,.07);
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease;
}

.ep-post-card a:hover {
	transform: translateY(-7px);
	box-shadow: 0 30px 80px rgba(0,0,0,.12);
}

.ep-post-card img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.ep-post-card div {
	padding: 26px;
}

.ep-post-card span {
	display: block;
	margin-bottom: 14px;
	color: var(--brand-primary);
	font-size: .72rem;
	font-weight: 950;
	text-transform: uppercase;
	letter-spacing: .14em;
}

.ep-post-card h2 {
	margin: 0;
	color: var(--brand-dark);
	font-size: 1.55rem;
	line-height: 1;
}

.ep-post-card p {
	margin: 14px 0 0;
	color: var(--brand-muted);
	line-height: 1.7;
}

.ep-pagination {
	margin-top: 54px;
}

.ep-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.ep-pagination a,
.ep-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border-radius: 10px;
	background: var(--brand-light);
	color: var(--brand-dark);
	font-weight: 850;
	text-decoration: none;
}

.ep-pagination .current,
.ep-pagination a:hover {
	background: var(--brand-primary);
	color: #fff;
}

.ep-search-form {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 14px;
	margin-bottom: 44px;
	padding: 24px;
	border-radius: 22px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.07);
}

.ep-search-form label {
	margin: 0;
}

.ep-search-form__input {
	width: 100%;
	min-height: 52px;
	padding: 13px 15px;
	border: 1px solid rgba(0,0,0,.14);
	border-radius: var(--radius-sm);
	background: #fff;
	color: var(--brand-dark);
}

.ep-search-form__input:focus {
	outline: 3px solid rgba(215,25,32,.16);
	border-color: var(--brand-primary);
}

.ep-no-results {
	padding: 36px;
	border-radius: 24px;
	background: var(--brand-light);
	border: 1px solid rgba(0,0,0,.07);
}

.ep-no-results h2 {
	margin: 0 0 12px;
	font-size: 2rem;
}

.ep-no-results p {
	margin: 0;
	color: var(--brand-muted);
}

@media (max-width: 1000px) {
	.ep-post-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 900px) {
	.ep-default-hero {
		min-height: auto;
		padding: 150px 0 72px;
	}

	.ep-default-hero h1 {
		font-size: clamp(3.2rem, 15vw, 5.4rem);
	}
}

@media (max-width: 700px) {
	.ep-post-grid,
	.ep-search-form {
		grid-template-columns: 1fr;
	}

	.ep-search-form .ep-btn {
		width: 100%;
	}
}
/* ==========================================
   Global H1 Size Override
========================================== */

h1,
.ep-city-hero h1,
.ep-service-hero h1,
.ep-quote-hero h1,
.ep-page-hero h1,
.ep-hero h1,
.ep-install-hero h1 {
	font-size: clamp(2.5rem, 5vw, 4.8rem) !important;
	line-height: 1.08;
	letter-spacing: -0.03em;
	margin-bottom: 1rem;
	text-wrap: balance;
}

@media (max-width: 768px) {
	h1,
	.ep-city-hero h1,
	.ep-service-hero h1,
	.ep-quote-hero h1,
	.ep-page-hero h1,
	.ep-hero h1,
	.ep-install-hero h1 {
		font-size: clamp(2rem, 7vw, 2.75rem);
		line-height: 1.1;
	}
}