/* ==========================================================================
   Emporiapolis Cleaning — sections.css
   Styles for the custom Elementor widgets (.emp-w-*). Each block is a faithful
   plain-CSS translation of the Tailwind in the Next.js source it mirrors.
   Loaded on the frontend AND inside the Elementor editor so the preview matches.
   ========================================================================== */

/* ──────────────────────────────────────
   Shared widget primitives
   ────────────────────────────────────── */

/* Section eyebrow: "Label / 0N" — uppercase, tracked. */
.emp-w-eyebrow {
	margin: 0;
	font-family: var(--emp-font-body);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	line-height: 1.3;
}
.emp-w-eyebrow--muted { color: var(--emp-muted); }
.emp-w-eyebrow--blue { color: #7BB0FF; }
.emp-w-eyebrow__num { /* number shares the eyebrow color */ }

/* Arrow icon used in CTAs (rotates 45deg on hover when inside a group). */
.emp-w-arrow { display: block; flex-shrink: 0; transition: transform 0.3s var(--emp-ease); }

/* Generic full-bleed section wrapper (widgets render their own bg). */
.emp-w-section { padding-block: clamp(6rem, 9vw, 8rem); }

/* ──────────────────────────────────────
   Trust bar — page.tsx:175-198
   White band, warm top/bottom borders, 2-col → 4-col, left dividers on desktop.
   ────────────────────────────────────── */
.emp-w-trustbar {
	background: var(--emp-white);
	border-top: 1px solid var(--emp-border-warm);
	border-bottom: 1px solid var(--emp-border-warm);
	padding-block: 2rem; /* py-8 */
}
@media (min-width: 768px) {
	.emp-w-trustbar { padding-block: 2.5rem; } /* md:py-10 */
}

.emp-w-trustbar__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1.5rem;
	row-gap: 1.5rem;
}
@media (min-width: 768px) {
	.emp-w-trustbar__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		column-gap: 2.5rem; /* md:gap-x-10 */
	}
}

.emp-w-trustbar__value {
	margin: 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-size: 1.125rem; /* 18px */
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.02em;
}
@media (min-width: 768px) {
	.emp-w-trustbar__value { font-size: 1.375rem; } /* 22px */
}

.emp-w-trustbar__label {
	margin: 0.625rem 0 0; /* mt-2.5 */
	color: var(--emp-muted);
	font-size: 11.5px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	line-height: 1.4;
}

@media (min-width: 768px) {
	.emp-w-trustbar__col--divider {
		border-left: 1px solid var(--emp-border-warm);
		padding-left: 1.5rem; /* md:pl-6 */
	}
}
@media (min-width: 1024px) {
	.emp-w-trustbar__col--divider { padding-left: 2.5rem; } /* lg:pl-10 */
}

/* ──────────────────────────────────────
   Shared button system (widget CTAs)
   ────────────────────────────────────── */
.emp-w-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--emp-font-body);
	font-weight: 600;
	font-size: 13px;
	line-height: 1;
	border: none;
	border-radius: 999px;
	text-decoration: none;
	transition: background-color 0.3s var(--emp-ease), color 0.3s var(--emp-ease), box-shadow 0.3s var(--emp-ease);
}
.emp-w-btn .emp-w-arrow { transition: transform 0.3s var(--emp-ease); }
.emp-w-btn:hover .emp-w-arrow { transform: rotate(45deg); }

