/* =========================================================
   PIPELINE EXCAVATION HOMEPAGE FINAL
   ========================================================= */

.pehome,
.pehome * {
	box-sizing: border-box;
}

.pehome {
	--pe-black: #050505;
	--pe-black-2: #111111;
	--pe-charcoal: #1b1b1b;
	--pe-red: #ed1c24;
	--pe-yellow: #ffd21a;
	--pe-yellow-2: #ffc64d;
	--pe-cream: #fff5d8;
	--pe-soft: #f6f3ea;
	--pe-white: #ffffff;
	--pe-copy: #5f6673;
	--pe-ink: #151923;
	font-family: inherit;
	color: var(--pe-ink);
	background: #ffffff;
	overflow: hidden;
}

.pehome a {
	text-decoration: none !important;
}

.pehome-shell {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
}

.pehome-eyebrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 15px;
	color: var(--pe-red);
	font-size: 11px;
	font-weight: 950;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.pehome-eyebrow::before {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pe-red);
	content: "";
}

.pehome h1,
.pehome h2,
.pehome h3,
.pehome p {
	margin-top: 0;
}

.pehome h1,
.pehome h2,
.pehome h3 {
	color: var(--pe-ink);
	font-weight: 950;
	letter-spacing: -0.04em;
}

.pehome p {
	color: var(--pe-copy);
	font-size: 16px;
	line-height: 1.7;
}

.pehome-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 24px;
	border-radius: 0;
	font-size: 13px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, color 0.22s ease;
}

.pehome-btn-primary {
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pe-yellow), var(--pe-yellow-2));
	box-shadow: 0 16px 34px rgba(255, 210, 26, 0.22);
}

.pehome-btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(255, 210, 26, 0.34);
}

.pehome-btn-secondary {
	color: #ffffff !important;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.42);
}

.pehome-btn-secondary:hover {
	color: var(--pe-yellow) !important;
	background: rgba(255,255,255,0.13);
	transform: translateY(-3px);
}

.pehome-text-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--pe-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pehome-text-link::after {
	content: "\2192";
	color: var(--pe-yellow);
	font-size: 18px;
	transition: 0.2s ease;
}

.pehome-text-link:hover::after {
	transform: translateX(4px);
}


/* HERO */

.pehome-hero {
	position: relative;
	min-height: 760px;
	display: flex;
	align-items: center;
	padding: 118px 0 86px;
	background: #050505;
	border-bottom: 5px solid var(--pe-red);
	overflow: hidden;
}

.pehome-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.74) 39%, rgba(0,0,0,0.34) 67%, rgba(0,0,0,0.72) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-vac-truck-bg.png") center center / cover no-repeat;
	transform: scale(1.02);
}

.pehome-hero::after {
	position: absolute;
	inset: auto 0 0;
	height: 160px;
	background: linear-gradient(0deg, rgba(0,0,0,0.86), transparent);
	content: "";
	pointer-events: none;
}

.pehome-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 690px) 350px;
	align-items: end;
	justify-content: space-between;
	gap: 50px;
}

.pehome-hero-copy h1 {
	max-width: 720px;
	margin-bottom: 20px;
	color: #ffffff;
	font-size: clamp(48px, 5.5vw, 82px);
	line-height: 0.96;
	text-shadow: 0 18px 44px rgba(0,0,0,0.45);
}

.pehome-hero-copy p {
	max-width: 650px;
	margin-bottom: 28px;
	color: rgba(255,255,255,0.82);
	font-size: 18px;
	line-height: 1.7;
}

.pehome-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 28px;
}

.pehome-proof-row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 700px;
	border: 1px solid rgba(255,210,26,0.24);
	background: rgba(0,0,0,0.48);
	backdrop-filter: blur(8px);
}

.pehome-proof-row div {
	padding: 15px 16px;
	border-right: 1px solid rgba(255,210,26,0.16);
}

.pehome-proof-row div:last-child {
	border-right: 0;
}

.pehome-proof-row strong,
.pehome-proof-row span {
	display: block;
}

.pehome-proof-row strong {
	margin-bottom: 3px;
	color: #ffffff;
	font-size: 14px;
	font-weight: 950;
	line-height: 1.1;
}

.pehome-proof-row span {
	color: rgba(255,255,255,0.64);
	font-size: 11px;
	font-weight: 850;
	line-height: 1.15;
	text-transform: uppercase;
	letter-spacing: 0.075em;
}

.pehome-hero-service-card {
	padding: 28px;
	background: linear-gradient(145deg, rgba(15,15,15,0.94), rgba(50,8,10,0.9));
	border: 1px solid rgba(255,210,26,0.24);
	border-top: 4px solid var(--pe-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.38);
}

.pehome-hero-service-card > span {
	display: inline-flex;
	margin-bottom: 10px;
	color: var(--pe-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pehome-hero-service-card h2 {
	margin-bottom: 10px;
	color: #ffffff;
	font-size: 27px;
	line-height: 1.08;
	letter-spacing: -0.035em;
}

.pehome-hero-service-card p {
	margin-bottom: 18px;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.6;
}

.pehome-hero-mini-list {
	display: grid;
	gap: 8px;
	margin-bottom: 18px;
}

.pehome-hero-mini-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 14px;
	color: #ffffff !important;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,255,255,0.08);
	font-size: 12px;
	font-weight: 900;
	transition: 0.2s ease;
}

.pehome-hero-mini-list a::after {
	content: "\2192";
	color: var(--pe-yellow);
}

.pehome-hero-mini-list a:hover {
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.3);
	transform: translateX(4px);
}

.pehome-hero-card-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 18px;
	color: #050505 !important;
	background: var(--pe-yellow);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: 0.2s ease;
}

.pehome-hero-card-cta::after {
	content: "\2192";
	font-size: 18px;
}

.pehome-hero-card-cta:hover {
	background: #ffffff;
	transform: translateY(-2px);
}


/* CERTS */

.pehome-certs {
	position: relative;
	z-index: 3;
	padding: 24px 0;
	background: #ffffff;
	border-bottom: 1px solid rgba(0,0,0,0.08);
}

.pehome-certs-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 34px;
	min-height: 118px;
}

.pehome-certs-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	transform: translateY(-4px);
}

.pehome-certs .pehome-eyebrow {
	margin-bottom: 10px;
}

.pehome-certs h2 {
	margin: 0;
	font-size: clamp(24px, 2.25vw, 34px);
	line-height: 1.04;
}

.pehome-badges {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 16px;
}

.pehome-badges img {
	display: block;
	width: 86px;
	height: 86px;
	object-fit: contain;
	padding: 10px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 12px 26px rgba(0,0,0,0.08);
	transition: 0.22s ease;
}

.pehome-badges img:hover {
	transform: translateY(-4px) scale(1.04);
	box-shadow: 0 18px 36px rgba(0,0,0,0.13);
}


/* SECTIONS */

.pehome-section {
	padding: 96px 0;
}

.pehome-section-head {
	max-width: 800px;
	margin: 0 auto 42px;
}

.pehome-center {
	text-align: center;
}

.pehome-center .pehome-eyebrow {
	justify-content: center;
}

.pehome-center .pehome-eyebrow::after {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pe-red);
	content: "";
}

.pehome-section-head h2,
.pehome-copy-block h2,
.pehome-video-copy h2,
.pehome-faq-copy h2 {
	margin-bottom: 16px;
	font-size: clamp(36px, 3.7vw, 56px);
	line-height: 1.04;
}

.pehome-section-head p {
	margin-left: auto;
	margin-right: auto;
	max-width: 720px;
}

.pehome-split,
.pehome-area-grid,
.pehome-video-grid,
.pehome-dark-grid,
.pehome-faq-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
	align-items: center;
	gap: 64px;
}

.pehome-copy-block p,
.pehome-video-copy p,
.pehome-faq-copy p {
	max-width: 640px;
}

.pehome-check-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 26px 0;
}

.pehome-check-grid a {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 50px;
	padding: 13px 14px 13px 38px;
	color: var(--pe-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 10px 24px rgba(0,0,0,0.05);
	font-size: 14px;
	font-weight: 900;
	transition: 0.22s ease;
	overflow: hidden;
}

.pehome-check-grid a::before {
	position: absolute;
	left: 14px;
	width: 8px;
	height: 8px;
	background: var(--pe-yellow);
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.18);
	content: "";
	z-index: 2;
}

.pehome-check-grid a::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(237,28,36,0.08), rgba(255,210,26,0.16));
	opacity: 0;
	content: "";
	transition: 0.22s ease;
}

.pehome-check-grid a:hover {
	transform: translateY(-4px);
	border-color: rgba(237,28,36,0.22);
	box-shadow: 0 18px 38px rgba(0,0,0,0.11);
}

.pehome-check-grid a:hover::after {
	opacity: 1;
}

.pehome-inline-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.pehome-image-card {
	position: relative;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 26px 70px rgba(0,0,0,0.16);
	overflow: hidden;
	transition: 0.32s ease;
}

.pehome-image-card::before {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient(135deg, rgba(237,28,36,0.2), transparent 48%, rgba(255,210,26,0.15));
	opacity: 0;
	content: "";
	transition: 0.32s ease;
	pointer-events: none;
}

.pehome-image-card img {
	display: block;
	width: 100%;
	height: 520px;
	object-fit: cover;
	transform: scale(1.01);
	transition: 0.45s ease;
}

.pehome-image-card:hover {
	transform: translateY(-7px);
	box-shadow: 0 34px 86px rgba(0,0,0,0.22);
}

.pehome-image-card:hover::before {
	opacity: 1;
}

.pehome-image-card:hover img {
	transform: scale(1.06);
}

.pehome-image-note {
	position: absolute;
	left: 22px;
	right: 22px;
	bottom: 22px;
	z-index: 3;
	padding: 18px 20px;
	background: rgba(5,5,5,0.88);
	border-left: 4px solid var(--pe-red);
}

.pehome-image-note strong,
.pehome-image-note span {
	display: block;
}

.pehome-image-note strong {
	margin-bottom: 5px;
	color: #ffffff;
	font-size: 16px;
	font-weight: 950;
}

.pehome-image-note span {
	color: rgba(255,255,255,0.72);
	font-size: 13px;
	line-height: 1.5;
}


/* SERVICES */

.pehome-services {
	background: linear-gradient(180deg, #f7fbfd 0%, #edf6fa 100%);
}

.pehome-service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.pehome-service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100%;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	overflow: hidden;
	transition: 0.28s ease;
}

.pehome-service-card::before {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--pe-red);
	transform: scaleX(0);
	transform-origin: left;
	content: "";
	transition: 0.28s ease;
	z-index: 3;
}

.pehome-service-img {
	position: relative;
	overflow: hidden;
}

.pehome-service-img::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 35%, rgba(0,0,0,0.42));
	opacity: 0;
	content: "";
	transition: 0.28s ease;
}

.pehome-service-card img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	transition: 0.42s ease;
}

.pehome-service-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 24px;
}

.pehome-service-body > span {
	margin-bottom: 12px;
	color: var(--pe-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.14em;
}

.pehome-service-card h3 {
	margin-bottom: 10px;
	font-size: 23px;
	line-height: 1.12;
}

.pehome-service-card p {
	margin-bottom: 18px;
	font-size: 14px;
	line-height: 1.6;
}

.pehome-service-card strong {
	margin-top: auto;
	color: var(--pe-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pehome-service-card strong::after {
	content: " \2192";
	color: var(--pe-yellow);
}

.pehome-service-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 28px 58px rgba(0,0,0,0.14);
	border-color: rgba(237,28,36,0.2);
}

.pehome-service-card:hover::before {
	transform: scaleX(1);
}

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

.pehome-service-card:hover .pehome-service-img::after {
	opacity: 1;
}

.pehome-after-grid {
	margin-top: 34px;
}


/* DARK */

.pehome-dark {
	position: relative;
	color: #ffffff;
	background:
		radial-gradient(circle at 15% 20%, rgba(255,210,26,0.12), transparent 34%),
		radial-gradient(circle at 88% 80%, rgba(237,28,36,0.16), transparent 36%),
		#050505;
	border-top: 5px solid var(--pe-red);
	border-bottom: 5px solid var(--pe-red);
}

.pehome-dark h2,
.pehome-dark h3 {
	color: #ffffff;
}

.pehome-dark p {
	color: rgba(255,255,255,0.72);
}

.pehome-feature-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.pehome-feature {
	position: relative;
	padding: 24px;
	background: rgba(255,255,255,0.055);
	border: 1px solid rgba(255,210,26,0.18);
	overflow: hidden;
	transition: 0.25s ease;
}

.pehome-feature::after {
	position: absolute;
	right: -40px;
	bottom: -40px;
	width: 100px;
	height: 100px;
	background: radial-gradient(circle, rgba(255,210,26,0.18), transparent 70%);
	content: "";
	opacity: 0;
	transition: 0.25s ease;
}

.pehome-feature strong {
	display: inline-flex;
	margin-bottom: 14px;
	color: var(--pe-yellow);
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.12em;
}

.pehome-feature h3 {
	margin-bottom: 9px;
	font-size: 22px;
}

.pehome-feature p {
	margin-bottom: 0;
	font-size: 14px;
	line-height: 1.65;
}

.pehome-feature:hover {
	transform: translateY(-6px);
	background: rgba(255,255,255,0.08);
	border-color: rgba(255,210,26,0.34);
	box-shadow: 0 22px 48px rgba(0,0,0,0.24);
}

.pehome-feature:hover::after {
	opacity: 1;
}


/* VIDEOS */

.pehome-videos {
	position: relative;
	background:
		linear-gradient(180deg, #ffffff 0%, #fff8e8 100%);
}

.pehome-video-grid {
	align-items: center;
}

.pehome-video-copy {
	padding: 34px;
	background: #ffffff;
	border-left: 5px solid var(--pe-red);
	box-shadow: 0 22px 60px rgba(0,0,0,0.08);
}

.pehome-video-copy h2 {
	font-size: clamp(36px, 3.35vw, 52px);
}

.pehome-video-points {
	display: grid;
	gap: 10px;
	margin: 24px 0 28px;
}

.pehome-video-points span {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 26px;
	padding-left: 28px;
	color: var(--pe-ink);
	font-size: 14px;
	font-weight: 900;
	line-height: 1.45;
}

.pehome-video-points span::before {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--pe-yellow);
	box-shadow: 0 0 0 4px rgba(255,210,26,0.18);
	content: "";
}

.pehome-video-stack {
	display: grid;
	gap: 24px;
}

.pehome-video-card {
	padding: 16px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 22px 54px rgba(0,0,0,0.12);
	transition: 0.28s ease;
}

.pehome-video-card:hover {
	transform: translateY(-7px);
	box-shadow: 0 32px 70px rgba(0,0,0,0.17);
}

.pehome-video-frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #111111;
	overflow: hidden;
}

.pehome-video-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.pehome-video-caption {
	padding: 16px 4px 4px;
}

.pehome-video-caption span {
	display: block;
	margin-bottom: 6px;
	color: var(--pe-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pehome-video-caption h3 {
	margin: 0;
	font-size: 20px;
	line-height: 1.14;
}


/* AREAS */

.pehome-areas {
	background: linear-gradient(180deg, #fff8e6 0%, #f7f3e8 100%);
}

.pehome-area-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 25px 0 20px;
}

.pehome-area-tags span {
	display: inline-flex;
	padding: 10px 12px;
	color: #111111;
	background: #ffffff;
	border: 1px solid rgba(237,28,36,0.14);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: 0.2s ease;
}

.pehome-area-tags span:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.26);
	box-shadow: 0 12px 24px rgba(0,0,0,0.09);
}

.pehome-area-mini-copy {
	margin: 24px 0 28px;
	padding: 18px 20px;
	background: #ffffff;
	border-left: 4px solid var(--pe-red);
	box-shadow: 0 14px 30px rgba(0,0,0,0.06);
}

.pehome-area-mini-copy h3 {
	margin-bottom: 6px;
	font-size: 20px;
}

.pehome-area-mini-copy p {
	margin-bottom: 0;
	font-size: 14px;
	line-height: 1.6;
}

.pehome-map-panel {
	display: grid;
	gap: 18px;
}

.pehome-map-card {
	padding: 28px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 24px 58px rgba(0,0,0,0.12);
	transition: 0.28s ease;
}

.pehome-map-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 34px 74px rgba(0,0,0,0.16);
}

.pehome-map-card img {
	display: block;
	width: 100%;
	height: auto;
}

.pehome-map-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.pehome-map-links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 48px;
	padding: 13px 15px;
	color: var(--pe-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	font-size: 13px;
	font-weight: 950;
	transition: 0.2s ease;
}

.pehome-map-links a::after {
	content: "\2192";
	color: var(--pe-red);
}

.pehome-map-links a:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 14px 28px rgba(0,0,0,0.08);
}

.pehome-area-note {
	margin: 0;
	padding: 12px 14px;
	color: rgba(21,25,35,0.62);
	background: rgba(255,255,255,0.64);
	border: 1px solid rgba(0,0,0,0.06);
	font-size: 12px;
	line-height: 1.55;
}


/* REVIEWS */

.pehome-reviews {
	background: #f7fbfd;
}

.pehome-reviews .pehome-section-head {
	max-width: 900px;
}

.pehome-reviews .pehome-section-head h2 {
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
	font-size: clamp(34px, 3.2vw, 50px);
	line-height: 1.06;
}

.pehome-review-score {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr) auto;
	align-items: center;
	gap: 26px;
	margin-bottom: 28px;
	padding: 24px 28px;
	background: #ffffff;
	border: 1px solid rgba(237,28,36,0.12);
	box-shadow: 0 18px 42px rgba(0,0,0,0.06);
}

.pehome-review-score strong {
	display: block;
	color: var(--pe-ink);
	font-size: 48px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: -0.04em;
}

.pehome-review-score span {
	display: block;
	margin-top: 6px;
	color: var(--pe-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pehome-review-score p {
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
}

.pehome-review-score a {
	color: var(--pe-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.pehome-review-score a::after {
	content: " \2192";
	color: var(--pe-yellow);
}

.pehome-review-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.pehome-review {
	padding: 24px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	transition: 0.24s ease;
}

.pehome-review:hover {
	transform: translateY(-6px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 24px 52px rgba(0,0,0,0.11);
}

.pehome-stars {
	margin-bottom: 12px;
	color: var(--pe-yellow);
	font-size: 16px;
	letter-spacing: 0.08em;
}

.pehome-review p {
	margin-bottom: 18px;
	font-size: 14px;
	line-height: 1.68;
}

.pehome-review strong {
	color: var(--pe-ink);
	font-size: 14px;
	font-weight: 950;
}

.pehome-review-cta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.2), transparent 42%),
		#101010;
	border-color: rgba(255,210,26,0.22);
}

.pehome-review-cta span {
	margin-bottom: 10px;
	color: var(--pe-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pehome-review-cta h3 {
	color: #ffffff;
	font-size: 25px;
	line-height: 1.12;
}

.pehome-review-cta a {
	margin-top: 18px;
	color: #050505 !important;
	background: var(--pe-yellow);
	padding: 14px 16px;
	font-size: 12px;
	font-weight: 950;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}


/* FAQ */

.pehome-faq {
	background: #ffffff;
	border-top: 1px solid rgba(0,0,0,0.06);
}

.pehome-faq-grid {
	align-items: start;
}

.pehome-faq-copy {
	position: sticky;
	top: 110px;
}

.pehome-faq-copy h2 {
	max-width: 560px;
}

.pehome-faq-copy p {
	margin-bottom: 26px;
}

.pehome-faq-list {
	display: grid;
	gap: 12px;
}

.pehome-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 14px 34px rgba(0,0,0,0.055);
	transition: 0.22s ease;
	overflow: hidden;
}

.pehome-faq-list details[open] {
	border-color: rgba(237,28,36,0.18);
	box-shadow: 0 20px 46px rgba(0,0,0,0.08);
}

.pehome-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 20px 44px rgba(0,0,0,0.08);
}

.pehome-faq-list summary {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 22px 58px 22px 24px;
	color: var(--pe-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.pehome-faq-list summary::-webkit-details-marker {
	display: none;
}

.pehome-faq-list summary::after {
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff5d8;
	color: var(--pe-red);
	font-size: 20px;
	font-weight: 950;
	line-height: 1;
	content: "+";
}

.pehome-faq-list details[open] summary::after {
	content: "\2212";
	background: var(--pe-red);
	color: #ffffff;
}

.pehome-faq-list details p {
	margin: 0;
	padding: 0 24px 24px;
	color: var(--pe-copy);
	font-size: 15px;
	line-height: 1.75;
}


/* RESPONSIVE */

@media (max-width: 1080px) {
	.pehome-hero {
		min-height: auto;
		padding: 90px 0 70px;
	}

	.pehome-hero-grid,
	.pehome-split,
	.pehome-area-grid,
	.pehome-video-grid,
	.pehome-dark-grid,
	.pehome-faq-grid {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.pehome-hero-service-card {
		max-width: 440px;
	}

	.pehome-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pehome-review-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pehome-review-score {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.pehome-certs-inner {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 20px;
	}

	.pehome-certs-copy {
		transform: none;
		align-items: center;
	}

	.pehome-certs .pehome-eyebrow {
		justify-content: center;
	}

	.pehome-badges {
		justify-content: center;
		flex-wrap: wrap;
	}

	.pehome-faq-copy {
		position: relative;
		top: auto;
	}
}

@media (max-width: 767px) {
	.pehome-shell {
		width: min(100% - 28px, 520px);
	}

	.pehome-hero {
		padding: 72px 0 56px;
	}

	.pehome-hero-bg {
		background:
			linear-gradient(180deg, rgba(0,0,0,0.84) 0%, rgba(0,0,0,0.72) 52%, rgba(0,0,0,0.92) 100%),
			url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-vac-truck-bg.png") center center / cover no-repeat;
	}

	.pehome-hero-copy h1 {
		font-size: 44px;
		line-height: 1;
	}

	.pehome-hero-copy p {
		font-size: 16px;
	}

	.pehome-hero-actions,
	.pehome-inline-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.pehome-btn {
		width: 100%;
	}

	.pehome-proof-row {
		grid-template-columns: 1fr;
	}

	.pehome-proof-row div {
		border-right: 0;
		border-bottom: 1px solid rgba(255,210,26,0.16);
	}

	.pehome-proof-row div:last-child {
		border-bottom: 0;
	}

	.pehome-section {
		padding: 66px 0;
	}

	.pehome-section-head h2,
	.pehome-copy-block h2,
	.pehome-video-copy h2,
	.pehome-faq-copy h2 {
		font-size: 36px;
		line-height: 1.05;
	}

	.pehome-check-grid,
	.pehome-service-grid,
	.pehome-feature-grid,
	.pehome-review-grid,
	.pehome-map-links {
		grid-template-columns: 1fr;
	}

	.pehome-image-card img {
		height: 360px;
	}

	.pehome-badges img {
		width: 74px;
		height: 74px;
	}

	.pehome-video-copy {
		padding: 22px;
	}

	.pehome-faq-list summary {
		padding: 20px 54px 20px 20px;
		font-size: 16px;
	}

	.pehome-faq-list details p {
		padding: 0 20px 22px;
	}
}

@media (max-width: 420px) {
	.pehome-hero-copy h1 {
		font-size: 38px;
	}

	.pehome-section-head h2,
	.pehome-copy-block h2,
	.pehome-video-copy h2,
	.pehome-faq-copy h2 {
		font-size: 32px;
	}

	.pehome-badges {
		gap: 10px;
	}

	.pehome-badges img {
		width: 68px;
		height: 68px;
	}
}

/* Small homepage final polish */
.pehome-area-note {
	font-size: 11px !important;
	line-height: 1.45 !important;
	padding: 9px 12px !important;
	max-width: 560px;
	color: rgba(21,25,35,0.58) !important;
	background: rgba(255,255,255,0.48) !important;
}

@media (min-width: 981px) {
	.pehome-faq-copy h2 {
		max-width: 640px;
		font-size: clamp(38px, 3.45vw, 52px);
		line-height: 1.04;
	}
}

/* =========================================================
   PIPELINE EXCAVATION CONTACT PAGE
   ========================================================= */

.pecontact,
.pecontact * {
	box-sizing: border-box;
}

.pecontact {
	--pec-black: #050505;
	--pec-red: #ed1c24;
	--pec-yellow: #ffd21a;
	--pec-yellow-2: #ffc64d;
	--pec-ink: #151923;
	--pec-copy: #626b78;
	--pec-soft: #f6fbfd;
	--pec-cream: #fff7dc;
	--pec-white: #ffffff;
	color: var(--pec-ink);
	background: #ffffff;
	overflow: hidden;
}

.pecontact a {
	text-decoration: none !important;
}

.pecontact-shell {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
}

.pecontact-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 15px;
	color: var(--pec-red);
	font-size: 11px;
	font-weight: 950;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.pecontact-eyebrow::before {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pec-red);
	content: "";
}

.pecontact h1,
.pecontact h2,
.pecontact h3,
.pecontact p {
	margin-top: 0;
}

.pecontact h1,
.pecontact h2,
.pecontact h3 {
	color: var(--pec-ink);
	font-weight: 950;
	letter-spacing: -0.045em;
}

.pecontact p {
	color: var(--pec-copy);
	font-size: 16px;
	line-height: 1.72;
}

.pecontact-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 24px;
	border-radius: 0;
	font-size: 13px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.pecontact-btn-primary {
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pec-yellow), var(--pec-yellow-2));
	box-shadow: 0 16px 34px rgba(255, 210, 26, 0.22);
}

.pecontact-btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(255, 210, 26, 0.34);
}

.pecontact-btn-secondary {
	color: #ffffff !important;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.42);
}

.pecontact-btn-secondary:hover {
	color: var(--pec-yellow) !important;
	background: rgba(255,255,255,0.13);
	transform: translateY(-3px);
}


/* HERO */

.pecontact-hero {
	position: relative;
	padding: 112px 0 84px;
	background: #050505;
	border-bottom: 5px solid var(--pec-red);
	overflow: hidden;
}

.pecontact-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.76) 42%, rgba(0,0,0,0.28) 74%, rgba(0,0,0,0.7) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-residental-van.png") center center / cover no-repeat;
	transform: scale(1.02);
}