/* Navy pill — most section CTAs. */
.emp-w-btn--navy {
	background: var(--emp-navy);
	color: #fff;
	padding: 0.75rem 1.5rem;
	min-height: 44px;
}
.emp-w-btn--navy:hover { background: var(--emp-navy-3); color: #fff; }

/* Light pill on dark band — CTA primary. */
.emp-w-btn--light {
	background: #fff;
	color: var(--emp-navy);
	padding: 1rem 1.75rem;
	min-height: 56px;
	font-size: 14px;
	justify-content: center;
}
.emp-w-btn--light:hover { background: var(--emp-surface-2); color: var(--emp-navy); }

/* Bordered phone link on dark band. */
.emp-w-btn--phone-dark {
	background: transparent;
	color: rgba(255, 255, 255, 0.85);
	border: 1px solid rgba(255, 255, 255, 0.15);
	padding: 1rem 1.5rem;
	min-height: 56px;
	font-size: 14px;
	font-weight: 500;
	gap: 0.625rem;
	justify-content: center;
}
.emp-w-btn--phone-dark:hover { color: #fff; }

/* ──────────────────────────────────────
   CTA band — page.tsx:707-744 (navy)
   ────────────────────────────────────── */
.emp-w-cta {
	background: var(--emp-navy);
	padding-block: clamp(5rem, 8vw, 7rem);
}
.emp-w-cta__grid {
	display: grid;
	gap: 2.5rem;
	align-items: end;
}
@media (min-width: 1024px) {
	.emp-w-cta__grid { grid-template-columns: 1.5fr 1fr; gap: 3rem; }
}
.emp-w-cta__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: #fff;
	font-weight: 600;
	font-size: clamp(2.5rem, 5vw, 3.5rem);
	line-height: 1.02;
	letter-spacing: -0.025em;
	max-width: 48rem;
}
.emp-w-cta__sub {
	margin: 1.25rem 0 0;
	color: rgba(255, 255, 255, 0.6);
	font-size: 16px;
	line-height: 1.7;
	max-width: 36rem;
}
.emp-w-cta__actions { display: flex; flex-direction: column; gap: 0.75rem; }
@media (min-width: 1024px) { .emp-w-cta__actions { align-items: stretch; } }

/* ──────────────────────────────────────
   Process steps — page.tsx:474-514 (navy)
   ────────────────────────────────────── */
.emp-w-process {
	background: var(--emp-navy);
	padding-block: clamp(6rem, 9vw, 8rem);
}
.emp-w-process__head {
	display: grid;
	gap: 3rem;
	align-items: start;
	margin-bottom: clamp(3.5rem, 6vw, 5rem);
}
@media (min-width: 1024px) {
	.emp-w-process__head { grid-template-columns: 1fr 1.5fr; gap: 5rem; }
}
.emp-w-process__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: #fff;
	font-weight: 600;
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
}
.emp-w-process__lead {
	margin: 0;
	color: rgba(255, 255, 255, 0.55);
	font-size: 15.5px;
	line-height: 1.75;
	max-width: 36rem;
}
.emp-w-process__grid {
	display: grid;
	gap: 1px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.1);
}
@media (min-width: 768px) {
	.emp-w-process__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.emp-w-process__step { background: var(--emp-navy); padding: clamp(2rem, 4vw, 2.5rem); }
.emp-w-process__num {
	margin: 0;
	font-family: var(--emp-font-display);
	color: rgba(255, 255, 255, 0.2);
	font-weight: 600;
	font-size: clamp(3rem, 5vw, 3.5rem);
	line-height: 1;
	letter-spacing: -0.02em;
}
.emp-w-process__step-title {
	margin: 2rem 0 0;
	font-family: var(--emp-font-display);
	color: #fff;
	font-weight: 600;
	font-size: clamp(1.375rem, 2vw, 1.5rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
}
.emp-w-process__step-desc {
	margin: 0.75rem 0 0;
	color: rgba(255, 255, 255, 0.55);
	font-size: 14.5px;
	line-height: 1.7;
}

/* ──────────────────────────────────────
   Numbered cards — page.tsx:306-358 (why us / values)
   ────────────────────────────────────── */
.emp-w-numcards { padding-block: clamp(6rem, 9vw, 8rem); }
.emp-w-numcards--cream { background: var(--emp-surface-2); }
.emp-w-numcards--white { background: var(--emp-white); }
.emp-w-numcards__grid {
	display: grid;
	gap: 3rem;
	align-items: start;
}
@media (min-width: 1024px) {
	.emp-w-numcards__grid { grid-template-columns: 1fr 1.1fr; gap: 5rem; }
	.emp-w-numcards__intro { position: sticky; top: 8rem; }
}
.emp-w-numcards__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
}
.emp-w-numcards__lead {
	margin: 1.5rem 0 0;
	color: var(--emp-body);
	font-size: 15.5px;
	line-height: 1.7;
	max-width: 28rem;
}
.emp-w-numcards__cta { margin-top: 2.25rem; }
.emp-w-numcards__stack {
	display: flex;
	flex-direction: column;
	gap: 1px;
	background: var(--emp-border);
	border: 1px solid var(--emp-border);
}
.emp-w-numcards__card {
	background: var(--emp-surface-2);
	padding: clamp(1.75rem, 3vw, 2.25rem);
	transition: background-color 0.5s var(--emp-ease);
}
.emp-w-numcards--white .emp-w-numcards__card { background: var(--emp-white); }
.emp-w-numcards__card:hover { background: #fff; }
.emp-w-numcards__row { display: flex; align-items: baseline; gap: 1.25rem; }
@media (min-width: 768px) { .emp-w-numcards__row { gap: 1.5rem; } }
.emp-w-numcards__num {
	font-family: var(--emp-font-display);
	color: rgba(11, 21, 51, 0.25);
	font-weight: 600;
	font-size: clamp(2rem, 3vw, 2.25rem);
	line-height: 1;
	flex-shrink: 0;
}
.emp-w-numcards__card-title {
	margin: 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(1.25rem, 2vw, 1.375rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
}
.emp-w-numcards__card-desc {
	margin: 0.75rem 0 0;
	color: var(--emp-body);
	font-size: 14.5px;
	line-height: 1.7;
}

/* ──────────────────────────────────────
   Testimonials — page.tsx:516-582
   ────────────────────────────────────── */
.emp-w-tst { padding-block: clamp(6rem, 9vw, 8rem); }
.emp-w-tst__head { margin-bottom: clamp(3.5rem, 5vw, 4rem); }
.emp-w-tst__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
	max-width: 42rem;
}
.emp-w-tst__lead {
	margin: 1.25rem 0 0;
	color: var(--emp-body);
	font-size: 15.5px;
	line-height: 1.7;
	max-width: 36rem;
}
.emp-w-tst__grid {
	display: grid;
	gap: 1px;
	background: var(--emp-border);
	border: 1px solid var(--emp-border);
}
@media (min-width: 768px) {
	.emp-w-tst__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.emp-w-tst__card {
	background: #fff;
	padding: clamp(2rem, 3.5vw, 2.5rem);
	display: flex;
	flex-direction: column;
}
.emp-w-tst__stars {
	display: flex;
	gap: 0.25rem;
	margin-bottom: 1.75rem;
	color: var(--emp-navy);
}
.emp-w-tst__star { display: block; }
.emp-w-tst__quote {
	margin: 0;
	color: var(--emp-ink);
	font-size: 16px;
	line-height: 1.7;
	font-weight: 500;
	flex: 1;
}
@media (min-width: 768px) { .emp-w-tst__quote { font-size: 16.5px; } }
.emp-w-tst__footer {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--emp-border);
}
.emp-w-tst__author {
	margin: 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.15;
}
.emp-w-tst__role {
	margin: 0.25rem 0 0;
	color: var(--emp-muted);
	font-size: 12.5px;
}

/* ──────────────────────────────────────
   Services bento — page.tsx:200-304
   ────────────────────────────────────── */
.emp-w-bento { padding-block: clamp(6rem, 9vw, 8rem); }
.emp-w-bento--cream { background: var(--emp-surface-2); }
.emp-w-bento__head {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	margin-bottom: 3.5rem;
}
@media (min-width: 768px) {
	.emp-w-bento__head { flex-direction: row; align-items: flex-end; justify-content: space-between; }
}
.emp-w-bento__head-text { max-width: 48rem; }
.emp-w-bento__heading {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(2.25rem, 4.5vw, 3.25rem);
	line-height: 1.02;
	letter-spacing: -0.025em;
}
.emp-w-bento__lead {
	margin: 1.25rem 0 0;
	color: var(--emp-body);
	font-size: 15.5px;
	line-height: 1.7;
	max-width: 36rem;
}
.emp-w-bento__cta { flex-shrink: 0; }
.emp-w-bento__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: 180px;
	gap: 0.75rem;
}
@media (min-width: 768px) {
	.emp-w-bento__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 260px; gap: 1rem; }
}
.emp-w-bento__card {
	position: relative;
	overflow: hidden;
	background: var(--emp-navy);
	display: block;
	text-decoration: none;
	grid-column: span var(--bento-mc, 1);
	grid-row: span var(--bento-mr, 1);
}
@media (min-width: 768px) {
	.emp-w-bento__card { grid-column: span var(--bento-dc, 6); grid-row: span var(--bento-dr, 1); }
}
.emp-w-bento__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s var(--emp-ease);
}
.emp-w-bento__card:hover .emp-w-bento__img { transform: scale(1.06); }
.emp-w-bento__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, var(--emp-navy), rgba(11, 21, 51, 0.4) 50%, transparent);
}
.emp-w-bento__arrow {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.95);
	color: var(--emp-navy);
	transition: background-color 0.3s var(--emp-ease);
}
@media (min-width: 768px) {
	.emp-w-bento__arrow { top: 1rem; right: 1rem; width: 2.5rem; height: 2.5rem; }
}
.emp-w-bento__card:hover .emp-w-bento__arrow { background: #fff; }
.emp-w-bento__card:hover .emp-w-bento__arrow .emp-w-arrow { transform: rotate(45deg); }
.emp-w-bento__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 1rem; }
@media (min-width: 768px) { .emp-w-bento__body { padding: 1.5rem; } }
.emp-w-bento__card--xl .emp-w-bento__body { padding: 1.25rem; }
@media (min-width: 768px) { .emp-w-bento__card--xl .emp-w-bento__body { padding: 2rem; } }
.emp-w-bento__cat {
	display: block;
	color: rgba(255, 255, 255, 0.65);
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.18em;
}
@media (min-width: 768px) { .emp-w-bento__cat { font-size: 11px; } }
.emp-w-bento__title {
	margin: 0.5rem 0 0;
	font-family: var(--emp-font-display);
	color: #fff;
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-size: 1rem;
}
.emp-w-bento__card--xl .emp-w-bento__title { font-size: clamp(1.625rem, 3vw, 2.75rem); }
.emp-w-bento__card--wide .emp-w-bento__title { font-size: clamp(1.375rem, 2.5vw, 2.25rem); }
.emp-w-bento__card--md .emp-w-bento__title { font-size: clamp(1.125rem, 2vw, 1.625rem); }
.emp-w-bento__card--sm .emp-w-bento__title { font-size: clamp(1rem, 1.5vw, 1.25rem); }
.emp-w-bento__desc { display: none; }
@media (min-width: 768px) {
	.emp-w-bento__card--xl .emp-w-bento__desc {
		display: block;
		margin: 1rem 0 0;
		color: rgba(255, 255, 255, 0.7);
		font-size: 14.5px;
		line-height: 1.65;
		max-width: 28rem;
	}
	.emp-w-bento__card--wide .emp-w-bento__desc {
		display: block;
		margin: 0.75rem 0 0;
		color: rgba(255, 255, 255, 0.65);
		font-size: 13.5px;
		line-height: 1.65;
		max-width: 42rem;
	}
}
.emp-w-bento__more { display: none; }
@media (min-width: 768px) {
	.emp-w-bento__more {
		position: absolute;
		bottom: 1.25rem;
		right: 1.25rem;
		display: inline-flex;
		align-items: center;
		gap: 0.375rem;
		color: rgba(255, 255, 255, 0.7);
		font-size: 12px;
		font-weight: 600;
		border-bottom: 1px solid rgba(255, 255, 255, 0.3);
		padding-bottom: 2px;
	}
}

/* ──────────────────────────────────────
   Hero (photo) — page.tsx:65-173
   ────────────────────────────────────── */
.emp-w-hero { padding-top: 7rem; padding-bottom: 3rem; }
@media (min-width: 768px) { .emp-w-hero { padding-top: 8rem; padding-bottom: 5rem; } }
.emp-w-hero__photo {
	position: relative;
	border-radius: 28px;
	overflow: hidden;
	background: var(--emp-navy);
	min-height: 540px;
}
@media (min-width: 768px) { .emp-w-hero__photo { border-radius: 36px; min-height: 600px; } }
@media (min-width: 1024px) { .emp-w-hero__photo { min-height: 640px; } }
.emp-w-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.emp-w-hero__fade {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(11, 21, 51, 0.85), rgba(11, 21, 51, 0.45) 50%, transparent);
}
@media (min-width: 768px) {
	.emp-w-hero__fade { background: linear-gradient(to right, rgba(11, 21, 51, 0.85), rgba(11, 21, 51, 0.25) 50%, transparent); }
}
.emp-w-hero__overlay { position: relative; min-height: 540px; display: flex; align-items: center; }
@media (min-width: 768px) { .emp-w-hero__overlay { min-height: 600px; } }
@media (min-width: 1024px) { .emp-w-hero__overlay { min-height: 640px; } }
.emp-w-hero__overlay-inner { padding: 3rem 1.5rem; max-width: 42rem; }
@media (min-width: 768px) { .emp-w-hero__overlay-inner { padding: 3.5rem 3rem; } }
@media (min-width: 1024px) { .emp-w-hero__overlay-inner { padding: 3.5rem 4rem; } }
.emp-w-hero__title {
	margin: 1.25rem 0 0;
	font-family: var(--emp-font-display);
	color: #fff;
	font-weight: 600;
	line-height: 0.98;
	letter-spacing: -0.03em;
	font-size: clamp(2.5rem, 5.8vw, 5rem);
}
.emp-w-hero__lead {
	margin: 1.5rem 0 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: 15px;
	line-height: 1.65;
	max-width: 28rem;
}
@media (min-width: 768px) { .emp-w-hero__lead { font-size: 17px; } }
.emp-w-hero__actions { margin-top: 2rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.emp-w-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.625rem 0.75rem 0.625rem 1.75rem;
	background: #3A8DFF;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	border-radius: 999px;
	min-height: 52px;
	text-decoration: none;
	transition: background-color 0.3s var(--emp-ease);
}
.emp-w-hero__cta:hover { background: #2B7AE6; }
.emp-w-hero__cta-icon {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.2);
	transition: background-color 0.3s var(--emp-ease);
}
.emp-w-hero__cta:hover .emp-w-hero__cta-icon { background: rgba(255, 255, 255, 0.3); }
.emp-w-hero__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.75rem 1.25rem;
	color: rgba(255, 255, 255, 0.9);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.3s var(--emp-ease);
}
.emp-w-hero__phone:hover { color: #fff; }
.emp-w-hero__mobilecard {
	position: relative;
	margin: -2.5rem 0.75rem 0;
	background: #fff;
	border-radius: 1rem;
	padding: 1.25rem;
	box-shadow: 0 24px 60px -20px rgba(11, 21, 51, 0.35);
	border: 1px solid var(--emp-border-warm);
}
@media (min-width: 768px) { .emp-w-hero__mobilecard { display: none; } }
.emp-w-hero__card-title {
	margin: 0.5rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.01em;
	font-size: 1.25rem;
}
.emp-w-hero__card-text { margin: 0.5rem 0 0; color: var(--emp-body); font-size: 13px; line-height: 1.6; }
.emp-w-hero__mobilebtn {
	margin-top: 1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.625rem 0.625rem 0.625rem 1.25rem;
	background: var(--emp-navy);
	color: #fff;
	font-size: 13.5px;
	font-weight: 600;
	border-radius: 0.75rem;
	min-height: 48px;
	text-decoration: none;
	transition: background-color 0.3s var(--emp-ease);
}
.emp-w-hero__mobilebtn:hover { background: var(--emp-navy-3); }
.emp-w-hero__mobilebtn-icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 999px; background: #3A8DFF; }
.emp-w-hero__card-foot { margin: 0.75rem 0 0; text-align: center; color: var(--emp-muted); font-size: 11px; }
.emp-w-hero__formcard { display: none; }
@media (min-width: 768px) { .emp-w-hero__formcard { display: block; position: relative; margin-top: -6rem; } }
@media (min-width: 1024px) { .emp-w-hero__formcard { margin-top: -7rem; } }
.emp-w-hero__formcard-inner {
	background: #fff;
	border-radius: 1rem;
	padding: 2rem;
	box-shadow: 0 24px 60px -20px rgba(11, 21, 51, 0.35);
	border: 1px solid var(--emp-border-warm);
	max-width: 56rem;
	margin-left: auto;
}
.emp-w-hero__formhead { margin-bottom: 1.25rem; }
.emp-w-hero__formhead .emp-w-hero__card-title { font-size: 1.5rem; }

/* ──────────────────────────────────────
   VS table — page.tsx:360-417
   ────────────────────────────────────── */
.emp-w-vs { background: #fff; padding-block: clamp(6rem, 9vw, 8rem); }
.emp-w-vs__grid { display: grid; gap: 3rem; align-items: start; }
@media (min-width: 1024px) { .emp-w-vs__grid { grid-template-columns: 1fr 1.2fr; gap: 5rem; } }
.emp-w-vs__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(2.25rem, 4.5vw, 3.25rem);
	line-height: 1.02;
	letter-spacing: -0.025em;
}
.emp-w-vs__lead { margin: 1.5rem 0 0; color: var(--emp-body); font-size: 15.5px; line-height: 1.75; max-width: 28rem; }
.emp-w-vs__footnote {
	margin: 1.5rem 0 0;
	color: var(--emp-ink);
	font-size: 14px;
	line-height: 1.7;
	max-width: 28rem;
	font-style: italic;
	border-left: 2px solid var(--emp-blue);
	padding-left: 1rem;
}
.emp-w-vs__cta { margin-top: 2.25rem; }
.emp-w-vs__table { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--emp-border); border: 1px solid var(--emp-border); }
.emp-w-vs__th { padding: 0.875rem 1rem; }
@media (min-width: 768px) { .emp-w-vs__th { padding: 1.5rem; } }
.emp-w-vs__th--theirs { background: var(--emp-surface-2); }
.emp-w-vs__th--ours { background: var(--emp-navy); }
.emp-w-vs__th p { margin: 0; font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.22em; }
.emp-w-vs__th--theirs p { color: var(--emp-muted); }
.emp-w-vs__th--ours p { color: #7BB0FF; }
.emp-w-vs__cell { padding: 0.875rem 1rem; }
@media (min-width: 768px) { .emp-w-vs__cell { padding: 1.5rem 1.75rem; } }
.emp-w-vs__cell--theirs { background: var(--emp-surface-2); }
.emp-w-vs__cell--ours { background: var(--emp-navy); }
.emp-w-vs__cell--theirs p {
	margin: 0;
	color: var(--emp-muted);
	font-size: 12.5px;
	line-height: 1.55;
	text-decoration: line-through;
	text-decoration-color: rgba(148, 163, 184, 0.4);
}
.emp-w-vs__cell--ours p { margin: 0; color: #fff; font-size: 13px; line-height: 1.55; font-weight: 500; }
@media (min-width: 768px) {
	.emp-w-vs__cell--theirs p { font-size: 13.5px; line-height: 1.6; }
	.emp-w-vs__cell--ours p { font-size: 14.5px; line-height: 1.6; }
}

/* ──────────────────────────────────────
   About split — page.tsx:419-472
   ────────────────────────────────────── */
.emp-w-about { padding-block: clamp(6rem, 9vw, 8rem); }
.emp-w-about__grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .emp-w-about__grid { grid-template-columns: 1fr 1fr; gap: 4rem; } }
.emp-w-about__media { position: relative; overflow: hidden; background: var(--emp-surface-2); }
.emp-w-about__media--4-5 { aspect-ratio: 4 / 5; }
.emp-w-about__media--4-3 { aspect-ratio: 4 / 3; }
.emp-w-about__media--1-1 { aspect-ratio: 1 / 1; }
.emp-w-about__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.emp-w-about__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
}
.emp-w-about__copy { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 1rem; }
.emp-w-about__copy p { margin: 0; color: var(--emp-body); font-size: 15.5px; line-height: 1.85; }
.emp-w-about__founders {
	margin-top: 2.5rem;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--emp-border);
	border: 1px solid var(--emp-border);
}
.emp-w-about__founder { background: #fff; padding: 1.25rem; }
@media (min-width: 768px) { .emp-w-about__founder { padding: 1.5rem; } }
.emp-w-about__founder-role { margin: 0; color: var(--emp-muted); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em; }
.emp-w-about__founder-name { margin: 0.5rem 0 0; font-family: var(--emp-font-display); color: var(--emp-ink); font-size: 1.125rem; font-weight: 600; line-height: 1.15; }
.emp-w-about__cta { margin-top: 2.25rem; }

/* ──────────────────────────────────────
   Coverage map — page.tsx:655-705
   ────────────────────────────────────── */
.emp-w-cov { padding-block: clamp(6rem, 9vw, 8rem); }
.emp-w-cov__grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .emp-w-cov__grid { grid-template-columns: 1fr 1fr; gap: 4rem; } }
.emp-w-cov__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
}
.emp-w-cov__lead { margin: 1.5rem 0 0; color: var(--emp-body); font-size: 15.5px; line-height: 1.7; max-width: 28rem; }
.emp-w-cov__areas { margin: 2.25rem 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.875rem 1.5rem; max-width: 28rem; }
.emp-w-cov__area { display: flex; align-items: baseline; gap: 0.625rem; border-bottom: 1px solid var(--emp-border); padding-bottom: 0.625rem; }
.emp-w-cov__dot { color: var(--emp-muted); font-size: 11px; font-weight: 600; }
.emp-w-cov__area span:last-child { color: var(--emp-ink); font-size: 14.5px; font-weight: 500; }
.emp-w-cov__cta { margin-top: 2.25rem; }
.emp-w-cov__map { position: relative; overflow: hidden; border: 1px solid var(--emp-border); background: var(--emp-surface-2); }
.emp-w-cov__map--box { aspect-ratio: 4 / 3; }
.emp-w-cov__map--wide { aspect-ratio: 16 / 7; }
.emp-w-cov__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: saturate(0.85) contrast(1.02) brightness(0.97); }
.emp-w-cov--maponly { padding-block: clamp(2rem, 4vw, 3rem); }