.pecontact-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 680px) 340px;
	align-items: end;
	justify-content: space-between;
	gap: 50px;
}

.pecontact-hero h1 {
	max-width: 720px;
	margin-bottom: 18px;
	color: #ffffff;
	font-size: clamp(48px, 5.5vw, 78px);
	line-height: 0.96;
	text-shadow: 0 18px 44px rgba(0,0,0,0.45);
}

.pecontact-hero p {
	max-width: 650px;
	margin-bottom: 28px;
	color: rgba(255,255,255,0.8);
	font-size: 18px;
}

.pecontact-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 26px;
}

.pecontact-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.pecontact-hero-pills span {
	display: inline-flex;
	padding: 9px 11px;
	color: rgba(255,255,255,0.86);
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.18);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pecontact-hero-card {
	padding: 28px;
	background: linear-gradient(145deg, rgba(15,15,15,0.94), rgba(50,8,10,0.9));
	border: 1px solid rgba(255,210,26,0.24);
	border-top: 4px solid var(--pec-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.38);
}

.pecontact-hero-card span {
	display: block;
	margin-bottom: 8px;
	color: var(--pec-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pecontact-hero-card strong {
	display: block;
	margin-bottom: 14px;
	color: #ffffff;
	font-size: 32px;
	font-weight: 950;
	line-height: 1;
}

.pecontact-hero-card p {
	margin: 0;
	color: rgba(255,255,255,0.7);
	font-size: 14px;
	line-height: 1.6;
}


/* MAIN FORM */

.pecontact-section {
	padding: 92px 0;
}

.pecontact-main {
	background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}

.pecontact-main-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(380px, 0.78fr);
	align-items: start;
	gap: 72px;
}

.pecontact-info h2,
.pecontact-section-head h2,
.pecontact-problem-copy h2,
.pecontact-area-copy h2 {
	margin-bottom: 16px;
	font-size: clamp(36px, 4vw, 58px);
	line-height: 1.04;
}

.pecontact-info > p {
	max-width: 640px;
	margin-bottom: 28px;
}

.pecontact-info-cards {
	display: grid;
	gap: 12px;
	margin-bottom: 24px;
}

.pecontact-info-card {
	padding: 18px 20px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 30px rgba(0,0,0,0.05);
}

.pecontact-info-card span {
	display: block;
	margin-bottom: 7px;
	color: var(--pec-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pecontact-info-card strong,
.pecontact-info-card a {
	display: block;
	color: var(--pec-ink) !important;
	font-size: 18px;
	font-weight: 950;
	line-height: 1.25;
}

.pecontact-info-card p {
	margin: 5px 0 0;
	font-size: 14px;
	line-height: 1.55;
}

.pecontact-check-list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pecontact-check-list li {
	position: relative;
	padding-left: 28px;
	color: var(--pec-copy);
	font-size: 15px;
	line-height: 1.65;
}

.pecontact-check-list li::before {
	position: absolute;
	left: 0;
	top: 8px;
	width: 8px;
	height: 8px;
	background: var(--pec-yellow);
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.2);
	content: "";
}

.pecontact-form-card {
	padding: 32px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pec-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.12);
}

.pecontact-form-eyebrow {
	display: block;
	margin-bottom: 12px;
	color: var(--pec-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.pecontact-form-card h2 {
	margin-bottom: 10px;
	font-size: 32px;
	line-height: 1.08;
}

.pecontact-form-card > p {
	margin-bottom: 24px;
	font-size: 15px;
}

.pecontact-fluent-form {
	margin-top: 10px;
}

.pecontact-form-proof {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid rgba(0,0,0,0.08);
	display: flex;
	align-items: center;
	gap: 12px;
}

.pecontact-form-proof span {
	color: var(--pec-yellow);
	letter-spacing: 0.08em;
	font-size: 16px;
}

.pecontact-form-proof strong {
	color: var(--pec-ink);
	font-size: 14px;
	font-weight: 950;
}


/* Fluent Form cleanup */
.pecontact .fluentform,
.pecontact .fluent_form {
	width: 100%;
}

.pecontact .fluentform input,
.pecontact .fluentform select,
.pecontact .fluentform textarea,
.pecontact .ff-el-form-control {
	width: 100% !important;
	border-radius: 0 !important;
	border: 1px solid rgba(0,0,0,0.16) !important;
	background: #f8fafb !important;
	color: var(--pec-ink) !important;
	min-height: 48px;
}

.pecontact .fluentform textarea,
.pecontact .ff-el-form-control[type="textarea"] {
	min-height: 132px;
}

.pecontact .ff-btn-submit,
.pecontact .fluentform button[type="submit"] {
	width: 100% !important;
	min-height: 52px !important;
	border-radius: 0 !important;
	background: linear-gradient(135deg, var(--pec-yellow), var(--pec-yellow-2)) !important;
	color: #050505 !important;
	font-weight: 950 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	border: 0 !important;
}


/* PROCESS */

.pecontact-process {
	background: #f6fbfd;
}

.pecontact-section-head {
	max-width: 760px;
	margin: 0 auto 42px;
	text-align: center;
}

.pecontact-section-head .pecontact-eyebrow {
	justify-content: center;
}

.pecontact-section-head .pecontact-eyebrow::after {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pec-red);
	content: "";
}

.pecontact-process-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.pecontact-process-card {
	padding: 26px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	transition: 0.24s ease;
}

.pecontact-process-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 50px rgba(0,0,0,0.1);
}

.pecontact-process-card span {
	display: inline-flex;
	margin-bottom: 16px;
	padding: 8px 10px;
	background: rgba(255,210,26,0.28);
	color: var(--pec-red);
	font-size: 12px;
	font-weight: 950;
}

.pecontact-process-card h3 {
	margin-bottom: 10px;
	font-size: 22px;
	line-height: 1.15;
}

.pecontact-process-card p {
	margin: 0;
	font-size: 14px;
	line-height: 1.65;
}


/* PROBLEMS */

.pecontact-problems {
	background: #ffffff;
}

.pecontact-problem-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.88fr) minmax(420px, 1fr);
	gap: 66px;
	align-items: center;
}

.pecontact-problem-copy p {
	max-width: 560px;
	margin-bottom: 26px;
}

.pecontact-problem-list {
	display: grid;
	gap: 14px;
}

.pecontact-problem-list div {
	position: relative;
	padding: 22px 24px 22px 74px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 32px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.pecontact-problem-list div:hover {
	transform: translateX(5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.pecontact-problem-list span {
	position: absolute;
	left: 22px;
	top: 22px;
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pec-yellow);
	color: #050505;
	font-size: 12px;
	font-weight: 950;
}

.pecontact-problem-list h3 {
	margin-bottom: 6px;
	font-size: 20px;
	line-height: 1.16;
}

.pecontact-problem-list p {
	margin: 0;
	font-size: 14px;
	line-height: 1.58;
}


/* SERVICES DARK */

.pecontact-services {
	background:
		radial-gradient(circle at 15% 20%, rgba(255,210,26,0.12), transparent 34%),
		radial-gradient(circle at 88% 80%, rgba(237,28,36,0.16), transparent 36%),
		#050505;
	border-top: 5px solid var(--pec-red);
	border-bottom: 5px solid var(--pec-red);
}

.pecontact-section-head-light h2 {
	color: #ffffff;
}

.pecontact-section-head-light p {
	color: rgba(255,255,255,0.72);
}

.pecontact-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.pecontact-service-grid a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	padding: 18px;
	color: #ffffff !important;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	font-size: 14px;
	font-weight: 900;
	transition: 0.22s ease;
}

.pecontact-service-grid a::after {
	content: "\2192";
	color: var(--pec-yellow);
}

.pecontact-service-grid a:hover {
	transform: translateY(-5px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.34);
}


/* AREAS */

.pecontact-areas {
	background: linear-gradient(180deg, #fff8e6 0%, #f7f3e8 100%);
}

.pecontact-area-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.75fr) minmax(420px, 1fr);
	gap: 64px;
	align-items: center;
}

.pecontact-area-copy p {
	max-width: 570px;
	margin-bottom: 26px;
}

.pecontact-area-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.pecontact-area-links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 54px;
	padding: 15px 17px;
	color: var(--pec-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	font-size: 14px;
	font-weight: 950;
	transition: 0.22s ease;
}

.pecontact-area-links a::after {
	content: "\2192";
	color: var(--pec-red);
}

.pecontact-area-links a:hover {
	transform: translateY(-4px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 16px 34px rgba(0,0,0,0.08);
}


/* FAQ */

.pecontact-faq {
	background: #ffffff;
}

.pecontact-faq-list {
	max-width: 860px;
	margin: 0 auto;
	display: grid;
	gap: 12px;
}

.pecontact-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 14px 34px rgba(0,0,0,0.055);
	transition: 0.22s ease;
	overflow: hidden;
}

.pecontact-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 20px 44px rgba(0,0,0,0.08);
}

.pecontact-faq-list summary {
	position: relative;
	padding: 22px 58px 22px 24px;
	color: var(--pec-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.pecontact-faq-list summary::-webkit-details-marker {
	display: none;
}

.pecontact-faq-list summary::after {
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff5d8;
	color: var(--pec-red);
	font-size: 20px;
	font-weight: 950;
	line-height: 1;
	content: "+";
}

.pecontact-faq-list details[open] summary::after {
	content: "\2212";
	background: var(--pec-red);
	color: #ffffff;
}

.pecontact-faq-list details p {
	margin: 0;
	padding: 0 24px 24px;
	color: var(--pec-copy);
	font-size: 15px;
	line-height: 1.75;
}


/* RESPONSIVE */

@media (max-width: 1080px) {
	.pecontact-hero-grid,
	.pecontact-main-grid,
	.pecontact-problem-grid,
	.pecontact-area-grid {
		grid-template-columns: 1fr;
		gap: 42px;
	}

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

	.pecontact-process-grid,
	.pecontact-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.pecontact-shell {
		width: min(100% - 28px, 520px);
	}

	.pecontact-hero {
		padding: 76px 0 60px;
	}

	.pecontact-hero h1 {
		font-size: 42px;
		line-height: 1;
	}

	.pecontact-hero p {
		font-size: 16px;
	}

	.pecontact-hero-actions {
		flex-direction: column;
	}

	.pecontact-btn {
		width: 100%;
	}

	.pecontact-section {
		padding: 66px 0;
	}

	.pecontact-info h2,
	.pecontact-section-head h2,
	.pecontact-problem-copy h2,
	.pecontact-area-copy h2 {
		font-size: 34px;
		line-height: 1.05;
	}

	.pecontact-process-grid,
	.pecontact-service-grid,
	.pecontact-area-links {
		grid-template-columns: 1fr;
	}

	.pecontact-form-card {
		padding: 24px;
	}

	.pecontact-faq-list summary {
		font-size: 16px;
		padding: 20px 54px 20px 20px;
	}

	.pecontact-faq-list details p {
		padding: 0 20px 22px;
	}
}

/* Fluent Form final polish inside Pipeline contact card */
.pecontact-form-card .ff-el-group {
	margin-bottom: 18px !important;
}

.pecontact-form-card .ff-el-input--label,
.pecontact-form-card .ff-el-form-check-label {
	margin-bottom: 7px !important;
	color: #151923 !important;
	font-size: 14px !important;
	font-weight: 950 !important;
	line-height: 1.25 !important;
}

.pecontact-form-card .ff-el-form-control {
	min-height: 52px !important;
	padding: 13px 15px !important;
	background: #f8fafb !important;
	border: 1px solid rgba(0,0,0,0.14) !important;
	color: #151923 !important;
	font-size: 15px !important;
	box-shadow: none !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.pecontact-form-card textarea.ff-el-form-control {
	min-height: 140px !important;
	resize: vertical;
}

.pecontact-form-card .ff-el-form-control:focus {
	background: #ffffff !important;
	border-color: #ed1c24 !important;
	box-shadow: 0 0 0 4px rgba(237,28,36,0.08) !important;
	outline: none !important;
}

.pecontact-form-card .ff-btn-submit {
	width: 100% !important;
	min-height: 56px !important;
	background: linear-gradient(135deg, #ffd21a, #ffc64d) !important;
	color: #050505 !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: 14px !important;
	font-weight: 950 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	box-shadow: 0 16px 30px rgba(255,210,26,0.22) !important;
	transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.pecontact-form-card .ff-btn-submit:hover {
	transform: translateY(-2px);
	background: linear-gradient(135deg, #ffc64d, #ffd21a) !important;
	box-shadow: 0 22px 42px rgba(255,210,26,0.3) !important;
}

.pecontact-form-card .ff-el-form-control::placeholder {
	color: rgba(21,25,35,0.42) !important;
}

.pecontact-form-card .ff-el-is-error .ff-el-form-control {
	border-color: #ed1c24 !important;
}

.pecontact-form-card .ff-el-is-error .text-danger {
	color: #ed1c24 !important;
	font-size: 12px !important;
	font-weight: 800 !important;
}

/* Contact page heading wrap polish */
@media (min-width: 981px) {
	.pecontact-process .pecontact-section-head {
		max-width: 900px;
	}

	.pecontact-process .pecontact-section-head h2 {
		max-width: 860px;
		margin-left: auto;
		margin-right: auto;
		font-size: clamp(42px, 4vw, 56px);
		line-height: 1.05;
	}

	.pecontact-services .pecontact-section-head {
		max-width: 960px;
	}

	.pecontact-services .pecontact-section-head h2 {
		max-width: 900px;
		margin-left: auto;
		margin-right: auto;
		font-size: clamp(42px, 4vw, 56px);
		line-height: 1.05;
	}
}

/* =========================================================
   PIPELINE EXCAVATION FINANCING PAGE
   ========================================================= */

.pefinance,
.pefinance * {
	box-sizing: border-box;
}

.pefinance {
	--pef-black: #050505;
	--pef-red: #ed1c24;
	--pef-yellow: #ffd21a;
	--pef-yellow-2: #ffc64d;
	--pef-ink: #151923;
	--pef-copy: #646d7a;
	--pef-soft: #f6fbfd;
	--pef-cream: #fff7dc;
	--pef-white: #ffffff;
	color: var(--pef-ink);
	background: #ffffff;
	overflow: hidden;
}

.pefinance a {
	text-decoration: none !important;
}

.pefinance-shell {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
}

.pefinance-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 15px;
	color: var(--pef-red);
	font-size: 11px;
	font-weight: 950;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.pefinance-eyebrow::before {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pef-red);
	content: "";
}

.pefinance h1,
.pefinance h2,
.pefinance h3,
.pefinance p {
	margin-top: 0;
}

.pefinance h1,
.pefinance h2,
.pefinance h3 {
	color: var(--pef-ink);
	font-weight: 950;
	letter-spacing: -0.045em;
}

.pefinance p {
	color: var(--pef-copy);
	font-size: 16px;
	line-height: 1.72;
}

.pefinance-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 24px;
	border-radius: 0;
	font-size: 13px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.pefinance-btn-primary {
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pef-yellow), var(--pef-yellow-2));
	box-shadow: 0 16px 34px rgba(255, 210, 26, 0.24);
}

.pefinance-btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(255, 210, 26, 0.36);
}

.pefinance-btn-secondary {
	color: #ffffff !important;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.42);
}

.pefinance-btn-secondary:hover {
	color: var(--pef-yellow) !important;
	background: rgba(255,255,255,0.13);
	transform: translateY(-3px);
}


/* HERO */

.pefinance-hero {
	position: relative;
	padding: 118px 0 90px;
	background: #050505;
	border-bottom: 5px solid var(--pef-red);
	overflow: hidden;
}

.pefinance-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.76) 44%, rgba(0,0,0,0.22) 76%, rgba(0,0,0,0.72) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-residental-van.png") center center / cover no-repeat;
	transform: scale(1.02);
}

.pefinance-hero::after {
	position: absolute;
	right: -120px;
	bottom: -190px;
	width: 460px;
	height: 460px;
	border-radius: 999px;
	background: radial-gradient(circle, rgba(255,210,26,0.24), rgba(237,28,36,0.08) 40%, transparent 70%);
	content: "";
	pointer-events: none;
}

.pefinance-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 710px) 360px;
	align-items: end;
	justify-content: space-between;
	gap: 54px;
}

.pefinance-hero h1 {
	max-width: 760px;
	margin-bottom: 18px;
	color: #ffffff;
	font-size: clamp(48px, 5.5vw, 78px);
	line-height: 0.96;
	text-shadow: 0 18px 44px rgba(0,0,0,0.48);
}

.pefinance-hero p {
	max-width: 665px;
	margin-bottom: 28px;
	color: rgba(255,255,255,0.82);
	font-size: 18px;
}

.pefinance-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 26px;
}

.pefinance-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.pefinance-hero-pills span {
	display: inline-flex;
	padding: 9px 11px;
	color: rgba(255,255,255,0.88);
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.18);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pefinance-hero-card {
	padding: 30px;
	background: linear-gradient(145deg, rgba(12,12,12,0.96), rgba(50,8,10,0.92));
	border: 1px solid rgba(255,210,26,0.24);
	border-top: 4px solid var(--pef-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.42);
}

.pefinance-hero-card > span {
	display: block;
	margin-bottom: 18px;
	color: var(--pef-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pefinance-synchrony-mark {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	min-height: 70px;
	margin-bottom: 18px;
	padding: 18px 20px;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.12);
}

.pefinance-synchrony-mark img {
	display: block;
	width: min(100%, 260px);
	height: auto;
}

.pefinance-hero-card p {
	margin-bottom: 20px;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.62;
}

.pefinance-hero-card a,
.pefinance-apply-card a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 14px 18px;
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pef-yellow), var(--pef-yellow-2));
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.pefinance-hero-card a:hover,
.pefinance-apply-card a:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 36px rgba(255,210,26,0.28);
}


/* SECTIONS */

.pefinance-section {
	padding: 92px 0;
}

.pefinance-intro {
	background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}

.pefinance-intro-grid,
.pefinance-apply-grid,
.pefinance-why-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(390px, 0.8fr);
	gap: 70px;
	align-items: center;
}

.pefinance-intro-copy h2,
.pefinance-section-head h2,
.pefinance-apply-copy h2,
.pefinance-why-copy h2 {
	margin-bottom: 16px;
	font-size: clamp(36px, 4vw, 58px);
	line-height: 1.04;
}

.pefinance-intro-copy p {
	max-width: 650px;
}

.pefinance-inline-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 8px;
	color: var(--pef-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pefinance-inline-link::after {
	content: "\2192";
	color: var(--pef-yellow);
}

.pefinance-feature-panel {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pef-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.1);
}

.pefinance-feature-top {
	padding: 28px 30px;
	background: linear-gradient(135deg, #fff8df, #ffffff);
	border-bottom: 1px solid rgba(0,0,0,0.08);
}

.pefinance-feature-top span {
	display: block;
	margin-bottom: 8px;
	color: var(--pef-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pefinance-feature-top strong {
	display: block;
	color: var(--pef-ink);
	font-size: 28px;
	font-weight: 950;
	line-height: 1.08;
	letter-spacing: -0.04em;
}

.pefinance-feature-list {
	display: grid;
}

.pefinance-feature-list div {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 16px;
	align-items: center;
	padding: 20px 30px;
	border-bottom: 1px solid rgba(0,0,0,0.07);
}

.pefinance-feature-list div:last-child {
	border-bottom: 0;
}

.pefinance-feature-list span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--pef-yellow);
	color: #050505;
	font-size: 12px;
	font-weight: 950;
}

.pefinance-feature-list p {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
}


/* STEPS */

.pefinance-steps {
	background: #f6fbfd;
}

.pefinance-section-head {
	max-width: 840px;
	margin: 0 auto 42px;
	text-align: center;
}

.pefinance-section-head .pefinance-eyebrow {
	justify-content: center;
}

.pefinance-section-head .pefinance-eyebrow::after {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pef-red);
	content: "";
}

.pefinance-step-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.pefinance-step-card {
	padding: 28px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	transition: 0.24s ease;
}

.pefinance-step-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 50px rgba(0,0,0,0.1);
}

.pefinance-step-card span {
	display: inline-flex;
	margin-bottom: 16px;
	padding: 8px 10px;
	background: rgba(255,210,26,0.28);
	color: var(--pef-red);
	font-size: 12px;
	font-weight: 950;
}

.pefinance-step-card h3 {
	margin-bottom: 10px;
	font-size: 23px;
	line-height: 1.15;
}

.pefinance-step-card p {
	margin: 0;
	font-size: 14px;
	line-height: 1.66;
}


/* APPLY DARK */

.pefinance-apply {
	background:
		radial-gradient(circle at 12% 20%, rgba(255,210,26,0.13), transparent 34%),
		radial-gradient(circle at 90% 75%, rgba(237,28,36,0.17), transparent 36%),
		#050505;
	border-top: 5px solid var(--pef-red);
	border-bottom: 5px solid var(--pef-red);
}

.pefinance-apply-copy h2 {
	color: #ffffff;
}

.pefinance-apply-copy p {
	max-width: 660px;
	color: rgba(255,255,255,0.74);
}

.pefinance-apply-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 26px;
}

.pefinance-apply-card {
	padding: 30px;
	background: linear-gradient(145deg, rgba(255,255,255,0.08), rgba(255,255,255,0.035));
	border: 1px solid rgba(255,210,26,0.22);
	border-top: 4px solid var(--pef-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.28);
}

.pefinance-apply-card p {
	color: rgba(255,255,255,0.72);
	font-size: 14px;
}


/* SERVICES */

.pefinance-services {
	background: #ffffff;
}

.pefinance-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.pefinance-service-grid a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	padding: 18px;
	color: var(--pef-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 30px rgba(0,0,0,0.055);
	font-size: 14px;
	font-weight: 950;
	transition: 0.22s ease;
}

.pefinance-service-grid a::after {
	content: "\2192";
	color: var(--pef-red);
}