/* ──────────────────────────────────────
   FAQ accordion — page.tsx:584-653
   ────────────────────────────────────── */
.emp-w-faq { padding-block: clamp(6rem, 9vw, 8rem); }
.emp-w-faq--cream { background: var(--emp-surface-2); }
.emp-w-faq--white { background: var(--emp-white); }
.emp-w-faq__grid { display: grid; gap: 3rem; }
@media (min-width: 1024px) { .emp-w-faq__grid--split { grid-template-columns: 0.9fr 1.4fr; gap: 5rem; } }
.emp-w-faq__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
}
.emp-w-faq__lead { margin: 1.5rem 0 0; color: var(--emp-body); font-size: 15.5px; line-height: 1.7; max-width: 28rem; }
.emp-w-faq__cta { margin-top: 2rem; }
.emp-w-faq__list { border-top: 1px solid var(--emp-border); }
.emp-w-faq__item { border-bottom: 1px solid var(--emp-border); }
.emp-w-faq__q {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: baseline;
	gap: 1.25rem;
	padding: 1.5rem 0;
}
@media (min-width: 768px) { .emp-w-faq__q { gap: 1.75rem; padding: 1.75rem 0; } }
.emp-w-faq__q::-webkit-details-marker { display: none; }
.emp-w-faq__num { font-family: var(--emp-font-display); color: rgba(11, 21, 51, 0.3); font-size: 1.25rem; font-weight: 600; flex-shrink: 0; }
.emp-w-faq__qtext {
	flex: 1;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -0.01em;
}
@media (min-width: 768px) { .emp-w-faq__qtext { font-size: 17px; } }
.emp-w-faq__icon { margin-left: auto; display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--emp-ink); flex-shrink: 0; }
.emp-w-faq__icon svg:last-child { display: none; }
.emp-w-faq__item[open] .emp-w-faq__icon svg:first-child { display: none; }
.emp-w-faq__item[open] .emp-w-faq__icon svg:last-child { display: block; }
.emp-w-faq__a { padding: 0 1rem 1.5rem 2.75rem; }
@media (min-width: 768px) { .emp-w-faq__a { padding-left: 3.5rem; } }
.emp-w-faq__a p { margin: 0; color: var(--emp-body); font-size: 14.5px; line-height: 1.75; }