.pefinance-service-grid a:hover {
	transform: translateY(-5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}


/* WHY */

.pefinance-why {
	background: linear-gradient(180deg, #fff8e6 0%, #f7f3e8 100%);
}

.pefinance-why-copy p {
	max-width: 620px;
}

.pefinance-why-list {
	display: grid;
	gap: 14px;
}

.pefinance-why-list div {
	padding: 24px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 32px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.pefinance-why-list div:hover {
	transform: translateX(5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.pefinance-why-list h3 {
	margin-bottom: 8px;
	font-size: 22px;
	line-height: 1.15;
}

.pefinance-why-list p {
	margin: 0;
	font-size: 14px;
	line-height: 1.62;
}


/* FAQ */

.pefinance-faq {
	background: #ffffff;
}

.pefinance-faq-list {
	max-width: 860px;
	margin: 0 auto;
	display: grid;
	gap: 12px;
}

.pefinance-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 14px 34px rgba(0,0,0,0.055);
	transition: 0.22s ease;
	overflow: hidden;
}

.pefinance-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 20px 44px rgba(0,0,0,0.08);
}

.pefinance-faq-list summary {
	position: relative;
	padding: 22px 58px 22px 24px;
	color: var(--pef-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.pefinance-faq-list summary::-webkit-details-marker {
	display: none;
}

.pefinance-faq-list summary::after {
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff5d8;
	color: var(--pef-red);
	font-size: 20px;
	font-weight: 950;
	line-height: 1;
	content: "+";
}

.pefinance-faq-list details[open] summary::after {
	content: "\2212";
	background: var(--pef-red);
	color: #ffffff;
}

.pefinance-faq-list details p {
	margin: 0;
	padding: 0 24px 24px;
	color: var(--pef-copy);
	font-size: 15px;
	line-height: 1.75;
}


/* RESPONSIVE */

@media (max-width: 1080px) {
	.pefinance-hero-grid,
	.pefinance-intro-grid,
	.pefinance-apply-grid,
	.pefinance-why-grid {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.pefinance-hero-card,
	.pefinance-apply-card {
		max-width: 460px;
	}

	.pefinance-step-grid,
	.pefinance-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.pefinance-shell {
		width: min(100% - 28px, 520px);
	}

	.pefinance-hero {
		padding: 76px 0 60px;
	}

	.pefinance-hero h1 {
		font-size: 42px;
		line-height: 1;
	}

	.pefinance-hero p {
		font-size: 16px;
	}

	.pefinance-hero-actions,
	.pefinance-apply-actions {
		flex-direction: column;
	}

	.pefinance-btn {
		width: 100%;
	}

	.pefinance-section {
		padding: 66px 0;
	}

	.pefinance-intro-copy h2,
	.pefinance-section-head h2,
	.pefinance-apply-copy h2,
	.pefinance-why-copy h2 {
		font-size: 34px;
		line-height: 1.05;
	}

	.pefinance-step-grid,
	.pefinance-service-grid {
		grid-template-columns: 1fr;
	}

	.pefinance-feature-list div {
		grid-template-columns: 40px 1fr;
		padding: 18px 20px;
	}

	.pefinance-hero-card,
	.pefinance-apply-card {
		padding: 24px;
	}

	.pefinance-synchrony-mark {
		justify-content: center;
	}
}

/* Financing page heading wrap + Synchrony logo polish */
@media (min-width: 981px) {
	.pefinance-intro-copy h2 {
		max-width: 760px;
		font-size: clamp(40px, 3.7vw, 54px);
		line-height: 1.06;
	}

	.pefinance-steps .pefinance-section-head {
		max-width: 980px;
	}

	.pefinance-steps .pefinance-section-head h2 {
		max-width: 940px;
		margin-left: auto;
		margin-right: auto;
		font-size: clamp(40px, 3.7vw, 54px);
		line-height: 1.06;
	}
}

/* Center Synchrony logo in the dark apply card only */
.pefinance-apply-card .pefinance-synchrony-mark {
	justify-content: center;
	text-align: center;
}

.pefinance-apply-card .pefinance-synchrony-mark img {
	margin-left: auto;
	margin-right: auto;
}

.pefinance-steps .pefinance-section-head p{
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
	font-size: 16px;
	line-height: 1.75;
}

/* =========================================================
   PIPELINE EXCAVATION SERVICE AREAS HUB
   ========================================================= */

.peareas,
.peareas * {
	box-sizing: border-box;
}

.peareas {
	--pea-black: #050505;
	--pea-red: #ed1c24;
	--pea-yellow: #ffd21a;
	--pea-yellow-2: #ffc64d;
	--pea-ink: #151923;
	--pea-copy: #646d7a;
	--pea-soft: #f6fbfd;
	--pea-cream: #fff7dc;
	--pea-white: #ffffff;
	color: var(--pea-ink);
	background: #ffffff;
	overflow: hidden;
}

.peareas a {
	text-decoration: none !important;
}

.peareas-shell {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
}

.peareas-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 15px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.peareas-eyebrow::before {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.peareas h1,
.peareas h2,
.peareas h3,
.peareas p {
	margin-top: 0;
}

.peareas h1,
.peareas h2,
.peareas h3 {
	color: var(--pea-ink);
	font-weight: 950;
	letter-spacing: -0.045em;
}

.peareas p {
	color: var(--pea-copy);
	font-size: 16px;
	line-height: 1.72;
}

.peareas-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 24px;
	border-radius: 0;
	font-size: 13px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.peareas-btn-primary {
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	box-shadow: 0 16px 34px rgba(255, 210, 26, 0.24);
}

.peareas-btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(255, 210, 26, 0.36);
}

.peareas-btn-secondary {
	color: #ffffff !important;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.42);
}

.peareas-btn-secondary:hover {
	color: var(--pea-yellow) !important;
	background: rgba(255,255,255,0.13);
	transform: translateY(-3px);
}


/* HERO */

.peareas-hero {
	position: relative;
	padding: 118px 0 90px;
	background: #050505;
	border-bottom: 5px solid var(--pea-red);
	overflow: hidden;
}

.peareas-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.76) 45%, rgba(0,0,0,0.25) 76%, rgba(0,0,0,0.72) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-residental-van.png") center center / cover no-repeat;
	transform: scale(1.02);
}

.peareas-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 750px) 350px;
	align-items: end;
	justify-content: space-between;
	gap: 54px;
}

.peareas-hero h1 {
	max-width: 780px;
	margin-bottom: 18px;
	color: #ffffff;
	font-size: clamp(48px, 5.5vw, 78px);
	line-height: 0.96;
	text-shadow: 0 18px 44px rgba(0,0,0,0.48);
}

.peareas-hero p {
	max-width: 690px;
	margin-bottom: 28px;
	color: rgba(255,255,255,0.82);
	font-size: 18px;
}

.peareas-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 26px;
}

.peareas-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.peareas-hero-pills span {
	display: inline-flex;
	padding: 9px 11px;
	color: rgba(255,255,255,0.88);
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.18);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peareas-hero-card {
	padding: 30px;
	background: linear-gradient(145deg, rgba(12,12,12,0.96), rgba(50,8,10,0.92));
	border: 1px solid rgba(255,210,26,0.24);
	border-top: 4px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.42);
}

.peareas-hero-card span {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peareas-hero-card strong {
	display: block;
	margin-bottom: 14px;
	color: #ffffff;
	font-size: 34px;
	font-weight: 950;
	line-height: 1.05;
	letter-spacing: -0.04em;
}

.peareas-hero-card p {
	margin: 0;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.62;
}


/* INTRO */

.peareas-section {
	padding: 92px 0;
}

.peareas-intro {
	background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}

.peareas-intro-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1fr);
	gap: 70px;
	align-items: center;
}

.peareas-intro-copy h2,
.peareas-section-head h2,
.peareas-upcoming-copy h2,
.peareas-why-copy h2 {
	margin-bottom: 16px;
	font-size: clamp(36px, 4vw, 58px);
	line-height: 1.04;
}

.peareas-intro-copy p {
	max-width: 650px;
}

.peareas-intro-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 28px;
}

.peareas-inline-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--pea-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peareas-inline-link::after {
	content: "\2192";
	color: var(--pea-yellow);
}

.peareas-map-card {
	position: relative;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.1);
	overflow: hidden;
}

.peareas-map-card img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 0.4s ease;
}

.peareas-map-card:hover img {
	transform: scale(1.035);
}

.peareas-map-caption {
	padding: 22px 24px;
	background: #ffffff;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.peareas-map-caption span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peareas-map-caption strong {
	display: block;
	color: var(--pea-ink);
	font-size: 22px;
	font-weight: 950;
	line-height: 1.15;
}


/* COUNTY STRIP */

.peareas-county-strip {
	padding: 28px 0;
	background: #050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.peareas-county-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

.peareas-county-grid div {
	padding: 18px;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	transition: 0.22s ease;
}

.peareas-county-grid div:hover {
	transform: translateY(-4px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.36);
}

.peareas-county-grid span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peareas-county-grid strong {
	display: block;
	color: #ffffff;
	font-size: 16px;
	font-weight: 950;
	line-height: 1.2;
}


/* LOCATION LIST */

.peareas-list-section {
	background: #ffffff;
}

.peareas-section-head {
	max-width: 860px;
	margin: 0 auto 44px;
	text-align: center;
}

.peareas-section-head .peareas-eyebrow {
	justify-content: center;
}

.peareas-section-head .peareas-eyebrow::after {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.peareas-location-layout {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	gap: 34px;
	align-items: stretch;
}

.peareas-location-panel {
	padding: 30px;
	background:
		radial-gradient(circle at 10% 10%, rgba(255,210,26,0.16), transparent 35%),
		linear-gradient(145deg, #0b0b0b, #220608);
	border: 1px solid rgba(255,210,26,0.2);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.18);
}

.peareas-location-panel span {
	display: block;
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peareas-location-panel h3 {
	margin-bottom: 12px;
	color: #ffffff;
	font-size: 34px;
	line-height: 1.02;
}

.peareas-location-panel p {
	margin-bottom: 22px;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.66;
}

.peareas-location-panel a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 14px 18px;
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.peareas-location-panel a:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 36px rgba(255,210,26,0.28);
}

.peareas-location-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.peareas-location-grid a,
.peareas-upcoming-list a,
.peareas-service-grid a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 58px;
	padding: 16px 18px;
	color: var(--pea-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 30px rgba(0,0,0,0.055);
	font-size: 14px;
	font-weight: 950;
	transition: 0.22s ease;
}

.peareas-location-grid a::after,
.peareas-upcoming-list a::after,
.peareas-service-grid a::after {
	content: "\2192";
	color: var(--pea-red);
}

.peareas-location-grid a:hover,
.peareas-upcoming-list a:hover,
.peareas-service-grid a:hover {
	transform: translateY(-5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}


/* UPCOMING */

.peareas-upcoming {
	background: linear-gradient(180deg, #fff8e6 0%, #f7f3e8 100%);
}

.peareas-upcoming-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(420px, 1fr);
	gap: 64px;
	align-items: center;
}

.peareas-upcoming-copy p {
	max-width: 600px;
}

.peareas-upcoming-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.peareas-upcoming-list a {
	background: rgba(255,255,255,0.82);
}


/* SERVICES DARK */

.peareas-services {
	background:
		radial-gradient(circle at 12% 20%, rgba(255,210,26,0.13), transparent 34%),
		radial-gradient(circle at 90% 75%, rgba(237,28,36,0.17), transparent 36%),
		#050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.peareas-section-head-light h2 {
	color: #ffffff;
}

.peareas-section-head-light p {
	color: rgba(255,255,255,0.72);
}

.peareas-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.peareas-service-grid a {
	color: #ffffff !important;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	box-shadow: none;
}

.peareas-service-grid a::after {
	color: var(--pea-yellow);
}

.peareas-service-grid a:hover {
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.34);
}


/* WHY */

.peareas-why {
	background: #ffffff;
}

.peareas-why-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1fr);
	gap: 66px;
	align-items: center;
}

.peareas-why-copy p {
	max-width: 620px;
}

.peareas-why-list {
	display: grid;
	gap: 14px;
}

.peareas-why-list div {
	position: relative;
	padding: 24px 24px 24px 76px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 32px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.peareas-why-list div:hover {
	transform: translateX(5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.peareas-why-list span {
	position: absolute;
	left: 24px;
	top: 24px;
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pea-yellow);
	color: #050505;
	font-size: 12px;
	font-weight: 950;
}

.peareas-why-list h3 {
	margin-bottom: 8px;
	font-size: 22px;
	line-height: 1.15;
}

.peareas-why-list p {
	margin: 0;
	font-size: 14px;
	line-height: 1.62;
}


/* FAQ */

.peareas-faq {
	background: #f6fbfd;
}

.peareas-faq-list {
	max-width: 860px;
	margin: 0 auto;
	display: grid;
	gap: 12px;
}

.peareas-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 14px 34px rgba(0,0,0,0.055);
	transition: 0.22s ease;
	overflow: hidden;
}

.peareas-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 20px 44px rgba(0,0,0,0.08);
}

.peareas-faq-list summary {
	position: relative;
	padding: 22px 58px 22px 24px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.peareas-faq-list summary::-webkit-details-marker {
	display: none;
}

.peareas-faq-list summary::after {
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff5d8;
	color: var(--pea-red);
	font-size: 20px;
	font-weight: 950;
	line-height: 1;
	content: "+";
}

.peareas-faq-list details[open] summary::after {
	content: "\2212";
	background: var(--pea-red);
	color: #ffffff;
}

.peareas-faq-list details p {
	margin: 0;
	padding: 0 24px 24px;
	color: var(--pea-copy);
	font-size: 15px;
	line-height: 1.75;
}


/* RESPONSIVE */

@media (max-width: 1080px) {
	.peareas-hero-grid,
	.peareas-intro-grid,
	.peareas-upcoming-grid,
	.peareas-why-grid,
	.peareas-location-layout {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.peareas-hero-card,
	.peareas-location-panel {
		max-width: 460px;
	}

	.peareas-county-grid,
	.peareas-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.peareas-shell {
		width: min(100% - 28px, 520px);
	}

	.peareas-hero {
		padding: 76px 0 60px;
	}

	.peareas-hero h1 {
		font-size: 42px;
		line-height: 1;
	}

	.peareas-hero p {
		font-size: 16px;
	}

	.peareas-hero-actions,
	.peareas-intro-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.peareas-btn {
		width: 100%;
	}

	.peareas-section {
		padding: 66px 0;
	}

	.peareas-intro-copy h2,
	.peareas-section-head h2,
	.peareas-upcoming-copy h2,
	.peareas-why-copy h2 {
		font-size: 34px;
		line-height: 1.05;
	}

	.peareas-county-grid,
	.peareas-location-grid,
	.peareas-upcoming-list,
	.peareas-service-grid {
		grid-template-columns: 1fr;
	}

	.peareas-location-panel {
		padding: 26px;
	}

	.peareas-why-list div {
		padding: 22px 22px 22px 72px;
	}

	.peareas-faq-list summary {
		font-size: 16px;
		padding: 20px 54px 20px 20px;
	}

	.peareas-faq-list details p {
		padding: 0 20px 22px;
	}
}

/* Service area hub combined location section polish */
.peareas-location-content {
	display: grid;
	gap: 34px;
}

.peareas-location-group-head {
	margin-bottom: 16px;
}

.peareas-location-group-head span {
	display: block;
	margin-bottom: 7px;
	color: #ed1c24;
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peareas-location-group-head strong {
	display: block;
	color: #151923;
	font-size: 24px;
	font-weight: 950;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.peareas-location-group-upcoming {
	padding-top: 28px;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.peareas-location-grid-upcoming a {
	background: linear-gradient(180deg, #fffdf7, #ffffff);
	border-color: rgba(255,210,26,0.32);
}

.peareas-location-bullets {
	display: grid;
	gap: 12px;
	margin: 22px 0 26px;
	padding: 0;
	list-style: none;
}

.peareas-location-bullets li {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.76);
	font-size: 14px;
	line-height: 1.6;
}

.peareas-location-bullets li::before {
	position: absolute;
	left: 0;
	top: 8px;
	width: 8px;
	height: 8px;
	background: #ffd21a;
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}

/* remove old upcoming section spacing if any old markup remains */
.peareas-upcoming {
	display: none;
}

/* Service area hub final location polish */
.peareas-location-content {
	display: grid;
	gap: 0;
}

.peareas-location-group-head {
	margin-bottom: 16px;
}

.peareas-location-group-head span {
	display: block;
	margin-bottom: 7px;
	color: #ed1c24;
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peareas-location-group-head strong {
	display: block;
	color: #151923;
	font-size: 24px;
	font-weight: 950;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.peareas-location-bullets {
	display: grid;
	gap: 12px;
	margin: 22px 0 26px;
	padding: 0;
	list-style: none;
}

.peareas-location-bullets li {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.76);
	font-size: 14px;
	line-height: 1.6;
}

.peareas-location-bullets li::before {
	position: absolute;
	left: 0;
	top: 8px;
	width: 8px;
	height: 8px;
	background: #ffd21a;
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}

/* kill old separate upcoming area if any cached/old markup remains */
.peareas-upcoming,
.peareas-location-group-upcoming {
	display: none !important;
}

/* =========================================================
   PIPELINE EXCAVATION ABOUT PAGE
   ========================================================= */

.peabout,
.peabout * {
	box-sizing: border-box;
}

.peabout {
	--pea-black: #050505;
	--pea-red: #ed1c24;
	--pea-yellow: #ffd21a;
	--pea-yellow-2: #ffc64d;
	--pea-ink: #151923;
	--pea-copy: #646d7a;
	--pea-soft: #f6fbfd;
	--pea-cream: #fff7dc;
	--pea-white: #ffffff;
	color: var(--pea-ink);
	background: #ffffff;
	overflow: hidden;
}

.peabout a {
	text-decoration: none !important;
}

.peabout-shell {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
}

.peabout-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 15px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.peabout-eyebrow::before {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.peabout h1,
.peabout h2,
.peabout h3,
.peabout p {
	margin-top: 0;
}

.peabout h1,
.peabout h2,
.peabout h3 {
	color: var(--pea-ink);
	font-weight: 950;
	letter-spacing: -0.045em;
}

.peabout p {
	color: var(--pea-copy);
	font-size: 16px;
	line-height: 1.72;
}

.peabout-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 24px;
	border-radius: 0;
	font-size: 13px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.peabout-btn-primary {
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	box-shadow: 0 16px 34px rgba(255, 210, 26, 0.24);
}

.peabout-btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(255, 210, 26, 0.36);
}

.peabout-btn-secondary {
	color: #ffffff !important;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.42);
}

.peabout-btn-secondary:hover {
	color: var(--pea-yellow) !important;
	background: rgba(255,255,255,0.13);
	transform: translateY(-3px);
}


/* HERO */

.peabout-hero {
	position: relative;
	padding: 118px 0 90px;
	background: #050505;
	border-bottom: 5px solid var(--pea-red);
	overflow: hidden;
}

.peabout-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.76) 45%, rgba(0,0,0,0.25) 76%, rgba(0,0,0,0.72) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-residental-van.png") center center / cover no-repeat !important;
	transform: scale(1.02);
}

.peabout-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 750px) 350px;
	align-items: end;
	justify-content: space-between;
	gap: 54px;
}

.peabout-hero h1 {
	max-width: 780px;
	margin-bottom: 18px;
	color: #ffffff;
	font-size: clamp(48px, 5.5vw, 78px);
	line-height: 0.96;
	text-shadow: 0 18px 44px rgba(0,0,0,0.48);
}

.peabout-hero p {
	max-width: 690px;
	margin-bottom: 28px;
	color: rgba(255,255,255,0.82);
	font-size: 18px;
}

.peabout-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 26px;
}

.peabout-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.peabout-hero-pills span {
	display: inline-flex;
	padding: 9px 11px;
	color: rgba(255,255,255,0.88);
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.18);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peabout-hero-card {
	padding: 30px;
	background: linear-gradient(145deg, rgba(12,12,12,0.96), rgba(50,8,10,0.92));
	border: 1px solid rgba(255,210,26,0.24);
	border-top: 4px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.42);
}

.peabout-hero-card span {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peabout-hero-card strong {
	display: block;
	margin-bottom: 14px;
	color: #ffffff;
	font-size: 34px;
	font-weight: 950;
	line-height: 1.05;
	letter-spacing: -0.04em;
}

.peabout-hero-card p {
	margin: 0;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.62;
}


/* INTRO */

.peabout-section {
	padding: 92px 0;
}

.peabout-intro {
	background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}

.peabout-intro-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1fr);
	gap: 70px;
	align-items: center;
}

.peabout-intro-copy h2,
.peabout-section-head h2,
.peabout-why-copy h2,
.peabout-field-copy h2 {
	margin-bottom: 16px;
	font-size: clamp(36px, 4vw, 58px);
	line-height: 1.04;
}

.peabout-intro-copy p,
.peabout-field-copy p {
	max-width: 650px;
}

.peabout-intro-actions,
.peabout-field-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 28px;
}

.peabout-inline-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--pea-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peabout-inline-link::after {
	content: "\2192";
	color: var(--pea-yellow);
}

.peabout-image-card {
	position: relative;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.1);
	overflow: hidden;
}

.peabout-image-card img {
	display: block;
	width: 100%;
	height: 560px;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.peabout-image-card:hover img {
	transform: scale(1.035);
}

.peabout-image-caption {
	padding: 22px 24px;
	background: #ffffff;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.peabout-image-caption span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peabout-image-caption strong {
	display: block;
	color: var(--pea-ink);
	font-size: 22px;
	font-weight: 950;
	line-height: 1.15;
}


/* COMPANY STRIP */

.peabout-county-strip {
	padding: 28px 0;
	background: #050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.peabout-county-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

.peabout-county-grid div {
	padding: 18px;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	transition: 0.22s ease;
}

.peabout-county-grid div:hover {
	transform: translateY(-4px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.36);
}

.peabout-county-grid span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peabout-county-grid strong {
	display: block;
	color: #ffffff;
	font-size: 16px;
	font-weight: 950;
	line-height: 1.2;
}


/* DETAILS LIST */

.peabout-list-section {
	background: #ffffff;
}

.peabout-section-head {
	max-width: 860px;
	margin: 0 auto 44px;
	text-align: center;
}

.peabout-section-head .peabout-eyebrow {
	justify-content: center;
}

.peabout-section-head .peabout-eyebrow::after {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.peabout-location-layout {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	gap: 34px;
	align-items: stretch;
}

.peabout-location-panel {
	padding: 30px;
	background:
		radial-gradient(circle at 10% 10%, rgba(255,210,26,0.16), transparent 35%),
		linear-gradient(145deg, #0b0b0b, #220608);
	border: 1px solid rgba(255,210,26,0.2);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.18);
}

.peabout-location-panel span {
	display: block;
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peabout-location-panel h3 {
	margin-bottom: 12px;
	color: #ffffff;
	font-size: 34px;
	line-height: 1.02;
}

.peabout-location-panel p {
	margin-bottom: 22px;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.66;
}

.peabout-location-panel a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 14px 18px;
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.peabout-location-panel a:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 36px rgba(255,210,26,0.28);
}

.peabout-location-content {
	display: grid;
	gap: 0;
}

.peabout-location-group-head {
	margin-bottom: 16px;
}

.peabout-location-group-head span {
	display: block;
	margin-bottom: 7px;
	color: #ed1c24;
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peabout-location-group-head strong {
	display: block;
	color: #151923;
	font-size: 24px;
	font-weight: 950;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.peabout-location-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.peabout-location-grid div {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 118px;
	padding: 20px 18px;
	color: var(--pea-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 30px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.peabout-location-grid div:hover {
	transform: translateY(-5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.peabout-location-grid strong {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.18;
}

.peabout-location-grid p {
	margin: 0;
	font-size: 14px;
	line-height: 1.58;
}

.peabout-location-bullets {
	display: grid;
	gap: 12px;
	margin: 22px 0 26px;
	padding: 0;
	list-style: none;
}

.peabout-location-bullets li {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.76);
	font-size: 14px;
	line-height: 1.6;
}

.peabout-location-bullets li::before {
	position: absolute;
	left: 0;
	top: 8px;
	width: 8px;
	height: 8px;
	background: #ffd21a;
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}


/* FIELD SECTION */

.peabout-field {
	background: linear-gradient(180deg, #fff8e6 0%, #f7f3e8 100%);
}

.peabout-field-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1fr);
	gap: 70px;
	align-items: center;
}

.peabout-field-card {
	position: relative;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.1);
	overflow: hidden;
}

.peabout-field-card img {
	display: block;
	width: 100%;
	height: 560px;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.peabout-field-card:hover img {
	transform: scale(1.035);
}

.peabout-field-card-caption {
	padding: 22px 24px;
	background: #ffffff;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.peabout-field-card-caption span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peabout-field-card-caption strong {
	display: block;
	color: var(--pea-ink);
	font-size: 22px;
	font-weight: 950;
	line-height: 1.15;
}


/* CERTIFICATIONS */

.peabout-certs {
	background: #ffffff;
}

.peabout-badge-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.peabout-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 160px;
	padding: 22px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 30px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.peabout-badge:hover {
	transform: translateY(-5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.peabout-badge img {
	display: block;
	max-width: 118px;
	max-height: 118px;
	width: auto;
	height: auto;
}


/* REVIEWS */

.peabout-reviews {
	background: #f7fbfd;
}

.peabout-reviews .peabout-section-head {
	max-width: 900px;
}

.peabout-reviews .peabout-section-head h2 {
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
	font-size: clamp(34px, 3.2vw, 50px);
	line-height: 1.06;
}

.peabout-review-score {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr) auto;
	align-items: center;
	gap: 26px;
	margin-bottom: 28px;
	padding: 24px 28px;
	background: #ffffff;
	border: 1px solid rgba(237,28,36,0.12);
	box-shadow: 0 18px 42px rgba(0,0,0,0.06);
}

.peabout-review-score strong {
	display: block;
	color: var(--pea-ink);
	font-size: 48px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: -0.04em;
}

.peabout-review-score span {
	display: block;
	margin-top: 6px;
	color: var(--pea-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peabout-review-score p {
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
}

.peabout-review-score a {
	color: var(--pea-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.peabout-review-score a::after {
	content: " \2192";
	color: var(--pea-yellow);
}

.peabout-review-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.peabout-review {
	padding: 24px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	transition: 0.24s ease;
}

.peabout-review:hover {
	transform: translateY(-6px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 24px 52px rgba(0,0,0,0.11);
}

.peabout-stars {
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 16px;
	letter-spacing: 0.08em;
}

.peabout-review p {
	margin-bottom: 18px;
	font-size: 14px;
	line-height: 1.68;
}

.peabout-review strong {
	color: var(--pea-ink);
	font-size: 14px;
	font-weight: 950;
}

.peabout-review-cta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.2), transparent 42%),
		#101010;
	border-color: rgba(255,210,26,0.22);
}

.peabout-review-cta span {
	margin-bottom: 10px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.peabout-review-cta h3 {
	color: #ffffff;
	font-size: 25px;
	line-height: 1.12;
}

.peabout-review-cta a {
	margin-top: 18px;
	color: #050505 !important;
	background: var(--pea-yellow);
	padding: 14px 16px;
	font-size: 12px;
	font-weight: 950;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}


/* SERVICES DARK */

.peabout-services {
	background:
		radial-gradient(circle at 12% 20%, rgba(255,210,26,0.13), transparent 34%),
		radial-gradient(circle at 90% 75%, rgba(237,28,36,0.17), transparent 36%),
		#050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.peabout-section-head-light h2 {
	color: #ffffff;
}

.peabout-section-head-light p {
	color: rgba(255,255,255,0.72);
}

.peabout-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.peabout-service-grid a {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	padding: 18px;
	color: #ffffff !important;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	box-shadow: none;
	font-size: 14px;
	font-weight: 950;
	transition: 0.22s ease;
}

.peabout-service-grid a::after {
	content: "\2192";
	color: var(--pea-yellow);
	margin-left: 14px;
}

.peabout-service-grid a:hover {
	transform: translateY(-5px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.34);
}


/* WHY */

.peabout-why {
	background: #ffffff;
}

.peabout-why-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1fr);
	gap: 66px;
	align-items: center;
}

.peabout-why-copy p {
	max-width: 620px;
}

.peabout-why-list {
	display: grid;
	gap: 14px;
}

.peabout-why-list div {
	position: relative;
	padding: 24px 24px 24px 76px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 32px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.peabout-why-list div:hover {
	transform: translateX(5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.peabout-why-list span {
	position: absolute;
	left: 24px;
	top: 24px;
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pea-yellow);
	color: #050505;
	font-size: 12px;
	font-weight: 950;
}

.peabout-why-list h3 {
	margin-bottom: 8px;
	font-size: 22px;
	line-height: 1.15;
}

.peabout-why-list p {
	margin: 0;
	font-size: 14px;
	line-height: 1.62;
}


/* FAQ */

.peabout-faq {
	background: #f6fbfd;
}

.peabout-faq-list {
	max-width: 860px;
	margin: 0 auto;
	display: grid;
	gap: 12px;
}

.peabout-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 14px 34px rgba(0,0,0,0.055);
	transition: 0.22s ease;
	overflow: hidden;
}

.peabout-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 20px 44px rgba(0,0,0,0.08);
}

.peabout-faq-list summary {
	position: relative;
	padding: 22px 58px 22px 24px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.peabout-faq-list summary::-webkit-details-marker {
	display: none;
}

.peabout-faq-list summary::after {
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff5d8;
	color: var(--pea-red);
	font-size: 20px;
	font-weight: 950;
	line-height: 1;
	content: "+";
}

.peabout-faq-list details[open] summary::after {
	content: "\2212";
	background: var(--pea-red);
	color: #ffffff;
}

.peabout-faq-list details p {
	margin: 0;
	padding: 0 24px 24px;
	color: var(--pea-copy);
	font-size: 15px;
	line-height: 1.75;
}


/* RESPONSIVE */

@media (max-width: 1080px) {
	.peabout-hero-grid,
	.peabout-intro-grid,
	.peabout-field-grid,
	.peabout-why-grid,
	.peabout-location-layout {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.peabout-hero-card,
	.peabout-location-panel {
		max-width: 460px;
	}

	.peabout-county-grid,
	.peabout-service-grid,
	.peabout-badge-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.peabout-review-score {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.peabout-review-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.peabout-shell {
		width: min(100% - 28px, 520px);
	}

	.peabout-hero {
		padding: 76px 0 60px;
	}

	.peabout-hero h1 {
		font-size: 42px;
		line-height: 1;
	}

	.peabout-hero p {
		font-size: 16px;
	}

	.peabout-hero-actions,
	.peabout-intro-actions,
	.peabout-field-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.peabout-btn {
		width: 100%;
	}

	.peabout-section {
		padding: 66px 0;
	}

	.peabout-intro-copy h2,
	.peabout-section-head h2,
	.peabout-why-copy h2,
	.peabout-field-copy h2 {
		font-size: 34px;
		line-height: 1.05;
	}

	.peabout-county-grid,
	.peabout-location-grid,
	.peabout-service-grid,
	.peabout-review-grid {
		grid-template-columns: 1fr;
	}

	.peabout-image-card img,
	.peabout-field-card img {
		height: 440px;
	}

	.peabout-location-panel {
		padding: 26px;
	}

	.peabout-why-list div {
		padding: 22px 22px 22px 72px;
	}

	.peabout-review-score {
		padding: 22px;
	}

	.peabout-faq-list summary {
		font-size: 16px;
		padding: 20px 54px 20px 20px;
	}

	.peabout-faq-list details p {
		padding: 0 20px 22px;
	}
}

/* =========================================================
   PIPELINE EXCAVATION REVIEWS PAGE
   ========================================================= */

.pereviews,
.pereviews * {
	box-sizing: border-box;
}

.pereviews {
	--pea-black: #050505;
	--pea-red: #ed1c24;
	--pea-yellow: #ffd21a;
	--pea-yellow-2: #ffc64d;
	--pea-ink: #151923;
	--pea-copy: #646d7a;
	--pea-soft: #f6fbfd;
	--pea-cream: #fff7dc;
	--pea-white: #ffffff;
	color: var(--pea-ink);
	background: #ffffff;
	overflow: hidden;
}

.pereviews a {
	text-decoration: none !important;
}

.pereviews-shell {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
}

.pereviews-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 15px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.pereviews-eyebrow::before {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.pereviews h1,
.pereviews h2,
.pereviews h3,
.pereviews p {
	margin-top: 0;
}

.pereviews h1,
.pereviews h2,
.pereviews h3 {
	color: var(--pea-ink);
	font-weight: 950;
	letter-spacing: -0.045em;
}

.pereviews p {
	color: var(--pea-copy);
	font-size: 16px;
	line-height: 1.72;
}

.pereviews-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 24px;
	border-radius: 0;
	font-size: 13px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.pereviews-btn-primary {
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	box-shadow: 0 16px 34px rgba(255, 210, 26, 0.24);
}

.pereviews-btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(255, 210, 26, 0.36);
}

.pereviews-btn-secondary {
	color: #ffffff !important;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.42);
}

.pereviews-btn-secondary:hover {
	color: var(--pea-yellow) !important;
	background: rgba(255,255,255,0.13);
	transform: translateY(-3px);
}


/* HERO */

.pereviews-hero {
	position: relative;
	padding: 118px 0 90px;
	background: #050505;
	border-bottom: 5px solid var(--pea-red);
	overflow: hidden;
}

.pereviews-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.76) 45%, rgba(0,0,0,0.25) 76%, rgba(0,0,0,0.72) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-residental-van.png") center center / cover no-repeat;
	transform: scale(1.02);
}

.pereviews-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 750px) 350px;
	align-items: end;
	justify-content: space-between;
	gap: 54px;
}

.pereviews-hero h1 {
	max-width: 780px;
	margin-bottom: 18px;
	color: #ffffff;
	font-size: clamp(48px, 5.5vw, 78px);
	line-height: 0.96;
	text-shadow: 0 18px 44px rgba(0,0,0,0.48);
}

.pereviews-hero p {
	max-width: 690px;
	margin-bottom: 28px;
	color: rgba(255,255,255,0.82);
	font-size: 18px;
}

.pereviews-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 26px;
}

.pereviews-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.pereviews-hero-pills span {
	display: inline-flex;
	padding: 9px 11px;
	color: rgba(255,255,255,0.88);
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.18);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pereviews-hero-card {
	padding: 30px;
	background: linear-gradient(145deg, rgba(12,12,12,0.96), rgba(50,8,10,0.92));
	border: 1px solid rgba(255,210,26,0.24);
	border-top: 4px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.42);
}

.pereviews-hero-card span {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pereviews-hero-card strong {
	display: block;
	margin-bottom: 14px;
	color: #ffffff;
	font-size: 34px;
	font-weight: 950;
	line-height: 1.05;
	letter-spacing: -0.04em;
}

.pereviews-hero-card p {
	margin: 0;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.62;
}


/* SHARED SECTIONS */

.pereviews-section {
	padding: 92px 0;
}

.pereviews-section-head {
	max-width: 900px;
	margin: 0 auto 44px;
	text-align: center;
}

.pereviews-section-head .pereviews-eyebrow {
	justify-content: center;
}

.pereviews-section-head .pereviews-eyebrow::after {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.pereviews-section-head h2,
.pereviews-video-copy h2 {
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 16px;
	font-size: clamp(34px, 3.2vw, 50px);
	line-height: 1.06;
}

.pereviews-summary,
.pereviews-featured,
.pereviews-more {
	background: #f7fbfd;
}


/* REVIEW SCORE + CARDS */

.pereviews-review-score {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr) auto;
	align-items: center;
	gap: 26px;
	margin-bottom: 28px;
	padding: 24px 28px;
	background: #ffffff;
	border: 1px solid rgba(237,28,36,0.12);
	box-shadow: 0 18px 42px rgba(0,0,0,0.06);
}

.pereviews-review-score strong {
	display: block;
	color: var(--pea-ink);
	font-size: 48px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: -0.04em;
}

.pereviews-review-score span {
	display: block;
	margin-top: 6px;
	color: var(--pea-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pereviews-review-score p {
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
}

.pereviews-review-score a {
	color: var(--pea-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.pereviews-review-score a::after {
	content: " \2192";
	color: var(--pea-yellow);
}

.pereviews-review-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.pereviews-review,
.pereviews-more-grid article {
	padding: 24px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	transition: 0.24s ease;
}

.pereviews-review:hover,
.pereviews-more-grid article:hover {
	transform: translateY(-6px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 24px 52px rgba(0,0,0,0.11);
}

.pereviews-stars {
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 16px;
	letter-spacing: 0.08em;
}

.pereviews-review p,
.pereviews-more-grid article p {
	margin-bottom: 18px;
	font-size: 14px;
	line-height: 1.68;
}

.pereviews-review strong,
.pereviews-more-grid article strong {
	color: var(--pea-ink);
	font-size: 14px;
	font-weight: 950;
}

.pereviews-review-cta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.2), transparent 42%),
		#101010;
	border-color: rgba(255,210,26,0.22);
}

.pereviews-review-cta span {
	margin-bottom: 10px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pereviews-review-cta h3 {
	color: #ffffff;
	font-size: 25px;
	line-height: 1.12;
}

.pereviews-review-cta a {
	margin-top: 18px;
	color: #050505 !important;
	background: var(--pea-yellow);
	padding: 14px 16px;
	font-size: 12px;
	font-weight: 950;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.pereviews-more-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}


/* VIDEO */

.pereviews-videos {
	position: relative;
	background: linear-gradient(180deg, #ffffff 0%, #fff8e8 100%);
}

.pereviews-video-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.86fr) minmax(420px, 1fr);
	gap: 70px;
	align-items: center;
}

.pereviews-video-copy {
	padding: 34px;
	background: #ffffff;
	border-left: 5px solid var(--pea-red);
	box-shadow: 0 22px 60px rgba(0,0,0,0.08);
}

.pereviews-video-copy h2 {
	text-align: left;
	margin-left: 0;
	margin-right: 0;
}

.pereviews-video-points {
	display: grid;
	gap: 10px;
	margin: 24px 0 28px;
}

.pereviews-video-points span {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 26px;
	padding-left: 28px;
	color: var(--pea-ink);
	font-size: 14px;
	font-weight: 900;
	line-height: 1.45;
}

.pereviews-video-points span::before {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--pea-yellow);
	box-shadow: 0 0 0 4px rgba(255,210,26,0.18);
	content: "";
}

.pereviews-video-stack {
	display: grid;
	gap: 24px;
}

.pereviews-video-card {
	padding: 16px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 22px 54px rgba(0,0,0,0.12);
	transition: 0.28s ease;
}

.pereviews-video-card:hover {
	transform: translateY(-7px);
	box-shadow: 0 32px 70px rgba(0,0,0,0.17);
}

.pereviews-video-frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #111111;
	overflow: hidden;
}

.pereviews-video-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.pereviews-video-caption {
	padding: 16px 4px 4px;
}

.pereviews-video-caption span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pereviews-video-caption h3 {
	margin: 0;
	font-size: 20px;
	line-height: 1.14;
}


/* TRUST THEMES */

.pereviews-list-section {
	background: #ffffff;
}

.pereviews-location-layout {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	gap: 34px;
	align-items: stretch;
}

.pereviews-location-panel {
	padding: 30px;
	background:
		radial-gradient(circle at 10% 10%, rgba(255,210,26,0.16), transparent 35%),
		linear-gradient(145deg, #0b0b0b, #220608);
	border: 1px solid rgba(255,210,26,0.2);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.18);
}

.pereviews-location-panel span {
	display: block;
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pereviews-location-panel h3 {
	margin-bottom: 12px;
	color: #ffffff;
	font-size: 34px;
	line-height: 1.02;
}

.pereviews-location-panel p {
	margin-bottom: 22px;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.66;
}

.pereviews-location-panel a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 14px 18px;
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.pereviews-location-panel a:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 36px rgba(255,210,26,0.28);
}

.pereviews-location-content {
	display: grid;
	gap: 0;
}

.pereviews-location-group-head {
	margin-bottom: 16px;
}

.pereviews-location-group-head span {
	display: block;
	margin-bottom: 7px;
	color: #ed1c24;
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pereviews-location-group-head strong {
	display: block;
	color: #151923;
	font-size: 24px;
	font-weight: 950;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.pereviews-location-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.pereviews-location-grid div {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 118px;
	padding: 20px 18px;
	color: var(--pea-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 30px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.pereviews-location-grid div:hover {
	transform: translateY(-5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.pereviews-location-grid strong {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.18;
}

.pereviews-location-grid p {
	margin: 0;
	font-size: 14px;
	line-height: 1.58;
}

.pereviews-location-bullets {
	display: grid;
	gap: 12px;
	margin: 22px 0 26px;
	padding: 0;
	list-style: none;
}

.pereviews-location-bullets li {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.76);
	font-size: 14px;
	line-height: 1.6;
}

.pereviews-location-bullets li::before {
	position: absolute;
	left: 0;
	top: 8px;
	width: 8px;
	height: 8px;
	background: #ffd21a;
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}


/* SERVICES DARK */

.pereviews-services {
	background:
		radial-gradient(circle at 12% 20%, rgba(255,210,26,0.13), transparent 34%),
		radial-gradient(circle at 90% 75%, rgba(237,28,36,0.17), transparent 36%),
		#050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.pereviews-section-head-light h2 {
	color: #ffffff;
}

.pereviews-section-head-light p {
	color: rgba(255,255,255,0.72);
}

.pereviews-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.pereviews-service-grid a {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	padding: 18px;
	color: #ffffff !important;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	box-shadow: none;
	font-size: 14px;
	font-weight: 950;
	transition: 0.22s ease;
}

.pereviews-service-grid a::after {
	content: "\2192";
	color: var(--pea-yellow);
	margin-left: 14px;
}

.pereviews-service-grid a:hover {
	transform: translateY(-5px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.34);
}


/* FAQ */

.pereviews-faq {
	background: #f6fbfd;
}

.pereviews-faq-list {
	max-width: 860px;
	margin: 0 auto;
	display: grid;
	gap: 12px;
}

.pereviews-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 14px 34px rgba(0,0,0,0.055);
	transition: 0.22s ease;
	overflow: hidden;
}

.pereviews-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 20px 44px rgba(0,0,0,0.08);
}

.pereviews-faq-list summary {
	position: relative;
	padding: 22px 58px 22px 24px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.pereviews-faq-list summary::-webkit-details-marker {
	display: none;
}

.pereviews-faq-list summary::after {
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff5d8;
	color: var(--pea-red);
	font-size: 20px;
	font-weight: 950;
	line-height: 1;
	content: "+";
}

.pereviews-faq-list details[open] summary::after {
	content: "\2212";
	background: var(--pea-red);
	color: #ffffff;
}

.pereviews-faq-list details p {
	margin: 0;
	padding: 0 24px 24px;
	color: var(--pea-copy);
	font-size: 15px;
	line-height: 1.75;
}


/* RESPONSIVE */

@media (max-width: 1080px) {
	.pereviews-hero-grid,
	.pereviews-video-grid,
	.pereviews-location-layout {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.pereviews-hero-card,
	.pereviews-location-panel {
		max-width: 460px;
	}

	.pereviews-review-score {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.pereviews-review-grid,
	.pereviews-more-grid,
	.pereviews-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.pereviews-shell {
		width: min(100% - 28px, 520px);
	}

	.pereviews-hero {
		padding: 76px 0 60px;
	}

	.pereviews-hero h1 {
		font-size: 42px;
		line-height: 1;
	}

	.pereviews-hero p {
		font-size: 16px;
	}

	.pereviews-hero-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.pereviews-btn {
		width: 100%;
	}

	.pereviews-section {
		padding: 66px 0;
	}

	.pereviews-section-head h2,
	.pereviews-video-copy h2 {
		font-size: 34px;
		line-height: 1.05;
	}

	.pereviews-review-grid,
	.pereviews-more-grid,
	.pereviews-location-grid,
	.pereviews-service-grid {
		grid-template-columns: 1fr;
	}

	.pereviews-review-score,
	.pereviews-video-copy {
		padding: 22px;
	}

	.pereviews-location-panel {
		padding: 26px;
	}

	.pereviews-faq-list summary {
		font-size: 16px;
		padding: 20px 54px 20px 20px;
	}

	.pereviews-faq-list details p {
		padding: 0 20px 22px;
	}
}

/* =========================================================
   PIPELINE EXCAVATION SERVICES PAGE
   ========================================================= */

.peservices,
.peservices * {
	box-sizing: border-box;
}

.peservices {
	--pea-black: #050505;
	--pea-red: #ed1c24;
	--pea-yellow: #ffd21a;
	--pea-yellow-2: #ffc64d;
	--pea-ink: #151923;
	--pea-copy: #646d7a;
	--pea-soft: #f6fbfd;
	--pea-cream: #fff7dc;
	--pea-white: #ffffff;
	color: var(--pea-ink);
	background: #ffffff;
	overflow: hidden;
}

.peservices a {
	text-decoration: none !important;
}

.peservices-shell {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
}

.peservices-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 15px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.peservices-eyebrow::before {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.peservices h1,
.peservices h2,
.peservices h3,
.peservices p {
	margin-top: 0;
}

.peservices h1,
.peservices h2,
.peservices h3 {
	color: var(--pea-ink);
	font-weight: 950;
	letter-spacing: -0.045em;
}

.peservices p {
	color: var(--pea-copy);
	font-size: 16px;
	line-height: 1.72;
}

.peservices-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 24px;
	border-radius: 0;
	font-size: 13px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.peservices-btn-primary {
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	box-shadow: 0 16px 34px rgba(255, 210, 26, 0.24);
}

.peservices-btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(255, 210, 26, 0.36);
}

.peservices-btn-secondary {
	color: #ffffff !important;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.42);
}

.peservices-btn-secondary:hover {
	color: var(--pea-yellow) !important;
	background: rgba(255,255,255,0.13);
	transform: translateY(-3px);
}


/* HERO */

.peservices-hero {
	position: relative;
	padding: 118px 0 90px;
	background: #050505;
	border-bottom: 5px solid var(--pea-red);
	overflow: hidden;
}

.peservices-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.76) 45%, rgba(0,0,0,0.25) 76%, rgba(0,0,0,0.72) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-residental-van.png") center center / cover no-repeat;
	transform: scale(1.02);
}

.peservices-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 750px) 350px;
	align-items: end;
	justify-content: space-between;
	gap: 54px;
}

.peservices-hero h1 {
	max-width: 780px;
	margin-bottom: 18px;
	color: #ffffff;
	font-size: clamp(48px, 5.5vw, 78px);
	line-height: 0.96;
	text-shadow: 0 18px 44px rgba(0,0,0,0.48);
}

.peservices-hero p {
	max-width: 690px;
	margin-bottom: 28px;
	color: rgba(255,255,255,0.82);
	font-size: 18px;
}

.peservices-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 26px;
}

.peservices-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.peservices-hero-pills span {
	display: inline-flex;
	padding: 9px 11px;
	color: rgba(255,255,255,0.88);
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.18);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peservices-hero-card {
	padding: 30px;
	background: linear-gradient(145deg, rgba(12,12,12,0.96), rgba(50,8,10,0.92));
	border: 1px solid rgba(255,210,26,0.24);
	border-top: 4px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.42);
}

.peservices-hero-card span {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peservices-hero-card strong {
	display: block;
	margin-bottom: 14px;
	color: #ffffff;
	font-size: 34px;
	font-weight: 950;
	line-height: 1.05;
	letter-spacing: -0.04em;
}

.peservices-hero-card p {
	margin: 0;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.62;
}


/* SHARED SECTIONS */

.peservices-section {
	padding: 92px 0;
}

.peservices-section-head {
	max-width: 900px;
	margin: 0 auto 44px;
	text-align: center;
}

.peservices-section-head .peservices-eyebrow {
	justify-content: center;
}

.peservices-section-head .peservices-eyebrow::after {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.peservices-section-head h2,
.peservices-intro-copy h2 {
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 16px;
	font-size: clamp(34px, 3.2vw, 50px);
	line-height: 1.06;
}


/* INTRO */

.peservices-intro {
	background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}

.peservices-intro-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1fr);
	gap: 70px;
	align-items: center;
}

.peservices-intro-copy h2 {
	text-align: left;
	margin-left: 0;
	margin-right: 0;
}

.peservices-intro-copy p {
	max-width: 650px;
}

.peservices-intro-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 28px;
}

.peservices-inline-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--pea-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peservices-inline-link::after {
	content: "\2192";
	color: var(--pea-yellow);
}

.peservices-image-card {
	position: relative;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.1);
	overflow: hidden;
}

.peservices-image-card img {
	display: block;
	width: 100%;
	height: 520px;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.peservices-image-card:hover img {
	transform: scale(1.035);
}

.peservices-image-caption {
	padding: 22px 24px;
	background: #ffffff;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.peservices-image-caption span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peservices-image-caption strong {
	display: block;
	color: var(--pea-ink);
	font-size: 22px;
	font-weight: 950;
	line-height: 1.15;
}


/* SERVICE STRIP */

.peservices-county-strip {
	padding: 28px 0;
	background: #050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.peservices-county-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

.peservices-county-grid div {
	padding: 18px;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	transition: 0.22s ease;
}

.peservices-county-grid div:hover {
	transform: translateY(-4px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.36);
}

.peservices-county-grid span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peservices-county-grid strong {
	display: block;
	color: #ffffff;
	font-size: 16px;
	font-weight: 950;
	line-height: 1.2;
}


/* PRIMARY SERVICE CARDS */

.peservices-card-section {
	background: linear-gradient(180deg, #f7fbfd 0%, #edf6fa 100%);
}

.peservices-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.peservices-service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100%;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	overflow: hidden;
	transition: 0.28s ease;
}

.peservices-service-card::before {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--pea-red);
	transform: scaleX(0);
	transform-origin: left;
	content: "";
	transition: 0.28s ease;
	z-index: 3;
}

.peservices-service-img {
	position: relative;
	overflow: hidden;
}

.peservices-service-img::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 35%, rgba(0,0,0,0.42));
	opacity: 0;
	content: "";
	transition: 0.28s ease;
}

.peservices-service-card img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	transition: 0.42s ease;
}

.peservices-service-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 24px;
}

.peservices-service-body > span {
	margin-bottom: 12px;
	color: var(--pea-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.14em;
}

.peservices-service-card h3 {
	margin-bottom: 10px;
	font-size: 23px;
	line-height: 1.12;
}

.peservices-service-card p {
	margin-bottom: 18px;
	font-size: 14px;
	line-height: 1.6;
}

.peservices-service-card strong {
	margin-top: auto;
	color: var(--pea-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peservices-service-card strong::after {
	content: " \2192";
	color: var(--pea-yellow);
}

.peservices-service-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 28px 58px rgba(0,0,0,0.14);
	border-color: rgba(237,28,36,0.2);
}

.peservices-service-card:hover::before {
	transform: scaleX(1);
}

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

.peservices-service-card:hover .peservices-service-img::after {
	opacity: 1;
}


/* DARK SERVICE LINK GRID */

.peservices-services {
	background:
		radial-gradient(circle at 12% 20%, rgba(255,210,26,0.13), transparent 34%),
		radial-gradient(circle at 90% 75%, rgba(237,28,36,0.17), transparent 36%),
		#050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.peservices-section-head-light h2 {
	color: #ffffff;
}

.peservices-section-head-light p {
	color: rgba(255,255,255,0.72);
}

.peservices-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.peservices-service-grid a {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	padding: 18px;
	color: #ffffff !important;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	box-shadow: none;
	font-size: 14px;
	font-weight: 950;
	transition: 0.22s ease;
}

.peservices-service-grid a::after {
	content: "\2192";
	color: var(--pea-yellow);
	margin-left: 14px;
}

.peservices-service-grid a:hover {
	transform: translateY(-5px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.34);
}


/* PROCESS LIST */

.peservices-list-section {
	background: #ffffff;
}

.peservices-location-layout {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	gap: 34px;
	align-items: stretch;
}

.peservices-location-panel {
	padding: 30px;
	background:
		radial-gradient(circle at 10% 10%, rgba(255,210,26,0.16), transparent 35%),
		linear-gradient(145deg, #0b0b0b, #220608);
	border: 1px solid rgba(255,210,26,0.2);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.18);
}

.peservices-location-panel span {
	display: block;
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peservices-location-panel h3 {
	margin-bottom: 12px;
	color: #ffffff;
	font-size: 34px;
	line-height: 1.02;
}

.peservices-location-panel p {
	margin-bottom: 22px;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.66;
}

.peservices-location-panel a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 14px 18px;
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.peservices-location-panel a:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 36px rgba(255,210,26,0.28);
}

.peservices-location-content {
	display: grid;
	gap: 0;
}

.peservices-location-group-head {
	margin-bottom: 16px;
}

.peservices-location-group-head span {
	display: block;
	margin-bottom: 7px;
	color: #ed1c24;
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peservices-location-group-head strong {
	display: block;
	color: #151923;
	font-size: 24px;
	font-weight: 950;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.peservices-location-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.peservices-location-grid div {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 118px;
	padding: 20px 18px;
	color: var(--pea-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 30px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.peservices-location-grid div:hover {
	transform: translateY(-5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.peservices-location-grid strong {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.18;
}

.peservices-location-grid p {
	margin: 0;
	font-size: 14px;
	line-height: 1.58;
}

.peservices-location-bullets {
	display: grid;
	gap: 12px;
	margin: 22px 0 26px;
	padding: 0;
	list-style: none;
}

.peservices-location-bullets li {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.76);
	font-size: 14px;
	line-height: 1.6;
}

.peservices-location-bullets li::before {
	position: absolute;
	left: 0;
	top: 8px;
	width: 8px;
	height: 8px;
	background: #ffd21a;
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}


/* REVIEWS */

.peservices-reviews {
	background: #f7fbfd;
}

.peservices-reviews .peservices-section-head {
	max-width: 900px;
}

.peservices-reviews .peservices-section-head h2 {
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
	font-size: clamp(34px, 3.2vw, 50px);
	line-height: 1.06;
}

.peservices-review-score {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr) auto;
	align-items: center;
	gap: 26px;
	margin-bottom: 28px;
	padding: 24px 28px;
	background: #ffffff;
	border: 1px solid rgba(237,28,36,0.12);
	box-shadow: 0 18px 42px rgba(0,0,0,0.06);
}

.peservices-review-score strong {
	display: block;
	color: var(--pea-ink);
	font-size: 48px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: -0.04em;
}

.peservices-review-score span {
	display: block;
	margin-top: 6px;
	color: var(--pea-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peservices-review-score p {
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
}

.peservices-review-score a {
	color: var(--pea-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.peservices-review-score a::after {
	content: " \2192";
	color: var(--pea-yellow);
}

.peservices-review-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.peservices-review {
	padding: 24px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	transition: 0.24s ease;
}

.peservices-review:hover {
	transform: translateY(-6px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 24px 52px rgba(0,0,0,0.11);
}

.peservices-stars {
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 16px;
	letter-spacing: 0.08em;
}

.peservices-review p {
	margin-bottom: 18px;
	font-size: 14px;
	line-height: 1.68;
}

.peservices-review strong {
	color: var(--pea-ink);
	font-size: 14px;
	font-weight: 950;
}

.peservices-review-cta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.2), transparent 42%),
		#101010;
	border-color: rgba(255,210,26,0.22);
}

.peservices-review-cta span {
	margin-bottom: 10px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.peservices-review-cta h3 {
	color: #ffffff;
	font-size: 25px;
	line-height: 1.12;
}

.peservices-review-cta a {
	margin-top: 18px;
	color: #050505 !important;
	background: var(--pea-yellow);
	padding: 14px 16px;
	font-size: 12px;
	font-weight: 950;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}


/* FAQ + FORM */

.peservices-faq-form {
	background: #ffffff;
}

.peservices-faq-form-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(420px, 0.85fr);
	gap: 44px;
	align-items: start;
}

.peservices-faq-list {
	display: grid;
	gap: 12px;
}

.peservices-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 14px 34px rgba(0,0,0,0.055);
	transition: 0.22s ease;
	overflow: hidden;
}

.peservices-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 20px 44px rgba(0,0,0,0.08);
}

.peservices-faq-list summary {
	position: relative;
	padding: 22px 58px 22px 24px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.peservices-faq-list summary::-webkit-details-marker {
	display: none;
}

.peservices-faq-list summary::after {
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff5d8;
	color: var(--pea-red);
	font-size: 20px;
	font-weight: 950;
	line-height: 1;
	content: "+";
}

.peservices-faq-list details[open] summary::after {
	content: "\2212";
	background: var(--pea-red);
	color: #ffffff;
}

.peservices-faq-list details p {
	margin: 0;
	padding: 0 24px 24px;
	color: var(--pea-copy);
	font-size: 15px;
	line-height: 1.75;
}

.peservices-form-card {
	padding: 34px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.12);
}

.peservices-form-card > span {
	display: block;
	margin-bottom: 14px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peservices-form-card h3 {
	margin-bottom: 10px;
	font-size: 30px;
	line-height: 1.08;
}

.peservices-form-card > p {
	margin-bottom: 22px;
	font-size: 15px;
	line-height: 1.7;
}

.peservices-fluent-form {
	margin-top: 18px;
}

.peservices-form-card .ff-el-group {
	margin-bottom: 18px !important;
}

.peservices-form-card .ff-el-input--label,
.peservices-form-card .ff-el-form-check-label {
	margin-bottom: 7px !important;
	color: #151923 !important;
	font-size: 14px !important;
	font-weight: 950 !important;
	line-height: 1.25 !important;
}

.peservices-form-card .ff-el-form-control {
	min-height: 52px !important;
	padding: 13px 15px !important;
	background: #f8fafb !important;
	border: 1px solid rgba(0,0,0,0.14) !important;
	color: #151923 !important;
	font-size: 15px !important;
	box-shadow: none !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.peservices-form-card textarea.ff-el-form-control {
	min-height: 140px !important;
	resize: vertical;
}

.peservices-form-card .ff-el-form-control:focus {
	background: #ffffff !important;
	border-color: #ed1c24 !important;
	box-shadow: 0 0 0 4px rgba(237,28,36,0.08) !important;
	outline: none !important;
}

.peservices-form-card .ff-btn-submit {
	width: 100% !important;
	min-height: 56px !important;
	background: linear-gradient(135deg, #ffd21a, #ffc64d) !important;
	color: #050505 !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: 14px !important;
	font-weight: 950 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	box-shadow: 0 16px 30px rgba(255,210,26,0.22) !important;
	transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.peservices-form-card .ff-btn-submit:hover {
	transform: translateY(-2px);
	background: linear-gradient(135deg, #ffc64d, #ffd21a) !important;
	box-shadow: 0 22px 42px rgba(255,210,26,0.3) !important;
}

.peservices-form-card .ff-el-form-control::placeholder {
	color: rgba(21,25,35,0.42) !important;
}

.peservices-form-proof {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.peservices-form-proof .peservices-stars {
	margin: 0;
}

.peservices-form-proof strong {
	color: var(--pea-ink);
	font-size: 14px;
	font-weight: 950;
}


/* RESPONSIVE */

@media (max-width: 1080px) {
	.peservices-hero-grid,
	.peservices-intro-grid,
	.peservices-location-layout,
	.peservices-faq-form-grid {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.peservices-hero-card,
	.peservices-location-panel {
		max-width: 460px;
	}

	.peservices-county-grid,
	.peservices-service-grid,
	.peservices-card-grid,
	.peservices-review-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.peservices-review-score {
		grid-template-columns: 1fr;
		align-items: start;
	}
}

@media (max-width: 767px) {
	.peservices-shell {
		width: min(100% - 28px, 520px);
	}

	.peservices-hero {
		padding: 76px 0 60px;
	}

	.peservices-hero h1 {
		font-size: 42px;
		line-height: 1;
	}

	.peservices-hero p {
		font-size: 16px;
	}

	.peservices-hero-actions,
	.peservices-intro-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.peservices-btn {
		width: 100%;
	}

	.peservices-section {
		padding: 66px 0;
	}

	.peservices-section-head h2,
	.peservices-intro-copy h2 {
		font-size: 34px;
		line-height: 1.05;
	}

	.peservices-county-grid,
	.peservices-service-grid,
	.peservices-card-grid,
	.peservices-location-grid,
	.peservices-review-grid {
		grid-template-columns: 1fr;
	}

	.peservices-image-card img {
		height: 380px;
	}

	.peservices-location-panel,
	.peservices-form-card,
	.peservices-review-score {
		padding: 22px;
	}

	.peservices-faq-list summary {
		font-size: 16px;
		padding: 20px 54px 20px 20px;
	}

	.peservices-faq-list details p {
		padding: 0 20px 22px;
	}

	.peservices-form-card h3 {
		font-size: 26px;
	}
}

.peservices-faq-side {
	display: grid;
	gap: 22px;
}

.peservices-faq-support-card {
	padding: 28px;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.18), transparent 42%),
		linear-gradient(145deg, #0b0b0b, #220608);
	border: 1px solid rgba(255,210,26,0.22);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.16);
}

.peservices-faq-support-card > span {
	display: block;
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peservices-faq-support-card h3 {
	margin-bottom: 12px;
	color: #ffffff;
	font-size: 30px;
	line-height: 1.08;
}

.peservices-faq-support-card p {
	margin-bottom: 20px;
	color: rgba(255,255,255,0.74);
	font-size: 14px;
	line-height: 1.66;
}

.peservices-faq-support-points {
	display: grid;
	gap: 10px;
}

.peservices-faq-support-points span {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.88);
	font-size: 13px;
	font-weight: 900;
	line-height: 1.45;
}

.peservices-faq-support-points span::before {
	position: absolute;
	left: 0;
	top: 7px;
	width: 8px;
	height: 8px;
	background: var(--pea-yellow);
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}

/* Force Fluent Form full-width inside Services form card */
.peservices-form-card .fluentform,
.peservices-form-card .fluentform form,
.peservices-form-card form.frm-fluent-form,
.peservices-form-card .ff-el-group,
.peservices-form-card .ff-el-input--content,
.peservices-form-card .ff-el-form-control,
.peservices-form-card input,
.peservices-form-card select,
.peservices-form-card textarea {
	width: 100% !important;
	max-width: 100% !important;
}

.peservices-form-card .ff-el-input--content {
	display: block !important;
}

.peservices-form-card .ff-t-cell,
.peservices-form-card .ff-el-group {
	flex: 0 0 100% !important;
	max-width: 100% !important;
}

.peservices-form-card .ff-t-container,
.peservices-form-card .ff-el-input--content {
	gap: 0 !important;
}

.peservices-form-card .ff_submit_btn_wrapper {
	width: 100% !important;
}

.peservices-form-card .ff-btn-submit {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
}

/* Make form card feel balanced with the FAQ side */
.peservices-form-card {
	position: sticky;
	top: 110px;
}

@media (max-width: 1080px) {
	.peservices-form-card {
		position: relative;
		top: auto;
	}
}

@media (max-width: 767px) {
	.peservices-faq-support-card {
		padding: 24px;
	}

	.peservices-faq-support-card h3 {
		font-size: 26px;
	}
}

/* Services heading width polish */
@media (min-width: 981px) {
	.peservices-card-section .peservices-section-head {
		max-width: 1080px;
	}

	.peservices-card-section .peservices-section-head h2 {
		max-width: 1060px;
	}
}

/* =========================================================
   PIPELINE EXCAVATION PORTFOLIO / PROJECTS PAGE
   ========================================================= */

.peportfolio,
.peportfolio *,
.peportfolio-post-widget,
.peportfolio-post-widget * {
	box-sizing: border-box;
}

.peportfolio,
.peportfolio-post-widget {
	--pea-black: #050505;
	--pea-red: #ed1c24;
	--pea-yellow: #ffd21a;
	--pea-yellow-2: #ffc64d;
	--pea-ink: #151923;
	--pea-copy: #646d7a;
	--pea-soft: #f6fbfd;
	--pea-cream: #fff7dc;
	--pea-white: #ffffff;
	color: var(--pea-ink);
}

.peportfolio {
	background: #ffffff;
	overflow: hidden;
}

.peportfolio a,
.peportfolio-post-widget a {
	text-decoration: none !important;
}

.peportfolio-shell {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
}

.peportfolio-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 15px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.peportfolio-eyebrow::before {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.peportfolio h1,
.peportfolio h2,
.peportfolio h3,
.peportfolio p {
	margin-top: 0;
}

.peportfolio h1,
.peportfolio h2,
.peportfolio h3 {
	color: var(--pea-ink);
	font-weight: 950;
	letter-spacing: -0.045em;
}

.peportfolio p {
	color: var(--pea-copy);
	font-size: 16px;
	line-height: 1.72;
}

.peportfolio-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 24px;
	border-radius: 0;
	font-size: 13px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.peportfolio-btn-primary {
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	box-shadow: 0 16px 34px rgba(255, 210, 26, 0.24);
}

.peportfolio-btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(255, 210, 26, 0.36);
}

.peportfolio-btn-secondary {
	color: #ffffff !important;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.42);
}

.peportfolio-btn-secondary:hover {
	color: var(--pea-yellow) !important;
	background: rgba(255,255,255,0.13);
	transform: translateY(-3px);
}


/* HERO */

.peportfolio-hero {
	position: relative;
	padding: 118px 0 90px;
	background: #050505;
	border-bottom: 5px solid var(--pea-red);
	overflow: hidden;
}

.peportfolio-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.76) 45%, rgba(0,0,0,0.25) 76%, rgba(0,0,0,0.72) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-residental-van.png") center center / cover no-repeat;
	transform: scale(1.02);
}

.peportfolio-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 750px) 350px;
	align-items: end;
	justify-content: space-between;
	gap: 54px;
}

.peportfolio-hero h1 {
	max-width: 780px;
	margin-bottom: 18px;
	color: #ffffff;
	font-size: clamp(48px, 5.5vw, 78px);
	line-height: 0.96;
	text-shadow: 0 18px 44px rgba(0,0,0,0.48);
}

.peportfolio-hero p {
	max-width: 690px;
	margin-bottom: 28px;
	color: rgba(255,255,255,0.82);
	font-size: 18px;
}

.peportfolio-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 26px;
}

.peportfolio-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.peportfolio-hero-pills span {
	display: inline-flex;
	padding: 9px 11px;
	color: rgba(255,255,255,0.88);
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.18);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peportfolio-hero-card {
	padding: 30px;
	background: linear-gradient(145deg, rgba(12,12,12,0.96), rgba(50,8,10,0.92));
	border: 1px solid rgba(255,210,26,0.24);
	border-top: 4px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.42);
}

.peportfolio-hero-card span {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peportfolio-hero-card strong {
	display: block;
	margin-bottom: 14px;
	color: #ffffff;
	font-size: 34px;
	font-weight: 950;
	line-height: 1.05;
	letter-spacing: -0.04em;
}

.peportfolio-hero-card p {
	margin: 0;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.62;
}


/* SHARED SECTIONS */

.peportfolio-section {
	padding: 92px 0;
}

.peportfolio-section-head {
	max-width: 900px;
	margin: 0 auto 44px;
	text-align: center;
}

.peportfolio-section-head .peportfolio-eyebrow {
	justify-content: center;
}

.peportfolio-section-head .peportfolio-eyebrow::after {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.peportfolio-section-head h2,
.peportfolio-intro-copy h2 {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 16px;
	font-size: clamp(34px, 3.2vw, 50px);
	line-height: 1.06;
}


/* INTRO */

.peportfolio-intro {
	background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}

.peportfolio-intro-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1fr);
	gap: 70px;
	align-items: center;
}

.peportfolio-intro-copy h2 {
	text-align: left;
	margin-left: 0;
	margin-right: 0;
}

.peportfolio-intro-copy p {
	max-width: 650px;
}

.peportfolio-intro-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 28px;
}

.peportfolio-inline-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--pea-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.peportfolio-inline-link::after {
	content: "\2192";
	color: var(--pea-yellow);
}

.peportfolio-image-card {
	position: relative;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.1);
	overflow: hidden;
}

.peportfolio-image-card img {
	display: block;
	width: 100%;
	height: 520px;
	object-fit: cover;
	object-position: center center;
	transition: transform 0.4s ease;
}

.peportfolio-image-card:hover img {
	transform: scale(1.035);
}

.peportfolio-image-caption {
	padding: 22px 24px;
	background: #ffffff;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.peportfolio-image-caption span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peportfolio-image-caption strong {
	display: block;
	color: var(--pea-ink);
	font-size: 22px;
	font-weight: 950;
	line-height: 1.15;
}


/* STRIP */

.peportfolio-county-strip {
	padding: 28px 0;
	background: #050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.peportfolio-county-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

.peportfolio-county-grid div {
	padding: 18px;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	transition: 0.22s ease;
}

.peportfolio-county-grid div:hover {
	transform: translateY(-4px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.36);
}

.peportfolio-county-grid span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peportfolio-county-grid strong {
	display: block;
	color: #ffffff;
	font-size: 16px;
	font-weight: 950;
	line-height: 1.2;
}


/* PROJECTS LEAD */

.peportfolio-projects-lead {
	padding: 86px 0 34px;
	background: linear-gradient(180deg, #f7fbfd 0%, #edf6fa 100%);
}


/* BETHEME POSTS WIDGET OVERRIDE */

.peportfolio-post-widget {
	padding: 20px 0 92px;
	background: linear-gradient(180deg, #edf6fa 0%, #f7fbfd 100%);
}

.peportfolio-post-widget > .mcb-wrap-inner,
.peportfolio-post-widget > .mcb-column-inner,
.peportfolio-post-widget .column_attr,
.peportfolio-post-widget .blog_wrapper,
.peportfolio-post-widget .posts_group {
	width: min(100% - 48px, 1180px) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.peportfolio-post-widget .posts_group,
.peportfolio-post-widget .posts_group.isotope,
.peportfolio-post-widget .lm_wrapper {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 22px !important;
	height: auto !important;
	position: relative !important;
	counter-reset: peproject;
}

.peportfolio-post-widget .post-item,
.peportfolio-post-widget .isotope-item {
	position: relative !important;
	left: auto !important;
	top: auto !important;
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	padding: 0 !important;
	counter-increment: peproject;
}

.peportfolio-post-widget .image_frame,
.peportfolio-post-widget .post-photo-wrapper,
.peportfolio-post-widget .date_label,
.peportfolio-post-widget .post-head,
.peportfolio-post-widget .button-love,
.peportfolio-post-widget .image_links {
	display: none !important;
}

.peportfolio-post-widget .post-desc-wrapper,
.peportfolio-post-widget .post-desc-wrapper.bg-,
.peportfolio-post-widget .post-desc {
	height: 100% !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

.peportfolio-post-widget article.post-item {
	position: relative;
	display: flex !important;
	flex-direction: column;
	min-height: 100%;
	padding: 28px 24px 24px !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	transition: 0.28s ease;
	overflow: hidden;
}

.peportfolio-post-widget article.post-item::before {
	display: block;
	margin-bottom: 16px;
	color: var(--pea-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.14em;
	content: counter(peproject, decimal-leading-zero);
}

.peportfolio-post-widget article.post-item::after {
	position: absolute;
	right: -42px;
	bottom: -42px;
	width: 120px;
	height: 120px;
	border-radius: 999px;
	background: rgba(255,210,26,0.12);
	content: "";
	transition: 0.28s ease;
}

.peportfolio-post-widget article.post-item:hover {
	transform: translateY(-8px);
	box-shadow: 0 28px 58px rgba(0,0,0,0.14);
	border-color: rgba(237,28,36,0.22);
}

.peportfolio-post-widget article.post-item:hover::after {
	transform: scale(1.18);
	background: rgba(255,210,26,0.18);
}

.peportfolio-post-widget .entry-title,
.peportfolio-post-widget .entry-title a {
	margin: 0 !important;
	color: var(--pea-ink) !important;
	font-size: 22px !important;
	font-weight: 950 !important;
	line-height: 1.13 !important;
	letter-spacing: -0.035em !important;
}

.peportfolio-post-widget .post-title {
	margin-bottom: 12px !important;
}

.peportfolio-post-widget .post-excerpt {
	margin: 0 0 22px !important;
	color: var(--pea-copy) !important;
	font-size: 14px !important;
	line-height: 1.66 !important;
}

.peportfolio-post-widget .excerpt-hellip {
	color: var(--pea-copy) !important;
}

.peportfolio-post-widget .post-footer {
	margin-top: auto !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
}

.peportfolio-post-widget .post-links {
	float: none !important;
	display: block !important;
}

.peportfolio-post-widget .read-more-icon {
	display: none !important;
}

.peportfolio-post-widget .post-more {
	display: inline-flex !important;
	align-items: center;
	color: var(--pea-red) !important;
	font-size: 12px !important;
	font-weight: 950 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
}

.peportfolio-post-widget .post-more::after {
	margin-left: 6px;
	color: var(--pea-yellow);
	content: "\2192";
}

.peportfolio-post-widget .post-more:hover {
	color: #050505 !important;
}

.peportfolio-post-widget .pager,
.peportfolio-post-widget .pager_lm,
.peportfolio-post-widget .pagination {
	grid-column: 1 / -1;
	margin-top: 28px !important;
	text-align: center !important;
}

.peportfolio-post-widget .pager a,
.peportfolio-post-widget .pagination a,
.peportfolio-post-widget .pagination .page-numbers,
.peportfolio-post-widget .pager .page-numbers {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	margin: 4px;
	background: #ffffff !important;
	border: 1px solid rgba(0,0,0,0.08) !important;
	color: var(--pea-ink) !important;
	font-size: 12px;
	font-weight: 900;
}

.peportfolio-post-widget .pager a:hover,
.peportfolio-post-widget .pagination a:hover,
.peportfolio-post-widget .pagination .current,
.peportfolio-post-widget .pager .current {
	background: var(--pea-yellow) !important;
	color: #050505 !important;
	border-color: var(--pea-yellow) !important;
}


/* LIST SECTION */

.peportfolio-list-section {
	background: #ffffff;
}

.peportfolio-location-layout {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	gap: 34px;
	align-items: stretch;
}

.peportfolio-location-panel {
	padding: 30px;
	background:
		radial-gradient(circle at 10% 10%, rgba(255,210,26,0.16), transparent 35%),
		linear-gradient(145deg, #0b0b0b, #220608);
	border: 1px solid rgba(255,210,26,0.2);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.18);
}

.peportfolio-location-panel span {
	display: block;
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peportfolio-location-panel h3 {
	margin-bottom: 12px;
	color: #ffffff;
	font-size: 34px;
	line-height: 1.02;
}

.peportfolio-location-panel p {
	margin-bottom: 22px;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.66;
}

.peportfolio-location-panel a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 14px 18px;
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.peportfolio-location-panel a:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 36px rgba(255,210,26,0.28);
}

.peportfolio-location-content {
	display: grid;
	gap: 0;
}

.peportfolio-location-group-head {
	margin-bottom: 16px;
}

.peportfolio-location-group-head span {
	display: block;
	margin-bottom: 7px;
	color: #ed1c24;
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peportfolio-location-group-head strong {
	display: block;
	color: #151923;
	font-size: 24px;
	font-weight: 950;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.peportfolio-location-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.peportfolio-location-grid div {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 118px;
	padding: 20px 18px;
	color: var(--pea-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 30px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.peportfolio-location-grid div:hover {
	transform: translateY(-5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.peportfolio-location-grid strong {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.18;
}

.peportfolio-location-grid p {
	margin: 0;
	font-size: 14px;
	line-height: 1.58;
}

.peportfolio-location-bullets {
	display: grid;
	gap: 12px;
	margin: 22px 0 26px;
	padding: 0;
	list-style: none;
}

.peportfolio-location-bullets li {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.76);
	font-size: 14px;
	line-height: 1.6;
}

.peportfolio-location-bullets li::before {
	position: absolute;
	left: 0;
	top: 8px;
	width: 8px;
	height: 8px;
	background: #ffd21a;
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}


/* DARK SERVICES */

.peportfolio-services {
	background:
		radial-gradient(circle at 12% 20%, rgba(255,210,26,0.13), transparent 34%),
		radial-gradient(circle at 90% 75%, rgba(237,28,36,0.17), transparent 36%),
		#050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.peportfolio-section-head-light h2 {
	color: #ffffff;
}

.peportfolio-section-head-light p {
	color: rgba(255,255,255,0.72);
}

.peportfolio-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.peportfolio-service-grid a {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	padding: 18px;
	color: #ffffff !important;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	box-shadow: none;
	font-size: 14px;
	font-weight: 950;
	transition: 0.22s ease;
}

.peportfolio-service-grid a::after {
	content: "\2192";
	color: var(--pea-yellow);
	margin-left: 14px;
}

.peportfolio-service-grid a:hover {
	transform: translateY(-5px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.34);
}


/* FAQ + FORM */

.peportfolio-faq-form {
	background: #ffffff;
}

.peportfolio-faq-form-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(420px, 0.85fr);
	gap: 44px;
	align-items: start;
}

.peportfolio-faq-side {
	display: grid;
	gap: 22px;
}

.peportfolio-faq-list {
	display: grid;
	gap: 12px;
}

.peportfolio-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 14px 34px rgba(0,0,0,0.055);
	transition: 0.22s ease;
	overflow: hidden;
}

.peportfolio-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 20px 44px rgba(0,0,0,0.08);
}

.peportfolio-faq-list summary {
	position: relative;
	padding: 22px 58px 22px 24px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.peportfolio-faq-list summary::-webkit-details-marker {
	display: none;
}

.peportfolio-faq-list summary::after {
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff5d8;
	color: var(--pea-red);
	font-size: 20px;
	font-weight: 950;
	line-height: 1;
	content: "+";
}

.peportfolio-faq-list details[open] summary::after {
	content: "\2212";
	background: var(--pea-red);
	color: #ffffff;
}

.peportfolio-faq-list details p {
	margin: 0;
	padding: 0 24px 24px;
	color: var(--pea-copy);
	font-size: 15px;
	line-height: 1.75;
}

.peportfolio-faq-support-card {
	padding: 28px;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.18), transparent 42%),
		linear-gradient(145deg, #0b0b0b, #220608);
	border: 1px solid rgba(255,210,26,0.22);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.16);
}

.peportfolio-faq-support-card > span {
	display: block;
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peportfolio-faq-support-card h3 {
	margin-bottom: 12px;
	color: #ffffff;
	font-size: 30px;
	line-height: 1.08;
}

.peportfolio-faq-support-card p {
	margin-bottom: 20px;
	color: rgba(255,255,255,0.74);
	font-size: 14px;
	line-height: 1.66;
}

.peportfolio-faq-support-points {
	display: grid;
	gap: 10px;
}

.peportfolio-faq-support-points span {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.88);
	font-size: 13px;
	font-weight: 900;
	line-height: 1.45;
}

.peportfolio-faq-support-points span::before {
	position: absolute;
	left: 0;
	top: 7px;
	width: 8px;
	height: 8px;
	background: var(--pea-yellow);
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}

.peportfolio-form-card {
	position: sticky;
	top: 110px;
	padding: 34px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.12);
}

.peportfolio-form-card > span {
	display: block;
	margin-bottom: 14px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.peportfolio-form-card h3 {
	margin-bottom: 10px;
	font-size: 30px;
	line-height: 1.08;
}

.peportfolio-form-card > p {
	margin-bottom: 22px;
	font-size: 15px;
	line-height: 1.7;
}

.peportfolio-fluent-form {
	margin-top: 18px;
}

.peportfolio-form-card .fluentform,
.peportfolio-form-card .fluentform form,
.peportfolio-form-card form.frm-fluent-form,
.peportfolio-form-card .ff-el-group,
.peportfolio-form-card .ff-el-input--content,
.peportfolio-form-card .ff-el-form-control,
.peportfolio-form-card input,
.peportfolio-form-card select,
.peportfolio-form-card textarea {
	width: 100% !important;
	max-width: 100% !important;
}

.peportfolio-form-card .ff-el-input--content {
	display: block !important;
}

.peportfolio-form-card .ff-t-cell,
.peportfolio-form-card .ff-el-group {
	flex: 0 0 100% !important;
	max-width: 100% !important;
}

.peportfolio-form-card .ff-t-container,
.peportfolio-form-card .ff-el-input--content {
	gap: 0 !important;
}

.peportfolio-form-card .ff_submit_btn_wrapper {
	width: 100% !important;
}

.peportfolio-form-card .ff-el-group {
	margin-bottom: 18px !important;
}

.peportfolio-form-card .ff-el-input--label,
.peportfolio-form-card .ff-el-form-check-label {
	margin-bottom: 7px !important;
	color: #151923 !important;
	font-size: 14px !important;
	font-weight: 950 !important;
	line-height: 1.25 !important;
}

.peportfolio-form-card .ff-el-form-control {
	min-height: 52px !important;
	padding: 13px 15px !important;
	background: #f8fafb !important;
	border: 1px solid rgba(0,0,0,0.14) !important;
	color: #151923 !important;
	font-size: 15px !important;
	box-shadow: none !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.peportfolio-form-card textarea.ff-el-form-control {
	min-height: 140px !important;
	resize: vertical;
}

.peportfolio-form-card .ff-el-form-control:focus {
	background: #ffffff !important;
	border-color: #ed1c24 !important;
	box-shadow: 0 0 0 4px rgba(237,28,36,0.08) !important;
	outline: none !important;
}

.peportfolio-form-card .ff-btn-submit {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 56px !important;
	background: linear-gradient(135deg, #ffd21a, #ffc64d) !important;
	color: #050505 !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: 14px !important;
	font-weight: 950 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	box-shadow: 0 16px 30px rgba(255,210,26,0.22) !important;
	transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.peportfolio-form-card .ff-btn-submit:hover {
	transform: translateY(-2px);
	background: linear-gradient(135deg, #ffc64d, #ffd21a) !important;
	box-shadow: 0 22px 42px rgba(255,210,26,0.3) !important;
}

.peportfolio-form-card .ff-el-form-control::placeholder {
	color: rgba(21,25,35,0.42) !important;
}

.peportfolio-form-proof {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.peportfolio-stars {
	margin: 0;
	color: var(--pea-yellow);
	font-size: 16px;
	letter-spacing: 0.08em;
}

.peportfolio-form-proof strong {
	color: var(--pea-ink);
	font-size: 14px;
	font-weight: 950;
}


/* RESPONSIVE */

@media (max-width: 1080px) {
	.peportfolio-hero-grid,
	.peportfolio-intro-grid,
	.peportfolio-location-layout,
	.peportfolio-faq-form-grid {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.peportfolio-hero-card,
	.peportfolio-location-panel {
		max-width: 460px;
	}

	.peportfolio-county-grid,
	.peportfolio-service-grid,
	.peportfolio-location-grid,
	.peportfolio-post-widget .posts_group,
	.peportfolio-post-widget .posts_group.isotope,
	.peportfolio-post-widget .lm_wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.peportfolio-form-card {
		position: relative;
		top: auto;
	}
}

@media (max-width: 767px) {
	.peportfolio-shell,
	.peportfolio-post-widget > .mcb-wrap-inner,
	.peportfolio-post-widget > .mcb-column-inner,
	.peportfolio-post-widget .column_attr,
	.peportfolio-post-widget .blog_wrapper,
	.peportfolio-post-widget .posts_group {
		width: min(100% - 28px, 520px) !important;
	}

	.peportfolio-hero {
		padding: 76px 0 60px;
	}

	.peportfolio-hero h1 {
		font-size: 42px;
		line-height: 1;
	}

	.peportfolio-hero p {
		font-size: 16px;
	}

	.peportfolio-hero-actions,
	.peportfolio-intro-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.peportfolio-btn {
		width: 100%;
	}

	.peportfolio-section {
		padding: 66px 0;
	}

	.peportfolio-projects-lead {
		padding: 66px 0 24px;
	}

	.peportfolio-post-widget {
		padding: 16px 0 66px;
	}

	.peportfolio-section-head h2,
	.peportfolio-intro-copy h2 {
		font-size: 34px;
		line-height: 1.05;
	}

	.peportfolio-county-grid,
	.peportfolio-service-grid,
	.peportfolio-location-grid,
	.peportfolio-post-widget .posts_group,
	.peportfolio-post-widget .posts_group.isotope,
	.peportfolio-post-widget .lm_wrapper {
		grid-template-columns: 1fr !important;
	}

	.peportfolio-image-card img {
		height: 380px;
	}

	.peportfolio-location-panel,
	.peportfolio-form-card,
	.peportfolio-faq-support-card {
		padding: 24px;
	}

	.peportfolio-faq-support-card h3,
	.peportfolio-form-card h3 {
		font-size: 26px;
	}

	.peportfolio-faq-list summary {
		font-size: 16px;
		padding: 20px 54px 20px 20px;
	}

	.peportfolio-faq-list details p {
		padding: 0 20px 22px;
	}
}

/* =========================================================
   PORTFOLIO POST WIDGET - CLEAN FINAL OVERRIDE
   ========================================================= */

/* Important: class should be on the full-width wrap/section that holds the Blog widget */

.peportfolio-post-widget {
	background: linear-gradient(180deg, #edf6fa 0%, #f7fbfd 100%);
	padding: 20px 0 92px;
}

.peportfolio-post-widget .blog_wrapper {
	width: min(100% - 48px, 1180px) !important;
	max-width: 1180px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.peportfolio-post-widget .posts_group {
	position: relative !important;
	height: auto !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 22px !important;
	counter-reset: peproject;
}

/* kill isotope/masonry positioning */
.peportfolio-post-widget .post-item,
.peportfolio-post-widget article.post-item,
.peportfolio-post-widget .isotope-item {
	position: relative !important;
	left: auto !important;
	top: auto !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	transform: none !important;
	counter-increment: peproject;
}

/* hide repeated featured images */
.peportfolio-post-widget .image_frame,
.peportfolio-post-widget .image_wrapper,
.peportfolio-post-widget .post-photo-wrapper,
.peportfolio-post-widget .date_label,
.peportfolio-post-widget .post-head,
.peportfolio-post-widget .button-love,
.peportfolio-post-widget .image_links {
	display: none !important;
}

/* project card */
.peportfolio-post-widget article.post-item {
	display: flex !important;
	flex-direction: column !important;
	min-height: 100% !important;
	padding: 28px 24px 24px !important;
	background: #ffffff !important;
	border: 1px solid rgba(0,0,0,0.08) !important;
	border-top: 5px solid #ed1c24 !important;
	box-shadow: 0 16px 34px rgba(0,0,0,0.06) !important;
	transition: 0.28s ease !important;
	overflow: hidden !important;
}

.peportfolio-post-widget article.post-item::before {
	display: block;
	margin-bottom: 16px;
	color: #ed1c24;
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.14em;
	content: counter(peproject, decimal-leading-zero);
}

.peportfolio-post-widget article.post-item:hover {
	transform: translateY(-8px) !important;
	box-shadow: 0 28px 58px rgba(0,0,0,0.14) !important;
	border-color: rgba(237,28,36,0.22) !important;
}

.peportfolio-post-widget .post-desc-wrapper,
.peportfolio-post-widget .post-desc-wrapper.bg-,
.peportfolio-post-widget .post-desc {
	height: 100% !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

.peportfolio-post-widget .post-title {
	margin: 0 0 12px !important;
}

.peportfolio-post-widget .entry-title,
.peportfolio-post-widget .entry-title a {
	margin: 0 !important;
	color: #151923 !important;
	font-size: 22px !important;
	font-weight: 950 !important;
	line-height: 1.13 !important;
	letter-spacing: -0.035em !important;
}

.peportfolio-post-widget .post-excerpt {
	margin: 0 0 22px !important;
	color: #646d7a !important;
	font-size: 14px !important;
	line-height: 1.66 !important;
}

.peportfolio-post-widget .post-footer {
	margin-top: auto !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
}

.peportfolio-post-widget .post-links {
	float: none !important;
	display: block !important;
}

.peportfolio-post-widget .read-more-icon {
	display: none !important;
}

.peportfolio-post-widget .post-more {
	display: inline-flex !important;
	align-items: center !important;
	color: #ed1c24 !important;
	font-size: 12px !important;
	font-weight: 950 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
}

.peportfolio-post-widget .post-more::after {
	margin-left: 6px;
	color: #ffd21a;
	content: "\2192";
}

/* pagination */
.peportfolio-post-widget .pager,
.peportfolio-post-widget .pager_lm,
.peportfolio-post-widget .pagination {
	grid-column: 1 / -1 !important;
	margin-top: 28px !important;
	text-align: center !important;
}

/* responsive */
@media (max-width: 1080px) {
	.peportfolio-post-widget .posts_group {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.peportfolio-post-widget .blog_wrapper {
		width: min(100% - 28px, 520px) !important;
	}

	.peportfolio-post-widget .posts_group {
		grid-template-columns: 1fr !important;
	}
}

/* =========================================================
   PIPELINE EXCAVATION LOCAL SERVICE AREA TEMPLATE
   ========================================================= */

.pelocal,
.pelocal * {
	box-sizing: border-box;
}

.pelocal {
	--pea-black: #050505;
	--pea-red: #ed1c24;
	--pea-yellow: #ffd21a;
	--pea-yellow-2: #ffc64d;
	--pea-ink: #151923;
	--pea-copy: #646d7a;
	--pea-soft: #f6fbfd;
	--pea-cream: #fff7dc;
	--pea-white: #ffffff;
	color: var(--pea-ink);
	background: #ffffff;
	overflow: hidden;
}

.pelocal a {
	text-decoration: none !important;
}

.pelocal-shell {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
}

.pelocal-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 15px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.pelocal-eyebrow::before {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.pelocal h1,
.pelocal h2,
.pelocal h3,
.pelocal p {
	margin-top: 0;
}

.pelocal h1,
.pelocal h2,
.pelocal h3 {
	color: var(--pea-ink);
	font-weight: 950;
	letter-spacing: -0.045em;
}

.pelocal p {
	color: var(--pea-copy);
	font-size: 16px;
	line-height: 1.72;
}

.pelocal-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 24px;
	border-radius: 0;
	font-size: 13px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.pelocal-btn-primary {
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	box-shadow: 0 16px 34px rgba(255, 210, 26, 0.24);
}

.pelocal-btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(255, 210, 26, 0.36);
}

.pelocal-btn-secondary {
	color: #ffffff !important;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.42);
}

.pelocal-btn-secondary:hover {
	color: var(--pea-yellow) !important;
	background: rgba(255,255,255,0.13);
	transform: translateY(-3px);
}

.pelocal-inline-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--pea-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pelocal-inline-link::after {
	content: "\2192";
	color: var(--pea-yellow);
}


/* HERO */

.pelocal-hero {
	position: relative;
	padding: 118px 0 90px;
	background: #050505;
	border-bottom: 5px solid var(--pea-red);
	overflow: hidden;
}

.pelocal-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.76) 45%, rgba(0,0,0,0.25) 76%, rgba(0,0,0,0.72) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-excavation-service-tech-header.png") center center / cover no-repeat;
	transform: scale(1.02);
}

.pelocal-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 750px) 350px;
	align-items: end;
	justify-content: space-between;
	gap: 54px;
}

.pelocal-hero h1 {
	max-width: 780px;
	margin-bottom: 18px;
	color: #ffffff;
	font-size: clamp(48px, 5.5vw, 78px);
	line-height: 0.96;
	text-shadow: 0 18px 44px rgba(0,0,0,0.48);
}

.pelocal-hero p {
	max-width: 690px;
	margin-bottom: 28px;
	color: rgba(255,255,255,0.82);
	font-size: 18px;
}

.pelocal-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 26px;
}

.pelocal-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.pelocal-hero-pills span {
	display: inline-flex;
	padding: 9px 11px;
	color: rgba(255,255,255,0.88);
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,210,26,0.18);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pelocal-hero-card {
	padding: 30px;
	background: linear-gradient(145deg, rgba(12,12,12,0.96), rgba(50,8,10,0.92));
	border: 1px solid rgba(255,210,26,0.24);
	border-top: 4px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.42);
}

.pelocal-hero-card span {
	display: block;
	margin-bottom: 8px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pelocal-hero-card strong {
	display: block;
	margin-bottom: 14px;
	color: #ffffff;
	font-size: 34px;
	font-weight: 950;
	line-height: 1.05;
	letter-spacing: -0.04em;
}

.pelocal-hero-card p {
	margin: 0;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.62;
}


/* SHARED SECTIONS */

.pelocal-section {
	padding: 92px 0;
}

.pelocal-section-head {
	max-width: 940px;
	margin: 0 auto 44px;
	text-align: center;
}

.pelocal-section-head .pelocal-eyebrow {
	justify-content: center;
}

.pelocal-section-head .pelocal-eyebrow::after {
	display: inline-block;
	width: 30px;
	height: 2px;
	background: var(--pea-red);
	content: "";
}

.pelocal-section-head h2,
.pelocal-intro-copy h2,
.pelocal-why-copy h2 {
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 16px;
	font-size: clamp(34px, 3.2vw, 50px);
	line-height: 1.06;
}


/* INTRO */

.pelocal-intro {
	background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}

.pelocal-intro-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1fr);
	gap: 70px;
	align-items: center;
}

.pelocal-intro-copy h2 {
	text-align: left;
	margin-left: 0;
	margin-right: 0;
}

.pelocal-intro-copy p {
	max-width: 650px;
}

.pelocal-intro-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 28px;
}

.pelocal-image-card {
	position: relative;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.1);
	overflow: hidden;
}

.pelocal-image-card img {
	display: block;
	width: 100%;
	height: 520px;
	object-fit: cover;
	object-position: center center;
	transition: transform 0.4s ease;
}

.pelocal-image-card:hover img {
	transform: scale(1.035);
}

.pelocal-image-caption {
	padding: 22px 24px;
	background: #ffffff;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.pelocal-image-caption span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pelocal-image-caption strong {
	display: block;
	color: var(--pea-ink);
	font-size: 22px;
	font-weight: 950;
	line-height: 1.15;
}


/* STRIP */

.pelocal-county-strip {
	padding: 28px 0;
	background: #050505;
	border-top: 5px solid var(--pea-red);
	border-bottom: 5px solid var(--pea-red);
}

.pelocal-county-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

.pelocal-county-grid div {
	padding: 18px;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,210,26,0.18);
	transition: 0.22s ease;
}

.pelocal-county-grid div:hover {
	transform: translateY(-4px);
	background: rgba(255,210,26,0.1);
	border-color: rgba(255,210,26,0.36);
}

.pelocal-county-grid span {
	display: block;
	margin-bottom: 6px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pelocal-county-grid strong {
	display: block;
	color: #ffffff;
	font-size: 16px;
	font-weight: 950;
	line-height: 1.2;
}


/* SERVICE LINKS */

.pelocal-services-list {
	background: linear-gradient(180deg, #f7fbfd 0%, #edf6fa 100%);
}

.pelocal-service-layout {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	gap: 34px;
	align-items: stretch;
}

.pelocal-service-panel {
	padding: 30px;
	background:
		radial-gradient(circle at 10% 10%, rgba(255,210,26,0.16), transparent 35%),
		linear-gradient(145deg, #0b0b0b, #220608);
	border: 1px solid rgba(255,210,26,0.2);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.18);
}

.pelocal-service-panel span {
	display: block;
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pelocal-service-panel h3 {
	margin-bottom: 12px;
	color: #ffffff;
	font-size: 34px;
	line-height: 1.02;
}

.pelocal-service-panel p {
	margin-bottom: 22px;
	color: rgba(255,255,255,0.72);
	font-size: 14px;
	line-height: 1.66;
}

.pelocal-panel-bullets {
	display: grid;
	gap: 12px;
	margin: 22px 0 26px;
	padding: 0;
	list-style: none;
}

.pelocal-panel-bullets li {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.76);
	font-size: 14px;
	line-height: 1.6;
}

.pelocal-panel-bullets li::before {
	position: absolute;
	left: 0;
	top: 8px;
	width: 8px;
	height: 8px;
	background: var(--pea-yellow);
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}

.pelocal-service-panel a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 14px 18px;
	color: #050505 !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2));
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: 0.22s ease;
}

.pelocal-service-panel a:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 36px rgba(255,210,26,0.28);
}

.pelocal-service-content {
	display: grid;
	align-content: start;
	gap: 16px;
}

.pelocal-service-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.pelocal-service-grid a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 58px;
	padding: 16px 18px;
	color: var(--pea-ink) !important;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 30px rgba(0,0,0,0.055);
	font-size: 14px;
	font-weight: 950;
	transition: 0.22s ease;
}

.pelocal-service-grid a::after {
	content: "\2192";
	color: var(--pea-red);
}

.pelocal-service-grid a:hover {
	transform: translateY(-5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.pelocal-service-note {
	margin: 0;
	padding: 12px 14px;
	color: rgba(21,25,35,0.58) !important;
	background: rgba(255,255,255,0.62);
	border: 1px solid rgba(0,0,0,0.06);
	font-size: 12px !important;
	line-height: 1.5 !important;
}


/* PROCESS */

.pelocal-process {
	background: #ffffff;
}

.pelocal-process-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.pelocal-process-grid article {
	padding: 28px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	transition: 0.24s ease;
}

.pelocal-process-grid article:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 50px rgba(0,0,0,0.1);
}

.pelocal-process-grid article span {
	display: inline-flex;
	margin-bottom: 16px;
	padding: 8px 10px;
	background: rgba(255,210,26,0.28);
	color: var(--pea-red);
	font-size: 12px;
	font-weight: 950;
}

.pelocal-process-grid article h3 {
	margin-bottom: 10px;
	font-size: 23px;
	line-height: 1.15;
}

.pelocal-process-grid article p {
	margin: 0;
	font-size: 14px;
	line-height: 1.66;
}


/* WHY */

.pelocal-why {
	background: linear-gradient(180deg, #fff8e6 0%, #f7f3e8 100%);
}

.pelocal-why-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1fr);
	gap: 66px;
	align-items: center;
}

.pelocal-why-copy h2 {
	text-align: left;
	margin-left: 0;
	margin-right: 0;
}

.pelocal-why-copy p {
	max-width: 620px;
}

.pelocal-why-list {
	display: grid;
	gap: 14px;
}

.pelocal-why-list div {
	position: relative;
	padding: 24px 24px 24px 76px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 14px 32px rgba(0,0,0,0.055);
	transition: 0.22s ease;
}

.pelocal-why-list div:hover {
	transform: translateX(5px);
	border-color: rgba(237,28,36,0.2);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.pelocal-why-list span {
	position: absolute;
	left: 24px;
	top: 24px;
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pea-yellow);
	color: #050505;
	font-size: 12px;
	font-weight: 950;
}

.pelocal-why-list h3 {
	margin-bottom: 8px;
	font-size: 22px;
	line-height: 1.15;
}

.pelocal-why-list p {
	margin: 0;
	font-size: 14px;
	line-height: 1.62;
}


/* REVIEWS */

.pelocal-reviews {
	background: #f7fbfd;
}

.pelocal-reviews .pelocal-section-head {
	max-width: 900px;
}

.pelocal-reviews .pelocal-section-head h2 {
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
	font-size: clamp(34px, 3.2vw, 50px);
	line-height: 1.06;
}

.pelocal-review-score {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr) auto;
	align-items: center;
	gap: 26px;
	margin-bottom: 28px;
	padding: 24px 28px;
	background: #ffffff;
	border: 1px solid rgba(237,28,36,0.12);
	box-shadow: 0 18px 42px rgba(0,0,0,0.06);
}

.pelocal-review-score strong {
	display: block;
	color: var(--pea-ink);
	font-size: 48px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: -0.04em;
}

.pelocal-review-score span {
	display: block;
	margin-top: 6px;
	color: var(--pea-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pelocal-review-score p {
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
}

.pelocal-review-score a {
	color: var(--pea-red) !important;
	font-size: 13px;
	font-weight: 950;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.pelocal-review-score a::after {
	content: " \2192";
	color: var(--pea-yellow);
}

.pelocal-review-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.pelocal-review {
	padding: 24px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 16px 34px rgba(0,0,0,0.06);
	transition: 0.24s ease;
}

.pelocal-review:hover {
	transform: translateY(-6px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 24px 52px rgba(0,0,0,0.11);
}

.pelocal-stars {
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 16px;
	letter-spacing: 0.08em;
}

.pelocal-review p {
	margin-bottom: 18px;
	font-size: 14px;
	line-height: 1.68;
}

.pelocal-review strong {
	color: var(--pea-ink);
	font-size: 14px;
	font-weight: 950;
}

.pelocal-review-cta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.2), transparent 42%),
		#101010;
	border-color: rgba(255,210,26,0.22);
}

.pelocal-review-cta span {
	margin-bottom: 10px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pelocal-review-cta h3 {
	color: #ffffff;
	font-size: 25px;
	line-height: 1.12;
}

.pelocal-review-cta a {
	margin-top: 18px;
	color: #050505 !important;
	background: var(--pea-yellow);
	padding: 14px 16px;
	font-size: 12px;
	font-weight: 950;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}


/* FAQ + FORM */

.pelocal-faq-form {
	background: #ffffff;
}

.pelocal-faq-form-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(420px, 0.85fr);
	gap: 44px;
	align-items: start;
}

.pelocal-faq-side {
	display: grid;
	gap: 22px;
}

.pelocal-faq-list {
	display: grid;
	gap: 12px;
}

.pelocal-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 14px 34px rgba(0,0,0,0.055);
	transition: 0.22s ease;
	overflow: hidden;
}

.pelocal-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 20px 44px rgba(0,0,0,0.08);
}

.pelocal-faq-list summary {
	position: relative;
	padding: 22px 58px 22px 24px;
	color: var(--pea-ink);
	font-size: 17px;
	font-weight: 950;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.pelocal-faq-list summary::-webkit-details-marker {
	display: none;
}

.pelocal-faq-list summary::after {
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff5d8;
	color: var(--pea-red);
	font-size: 20px;
	font-weight: 950;
	line-height: 1;
	content: "+";
}

.pelocal-faq-list details[open] summary::after {
	content: "\2212";
	background: var(--pea-red);
	color: #ffffff;
}

.pelocal-faq-list details p {
	margin: 0;
	padding: 0 24px 24px;
	color: var(--pea-copy);
	font-size: 15px;
	line-height: 1.75;
}

.pelocal-faq-support-card {
	padding: 28px;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.18), transparent 42%),
		linear-gradient(145deg, #0b0b0b, #220608);
	border: 1px solid rgba(255,210,26,0.22);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 64px rgba(0,0,0,0.16);
}

.pelocal-faq-support-card > span {
	display: block;
	margin-bottom: 12px;
	color: var(--pea-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pelocal-faq-support-card h3 {
	margin-bottom: 12px;
	color: #ffffff;
	font-size: 30px;
	line-height: 1.08;
}

.pelocal-faq-support-card p {
	margin-bottom: 20px;
	color: rgba(255,255,255,0.74);
	font-size: 14px;
	line-height: 1.66;
}

.pelocal-faq-support-points {
	display: grid;
	gap: 10px;
}

.pelocal-faq-support-points span {
	position: relative;
	padding-left: 24px;
	color: rgba(255,255,255,0.88);
	font-size: 13px;
	font-weight: 900;
	line-height: 1.45;
}

.pelocal-faq-support-points span::before {
	position: absolute;
	left: 0;
	top: 7px;
	width: 8px;
	height: 8px;
	background: var(--pea-yellow);
	border-radius: 999px;
	box-shadow: 0 0 0 4px rgba(255,210,26,0.16);
	content: "";
}

.pelocal-form-card {
	position: sticky;
	top: 110px;
	padding: 34px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	border-top: 5px solid var(--pea-red);
	box-shadow: 0 24px 70px rgba(0,0,0,0.12);
}

.pelocal-form-card > span {
	display: block;
	margin-bottom: 14px;
	color: var(--pea-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pelocal-form-card h3 {
	margin-bottom: 10px;
	font-size: 30px;
	line-height: 1.08;
}

.pelocal-form-card > p {
	margin-bottom: 22px;
	font-size: 15px;
	line-height: 1.7;
}

.pelocal-fluent-form {
	margin-top: 18px;
}

.pelocal-form-card .fluentform,
.pelocal-form-card .fluentform form,
.pelocal-form-card form.frm-fluent-form,
.pelocal-form-card .ff-el-group,
.pelocal-form-card .ff-el-input--content,
.pelocal-form-card .ff-el-form-control,
.pelocal-form-card input,
.pelocal-form-card select,
.pelocal-form-card textarea {
	width: 100% !important;
	max-width: 100% !important;
}

.pelocal-form-card .ff-el-group {
	margin-bottom: 18px !important;
}

.pelocal-form-card .ff-el-input--content {
	display: block !important;
}

.pelocal-form-card .ff-t-cell,
.pelocal-form-card .ff-el-group {
	flex: 0 0 100% !important;
	max-width: 100% !important;
}

.pelocal-form-card .ff-t-container,
.pelocal-form-card .ff-el-input--content {
	gap: 0 !important;
}

.pelocal-form-card .ff-el-input--label,
.pelocal-form-card .ff-el-form-check-label {
	margin-bottom: 7px !important;
	color: #151923 !important;
	font-size: 14px !important;
	font-weight: 950 !important;
	line-height: 1.25 !important;
}

.pelocal-form-card .ff-el-form-control {
	min-height: 52px !important;
	padding: 13px 15px !important;
	background: #f8fafb !important;
	border: 1px solid rgba(0,0,0,0.14) !important;
	color: #151923 !important;
	font-size: 15px !important;
	box-shadow: none !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.pelocal-form-card textarea.ff-el-form-control {
	min-height: 140px !important;
	resize: vertical;
}

.pelocal-form-card .ff-el-form-control:focus {
	background: #ffffff !important;
	border-color: var(--pea-red) !important;
	box-shadow: 0 0 0 4px rgba(237,28,36,0.08) !important;
	outline: none !important;
}

.pelocal-form-card .ff_submit_btn_wrapper {
	width: 100% !important;
}

.pelocal-form-card .ff-btn-submit {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 56px !important;
	background: linear-gradient(135deg, var(--pea-yellow), var(--pea-yellow-2)) !important;
	color: #050505 !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: 14px !important;
	font-weight: 950 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	box-shadow: 0 16px 30px rgba(255,210,26,0.22) !important;
	transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.pelocal-form-card .ff-btn-submit:hover {
	transform: translateY(-2px);
	background: linear-gradient(135deg, var(--pea-yellow-2), var(--pea-yellow)) !important;
	box-shadow: 0 22px 42px rgba(255,210,26,0.3) !important;
}

.pelocal-form-card .ff-el-form-control::placeholder {
	color: rgba(21,25,35,0.42) !important;
}

.pelocal-form-proof {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.pelocal-form-proof .pelocal-stars {
	margin: 0;
}

.pelocal-form-proof strong {
	color: var(--pea-ink);
	font-size: 14px;
	font-weight: 950;
}


/* RESPONSIVE */

@media (max-width: 1080px) {
	.pelocal-hero-grid,
	.pelocal-intro-grid,
	.pelocal-service-layout,
	.pelocal-why-grid,
	.pelocal-faq-form-grid {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.pelocal-hero-card,
	.pelocal-service-panel {
		max-width: 460px;
	}

	.pelocal-county-grid,
	.pelocal-process-grid,
	.pelocal-review-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pelocal-review-score {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.pelocal-form-card {
		position: relative;
		top: auto;
	}
}

@media (max-width: 767px) {
	.pelocal-shell {
		width: min(100% - 28px, 520px);
	}

	.pelocal-hero {
		padding: 76px 0 60px;
	}

	.pelocal-hero h1 {
		font-size: 42px;
		line-height: 1;
	}

	.pelocal-hero p {
		font-size: 16px;
	}

	.pelocal-hero-actions,
	.pelocal-intro-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.pelocal-btn {
		width: 100%;
	}

	.pelocal-section {
		padding: 66px 0;
	}

	.pelocal-section-head h2,
	.pelocal-intro-copy h2,
	.pelocal-why-copy h2 {
		font-size: 34px;
		line-height: 1.05;
	}

	.pelocal-county-grid,
	.pelocal-service-grid,
	.pelocal-process-grid,
	.pelocal-review-grid {
		grid-template-columns: 1fr;
	}

	.pelocal-image-card img {
		height: 380px;
	}

	.pelocal-service-panel,
	.pelocal-form-card,
	.pelocal-review-score,
	.pelocal-faq-support-card {
		padding: 22px;
	}

	.pelocal-faq-list summary {
		font-size: 16px;
		padding: 20px 54px 20px 20px;
	}

	.pelocal-faq-list details p {
		padding: 0 20px 22px;
	}

	.pelocal-form-card h3,
	.pelocal-faq-support-card h3 {
		font-size: 26px;
	}
}

/* =========================================================
   LOCAL PAGE HEADING WIDTH POLISH
   Prevent one-word final lines on desktop
   ========================================================= */

@media (min-width: 981px) {
	.pelocal-process .pelocal-section-head,
	.pelocal-why .pelocal-section-head,
	.pelocal-services-list .pelocal-section-head,
	.pelocal-faq-form .pelocal-section-head {
		max-width: 1120px;
	}

	.pelocal-process .pelocal-section-head h2,
	.pelocal-why .pelocal-section-head h2,
	.pelocal-services-list .pelocal-section-head h2,
	.pelocal-faq-form .pelocal-section-head h2 {
		max-width: 1080px;
	}

	.pelocal-process .pelocal-section-head p,
	.pelocal-why .pelocal-section-head p,
	.pelocal-services-list .pelocal-section-head p,
	.pelocal-faq-form .pelocal-section-head p {
		max-width: 940px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* =========================================================
   PIPELINE FOOTER MOBILE ALIGNMENT POLISH
   ========================================================= */

@media (max-width: 767px) {

	.pefooter-top {
		text-align: center;
	}

	.pefooter-brand {
		text-align: center;
	}

	.pefooter-logo {
		justify-content: center;
		margin-left: auto;
		margin-right: auto;
	}

	.pefooter-logo img {
		margin-left: auto;
		margin-right: auto;
	}

	.pefooter-brand p {
		max-width: 330px;
		margin-left: auto;
		margin-right: auto;
	}

	.pefooter-brand-actions {
		align-items: center;
		justify-content: center;
	}

	.pefooter-brand-actions a {
		width: 100%;
		max-width: 320px;
	}

	.pefooter-badges {
		text-align: center;
	}

	.pefooter-badges span {
		justify-content: center;
	}

	.pefooter-badges span::before {
		margin-right: 8px;
	}

	.pefooter-badges-grid {
		justify-content: center;
	}

	.pefooter-badges-grid img {
		width: 98px;
		height: 98px;
	}

	.pefooter-links {
		text-align: center;
	}

	.pefooter-links h3 {
		text-align: center;
	}

	.pefooter-links h3::after {
		left: 50%;
		transform: translateX(-50%);
	}

	.pefooter-links ul {
		display: grid;
		justify-items: center;
	}

	.pefooter-links li {
		width: 100%;
		max-width: 330px;
		justify-content: center;
		text-align: center;
	}

	.pefooter-links a {
		display: inline-flex;
		justify-content: center;
		text-align: center;
	}

	.pefooter-links a::before {
		position: relative;
		top: auto;
		left: auto;
		transform: none;
		margin-right: 9px;
		flex: 0 0 auto;
	}

	.pefooter-areas {
		text-align: center;
	}

	.pefooter-areas-intro {
		text-align: center;
	}

	.pefooter-areas-intro .pefooter-kicker,
	.pefooter-areas-intro span {
		justify-content: center;
	}

	.pefooter-areas-intro p {
		margin-left: auto;
		margin-right: auto;
	}

	.pefooter-area-tags {
		justify-content: center;
	}

	.pefooter-area-links a {
		text-align: left;
	}

	.pefooter-bottom {
		text-align: center;
		justify-content: center;
		gap: 12px;
	}

	.pefooter-bottom-links {
		justify-content: center;
	}
}

/* =========================================================
   FOOTER MOBILE FIX — BADGES + SERVICE LINK ALIGNMENT
   ========================================================= */

@media (max-width: 767px) {

	/* Badge sizing / spacing */
	.pefooter-badges-grid {
		display: grid !important;
		grid-template-columns: repeat(2, 82px) !important;
		justify-content: center !important;
		gap: 12px !important;
		max-width: 190px !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.pefooter-badges-grid img {
		width: 82px !important;
		height: 82px !important;
		padding: 7px !important;
		object-fit: contain !important;
	}

	/* Keep service columns centered as blocks */
	.pefooter-links {
		text-align: center !important;
	}

	.pefooter-links h2,
	.pefooter-links h3 {
		text-align: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.pefooter-links h2::after,
	.pefooter-links h3::after {
		left: 50% !important;
		transform: translateX(-50%) !important;
	}

	/* Fix link bullets and stop the stair-step look */
	.pefooter-links ul {
		display: grid !important;
		justify-items: center !important;
		gap: 13px !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding-left: 0 !important;
	}

	.pefooter-links li {
		position: relative !important;
		display: block !important;
		width: 100% !important;
		max-width: 300px !important;
		padding-left: 18px !important;
		text-align: left !important;
		justify-content: flex-start !important;
	}

	.pefooter-links a {
		position: relative !important;
		display: inline !important;
		text-align: left !important;
		justify-content: flex-start !important;
	}

	.pefooter-links a::before {
		position: absolute !important;
		left: -18px !important;
		top: 0.58em !important;
		transform: none !important;
		margin: 0 !important;
		width: 7px !important;
		height: 7px !important;
	}

	/* Give the two service columns better breathing room */
	.pefooter-col + .pefooter-col {
		margin-top: 26px !important;
	}
}

/* =========================================================
   FOOTER MOBILE BADGE CENTERING FIX
   ========================================================= */

@media (max-width: 767px) {
	.pefooter-badges {
		width: 100% !important;
		text-align: center !important;
	}

	.pefooter-badges > div {
		display: grid !important;
		grid-template-columns: repeat(2, 92px) !important;
		justify-content: center !important;
		justify-items: center !important;
		align-items: center !important;
		gap: 10px !important;
		width: fit-content !important;
		max-width: 194px !important;
		margin: 14px auto 0 !important;
	}

	.pefooter-badges > div img {
		display: block !important;
		width: 92px !important;
		height: 92px !important;
		max-width: 92px !important;
		aspect-ratio: 1 / 1 !important;
		object-fit: contain !important;
		margin: 0 !important;
	}
}

/* =========================================================
   PORTFOLIO CTA TEXT POLISH
   Change "Read More" feel to project-focused CTA
   ========================================================= */

.peportfolio-post-widget .post-more {
	font-size: 0 !important;
}

.peportfolio-post-widget .post-more::before {
	content: "View Project";
	font-size: 12px !important;
	font-weight: 950 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
}

.peportfolio-post-widget .post-more::after {
	margin-left: 7px;
	color: #ffd21a;
	font-size: 12px;
	content: "\2192";
}

/* Reviews heading width polish */
@media (min-width: 981px) {
	.pelocal-reviews .pelocal-section-head {
		max-width: 1120px !important;
	}

	.pelocal-reviews .pelocal-section-head h2 {
		max-width: 1040px !important;
	}
}

/* =========================================================
   PIPELINE EXCAVATION - INDIVIDUAL SERVICE PAGE TEMPLATE
   Reusable prefix: .pesvc
========================================================= */

.pesvc {
	--pe-red: #ed1c24;
	--pe-yellow: #ffd21a;
	--pe-black: #050505;
	--pe-ink: #171b26;
	--pe-muted: #6f7a89;
	--pe-soft: #f4fafc;
	--pe-cream: #fff8e8;
	--pe-border: rgba(0,0,0,0.1);
	--pe-white: #ffffff;
	background: #ffffff;
	color: var(--pe-ink);
	font-family: inherit;
	overflow: hidden;
}

.pesvc *,
.pesvc *::before,
.pesvc *::after {
	box-sizing: border-box;
}

.pesvc a {
	text-decoration: none !important;
}

.pesvc img {
	max-width: 100%;
	height: auto;
}

.pesvc-shell {
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
}

.pesvc-section {
	padding: 92px 0;
}

.pesvc-eyebrow,
.pesvc-kicker {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
	color: var(--pe-red);
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pesvc-eyebrow::before {
	display: inline-block;
	width: 34px;
	height: 2px;
	background: var(--pe-red);
	content: "";
}

.pesvc h1,
.pesvc h2,
.pesvc h3 {
	margin: 0;
	color: var(--pe-ink);
	font-weight: 950;
	letter-spacing: -0.045em;
}

.pesvc h1 {
	max-width: 850px;
	font-size: clamp(46px, 5vw, 76px);
	line-height: 0.96;
}

.pesvc h2 {
	font-size: clamp(34px, 3.15vw, 50px);
	line-height: 1.04;
}

.pesvc h3 {
	font-size: 23px;
	line-height: 1.12;
}

.pesvc p {
	margin: 0;
	color: var(--pe-muted);
	font-size: 16px;
	line-height: 1.75;
}

.pesvc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 16px 24px;
	border: 1px solid transparent;
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	transition: 0.24s ease;
}

.pesvc-btn-primary {
	background: linear-gradient(135deg, var(--pe-yellow), #ffc64d);
	color: #050505 !important;
	box-shadow: 0 18px 36px rgba(255,210,26,0.2);
}

.pesvc-btn-secondary {
	background: rgba(255,255,255,0.08);
	border-color: rgba(255,255,255,0.2);
	color: #ffffff !important;
}

.pesvc-btn:hover {
	transform: translateY(-3px);
}


/* HERO */

.pesvc-hero {
	position: relative;
	min-height: 760px;
	display: flex;
	align-items: center;
	background: #050505;
	overflow: hidden;
	border-bottom: 5px solid var(--pe-red);
}

.pesvc-hero-bg {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,0.94) 0%, rgba(0,0,0,0.78) 42%, rgba(0,0,0,0.35) 74%, rgba(0,0,0,0.7) 100%),
		url("https://pipelineexcavation.com/wp-content/uploads/pipeline-service-area-bg-final.png") center center / cover no-repeat;
	transform: scale(1.02);
}

.pesvc-hero::after {
	position: absolute;
	inset: auto 0 0;
	height: 180px;
	background: linear-gradient(180deg, transparent, rgba(0,0,0,0.88));
	content: "";
	pointer-events: none;
}

.pesvc-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 42px;
	align-items: end;
	padding: 150px 0 84px;
}

.pesvc-hero-copy {
	max-width: 820px;
}

.pesvc-hero .pesvc-kicker {
	margin-bottom: 10px;
	color: rgba(255,255,255,0.68);
	font-size: 11px;
}

.pesvc-hero .pesvc-kicker::before {
	background: var(--pe-yellow);
}

.pesvc-hero h1 {
	color: #ffffff;
}

.pesvc-hero h1 strong {
	color: var(--pe-yellow);
}

.pesvc-hero p {
	max-width: 760px;
	margin-top: 22px;
	color: rgba(255,255,255,0.78);
}

.pesvc-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 30px;
}

.pesvc-hero-points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 32px;
	max-width: 820px;
}

.pesvc-hero-points span {
	min-height: 78px;
	padding: 18px;
	background: rgba(255,255,255,0.07);
	border: 1px solid rgba(255,210,26,0.18);
	color: rgba(255,255,255,0.86);
	font-size: 13px;
	font-weight: 850;
	line-height: 1.35;
}

.pesvc-hero-card {
	padding: 30px;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.28), transparent 44%),
		rgba(10,10,10,0.88);
	border: 1px solid rgba(255,210,26,0.28);
	border-top: 4px solid var(--pe-red);
	box-shadow: 0 28px 70px rgba(0,0,0,0.35);
	backdrop-filter: blur(8px);
}

.pesvc-hero-card span {
	display: block;
	margin-bottom: 12px;
	color: var(--pe-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pesvc-hero-card strong {
	display: block;
	color: #ffffff;
	font-size: 26px;
	font-weight: 950;
	line-height: 1.1;
	letter-spacing: -0.04em;
}

.pesvc-hero-card p {
	margin-top: 16px;
	font-size: 14px;
	line-height: 1.65;
}


/* MAIN LAYOUT */

.pesvc-main {
	background: linear-gradient(180deg, #ffffff 0%, #f3fbff 46%, #ffffff 100%);
}

.pesvc-main-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 28px;
	align-items: start;
}

.pesvc-content {
	display: grid;
	gap: 28px;
}

.pesvc-card {
	position: relative;
	background: #ffffff;
	border: 1px solid var(--pe-border);
	box-shadow: 0 18px 48px rgba(0,0,0,0.07);
	padding: 38px;
	overflow: hidden;
}

.pesvc-card::before {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--pe-red);
	content: "";
}

.pesvc-card h2 {
	margin-bottom: 18px;
}

.pesvc-card p + p {
	margin-top: 16px;
}

.pesvc-mini-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 28px;
}

.pesvc-mini-grid div {
	padding: 20px;
	background: #fffdf7;
	border: 1px solid rgba(255,210,26,0.35);
}

.pesvc-mini-grid span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin-bottom: 14px;
	background: var(--pe-yellow);
	color: var(--pe-red);
	font-size: 11px;
	font-weight: 950;
}

.pesvc-mini-grid strong {
	display: block;
	margin-bottom: 8px;
	color: var(--pe-ink);
	font-size: 16px;
	font-weight: 950;
}

.pesvc-mini-grid p {
	font-size: 14px;
	line-height: 1.62;
}

.pesvc-split {
	display: grid;
	grid-template-columns: 0.92fr 1.08fr;
	gap: 28px;
	align-items: stretch;
}

.pesvc-image-card {
	margin: 0;
	background: #ffffff;
	border: 1px solid var(--pe-border);
	box-shadow: 0 18px 48px rgba(0,0,0,0.08);
	overflow: hidden;
}

.pesvc-image-card img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 520px;
	object-fit: cover;
}

.pesvc-image-card figcaption {
	padding: 24px;
	border-top: 4px solid var(--pe-red);
}

.pesvc-image-card figcaption span {
	display: block;
	margin-bottom: 8px;
	color: var(--pe-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pesvc-image-card figcaption strong {
	display: block;
	color: var(--pe-ink);
	font-size: 23px;
	font-weight: 950;
	line-height: 1.15;
	letter-spacing: -0.04em;
}

.pesvc-highlight-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.pesvc-benefit-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 24px;
}

.pesvc-benefit-grid div {
	position: relative;
	padding: 18px 18px 18px 42px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 12px 28px rgba(0,0,0,0.045);
}

.pesvc-benefit-grid div::before {
	position: absolute;
	left: 18px;
	top: 25px;
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--pe-yellow);
	box-shadow: 0 0 0 4px rgba(255,210,26,0.2);
	content: "";
}

.pesvc-benefit-grid strong {
	display: block;
	margin-bottom: 6px;
	color: var(--pe-ink);
	font-size: 15px;
	font-weight: 950;
}

.pesvc-benefit-grid p {
	font-size: 14px;
	line-height: 1.6;
}

.pesvc-process-list {
	display: grid;
	gap: 14px;
	margin-top: 26px;
}

.pesvc-process-list div {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr);
	column-gap: 18px;
	padding: 22px;
	background: #fffdf7;
	border: 1px solid rgba(255,210,26,0.32);
}

.pesvc-process-list span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	background: var(--pe-yellow);
	color: var(--pe-red);
	font-size: 12px;
	font-weight: 950;
}

.pesvc-process-list h3 {
	margin-bottom: 7px;
	font-size: 22px;
}

.pesvc-process-list p {
	font-size: 14px;
	line-height: 1.65;
}

.pesvc-dark-callout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 240px;
	gap: 24px;
	align-items: center;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.26), transparent 45%),
		#101010;
	border-color: rgba(255,210,26,0.22);
}

.pesvc-dark-callout h2,
.pesvc-dark-callout p {
	color: #ffffff;
}

.pesvc-dark-callout p {
	color: rgba(255,255,255,0.75);
}

.pesvc-dark-callout a {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	min-height: 54px;
	padding: 15px 18px;
	background: var(--pe-yellow);
	color: #050505 !important;
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}


/* MAP */

.pesvc-map-section {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 28px;
	align-items: center;
	background: linear-gradient(135deg, #ffffff 0%, #fff8e8 100%);
}

.pesvc-map-copy h2 {
	margin-bottom: 16px;
}

.pesvc-area-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

.pesvc-area-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 18px;
	background: #101010;
	color: #ffffff !important;
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pesvc-area-links a:first-child {
	background: var(--pe-yellow);
	color: #050505 !important;
}

.pesvc-map-card {
	margin: 0;
	padding: 16px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 18px 48px rgba(0,0,0,0.08);
}

.pesvc-map-card img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 11;
	object-fit: cover;
}


/* SIDEBAR */

.pesvc-sidebar {
	position: sticky;
	top: 120px;
	display: grid;
	gap: 18px;
}

.pesvc-side-card {
	padding: 24px;
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.1);
	box-shadow: 0 16px 40px rgba(0,0,0,0.07);
}

.pesvc-side-card span {
	display: block;
	margin-bottom: 12px;
	color: var(--pe-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pesvc-side-card h3 {
	margin-bottom: 12px;
	font-size: 25px;
}

.pesvc-side-card p {
	font-size: 14px;
	line-height: 1.62;
}

.pesvc-side-cta {
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.25), transparent 42%),
		#101010;
	border-top: 4px solid var(--pe-red);
	border-color: rgba(255,210,26,0.2);
}

.pesvc-side-cta h3,
.pesvc-side-cta p {
	color: #ffffff;
}

.pesvc-side-cta p {
	color: rgba(255,255,255,0.72);
}

.pesvc-side-cta a {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 12px;
	min-height: 48px;
	padding: 13px 16px;
	background: var(--pe-yellow);
	color: #050505 !important;
	font-size: 12px;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pesvc-side-cta a:last-child {
	background: transparent;
	border: 1px solid rgba(255,210,26,0.35);
	color: #ffffff !important;
}

.pesvc-side-list {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pesvc-side-list li {
	position: relative;
	padding-left: 18px;
	color: var(--pe-ink);
	font-size: 14px;
	font-weight: 850;
	line-height: 1.45;
}

.pesvc-side-list li::before {
	position: absolute;
	left: 0;
	top: 8px;
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: var(--pe-yellow);
	content: "";
}

.pesvc-side-links {
	display: grid;
	gap: 8px;
}

.pesvc-side-links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 42px;
	padding: 11px 12px;
	background: #fbfbfb;
	border: 1px solid rgba(0,0,0,0.08);
	color: var(--pe-ink) !important;
	font-size: 13px;
	font-weight: 900;
	transition: 0.22s ease;
}

.pesvc-side-links a::after {
	content: "→";
	color: var(--pe-red);
}

.pesvc-side-links a:hover {
	background: #101010;
	color: #ffffff !important;
	border-color: #101010;
	transform: translateX(4px);
}


/* FAQ */

.pesvc-faq > p {
	max-width: 760px;
	margin-bottom: 24px;
}

.pesvc-faq-list {
	display: grid;
	gap: 10px;
}

.pesvc-faq-list details {
	background: #ffffff;
	border: 1px solid rgba(0,0,0,0.09);
	box-shadow: 0 10px 24px rgba(0,0,0,0.045);
	transition: 0.24s ease;
}

.pesvc-faq-list details:hover {
	border-color: rgba(237,28,36,0.16);
	transform: translateY(-2px);
}

.pesvc-faq-list summary {
	position: relative;
	cursor: pointer;
	padding: 20px 58px 20px 22px;
	color: var(--pe-ink);
	font-size: 16px;
	font-weight: 950;
	list-style: none;
}

.pesvc-faq-list summary::-webkit-details-marker {
	display: none;
}

.pesvc-faq-list summary::after {
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	background: #fff3c2;
	color: var(--pe-red);
	content: "+";
	font-size: 20px;
	font-weight: 950;
}

.pesvc-faq-list details[open] summary::after {
	content: "−";
}

.pesvc-faq-list details p {
	padding: 0 22px 22px;
	font-size: 14px;
	line-height: 1.68;
}


/* PRE CTA + FORM */

.pesvc-precta {
	padding: 92px 0;
	background:
		linear-gradient(135deg, rgba(0,0,0,0.94), rgba(0,0,0,0.88)),
		repeating-linear-gradient(135deg, rgba(255,255,255,0.04) 0, rgba(255,255,255,0.04) 1px, transparent 1px, transparent 9px);
	border-top: 5px solid var(--pe-red);
}

.pesvc-precta-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(420px, 1.05fr);
	gap: 36px;
	align-items: start;
}

.pesvc-precta-info {
	padding: 34px;
	border: 1px solid rgba(255,210,26,0.2);
	background:
		radial-gradient(circle at top left, rgba(255,210,26,0.13), transparent 38%),
		rgba(255,255,255,0.04);
}

.pesvc-precta-info h2 {
	color: #ffffff;
}

.pesvc-precta-info p {
	margin-top: 16px;
	color: rgba(255,255,255,0.76);
}

.pesvc-contact-lines {
	display: grid;
	gap: 10px;
	margin-top: 26px;
}

.pesvc-contact-lines div {
	padding: 16px;
	background: rgba(255,255,255,0.05);
	border: 1px solid rgba(255,255,255,0.1);
}

.pesvc-contact-lines span {
	display: block;
	margin-bottom: 4px;
	color: var(--pe-yellow);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pesvc-contact-lines strong,
.pesvc-contact-lines a {
	color: #ffffff !important;
	font-size: 17px;
	font-weight: 950;
}

.pesvc-form-card {
	padding: 34px;
	background: #ffffff;
	border-top: 5px solid var(--pe-red);
	box-shadow: 0 28px 70px rgba(0,0,0,0.28);
}

.pesvc-form-card > span {
	display: block;
	margin-bottom: 12px;
	color: var(--pe-red);
	font-size: 11px;
	font-weight: 950;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pesvc-form-card h3 {
	margin-bottom: 12px;
	font-size: 32px;
}

.pesvc-form-card p {
	margin-bottom: 22px;
}

.pesvc-fluent-form {
	width: 100%;
}

.pesvc-fluent-form form,
.pesvc-fluent-form .fluentform,
.pesvc-fluent-form .ff-el-group,
.pesvc-fluent-form .ff-el-input--content {
	width: 100% !important;
	max-width: 100% !important;
}

.pesvc-fluent-form input,
.pesvc-fluent-form select,
.pesvc-fluent-form textarea {
	width: 100% !important;
	max-width: 100% !important;
	min-height: 48px;
	border: 1px solid rgba(0,0,0,0.16) !important;
	background: #f7f9fa !important;
	color: var(--pe-ink) !important;
	font-size: 15px !important;
	box-shadow: none !important;
}

.pesvc-fluent-form textarea {
	min-height: 150px;
}

.pesvc-fluent-form label {
	color: var(--pe-ink) !important;
	font-size: 13px !important;
	font-weight: 850 !important;
}

.pesvc-fluent-form button,
.pesvc-fluent-form input[type="submit"] {
	width: 100% !important;
	min-height: 56px !important;
	background: linear-gradient(135deg, var(--pe-yellow), #ffc64d) !important;
	border: 0 !important;
	color: #050505 !important;
	font-size: 13px !important;
	font-weight: 950 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	box-shadow: 0 18px 34px rgba(255,210,26,0.22) !important;
	transition: 0.24s ease !important;
}

.pesvc-fluent-form button:hover,
.pesvc-fluent-form input[type="submit"]:hover {
	transform: translateY(-2px);
}

.pesvc-form-proof {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 26px;
	padding-top: 22px;
	border-top: 1px solid rgba(0,0,0,0.1);
}

.pesvc-stars {
	color: var(--pe-yellow);
	font-size: 18px;
	letter-spacing: 0.08em;
}

.pesvc-form-proof strong {
	color: var(--pe-ink);
	font-size: 15px;
	font-weight: 950;
}


/* RESPONSIVE */

@media (max-width: 1100px) {
	.pesvc-main-grid,
	.pesvc-precta-grid {
		grid-template-columns: 1fr;
	}

	.pesvc-sidebar {
		position: relative;
		top: auto;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pesvc-side-cta {
		grid-column: span 2;
	}
}

@media (max-width: 900px) {
	.pesvc-hero {
		min-height: auto;
	}

	.pesvc-hero-grid {
		grid-template-columns: 1fr;
		padding: 130px 0 64px;
	}

	.pesvc-hero-card {
		max-width: 540px;
	}

	.pesvc-hero-points,
	.pesvc-mini-grid,
	.pesvc-benefit-grid,
	.pesvc-split,
	.pesvc-map-section {
		grid-template-columns: 1fr;
	}

	.pesvc-image-card img {
		min-height: 420px;
	}

	.pesvc-dark-callout {
		grid-template-columns: 1fr;
	}

	.pesvc-sidebar {
		grid-template-columns: 1fr;
	}

	.pesvc-side-cta {
		grid-column: auto;
	}
}

@media (max-width: 767px) {
	.pesvc-shell {
		width: min(100% - 28px, 1180px);
	}

	.pesvc-section,
	.pesvc-precta {
		padding: 66px 0;
	}

	.pesvc-hero-grid {
		padding: 110px 0 54px;
	}

	.pesvc h1 {
		font-size: clamp(39px, 12vw, 54px);
	}

	.pesvc h2 {
		font-size: clamp(30px, 9vw, 40px);
	}

	.pesvc-hero-actions {
		display: grid;
	}

	.pesvc-hero-points {
		gap: 10px;
	}

	.pesvc-card,
	.pesvc-form-card,
	.pesvc-precta-info {
		padding: 26px;
	}

	.pesvc-process-list div {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.pesvc-image-card img {
		min-height: 360px;
	}

	.pesvc-precta-grid {
		grid-template-columns: 1fr;
	}

	.pesvc-form-card h3 {
		font-size: 28px;
	}
}

@media (max-width: 480px) {
	.pesvc-card,
	.pesvc-form-card,
	.pesvc-precta-info,
	.pesvc-side-card {
		padding: 22px;
	}

	.pesvc-hero-card {
		padding: 24px;
	}

	.pesvc-mini-grid div,
	.pesvc-benefit-grid div {
		padding: 18px;
	}

	.pesvc-benefit-grid div {
		padding-left: 38px;
	}
}

/* =========================================================
   PIPELINE SERVICE PAGE PATCH
   Fix hero chips, process rows, and sticky sidebar
========================================================= */

/* Allow sticky sidebar to actually work */
.pesvc,
.pesvc-main,
.pesvc-shell,
.pesvc-main-grid {
	overflow: visible !important;
}

.pesvc-main-grid {
	align-items: start !important;
}

.pesvc-sidebar {
	position: sticky !important;
	top: 115px !important;
	align-self: start !important;
	height: fit-content !important;
	z-index: 5;
}


/* Fix hero chips spacing */
.pesvc-hero-points {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 14px !important;
	max-width: 820px !important;
	width: 100% !important;
	margin-top: 30px !important;
}

.pesvc-hero-points span {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	min-height: 76px !important;
	padding: 18px 20px !important;
	line-height: 1.35 !important;
	white-space: normal !important;
}


/* Fix process section layout */
.pesvc-process-list div {
	display: grid !important;
	grid-template-columns: 56px minmax(0, 1fr) !important;
	grid-template-rows: auto auto !important;
	column-gap: 20px !important;
	row-gap: 6px !important;
	align-items: start !important;
	padding: 24px !important;
	min-height: auto !important;
}

.pesvc-process-list div > span {
	grid-column: 1 !important;
	grid-row: 1 / span 2 !important;
	width: 46px !important;
	height: 46px !important;
	margin: 0 !important;
}

.pesvc-process-list div > h3 {
	grid-column: 2 !important;
	grid-row: 1 !important;
	margin: 0 0 6px !important;
	width: auto !important;
	max-width: none !important;
}

.pesvc-process-list div > p {
	grid-column: 2 !important;
	grid-row: 2 !important;
	width: auto !important;
	max-width: 100% !important;
	margin: 0 !important;
	line-height: 1.65 !important;
}


/* Keep sidebar normal on tablet/mobile */
@media (max-width: 1100px) {
	.pesvc-sidebar {
		position: relative !important;
		top: auto !important;
	}
}

@media (max-width: 767px) {
	.pesvc-hero-points {
		grid-template-columns: 1fr !important;
	}

	.pesvc-process-list div {
		grid-template-columns: 1fr !important;
	}

	.pesvc-process-list div > span,
	.pesvc-process-list div > h3,
	.pesvc-process-list div > p {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
}

/* =========================================================
   PIPELINE SERVICE PAGE PATCH
   Align benefit bullets with card titles
========================================================= */

.pesvc-benefit-grid div {
	display: grid !important;
	grid-template-columns: 18px minmax(0, 1fr) !important;
	grid-template-rows: auto auto !important;
	column-gap: 14px !important;
	align-items: start !important;
	padding: 24px 22px !important;
}

.pesvc-benefit-grid div::before {
	position: static !important;
	grid-column: 1 !important;
	grid-row: 1 !important;
	display: block !important;
	width: 9px !important;
	height: 9px !important;
	margin-top: 7px !important;
	border-radius: 999px !important;
	background: var(--pe-yellow) !important;
	box-shadow: 0 0 0 5px rgba(255,210,26,0.2) !important;
	content: "" !important;
}

.pesvc-benefit-grid div strong {
	grid-column: 2 !important;
	grid-row: 1 !important;
	margin: 0 0 8px !important;
	line-height: 1.25 !important;
}

.pesvc-benefit-grid div p {
	grid-column: 2 !important;
	grid-row: 2 !important;
	margin: 0 !important;
}

/* =========================================================
   PIPELINE SERVICE PAGE PATCH
   Make service hero chips match local page hero chips
========================================================= */

.pesvc-hero-points {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 10px !important;
	width: 100% !important;
	max-width: 820px !important;
	margin-top: 28px !important;
}

.pesvc-hero-points span {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	min-width: 0 !important;
	min-height: 52px !important;
	padding: 15px 20px !important;
	color: rgba(255,255,255,0.88) !important;
	background: rgba(255,255,255,0.08) !important;
	border: 1px solid rgba(255,210,26,0.22) !important;
	font-size: 12px !important;
	font-weight: 900 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
	box-shadow: none !important;
}

.pesvc-hero-points span:hover {
	background: rgba(255,210,26,0.16) !important;
	border-color: rgba(255,210,26,0.48) !important;
	transform: translateY(-2px);
}

/* Mobile: keep them readable and stacked only when needed */
@media (max-width: 767px) {
	.pesvc-hero-points {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 9px !important;
	}

	.pesvc-hero-points span {
		width: 100% !important;
		white-space: normal !important;
		text-align: center !important;
		padding: 14px 12px !important;
	}
}

@media (max-width: 430px) {
	.pesvc-hero-points {
		grid-template-columns: 1fr !important;
	}
}

/* =========================================================
   PIPELINE SERVICE PAGE PATCH
   Sticky sidebar top spacing
========================================================= */

.pesvc-sidebar {
	position: sticky !important;
	top: 205px !important;
	align-self: start !important;
	height: fit-content !important;
	z-index: 5;
}

/* Slightly tighter on smaller desktop/tablet */
@media (max-width: 1200px) {
	.pesvc-sidebar {
		top: 135px !important;
	}
}

/* Disable sticky on mobile/tablet stacked layout */
@media (max-width: 1100px) {
	.pesvc-sidebar {
		position: relative !important;
		top: auto !important;
	}
}

/* =========================================================
   PIPELINE SERVICE PAGE PATCH
   Hover polish for service page cards and buttons
========================================================= */

/* Global smoother hover transitions */
.pesvc-btn,
.pesvc-area-links a,
.pesvc-dark-callout a,
.pesvc-side-cta a,
.pesvc-side-links a,
.pesvc-mini-grid div,
.pesvc-benefit-grid div,
.pesvc-process-list div,
.pesvc-map-card,
.pesvc-image-card,
.pesvc-card {
	transition:
		transform 0.26s ease,
		box-shadow 0.26s ease,
		border-color 0.26s ease,
		background 0.26s ease,
		color 0.26s ease !important;
}


/* Main buttons */
.pesvc-btn-primary:hover,
.pesvc-side-cta a:first-of-type:hover,
.pesvc-dark-callout a:hover,
.pesvc-area-links a:first-child:hover,
.pesvc-fluent-form button:hover,
.pesvc-fluent-form input[type="submit"]:hover {
	transform: translateY(-3px) !important;
	background: linear-gradient(135deg, #ffe36a, #ffd21a) !important;
	box-shadow: 0 22px 42px rgba(255,210,26,0.28) !important;
	color: #050505 !important;
}

.pesvc-btn-secondary:hover,
.pesvc-side-cta a:last-child:hover,
.pesvc-area-links a:not(:first-child):hover {
	transform: translateY(-3px) !important;
	background: #ffffff !important;
	border-color: #ffffff !important;
	color: #050505 !important;
	box-shadow: 0 18px 34px rgba(0,0,0,0.18) !important;
}


/* Hero chips */
.pesvc-hero-points span:hover {
	transform: translateY(-3px) !important;
	background: rgba(255,210,26,0.16) !important;
	border-color: rgba(255,210,26,0.5) !important;
	color: #ffffff !important;
}


/* Overview mini cards */
.pesvc-mini-grid div:hover {
	transform: translateY(-6px);
	background: #ffffff;
	border-color: rgba(237,28,36,0.18);
	box-shadow: 0 22px 46px rgba(0,0,0,0.1);
}

.pesvc-mini-grid div:hover span {
	background: var(--pe-red);
	color: #ffffff;
}


/* Benefit cards with yellow dot */
.pesvc-benefit-grid div:hover {
	transform: translateY(-6px);
	background: #ffffff;
	border-color: rgba(237,28,36,0.18);
	box-shadow: 0 22px 46px rgba(0,0,0,0.1);
}

.pesvc-benefit-grid div:hover::before {
	background: var(--pe-red) !important;
	box-shadow: 0 0 0 5px rgba(237,28,36,0.12) !important;
}

.pesvc-benefit-grid div:hover strong {
	color: var(--pe-red);
}


/* Process cards */
.pesvc-process-list div:hover {
	transform: translateX(6px);
	background: #ffffff;
	border-color: rgba(237,28,36,0.18);
	box-shadow: 0 20px 44px rgba(0,0,0,0.09);
}

.pesvc-process-list div:hover > span {
	background: var(--pe-red);
	color: #ffffff;
}


/* Image and map cards */
.pesvc-image-card:hover,
.pesvc-map-card:hover {
	transform: translateY(-6px);
	border-color: rgba(237,28,36,0.18);
	box-shadow: 0 26px 58px rgba(0,0,0,0.13);
}

.pesvc-image-card img,
.pesvc-map-card img {
	transition: transform 0.45s ease;
}

.pesvc-image-card:hover img,
.pesvc-map-card:hover img {
	transform: scale(1.035);
}


/* Sidebar cards */
.pesvc-side-card:hover {
	border-color: rgba(237,28,36,0.16);
	box-shadow: 0 22px 50px rgba(0,0,0,0.1);
}

.pesvc-side-links a:hover {
	background: #101010 !important;
	color: #ffffff !important;
	border-color: #101010 !important;
	transform: translateX(5px);
}

.pesvc-side-links a:hover::after {
	color: var(--pe-yellow);
}


/* FAQ cards */
.pesvc-faq-list details:hover {
	transform: translateY(-3px);
	border-color: rgba(237,28,36,0.18);
	box-shadow: 0 18px 38px rgba(0,0,0,0.08);
}

.pesvc-faq-list details:hover summary::after {
	background: var(--pe-red);
	color: #ffffff;
}


/* Dark callout subtle lift */
.pesvc-dark-callout:hover {
	transform: translateY(-5px);
	border-color: rgba(255,210,26,0.36);
	box-shadow: 0 28px 64px rgba(0,0,0,0.2);
}


/* Disable horizontal slide hover on mobile so it does not feel jumpy */
@media (max-width: 767px) {
	.pesvc-process-list div:hover,
	.pesvc-side-links a:hover {
		transform: translateY(-3px) !important;
	}
}

/* =========================================================
   PIPELINE FORM + CONTACT BOX POLISH
   Red glow inputs + hover contact info boxes
========================================================= */

/* Contact info boxes in dark service CTA section */
.pesvc-contact-lines div {
	position: relative;
	overflow: hidden;
	transition:
		transform 0.26s ease,
		box-shadow 0.26s ease,
		border-color 0.26s ease,
		background 0.26s ease !important;
}

.pesvc-contact-lines div::before {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at top right, rgba(237,28,36,0.22), transparent 42%),
		linear-gradient(135deg, rgba(255,210,26,0.07), transparent 52%);
	opacity: 0;
	content: "";
	transition: opacity 0.26s ease;
	pointer-events: none;
}

.pesvc-contact-lines div:hover {
	transform: translateY(-5px);
	border-color: rgba(237,28,36,0.34) !important;
	background: rgba(255,255,255,0.075) !important;
	box-shadow:
		0 22px 48px rgba(0,0,0,0.24),
		0 0 0 1px rgba(237,28,36,0.12),
		0 0 28px rgba(237,28,36,0.12);
}

.pesvc-contact-lines div:hover::before {
	opacity: 1;
}

.pesvc-contact-lines div span,
.pesvc-contact-lines div strong,
.pesvc-contact-lines div a {
	position: relative;
	z-index: 2;
}

.pesvc-contact-lines div:hover span {
	color: var(--pe-yellow) !important;
}

.pesvc-contact-lines div:hover strong,
.pesvc-contact-lines div:hover a {
	color: #ffffff !important;
}


/* Site-wide Pipeline Fluent Form input polish */
.pesvc-fluent-form input,
.pesvc-fluent-form select,
.pesvc-fluent-form textarea,
.pelocal-fluent-form input,
.pelocal-fluent-form select,
.pelocal-fluent-form textarea,
.peservices-fluent-form input,
.peservices-fluent-form select,
.peservices-fluent-form textarea,
.pecontact-fluent-form input,
.pecontact-fluent-form select,
.pecontact-fluent-form textarea {
	transition:
		border-color 0.22s ease,
		box-shadow 0.22s ease,
		background 0.22s ease,
		transform 0.22s ease !important;
}

/* Red glow on hover */
.pesvc-fluent-form input:hover,
.pesvc-fluent-form select:hover,
.pesvc-fluent-form textarea:hover,
.pelocal-fluent-form input:hover,
.pelocal-fluent-form select:hover,
.pelocal-fluent-form textarea:hover,
.peservices-fluent-form input:hover,
.peservices-fluent-form select:hover,
.peservices-fluent-form textarea:hover,
.pecontact-fluent-form input:hover,
.pecontact-fluent-form select:hover,
.pecontact-fluent-form textarea:hover {
	border-color: rgba(237,28,36,0.42) !important;
	background: #ffffff !important;
	box-shadow:
		0 0 0 3px rgba(237,28,36,0.06),
		0 10px 24px rgba(0,0,0,0.045) !important;
}

/* Stronger red glow when actively clicked/focused */
.pesvc-fluent-form input:focus,
.pesvc-fluent-form select:focus,
.pesvc-fluent-form textarea:focus,
.pelocal-fluent-form input:focus,
.pelocal-fluent-form select:focus,
.pelocal-fluent-form textarea:focus,
.peservices-fluent-form input:focus,
.peservices-fluent-form select:focus,
.peservices-fluent-form textarea:focus,
.pecontact-fluent-form input:focus,
.pecontact-fluent-form select:focus,
.pecontact-fluent-form textarea:focus {
	outline: none !important;
	border-color: var(--pe-red) !important;
	background: #ffffff !important;
	box-shadow:
		0 0 0 4px rgba(237,28,36,0.11),
		0 0 22px rgba(237,28,36,0.16),
		0 12px 28px rgba(0,0,0,0.055) !important;
}

/* Label turns red when the field area is active */
.pesvc-fluent-form .ff-el-group:focus-within label,
.pelocal-fluent-form .ff-el-group:focus-within label,
.peservices-fluent-form .ff-el-group:focus-within label,
.pecontact-fluent-form .ff-el-group:focus-within label {
	color: var(--pe-red) !important;
}

/* Keep textarea resize clean */
.pesvc-fluent-form textarea,
.pelocal-fluent-form textarea,
.peservices-fluent-form textarea,
.pecontact-fluent-form textarea {
	resize: vertical;
}


/* Optional: soften the big form card hover just slightly */
.pesvc-form-card,
.pelocal-form-card {
	transition:
		transform 0.26s ease,
		box-shadow 0.26s ease,
		border-color 0.26s ease !important;
}

.pesvc-form-card:hover,
.pelocal-form-card:hover {
	border-top-color: var(--pe-red) !important;
	box-shadow:
		0 34px 78px rgba(0,0,0,0.18),
		0 0 36px rgba(237,28,36,0.08) !important;
}