/* ──────────────────────────────────────
   Hero (simple, navy) — about-client.tsx:39-58, services/page.tsx:66-97
   ────────────────────────────────────── */
.emp-w-herosimple { background: var(--emp-navy); padding-top: 9rem; padding-bottom: 5rem; }
@media (min-width: 768px) { .emp-w-herosimple { padding-top: 12rem; padding-bottom: 7rem; } }
.emp-w-herosimple__grid { display: grid; gap: 2.5rem; }
.emp-w-herosimple__grid--stat { align-items: end; }
@media (min-width: 1024px) { .emp-w-herosimple__grid--stat { grid-template-columns: 1fr auto; } }
.emp-w-herosimple__text .emp-w-eyebrow { margin-bottom: 1.75rem; }
.emp-w-herosimple__title {
	margin: 0;
	font-family: var(--emp-font-display);
	color: #fff;
	font-weight: 600;
	line-height: 0.95;
	letter-spacing: -0.03em;
	font-size: clamp(2.5rem, 6vw, 5.25rem);
	max-width: 64rem;
}
.emp-w-herosimple__lead {
	margin: 1.75rem 0 0;
	color: rgba(255, 255, 255, 0.65);
	font-size: 16.5px;
	line-height: 1.65;
	max-width: 48rem;
}
@media (min-width: 768px) { .emp-w-herosimple__lead { font-size: 17.5px; } }
.emp-w-herosimple--center { text-align: center; }
.emp-w-herosimple--center .emp-w-herosimple__title,
.emp-w-herosimple--center .emp-w-herosimple__lead { margin-inline: auto; }
.emp-w-herosimple__stat { display: flex; flex-direction: column; }
@media (min-width: 1024px) { .emp-w-herosimple__stat { align-items: flex-end; text-align: right; } }
.emp-w-herosimple__stat-label { margin: 0; color: var(--emp-muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.18em; }
.emp-w-herosimple__stat-value { margin: 0.5rem 0 0; font-family: var(--emp-font-display); color: #fff; font-size: 3rem; font-weight: 600; line-height: 1; }
.emp-w-herosimple__stat-sub { margin: 0.5rem 0 0; color: rgba(255, 255, 255, 0.55); font-size: 13px; }

/* ──────────────────────────────────────
   Stats (navy) — about-client.tsx:102-132
   ────────────────────────────────────── */
.emp-w-stats { background: var(--emp-navy); padding-block: clamp(5rem, 8vw, 7rem); }
.emp-w-stats__head { margin-bottom: 3.5rem; max-width: 64rem; }
.emp-w-stats__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: #fff;
	font-weight: 600;
	font-size: clamp(2.25rem, 3.5vw, 2.75rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
}
.emp-w-stats__grid { display: grid; gap: 1px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.1); }
@media (min-width: 768px) { .emp-w-stats__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.emp-w-stats__cell { background: var(--emp-navy); padding: clamp(2rem, 4vw, 2.5rem); }
.emp-w-stats__num { margin: 0; color: rgba(255, 255, 255, 0.35); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em; }
.emp-w-stats__value {
	display: block;
	margin: 1.75rem 0 0;
	font-family: var(--emp-font-display);
	color: #fff;
	font-size: clamp(3.5rem, 5vw, 4.5rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.025em;
}
.emp-w-stats__label { margin: 1rem 0 0; color: rgba(255, 255, 255, 0.65); font-size: 14.5px; font-weight: 500; }

/* numbered-cards surface variant (about values) */
.emp-w-numcards--surface { background: var(--emp-surface); }
.emp-w-numcards--surface .emp-w-numcards__card { background: var(--emp-surface); }

/* ──────────────────────────────────────
   Service hero (split) — service-page-client.tsx:88-146
   ────────────────────────────────────── */
.emp-w-svchero { background: var(--emp-navy); padding-top: 8rem; padding-bottom: 5rem; }
@media (min-width: 768px) { .emp-w-svchero { padding-top: 11rem; padding-bottom: 7rem; } }
.emp-w-svchero__back {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 2.5rem;
	color: rgba(255, 255, 255, 0.65);
	font-size: 12.5px;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.3s var(--emp-ease);
}
.emp-w-svchero__back:hover { color: #fff; }
.emp-w-svchero__grid { display: grid; gap: 2.5rem; align-items: end; }
@media (min-width: 1024px) { .emp-w-svchero__grid { grid-template-columns: 1.15fr 1fr; gap: 4rem; } }
.emp-w-svchero__text .emp-w-eyebrow { margin-bottom: 1.75rem; }
.emp-w-svchero__title {
	margin: 0;
	font-family: var(--emp-font-display);
	color: #fff;
	font-weight: 600;
	line-height: 0.97;
	letter-spacing: -0.03em;
	font-size: clamp(2.5rem, 5.6vw, 4.5rem);
}
.emp-w-svchero__lead { margin: 1.75rem 0 0; color: rgba(255, 255, 255, 0.65); font-size: 16px; line-height: 1.65; max-width: 42rem; }
@media (min-width: 768px) { .emp-w-svchero__lead { font-size: 17px; } }
.emp-w-svchero__actions { margin-top: 2.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.emp-w-svchero__actions .emp-w-btn--light { padding: 0.9375rem 1.75rem; min-height: 52px; }
.emp-w-svchero__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.9375rem 1.5rem;
	color: rgba(255, 255, 255, 0.85);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.3s var(--emp-ease);
}
.emp-w-svchero__phone:hover { color: #fff; }
.emp-w-svchero__media { position: relative; aspect-ratio: 5 / 6; overflow: hidden; background: var(--emp-navy-2); }
.emp-w-svchero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ──────────────────────────────────────
   Service body — service-page-client.tsx:148-286
   ────────────────────────────────────── */
.emp-w-svcbody { padding-block: clamp(5rem, 8vw, 7rem); }
.emp-w-svcbody__grid { display: grid; gap: 3rem; align-items: start; }
@media (min-width: 1024px) { .emp-w-svcbody__grid { grid-template-columns: 1fr 360px; gap: 4rem; } }
.emp-w-svcbody__block--divided { margin-top: clamp(4rem, 6vw, 5rem); padding-top: 3rem; border-top: 1px solid var(--emp-border); }
.emp-w-svcbody__eyebrow { margin: 0; color: var(--emp-muted); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.22em; }
.emp-w-svcbody__h2 {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(1.875rem, 3vw, 2.25rem);
	line-height: 1.08;
	letter-spacing: -0.025em;
}
.emp-w-svcbody__lead { margin: 1.5rem 0 0; color: var(--emp-ink); font-size: 18px; line-height: 1.55; font-weight: 500; letter-spacing: -0.005em; }
@media (min-width: 768px) { .emp-w-svcbody__lead { font-size: 20px; } }
.emp-w-svcbody__para { margin: 1.25rem 0 0; color: var(--emp-body); font-size: 15.5px; line-height: 1.85; }
.emp-w-svcbody__scope { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 1.25rem 2.5rem; }
@media (min-width: 640px) { .emp-w-svcbody__scope { grid-template-columns: 1fr 1fr; } }
.emp-w-svcbody__scope li { display: flex; align-items: baseline; gap: 1rem; border-bottom: 1px solid var(--emp-border); padding-bottom: 1rem; }
.emp-w-svcbody__sn { color: var(--emp-muted); font-size: 11px; font-weight: 600; letter-spacing: 0.18em; flex-shrink: 0; }
.emp-w-svcbody__scope li span:last-child { color: var(--emp-ink); font-size: 14.5px; font-weight: 500; line-height: 1.5; }
.emp-w-svcbody__ideal { list-style: none; margin: 2rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 1.25rem; }
.emp-w-svcbody__ideal li { display: flex; align-items: baseline; gap: 1.25rem; border-bottom: 1px solid var(--emp-border); padding-bottom: 1.25rem; }
.emp-w-svcbody__in { font-family: var(--emp-font-display); color: rgba(11, 21, 51, 0.25); font-size: 1.25rem; font-weight: 600; flex-shrink: 0; }
.emp-w-svcbody__ideal li span:last-child { color: var(--emp-body); font-size: 15px; line-height: 1.5; }
.emp-w-svcbody__process { margin-top: 2rem; display: flex; flex-direction: column; gap: 1px; background: var(--emp-border); border: 1px solid var(--emp-border); }
.emp-w-svcbody__step { background: #fff; padding: 1.5rem; display: flex; align-items: baseline; gap: 1.25rem; }
@media (min-width: 768px) { .emp-w-svcbody__step { padding: 1.75rem; } }
.emp-w-svcbody__pn { font-family: var(--emp-font-display); color: rgba(11, 21, 51, 0.25); font-size: 2rem; font-weight: 600; line-height: 1; flex-shrink: 0; }
.emp-w-svcbody__step h3 { margin: 0; font-family: var(--emp-font-display); color: var(--emp-ink); font-size: 1.125rem; font-weight: 600; line-height: 1.15; letter-spacing: -0.01em; }
@media (min-width: 768px) { .emp-w-svcbody__step h3 { font-size: 1.25rem; } }
.emp-w-svcbody__step p { margin: 0.5rem 0 0; color: var(--emp-body); font-size: 14.5px; line-height: 1.7; }
@media (min-width: 1024px) { .emp-w-svcbody__aside { position: sticky; top: 8rem; align-self: start; } }
.emp-w-svcbody__box { background: var(--emp-navy); padding: 1.75rem; }
.emp-w-svcbody__box-eyebrow { margin: 0; color: rgba(255, 255, 255, 0.55); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.22em; }
.emp-w-svcbody__box-title { margin: 1rem 0 0; font-family: var(--emp-font-display); color: #fff; font-size: 1.5rem; font-weight: 600; line-height: 1.15; letter-spacing: -0.01em; }
.emp-w-svcbody__box-text { margin: 0.75rem 0 0; color: rgba(255, 255, 255, 0.6); font-size: 14px; line-height: 1.7; }
.emp-w-svcbody__box-cta { width: 100%; margin-top: 1.5rem; }
.emp-w-svcbody__box-phone {
	width: 100%;
	margin-top: 0.625rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.875rem 1.5rem;
	color: rgba(255, 255, 255, 0.85);
	font-size: 13.5px;
	font-weight: 500;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 999px;
	text-decoration: none;
	transition: color 0.3s var(--emp-ease);
}
.emp-w-svcbody__box-phone:hover { color: #fff; }
.emp-w-svcbody__guarantee { margin-top: 1.5rem; border-top: 1px solid var(--emp-border); padding-top: 1.5rem; }
.emp-w-svcbody__g-label { margin: 0; color: var(--emp-muted); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.22em; }
.emp-w-svcbody__g-title { margin: 0.75rem 0 0; font-family: var(--emp-font-display); color: var(--emp-ink); font-size: 18px; font-weight: 600; line-height: 1.15; }
.emp-w-svcbody__g-text { margin: 0.75rem 0 0; color: var(--emp-body); font-size: 13.5px; line-height: 1.7; }

/* ──────────────────────────────────────
   Related services — service-page-client.tsx:309-361
   ────────────────────────────────────── */
.emp-w-related { padding-block: clamp(6rem, 9vw, 8rem); }
.emp-w-related__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 3rem; }
.emp-w-related__title {
	margin: 0.75rem 0 0;
	font-family: var(--emp-font-display);
	color: var(--emp-ink);
	font-weight: 600;
	font-size: clamp(2rem, 3.5vw, 2.5rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
}
.emp-w-related__cta { flex-shrink: 0; }
@media (max-width: 767px) { .emp-w-related__cta { display: none; } }
.emp-w-related__grid { display: grid; gap: 3rem 1.5rem; }
@media (min-width: 768px) { .emp-w-related__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.emp-w-related__card { display: block; text-decoration: none; }
.emp-w-related__media { display: block; position: relative; aspect-ratio: 5 / 4; overflow: hidden; background: var(--emp-surface-2); }
.emp-w-related__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--emp-ease); }
.emp-w-related__card:hover .emp-w-related__media img { transform: scale(1.04); }
.emp-w-related__row { display: flex; align-items: baseline; justify-content: space-between; margin-top: 1.5rem; }
.emp-w-related__num { color: var(--emp-muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.18em; }
.emp-w-related__arrow {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 999px;
	border: 1px solid var(--emp-border);
	color: var(--emp-ink);
	transition: background-color 0.3s var(--emp-ease), color 0.3s var(--emp-ease);
}
.emp-w-related__card:hover .emp-w-related__arrow { background: var(--emp-navy); color: #fff; }
.emp-w-related__name { margin: 0.75rem 0 0; font-family: var(--emp-font-display); color: var(--emp-ink); font-size: 1.375rem; font-weight: 600; line-height: 1.15; letter-spacing: -0.01em; }
.emp-w-related__desc { margin: 0.75rem 0 0; color: var(--emp-body); font-size: 14px; line-height: 1.65; }
.emp-w-related__more {
	margin-top: 1rem;
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	color: var(--emp-ink);
	font-size: 13px;
	font-weight: 600;
	border-bottom: 1px solid var(--emp-ink);
	padding-bottom: 2px;
	transition: gap 0.3s var(--emp-ease);
}
.emp-w-related__card:hover .emp-w-related__more { gap: 0.625rem; }

/* ──────────────────────────────────────
   Cover-image fill override
   Elementor's `frontend.css` ships `.elementor img { height: auto }` at the
   same specificity (0,1,1) as our `.emp-w-*__media img` rules but loads later,
   so it wins and collapses absolutely-positioned cover images to their
   intrinsic height. Re-assert full height at higher specificity (.elementor
   prefix → 0,2,1) so our object-fit:cover images fill their boxes.
   ────────────────────────────────────── */
.elementor .emp-w-hero__img,
.elementor .emp-w-bento__img,
.elementor .emp-w-about__media img,
.elementor .emp-w-svchero__media img,
.elementor .emp-w-related__media img { height: 100%; }

/* ──────────────────────────────────────
   Area cards — service-areas NY coverage
   ────────────────────────────────────── */
.emp-w-areas { padding-block: clamp(6rem, 9vw, 8rem); }
.emp-w-areas__head { margin-bottom: 3rem; }
.emp-w-areas__rule { display: block; width: 3rem; height: 2px; background: var(--emp-blue); margin-bottom: 1rem; }
.emp-w-areas__label { margin: 0; font-family: var(--emp-font-display); color: var(--emp-ink); font-weight: 600; font-size: clamp(1.75rem, 3vw, 2.25rem); letter-spacing: -0.02em; }
.emp-w-areas__grid { display: grid; gap: 1px; background: var(--emp-border); border: 1px solid var(--emp-border); }
@media (min-width: 640px) { .emp-w-areas__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .emp-w-areas__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.emp-w-areas__card { background: #fff; padding: 1.75rem; text-decoration: none; display: block; transition: background-color 0.3s var(--emp-ease); }
.emp-w-areas__card--link:hover { background: var(--emp-surface-2); }
.emp-w-areas__card-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.emp-w-areas__name { margin: 0; font-family: var(--emp-font-display); color: var(--emp-ink); font-size: 1.25rem; font-weight: 600; letter-spacing: -0.01em; }
.emp-w-areas__arrow { color: var(--emp-muted); transition: color 0.3s var(--emp-ease), transform 0.3s var(--emp-ease); }
.emp-w-areas__card--link:hover .emp-w-areas__arrow { color: var(--emp-blue); transform: rotate(45deg); }
.emp-w-areas__desc { margin: 0.75rem 0 0; color: var(--emp-body); font-size: 14px; line-height: 1.65; }
.emp-w-areas__more { margin: 1rem 0 0; color: var(--emp-blue); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.14em; }

/* ──────────────────────────────────────
   Text band — service-areas NJ / not-listed
   ────────────────────────────────────── */
.emp-w-band { padding-block: clamp(4rem, 7vw, 6rem); }
.emp-w-band--light { background: var(--emp-surface-2); }
.emp-w-band--navy { background: var(--emp-navy); }
.emp-w-band--navy .emp-w-band__inner { max-width: 42rem; margin-inline: auto; text-align: center; }
.emp-w-band__rule { display: block; width: 3rem; height: 2px; background: var(--emp-blue); margin-bottom: 1rem; }
.emp-w-band__title { margin: 0; font-family: var(--emp-font-display); font-weight: 600; font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.1; letter-spacing: -0.02em; color: var(--emp-ink); }
.emp-w-band--navy .emp-w-band__title { color: #fff; }
.emp-w-band__text { margin: 1.25rem 0 0; font-size: 15.5px; line-height: 1.75; max-width: 48rem; color: var(--emp-body); }
.emp-w-band--navy .emp-w-band__text { color: rgba(255, 255, 255, 0.55); margin-inline: auto; }
.emp-w-band__cta { margin-top: 2rem; }

/* ──────────────────────────────────────
   Contact methods — contact-client.tsx:129-178
   ────────────────────────────────────── */
.emp-w-methods { padding-block: clamp(5rem, 8vw, 7rem); }
.emp-w-methods__head { margin-bottom: 3rem; }
.emp-w-methods__title { margin: 0.75rem 0 0; font-family: var(--emp-font-display); color: var(--emp-ink); font-weight: 600; font-size: clamp(2rem, 3.5vw, 2.5rem); line-height: 1.08; letter-spacing: -0.02em; max-width: 42rem; }
.emp-w-methods__list { border-top: 1px solid var(--emp-border); }
.emp-w-methods__row { display: grid; gap: 0.75rem; align-items: center; border-bottom: 1px solid var(--emp-border); padding: 2rem 0; text-decoration: none; transition: background-color 0.3s var(--emp-ease); }
@media (min-width: 768px) { .emp-w-methods__row { grid-template-columns: 80px 1fr auto; gap: 2.5rem; padding: 2.5rem 0; } }
.emp-w-methods__row:hover { background: var(--emp-surface-2); }
.emp-w-methods__num { font-family: var(--emp-font-display); color: rgba(11, 21, 51, 0.15); font-size: 3rem; font-weight: 600; line-height: 1; }
@media (min-width: 768px) { .emp-w-methods__num { font-size: 3.5rem; } }
.emp-w-methods__body { display: grid; gap: 0.5rem; }
@media (min-width: 768px) { .emp-w-methods__body { grid-template-columns: 200px 1fr; gap: 2.5rem; align-items: baseline; } }
.emp-w-methods__label { font-family: var(--emp-font-display); color: var(--emp-ink); font-size: 1.375rem; font-weight: 600; line-height: 1.15; letter-spacing: -0.01em; }
@media (min-width: 768px) { .emp-w-methods__label { font-size: 1.5rem; } }
.emp-w-methods__desc { color: var(--emp-body); font-size: 14.5px; line-height: 1.65; max-width: 28rem; }
.emp-w-methods__action { display: flex; align-items: center; gap: 0.625rem; }
@media (min-width: 768px) { .emp-w-methods__action { flex-direction: column; align-items: flex-end; gap: 0.25rem; text-align: right; } }
.emp-w-methods__action-text { color: var(--emp-ink); font-size: 14px; font-weight: 600; white-space: nowrap; }
.emp-w-methods__action-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 999px; background: var(--emp-navy); color: #fff; transition: background-color 0.3s var(--emp-ease); }
.emp-w-methods__row:hover .emp-w-methods__action-icon { background: var(--emp-blue); }
.emp-w-methods__row:hover .emp-w-methods__action-icon .emp-w-arrow { transform: rotate(45deg); }

/* ──────────────────────────────────────
   Contact map + info — contact-client.tsx:180-278
   ────────────────────────────────────── */
.emp-w-cmi { padding-block: clamp(5rem, 8vw, 7rem); background: var(--emp-surface-2); }
.emp-w-cmi__head { margin-bottom: 3rem; }
.emp-w-cmi__title { margin: 0.75rem 0 0; font-family: var(--emp-font-display); color: var(--emp-ink); font-weight: 600; font-size: clamp(2rem, 3.5vw, 2.5rem); line-height: 1.08; letter-spacing: -0.02em; }
.emp-w-cmi__grid { display: grid; gap: 1px; background: var(--emp-border); border: 1px solid var(--emp-border); }
@media (min-width: 1024px) { .emp-w-cmi__grid { grid-template-columns: 1.4fr 1fr; } }
.emp-w-cmi__map { position: relative; background: var(--emp-surface-2); aspect-ratio: 4 / 3; }
@media (min-width: 1024px) { .emp-w-cmi__map { aspect-ratio: auto; min-height: 520px; } }
.emp-w-cmi__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.emp-w-cmi__info { background: #fff; padding: 2rem; display: flex; flex-direction: column; justify-content: space-between; }
@media (min-width: 768px) { .emp-w-cmi__info { padding: 2.5rem; } }
.emp-w-cmi__dl { margin: 0; display: flex; flex-direction: column; gap: 1.75rem; }
.emp-w-cmi__dt { color: var(--emp-muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em; margin-bottom: 0.5rem; }
.emp-w-cmi__dd { margin: 0; color: var(--emp-ink); font-size: 15px; font-weight: 500; line-height: 1.6; }
.emp-w-cmi__phone { font-family: var(--emp-font-display); font-size: 1.5rem; font-weight: 600; color: var(--emp-ink); text-decoration: none; transition: color 0.3s var(--emp-ease); }
.emp-w-cmi__phone:hover { color: var(--emp-blue); }
.emp-w-cmi__email { color: var(--emp-ink); text-decoration: none; word-break: break-all; transition: color 0.3s var(--emp-ease); }
.emp-w-cmi__email:hover { color: var(--emp-blue); }
.emp-w-cmi__hours { display: block; color: var(--emp-body); font-size: 14px; line-height: 1.85; }
.emp-w-cmi__hours-note { display: block; margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid var(--emp-border); color: var(--emp-blue); font-size: 12.5px; font-weight: 600; line-height: 1.4; }
.emp-w-cmi__cta { margin-top: 2.5rem; width: 100%; }

/* ──────────────────────────────────────
   Quote form — contact-client.tsx:109-127
   ────────────────────────────────────── */
.emp-w-qform { padding-block: clamp(5rem, 8vw, 7rem); }
.emp-w-qform--cream { background: var(--emp-surface-2); }
.emp-w-qform__inner { max-width: 64rem; margin-inline: auto; }
.emp-w-qform__head { display: grid; gap: 2rem; align-items: start; margin-bottom: 3rem; }
@media (min-width: 1024px) { .emp-w-qform__head { grid-template-columns: 0.9fr 1.4fr; gap: 4rem; } }
.emp-w-qform__title { margin: 0.75rem 0 0; font-family: var(--emp-font-display); color: var(--emp-ink); font-weight: 600; font-size: clamp(2rem, 3.5vw, 2.75rem); line-height: 1.05; letter-spacing: -0.025em; }
.emp-w-qform__lead { margin: 0; color: var(--emp-body); font-size: 15.5px; line-height: 1.7; max-width: 36rem; }
@media (min-width: 1024px) { .emp-w-qform__lead { padding-top: 0.5rem; } }
