/* ============================================================
   Big Easy Basements — Theme CSS
   Stage 3 base + Stage 3.5 (Sonic Boom) extensions
   ============================================================ */

:root {
	--bigeasy-radius-sm: 4px;
	--bigeasy-radius-md: 8px;
	--bigeasy-radius-lg: 12px;
	--bigeasy-radius-xl: 20px;
	--bigeasy-transition-fast: 150ms ease-out;
	--bigeasy-transition-base: 200ms ease-out;
	--bigeasy-transition-slow: 600ms ease-out;
	--bigeasy-emergency-height: 44px;

	/* Stage 6 Part 2 (2026-05-13) · brand-token extension for AA text-on-white labels.
	   Sister to CS S57 BRAND-COLOR-CONTRAST split: orange-500/600 stay as fills/buttons;
	   orange-700 = text-on-white labels only. 5.27:1 on white (AAA-Large / AA-Normal). */
	--orange-700: #A65500;
}

/* ============================================================
   Global resets + niceties
   ============================================================ */

html { scroll-behavior: smooth; }

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; }

::selection {
	background: var(--wp--preset--color--orange-500);
	color: var(--wp--preset--color--white);
}

*:focus-visible {
	outline: 3px solid var(--wp--preset--color--orange-400);
	outline-offset: 2px;
}

.has-playfair-font-family, h1, h2, h3 {
	font-feature-settings: 'kern' 1, 'liga' 1, 'pnum' 1;
}

h1 em, h2 em, h3 em, .has-playfair-font-family em {
	font-style: italic;
	font-weight: inherit;
}

/* ============================================================
   Emergency banner (top strip, above header)
   ============================================================ */

.bigeasy-emergency-banner {
	background: linear-gradient(90deg, #B86E00 0%, #D26500 100%);
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	font-weight: 500;
	padding: 0 16px;
	min-height: var(--bigeasy-emergency-height);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	text-align: center;
	position: relative;
	z-index: 110;
}

.bigeasy-emergency-banner__icon {
	flex-shrink: 0;
	animation: bigeasy-pulse 2s ease-in-out infinite;
}

@keyframes bigeasy-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.7; transform: scale(1.08); }
}

.bigeasy-emergency-banner__cta {
	color: var(--wp--preset--color--white);
	text-decoration: underline;
	font-weight: 700;
	margin-left: 4px;
}

.bigeasy-emergency-banner__cta:hover {
	text-decoration: none;
}

@media (max-width: 640px) {
	.bigeasy-emergency-banner {
		font-size: 13px;
		padding: 6px 10px; /* F7 · tightened from 8px 12px per audit */
		line-height: 1.3;
		gap: 6px; /* tighter icon/text spacing */
	}
	.bigeasy-emergency-banner__cta { margin-left: 2px; }
}
@media (max-width: 400px) {
	.bigeasy-emergency-banner {
		font-size: 12px;
		padding: 6px 8px;
	}
	.bigeasy-emergency-banner__icon { display: none; } /* drop the warning icon at ultra-narrow widths to keep banner single-line */
}

/* ============================================================
   Header (refined for Sonic Boom — stays sticky below emergency banner)
   ============================================================ */

/* D9 Sub-item 1 (2026-05-14) · Header 3D elevation feel · sister to D8 trust-strip
   pattern (commit f12b280). Layered shadow + bottom-only radius + inset bottom-edge
   separator so the header reads as elevated above the page surface. Border-bottom
   removed in favor of the inset highlight + outer shadow (cleaner depth cue).
   Z-index 100 preserved · sits below the emergency banner in source order so the
   banner scrolls away and the header pins clean at top:0.
   D10-A (2026-05-14) · bg switched white → navy-900 (sitewide dark header · matches
   footer treatment · blends with hero). Inset bottom-edge separator switched from
   navy-tinted (invisible on navy bg) to white-tinted at low alpha for legibility.
   3D shadow stack preserved. */
.bigeasy-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--white);
	border-radius: 0 0 16px 16px;
	box-shadow:
		0 8px 24px rgba(2, 21, 90, 0.18),
		0 2px 4px rgba(2, 21, 90, 0.10),
		inset 0 -1px 0 rgba(255, 255, 255, 0.06);
	transition: box-shadow var(--bigeasy-transition-base);
}

.bigeasy-header.is-scrolled {
	box-shadow:
		0 12px 32px rgba(2, 21, 90, 0.28),
		0 4px 8px rgba(2, 21, 90, 0.14),
		inset 0 -1px 0 rgba(255, 255, 255, 0.08);
}

@media (max-width: 768px) {
	.bigeasy-header {
		border-radius: 0 0 12px 12px;
		box-shadow:
			0 4px 12px rgba(2, 21, 90, 0.16),
			inset 0 -1px 0 rgba(255, 255, 255, 0.06);
	}
	.bigeasy-header.is-scrolled {
		box-shadow:
			0 6px 16px rgba(2, 21, 90, 0.22),
			inset 0 -1px 0 rgba(255, 255, 255, 0.08);
	}
}

@media (prefers-reduced-motion: reduce) {
	.bigeasy-header { transition: none; }
}

/* D10-A · Hand-rolled brand link (replaces wp:site-logo block). Mirrors the footer
   white-logo treatment so header + footer brand marks read as a unified system.
   D10-G (2026-05-14) · Logo size bumped one step per operator (200 → 240 desktop ·
   160 → 200 tablet · 140 → 160 mobile · matches footer 240×144 dimensions for
   header/footer brand consistency). */
.bigeasy-header__brand-link {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
}
.bigeasy-header__logo {
	display: block;
	max-width: 240px;
	height: auto;
}
@media (min-width: 1024px) and (max-width: 1279px) {
	.bigeasy-header__logo { max-width: 200px; }
}
@media (max-width: 767px) {
	.bigeasy-header__logo { max-width: 160px; }
}

/* D10-A · Nav menu text white on dark header. Hover/focus tint orange-400 (matches
   the focus-ring pattern used elsewhere · stays AA-Large compliant on navy bg).
   D10-G (2026-05-14) · text-transform uppercase + letter-spacing bump per operator
   (uppercase needs more tracking for legibility · 0.06em is the standard guideline). */
.bigeasy-header .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--white);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.bigeasy-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.bigeasy-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--orange-400);
}
/* Mega-menu dropdown items stay sentence-case (uppercase nav items · sentence-case
   submenu items keeps depth-cue + lets the long submenu labels stay readable) */
@media (min-width: 768px) {
	.wp-block-navigation .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		text-transform: none;
		letter-spacing: normal;
	}
}
/* gsd-route-emergency-justified */
/* Submenu trigger arrow inherits white */
.bigeasy-header .wp-block-navigation__submenu-icon { color: currentColor; }
/* Mobile drawer hamburger (open + close icons) inherits white from textColor:white */
.bigeasy-header .wp-block-navigation__responsive-container-open svg,
.bigeasy-header .wp-block-navigation__responsive-container-close svg {
	fill: var(--wp--preset--color--white);
}

/* H.1 (2026-05-18) · Mobile drawer FIX · WP core defaults the opened drawer
   background to #fff when the nav block has no .has-background class. The header
   nav uses textColor:white (correct for dark header) but does NOT declare
   backgroundColor on the wp:navigation block · result on mobile when the
   responsive container goes position:fixed full-screen: white text on white
   background = invisible items. Fix: force navy bg matching dark header.
   !important needed to beat WP core's `:not(.has-background)` 4-class
   specificity. Also re-affirm white text on the drawer items (was inherited
   from parent header's color cascade on desktop, breaks on mobile full-screen).
   Sonic Adviser scope · Sonic project theme · NOT CS project theme · CS GSD-route
   hook fires path-pattern-wide on theme/ · marker logs to telemetry. */
.bigeasy-header .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--navy-900) !important;
}
.bigeasy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.bigeasy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label {
	color: var(--wp--preset--color--white);
}

/* H.4 (2026-05-18) · Mobile drawer overlap + padding fix · operator screenshot @ iPhone 9:58
   showed orange emergency banner (z:110) covering the top of the opened drawer, hiding the
   WP close (X) button AND clipping the first menu item ("SERVICES" parent label). WP core
   sets the open drawer to position:fixed but no z-index, so any positioned element with a
   z-index >= 1 overlays the top of the drawer. Fix: bump drawer to z:200 so it owns the
   viewport when open (covers banner + sticky header + sticky CTA). Also enforces top/side
   padding so the first menu item clears the close button (~48px @ top-right) and items
   have a consistent left/right gutter. Bottom padding keeps the last item above the sticky
   mobile CTA strip (~64px tall). !important required to beat WP core specificity. */
.bigeasy-header .wp-block-navigation__responsive-container.is-menu-open {
	z-index: 200 !important;
	padding: 72px 24px 96px !important;
}
/* Ensure the close (X) button itself sits inside the safe zone — WP places it absolute
   top-right · re-affirm offset so it's tappable + not flush against the viewport edge */
.bigeasy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	top: 20px;
	right: 20px;
}

/* D10-A · Phone link white on dark header · hover orange-400 (5.4:1 on navy AA Normal) */
.bigeasy-header__phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--wp--preset--color--white);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--outfit);
	font-weight: 600;
	font-size: 15px;
	white-space: nowrap; /* F4 · prevent phone number wrap into 2 lines in the header */
	transition: color var(--bigeasy-transition-fast);
}
.bigeasy-header__phone-text { white-space: nowrap; }

.bigeasy-header__phone:hover,
.bigeasy-header__phone:focus-visible { color: var(--wp--preset--color--orange-400); }

@media (max-width: 768px) {
	.bigeasy-header__phone-text { display: none; }
}

/* ============================================================
   Hero — FULL-BLEED PHOTO-DOMINANT (Sonic Boom rebuild)
   ============================================================ */

.bigeasy-hero--full {
	position: relative;
	min-height: 88vh;
	overflow: hidden;
	isolation: isolate;
	display: flex;
	align-items: center;
	color: var(--wp--preset--color--white);
	margin-block: 0 !important;
}

.bigeasy-hero__bg {
	position: absolute;
	inset: 0;
	/* Stage 5.5 · Subject #1 hero — finished basement living area · sends "Relief + trust" 10-second signal per BRAND-BRIEF §6 */
	background-image: url('../images/hero-homepage.png');
	background-size: cover;
	background-position: center 50%;
	z-index: -2;
	transform: scale(1.02);
	transition: transform 12s ease-out;
}

.bigeasy-hero--full.is-revealed .bigeasy-hero__bg {
	transform: scale(1);
}

/* F.5 (2026-05-17) · Hero motion video layer.
   Hidden by default; bigeasy-hero__video.is-ready (set by JS once we confirm
   the MP4 actually loaded AND prefers-reduced-motion is no-preference)
   reveals it on top of .bigeasy-hero__bg image. */
.bigeasy-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -1;
	opacity: 0;
	pointer-events: none;
	transition: opacity 800ms ease-in;
}
.bigeasy-hero__video.is-ready {
	opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
	.bigeasy-hero__video { display: none !important; }
}
/* gsd-route-emergency-justified */
/* H.3 (2026-05-18) · Mobile perf fix · hide hero video on mobile widths.
   2.4MB Pexels MP4 autoplay was tanking mobile Lighthouse (67/100). Belt-and-
   suspenders with JS counterpart in sonic-boom.js (removes element entirely
   from DOM at <768px viewport to prevent source download · not just paint).
   Above 768px the video behaves normally per F.5/F.5b spec. */
@media (max-width: 767px) {
	.bigeasy-hero__video { display: none !important; }
}

.bigeasy-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(95deg,
			rgba(2, 21, 90, 0.93) 0%,
			rgba(2, 21, 90, 0.85) 28%,
			rgba(2, 21, 90, 0.55) 60%,
			rgba(2, 21, 90, 0.35) 100%),
		linear-gradient(180deg,
			rgba(2, 21, 90, 0) 60%,
			rgba(2, 21, 90, 0.75) 100%);
	z-index: -1;
}

.bigeasy-hero__content {
	width: 100%;
	max-width: 1320px;
	margin: 0 auto;
	padding: 96px 24px;
	position: relative;
	z-index: 1;
}

.bigeasy-hero__inner {
	max-width: 720px;
}

.bigeasy-hero__eyebrow {
	color: var(--wp--preset--color--orange-400);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin: 0 0 20px;
}

/* D9 Sub-item 3-fix (2026-05-14) · Eyebrow utility class · star + label cluster.
   .bigeasy-eyebrow lives alongside .bigeasy-hero__eyebrow on the hero element so
   downstream sections can reuse the same star+label pattern (e.g., reviews, proof)
   without re-stating positioning + alignment. Stars use brand-orange-400 to match
   the reviews-slider star color from Sub-item 2 (commit f1177f8). */
.bigeasy-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.bigeasy-eyebrow__stars {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-right: 6px;
	color: var(--wp--preset--color--orange-400);
}
.bigeasy-star { display: block; }
.bigeasy-eyebrow__label {
	/* Inherits parent .bigeasy-hero__eyebrow letter-spacing + uppercase + color */
}

/* D9 Sub-item 3-fix (2026-05-14) · Hero lede · keyword/geo-rich first paragraph.
   Relocated from former .bigeasy-promise__lede (Sub-item 3 reverted) to live
   inside the hero text column directly under H1. */
.bigeasy-hero__lede {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: clamp(17px, 1.7vw, 19px);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.92);
	margin: 0 0 24px;
	max-width: 620px;
}

.bigeasy-hero__headline {
	font-family: var(--wp--preset--font-family--playfair);
	/* D10-B (2026-05-14) · H1 size reduction one step per operator (was clamp(40px, 4vw + 1rem, 76px)).
	   Desktop max 76→56 · mobile min 40→32 · keeps proportional clamp curve. */
	font-size: clamp(2rem, 4.5vw, 3.5rem);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--white);
	margin: 0 0 28px;
}

.bigeasy-hero__headline em {
	color: var(--wp--preset--color--orange-400);
	font-style: italic;
}

/* Stage 5.5 · Pattern B + B.1 keyword H2 subhead.
   Note: operator spec said navy-900 on white per STYLE-GUIDE §1.3, but hero context is navy-gradient
   bg → using white-95% for cohesion (15.6:1 AAA vs navy-900 hero bg). Distinct from .bigeasy-hero__subhead
   below (smaller, body explainer). Sits between H1 and explainer-P. */
.bigeasy-hero__h2-keyword {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: clamp(20px, 0.9vw + 1rem, 24px);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -0.005em;
	color: rgba(255, 255, 255, 0.95);
	margin: 0 0 32px;
	max-width: 720px;
}

.bigeasy-hero__subhead {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: clamp(17px, 0.5vw + 1rem, 20px);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.92);
	margin: 0 0 36px;
	max-width: 600px;
}

.bigeasy-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 20px;
}

.bigeasy-hero__assurance {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.7);
	margin: 0 0 48px;
}

.bigeasy-hero__trust {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	padding: 20px 0 0;
	margin: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.bigeasy-hero__trust li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.92);
}

.bigeasy-hero__trust svg {
	color: var(--wp--preset--color--orange-400);
	flex-shrink: 0;
}

.bigeasy-hero__scrollhint {
	position: absolute;
	bottom: 32px;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255, 255, 255, 0.7);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	z-index: 2;
}

.bigeasy-hero__scrollhint svg {
	animation: bigeasy-bounce 2s ease-in-out infinite;
}

@keyframes bigeasy-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(6px); }
}

@media (max-width: 768px) {
	.bigeasy-hero--full {
		min-height: 92vh;
	}
	.bigeasy-hero__overlay {
		background: linear-gradient(180deg, rgba(2, 21, 90, 0.65) 0%, rgba(2, 21, 90, 0.92) 100%);
	}
	.bigeasy-hero__content {
		padding: 80px 20px 64px;
	}
	.bigeasy-hero__trust {
		gap: 16px;
	}
	.bigeasy-hero__scrollhint { display: none; }
}

/* ============================================================
   Button system (Sonic Boom unified)
   ============================================================ */

.bigeasy-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--wp--preset--font-family--outfit);
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--bigeasy-radius-md);
	transition: all var(--bigeasy-transition-base);
	cursor: pointer;
	border: 2px solid transparent;
	white-space: nowrap;
}

.bigeasy-btn--lg {
	font-size: 17px;
	padding: 18px 32px;
}

.bigeasy-btn--md {
	font-size: 15px;
	padding: 12px 22px;
}

.bigeasy-btn--primary {
	background: var(--wp--preset--color--orange-500);
	color: var(--wp--preset--color--white);
	box-shadow: 0 4px 14px rgba(236, 114, 0, 0.35);
}

.bigeasy-btn--primary:hover {
	background: var(--wp--preset--color--orange-600);
	color: var(--wp--preset--color--white);
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(236, 114, 0, 0.45);
}

.bigeasy-btn--primary .bigeasy-btn__arrow {
	transition: transform var(--bigeasy-transition-base);
}

.bigeasy-btn--primary:hover .bigeasy-btn__arrow {
	transform: translateX(4px);
}

.bigeasy-btn--ghost {
	background: rgba(255, 255, 255, 0.08);
	color: var(--wp--preset--color--white);
	border: 2px solid rgba(255, 255, 255, 0.55);
	backdrop-filter: blur(6px);
}

.bigeasy-btn--ghost:hover {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy-900);
	border-color: var(--wp--preset--color--white);
}

.bigeasy-btn--outline {
	background: transparent;
	color: var(--wp--preset--color--navy-900);
	border: 2px solid var(--wp--preset--color--navy-900);
}

.bigeasy-btn--outline:hover {
	background: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--white);
}

/* Legacy block CTA styles preserved for backwards compat with Stage 3 markup */
.bigeasy-cta .wp-block-button__link {
	transition: background-color var(--bigeasy-transition-fast),
				transform var(--bigeasy-transition-fast),
				box-shadow var(--bigeasy-transition-fast);
}

/* Stage 6 a11y fix · 2026-05-13 (cleanup re-run · operator Option B at 20px bold)
   White text on orange #EC7200 = 3.3:1 → fails WCAG 2.1 AA 1.4.3 at 16px.
   Bumping CTA text to 20px bold (above 18.67px-bold large-text threshold)
   shifts the check to 1.4.3's 3:1 large-text rule, which 3.3:1 passes.
   Operator-approved (ACCESSIBILITY-QA-REPORT.md flag 1, Option B variant). */
.wp-block-button__link.has-orange-500-background-color,
.bigeasy-cta .wp-block-button__link,
.bigeasy-btn--primary,
.bigeasy-btn.bigeasy-btn--primary,
a.bigeasy-btn--primary {
	font-size: 20px !important;
	font-weight: 700 !important; /* override Stage 3 inline style="font-weight:600" — required for WCAG large-bold-text classification */
	line-height: 1.3;
}

.bigeasy-cta--primary .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--orange-600) !important;
	transform: translateY(-1px);
	box-shadow: var(--wp--preset--shadow--cta);
}

.bigeasy-cta--secondary .wp-block-button__link:hover {
	background: var(--wp--preset--color--white) !important;
	color: var(--wp--preset--color--navy-900) !important;
}

/* ============================================================
   Section 2: PROBLEM — three trigger cards
   ============================================================ */

.bigeasy-problem {
	padding: clamp(64px, 8vw, 120px) 24px;
	background: var(--wp--preset--color--off-white);
}

.bigeasy-problem__inner {
	max-width: 1320px;
	margin: 0 auto;
}

.bigeasy-problem__header {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 56px;
}

.bigeasy-problem__eyebrow {
	color: var(--wp--preset--color--orange-700);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin: 0 0 16px;
}

.bigeasy-problem__heading {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(30px, 3vw + 0.5rem, 48px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 16px;
}

.bigeasy-problem__sub {
	font-size: clamp(17px, 0.5vw + 1rem, 19px);
	color: var(--wp--preset--color--ink-700);
	line-height: 1.55;
	margin: 0;
}

.bigeasy-problem__cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
}

.bigeasy-trigger-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-lg);
	padding: 36px 32px;
	transition: transform var(--bigeasy-transition-base), box-shadow var(--bigeasy-transition-base), border-color var(--bigeasy-transition-base);
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.bigeasy-trigger-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--lg);
	border-color: var(--wp--preset--color--orange-400);
}

.bigeasy-trigger-card__icon {
	width: 48px;
	height: 48px;
	border-radius: var(--bigeasy-radius-md);
	background: var(--wp--preset--color--navy-100);
	color: var(--wp--preset--color--navy-900);
	display: flex;
	align-items: center;
	justify-content: center;
}

.bigeasy-trigger-card--emergency .bigeasy-trigger-card__icon {
	background: rgba(236, 114, 0, 0.12);
	color: var(--wp--preset--color--orange-600);
}

.bigeasy-trigger-card__title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 24px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	margin: 0;
}

.bigeasy-trigger-card__body {
	color: var(--wp--preset--color--ink-700);
	font-size: 16px;
	line-height: 1.6;
	margin: 0;
	flex: 1;
}

.bigeasy-trigger-card__cta {
	color: var(--wp--preset--color--orange-700);
	font-weight: 600;
	text-decoration: none;
	font-size: 15px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
}

.bigeasy-trigger-card__cta:hover {
	color: var(--wp--preset--color--navy-900);
}

.bigeasy-trigger-card__cta svg {
	transition: transform var(--bigeasy-transition-base);
}

.bigeasy-trigger-card__cta:hover svg {
	transform: translateX(3px);
}

/* ============================================================
   Section 3: PROOF — stats with counter animation + trust badges + testimonial
   ============================================================ */

.bigeasy-proof {
	padding: clamp(64px, 8vw, 120px) 24px;
	background: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--white);
	position: relative;
	overflow: hidden;
}

.bigeasy-proof::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at top left, rgba(236, 114, 0, 0.08), transparent 50%);
	pointer-events: none;
}

.bigeasy-proof__inner {
	max-width: 1320px;
	margin: 0 auto;
	position: relative;
}

.bigeasy-proof__heading {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(30px, 3vw + 0.5rem, 48px);
	font-weight: 700;
	line-height: 1.1;
	color: var(--wp--preset--color--white);
	text-align: center;
	margin: 0 0 24px;
	max-width: 720px;
	margin-inline: auto;
}

/* D9 Sub-item 4 (2026-05-14) · Lede paragraph below proof H2.
   Light text on navy-900 bg · matches .bigeasy-hero__lede pattern. */
.bigeasy-proof__lede {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: clamp(17px, 1.7vw, 19px);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.92);
	text-align: center;
	max-width: 760px;
	margin: 0 auto 48px;
}

.bigeasy-proof__stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 32px;
	margin-bottom: 64px;
	padding-bottom: 64px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.bigeasy-stat {
	text-align: center;
}

.bigeasy-stat__number {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(48px, 5vw + 1rem, 80px);
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--orange-400);
	display: block;
	margin-bottom: 12px;
}

.bigeasy-stat__suffix {
	font-size: 0.6em;
	color: rgba(255, 255, 255, 0.7);
	margin-left: 4px;
}

.bigeasy-stat__label {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.bigeasy-stat[data-content-pending] .bigeasy-stat__number {
	color: var(--wp--preset--color--orange-400);
	font-size: clamp(20px, 2vw + 0.5rem, 28px);
	letter-spacing: 0;
	text-transform: none;
}

.bigeasy-trust-badges {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px;
	margin-bottom: 64px;
}

.bigeasy-trust-badge {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--bigeasy-radius-md);
	padding: 12px 20px;
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	color: rgba(255, 255, 255, 0.9);
}

.bigeasy-trust-badge svg {
	color: var(--wp--preset--color--orange-400);
	flex-shrink: 0;
}

.bigeasy-trust-badge[data-content-pending] {
	border-style: dashed;
	border-color: var(--wp--preset--color--orange-400);
}

/* D5 Item 1 (2026-05-13) · Visible "PENDING" pseudo-element retired.
   Operator-facing dashed-border signal above is preserved as a build hint;
   the visitor-facing text label has been removed because real credentials are
   pending operator provisioning, not pending verification by visitors. */

/* ============================================================
   Section 4: SOLUTION — contrarian framing + 6 services
   ============================================================ */

.bigeasy-solution {
	padding: clamp(64px, 8vw, 120px) 24px;
	background: var(--wp--preset--color--off-white);
}

.bigeasy-solution__inner {
	max-width: 1320px;
	margin: 0 auto;
}

.bigeasy-solution__lead {
	max-width: 900px;
	margin: 0 auto 72px;
	text-align: center;
}

.bigeasy-solution__eyebrow {
	color: var(--wp--preset--color--orange-700);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin: 0 0 16px;
}

.bigeasy-solution__heading {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(32px, 3.5vw + 0.5rem, 56px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 24px;
}

.bigeasy-solution__body {
	font-size: clamp(17px, 0.5vw + 1rem, 19px);
	color: var(--wp--preset--color--ink-700);
	line-height: 1.6;
	margin: 0 0 16px;
}

.bigeasy-solution__services {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
}

.bigeasy-service-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-lg);
	padding: 28px;
	/* D7 Sub-item 3 (2026-05-14) · Premium hover pattern: gradient sweep + icon morph
	   + orange accent border slide-in. Anti-generic-AI per LESSON-S3 — no canned
	   image-reveal or generic shadow-bump. Compositor-only (transform + opacity). */
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: transform 260ms ease, border-color 260ms ease, box-shadow 260ms ease;
}
.bigeasy-service-card::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg,
		var(--wp--preset--color--navy-100, rgba(2,21,90,0.04)) 0%,
		var(--wp--preset--color--white) 60%);
	opacity: 0;
	transition: opacity 260ms ease;
	z-index: -1;
	pointer-events: none;
}
.bigeasy-service-card::after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: var(--wp--preset--color--orange-500);
	transform: scaleY(0);
	transform-origin: top;
	transition: transform 320ms cubic-bezier(0.65, 0, 0.35, 1);
	pointer-events: none;
}
.bigeasy-service-card:hover,
.bigeasy-service-card:focus-within {
	transform: translateY(-6px);
	border-color: var(--wp--preset--color--orange-500);
	box-shadow: 0 14px 32px rgba(2, 21, 90, 0.14);
}
.bigeasy-service-card:hover::before,
.bigeasy-service-card:focus-within::before { opacity: 1; }
.bigeasy-service-card:hover::after,
.bigeasy-service-card:focus-within::after { transform: scaleY(1); }

.bigeasy-service-card__icon {
	width: 36px;
	height: 36px;
	color: var(--wp--preset--color--navy-900);
	margin-bottom: 16px;
	transition: color 260ms ease, transform 260ms ease;
}
.bigeasy-service-card:hover .bigeasy-service-card__icon,
.bigeasy-service-card:focus-within .bigeasy-service-card__icon {
	color: var(--wp--preset--color--orange-500);
	transform: scale(1.12);
}

/* D10-F (2026-05-14) · Stretched-link click-through pattern · each service card
   becomes a single click target navigating to its hub page. Link sits at z:5
   (above hover overlay z:1, text z:2, accent border z:3) so it captures clicks
   anywhere on the card. Visible content under the link stays accessible to AT
   via aria-label on the link + sr-only span (link has accessible name even with
   no visible text). Card hover/focus-within still fires through the article
   wrapper, so D10-C overlay slide-up + D7 hover stack still trigger. */
.bigeasy-service-card { /* ensure positioning context for stretched link */ }
.bigeasy-service-card__link {
	position: absolute;
	inset: 0;
	z-index: 5;
	text-decoration: none;
	border-radius: inherit;
}
.bigeasy-service-card__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange-400);
	outline-offset: -3px;
}
/* Cursor signal: hovering anywhere on the card is a clickable affordance */
.bigeasy-service-card { cursor: pointer; }

/* D10-C (2026-05-14) · Service-card hover image overlay · 6 cards each get a slide-up
   image (matching service hub hero) tinted by navy multiply blend. Coexists with D7
   hover stack: D7 ::before gradient sits at z:-1 (under the overlay), D7 ::after
   orange accent border bumped to z:3 (sits above the overlay so it stays as a brand
   accent). Card text + icon become white on hover and lift to z:2 for legibility on
   the image. Mobile (no hover-pointer) gets no overlay reveal. Reduced-motion gets
   no transition. */
.bigeasy-service-card__hover-overlay {
	position: absolute;
	inset: 0;
	transform: translateY(100%);
	transition: transform 350ms cubic-bezier(0.4, 0, 0.2, 1);
	pointer-events: none;
	z-index: 1;
	overflow: hidden;
	border-radius: inherit;
}
.bigeasy-service-card__hover-image {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
.bigeasy-service-card__hover-tint {
	position: absolute;
	inset: 0;
	background-color: var(--wp--preset--color--navy-900);
	mix-blend-mode: multiply;
	opacity: 0.55;
	pointer-events: none;
}
/* Bump the D7 orange accent border above the overlay so it stays as a brand frame */
.bigeasy-service-card::after { z-index: 3; }

@media (hover: hover) and (pointer: fine) {
	.bigeasy-service-card:hover .bigeasy-service-card__hover-overlay,
	.bigeasy-service-card:focus-within .bigeasy-service-card__hover-overlay {
		transform: translateY(0);
	}
	/* Card text + icon turn white + lift above the image overlay */
	.bigeasy-service-card:hover .bigeasy-service-card__title,
	.bigeasy-service-card:focus-within .bigeasy-service-card__title,
	.bigeasy-service-card:hover .bigeasy-service-card__body,
	.bigeasy-service-card:focus-within .bigeasy-service-card__body {
		color: var(--wp--preset--color--white);
		position: relative;
		z-index: 2;
	}
	/* D7 icon morph still applies (orange-500 + scale 1.12) but bumped to z:2 above
	   the overlay so it remains visible. Orange icon on dark navy-tint reads cleanly. */
	.bigeasy-service-card:hover .bigeasy-service-card__icon,
	.bigeasy-service-card:focus-within .bigeasy-service-card__icon {
		position: relative;
		z-index: 2;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bigeasy-service-card,
	.bigeasy-service-card::before,
	.bigeasy-service-card::after,
	.bigeasy-service-card__icon,
	.bigeasy-service-card__hover-overlay { transition: none; }
	.bigeasy-service-card:hover,
	.bigeasy-service-card:focus-within { transform: none; }
	.bigeasy-service-card:hover .bigeasy-service-card__icon,
	.bigeasy-service-card:focus-within .bigeasy-service-card__icon { transform: none; }
	.bigeasy-service-card:hover::after,
	.bigeasy-service-card:focus-within::after { transform: scaleY(1); }
}

.bigeasy-service-card__title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 20px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 8px;
}

.bigeasy-service-card__body {
	color: var(--wp--preset--color--ink-700);
	font-size: 15px;
	line-height: 1.55;
	margin: 0;
}

/* ============================================================
   Section 5: EVIDENCE — before/after slots + 2nd testimonial
   ============================================================ */

.bigeasy-evidence {
	padding: clamp(64px, 8vw, 120px) 24px;
	background: var(--wp--preset--color--navy-50);
}

.bigeasy-evidence__inner {
	max-width: 1320px;
	margin: 0 auto;
}

.bigeasy-evidence__header {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 56px;
}

.bigeasy-evidence__heading {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(30px, 3vw + 0.5rem, 48px);
	font-weight: 700;
	line-height: 1.1;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 16px;
}

.bigeasy-evidence__sub {
	font-size: clamp(16px, 0.5vw + 0.9rem, 18px);
	color: var(--wp--preset--color--ink-700);
	margin: 0;
}

/* D9 Sub-item 4 (2026-05-14) · Lede paragraph below evidence H2.
   Dark text on white bg · matches .bigeasy-hero__lede pattern but inverted color. */
.bigeasy-evidence__lede {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: clamp(17px, 1.7vw, 19px);
	line-height: 1.55;
	color: var(--wp--preset--color--ink-700);
	text-align: center;
	max-width: 780px;
	margin: 0 auto 32px;
}

.bigeasy-case-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 32px;
	margin-bottom: 64px;
}

.bigeasy-case {
	background: var(--wp--preset--color--white);
	border-radius: var(--bigeasy-radius-lg);
	overflow: hidden;
	box-shadow: var(--wp--preset--shadow--sm);
	display: flex;
	flex-direction: column;
	position: relative;
}

.bigeasy-case__images {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px;
	background: var(--wp--preset--color--ink-200);
}
/* D8 Combined Commit A+B (2026-05-14) · Single-image variant collapses the dual-pair grid.
   Adviser 5 Option B approved · 12 regen images replace 24 Stage 5.5 Nano Banana files
   that had panel-split + L-082 violations. Cards now show one image each, no Before/After
   labels (those labels were paired-presentation chrome; meaningless on single-image). */
.bigeasy-case__images:has(.bigeasy-case__image--single) {
	grid-template-columns: 1fr;
	background: transparent;
}
.bigeasy-case__image--single {
	aspect-ratio: 3 / 2;
	min-height: 0;
}
.bigeasy-case__image--single::before { content: none; }

/* D6 Sub-item 5 (2026-05-13) · Orange dashed border + CONTENT-PENDING ::after retired.
   Build hints no longer needed now that D5 Item 5 wired 264 real evidence images.
   The .bigeasy-case__image[data-label]::before badge rule at line ~2913 still renders
   the BEFORE/AFTER label on the wired images — that is the intentional, visitor-facing
   chrome. The retired rules below were operator-facing scaffolding. */
.bigeasy-case__image {
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--navy-100);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--navy-900);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	position: relative;
}

.bigeasy-case__body {
	/* Stage 5.5.1 Batch 5 (2026-05-13) · operator directive — hide visible meta+title under evidence images.
	   Lead-gen reframe · markup preserved for potential future enable. sr-only legal disclaimer (per Batch 1) stays. */
	display: none;
	padding: 24px 28px 28px;
}

.bigeasy-case__meta {
	/* G.2 (2026-05-17) · WCAG AA · orange-600 #D26500 = 3.75:1 on white (fails) → orange-700 #A65500 = 5.27:1 */
	color: var(--wp--preset--color--orange-700);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 8px;
}

.bigeasy-case__title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 20px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 8px;
	line-height: 1.3;
}

.bigeasy-case__body [data-content-pending] {
	/* G.2 · orange-600 fails contrast on white · orange-700 5.27:1 passes AA */
	color: var(--wp--preset--color--orange-700);
	font-style: italic;
}

/* ============================================================
   Section 6: ACTION — multi-step inspection form
   ============================================================ */

.bigeasy-action {
	padding: clamp(64px, 8vw, 120px) 24px;
	background: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--white);
	position: relative;
	overflow: hidden;
}

.bigeasy-action::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at bottom right, rgba(236, 114, 0, 0.12), transparent 55%);
	pointer-events: none;
}

.bigeasy-action__inner {
	max-width: 1140px;
	margin: 0 auto;
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}

@media (max-width: 900px) {
	.bigeasy-action__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}
}

.bigeasy-action__heading {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(32px, 3.5vw + 0.5rem, 56px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--white);
	margin: 0 0 24px;
}

.bigeasy-action__sub {
	font-size: clamp(17px, 0.5vw + 1rem, 19px);
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.85);
	margin: 0 0 32px;
}

.bigeasy-action__bullets {
	list-style: none;
	padding: 0;
	margin: 0 0 36px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.bigeasy-action__bullets li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	color: rgba(255, 255, 255, 0.92);
	font-size: 16px;
}

.bigeasy-action__bullets svg {
	color: var(--wp--preset--color--orange-400);
	flex-shrink: 0;
	margin-top: 3px;
}

.bigeasy-action__phone {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 16px 24px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--bigeasy-radius-md);
	color: var(--wp--preset--color--white);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--outfit);
	transition: all var(--bigeasy-transition-base);
}

.bigeasy-action__phone:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: var(--wp--preset--color--orange-400);
	color: var(--wp--preset--color--white);
}

/* F.9 (2026-05-17) · phone CTA inner-text wrapper.
   <div> was stripped by KSES from inside <a>; refactored to <span>. */
.bigeasy-action__phone-text {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1.2;
}

.bigeasy-action__phone-label {
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.65);
	display: block;
	margin-bottom: 2px;
}

.bigeasy-action__phone-number {
	font-size: 22px;
	font-weight: 600;
	display: block;
}

/* Form card */
.bigeasy-form-card {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink-900);
	border-radius: var(--bigeasy-radius-xl);
	padding: 40px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);
}

@media (max-width: 540px) {
	.bigeasy-form-card { padding: 28px 24px; }
}

.bigeasy-form-card__header {
	margin-bottom: 28px;
}

.bigeasy-form-card__title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 26px;
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 6px;
}

.bigeasy-form-card__sub {
	font-size: 14px;
	color: var(--wp--preset--color--ink-500);
	margin: 0;
}

.bigeasy-form__progress {
	display: flex;
	gap: 6px;
	margin-bottom: 28px;
}

.bigeasy-form__dot {
	flex: 1;
	height: 4px;
	background: var(--wp--preset--color--ink-200);
	border-radius: 2px;
	transition: background var(--bigeasy-transition-base);
}

.bigeasy-form__dot.is-active {
	background: var(--wp--preset--color--orange-500);
}

.bigeasy-form__step {
	display: none;
}

.bigeasy-form__step.is-active {
	display: block;
	animation: bigeasy-step-in 280ms ease-out;
}

@keyframes bigeasy-step-in {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

.bigeasy-form__step-label {
	font-size: 12px;
	font-weight: 600;
	/* G.2 · orange-600 fails contrast on white form card · orange-700 5.27:1 passes AA */
	color: var(--wp--preset--color--orange-700);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0 0 8px;
}

.bigeasy-form__step-title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 22px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 20px;
	line-height: 1.3;
}

.bigeasy-form__choices {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 24px;
}

.bigeasy-form__choice {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	border: 2px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md);
	cursor: pointer;
	transition: all var(--bigeasy-transition-fast);
	background: var(--wp--preset--color--white);
}

.bigeasy-form__choice:hover {
	border-color: var(--wp--preset--color--orange-400);
	background: var(--wp--preset--color--orange-100);
}

.bigeasy-form__choice input[type="radio"] {
	margin: 0;
	accent-color: var(--wp--preset--color--orange-500);
}

.bigeasy-form__choice input[type="radio"]:checked + .bigeasy-form__choice-label {
	color: var(--wp--preset--color--navy-900);
	font-weight: 600;
}

.bigeasy-form__choice:has(input:checked) {
	border-color: var(--wp--preset--color--orange-500);
	background: var(--wp--preset--color--orange-100);
}

.bigeasy-form__choice-label {
	flex: 1;
	color: var(--wp--preset--color--ink-700);
}

.bigeasy-form__field {
	margin-bottom: 16px;
}

.bigeasy-form__label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--ink-700);
	margin-bottom: 6px;
}

.bigeasy-form__input,
.bigeasy-form__select {
	/* E-followup-2 (2026-05-16) · box-sizing: border-box added · was content-box
	   causing input width=100% + padding 32px + border 3.2px = 35px overflow past
	   parent .bigeasy-form__field on Step 3 (and all steps) · operator visual
	   complaint "more space on left than right" was actually input bleeding past
	   right edge of step container, leaving asymmetric breathing room in the card */
	box-sizing: border-box;
	width: 100%;
	padding: 14px 16px;
	border: 2px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 16px;
	color: var(--wp--preset--color--ink-900);
	background: var(--wp--preset--color--white);
	transition: border-color var(--bigeasy-transition-fast);
}

.bigeasy-form__input:focus,
.bigeasy-form__select:focus {
	outline: none;
	border-color: var(--wp--preset--color--orange-500);
}

.bigeasy-form__input.is-error,
.bigeasy-form__select.is-error {
	border-color: var(--wp--preset--color--error);
}

/* D7 Sub-item 3.5 (2026-05-14) · File-upload field on hero form Step 3.
   UI only — backend transmission fires when WPForms/Gravity Forms swap lands. */
.bigeasy-form__field--upload { margin-bottom: 20px; }
.bigeasy-form__label-optional {
	font-weight: 400;
	color: var(--wp--preset--color--ink-500);
	font-size: 12px;
	margin-left: 4px;
}
.bigeasy-form__helper {
	font-size: 12px;
	color: var(--wp--preset--color--ink-500);
	line-height: 1.45;
	margin: 0 0 10px;
}
.bigeasy-form__dropzone {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 20px 16px;
	border: 2px dashed var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink-700);
	text-align: center;
	cursor: pointer;
	transition: border-color 200ms ease, background-color 200ms ease, color 200ms ease;
	font-family: var(--wp--preset--font-family--outfit);
}
.bigeasy-form__dropzone:hover,
.bigeasy-form__dropzone:focus-within,
.bigeasy-form__dropzone.is-dragover {
	border-color: var(--wp--preset--color--orange-500);
	background: var(--wp--preset--color--off-white);
}
.bigeasy-form__dropzone-icon { color: var(--wp--preset--color--orange-500); }
.bigeasy-form__dropzone-text { font-size: 14px; }
.bigeasy-form__dropzone-text strong {
	color: var(--wp--preset--color--orange-700);
	font-weight: 700;
}
.bigeasy-form__dropzone-meta {
	font-size: 11px;
	color: var(--wp--preset--color--ink-500);
}
.bigeasy-form__file-input {
	/* Visually hidden but accessible — click-target is the parent <label> dropzone */
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}
.bigeasy-form__file-input:focus-visible + .bigeasy-form__dropzone-text,
.bigeasy-form__dropzone:has(.bigeasy-form__file-input:focus-visible) {
	outline: 2px solid var(--wp--preset--color--orange-500);
	outline-offset: 2px;
}
.bigeasy-form__file-list {
	list-style: none;
	padding: 0;
	margin: 10px 0 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.bigeasy-form__file-list:empty { margin: 0; }
.bigeasy-form__file-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	background: var(--wp--preset--color--off-white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-sm, 4px);
	font-size: 13px;
	font-family: var(--wp--preset--font-family--outfit);
	color: var(--wp--preset--color--navy-900);
}
.bigeasy-form__file-item.is-error {
	border-color: var(--wp--preset--color--error);
	color: var(--wp--preset--color--error);
}
.bigeasy-form__file-name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.bigeasy-form__file-size {
	font-size: 11px;
	color: var(--wp--preset--color--ink-500);
	flex-shrink: 0;
}
.bigeasy-form__file-remove {
	background: transparent;
	border: 0;
	padding: 4px;
	color: var(--wp--preset--color--ink-500);
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
	border-radius: var(--bigeasy-radius-sm, 4px);
}
.bigeasy-form__file-remove:hover,
.bigeasy-form__file-remove:focus-visible {
	color: var(--wp--preset--color--error);
	background: rgba(0, 0, 0, 0.04);
}

/* D6 Sub-item 4 (2026-05-13) · Step 3 visual centering fix.
   Root cause: no justify-content + Step 3's long submit button text
   ("Send my free inspection request") packed both buttons hard left,
   reading as off-center. space-between balances Back ↔ action, and
   :only-child handling pushes Step 1's lone Continue button to the right
   for visual consistency across all 3 steps (action button always on right). */
.bigeasy-form__nav {
	display: flex;
	gap: 12px;
	margin-top: 24px;
	justify-content: space-between;
	flex-wrap: wrap;
}
.bigeasy-form__nav > :only-child {
	margin-left: auto;
}

.bigeasy-form__success {
	text-align: center;
	padding: 24px 0;
}

.bigeasy-form__success-icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--wp--preset--color--success);
	color: var(--wp--preset--color--white);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 20px;
}

.bigeasy-form__success h3 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 26px;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 12px;
}

/* ============================================================
   Mobile sticky CTA (Sonic Boom signature element)
   ============================================================ */

.bigeasy-sticky-cta {
	position: fixed;
	bottom: 16px;
	left: 16px;
	right: 16px;
	z-index: 90;
	display: flex;
	gap: 8px;
	background: var(--wp--preset--color--white);
	padding: 10px;
	border-radius: var(--bigeasy-radius-lg);
	box-shadow: 0 8px 32px rgba(2, 21, 90, 0.25);
	transform: translateY(120%);
	transition: transform 400ms cubic-bezier(0.4, 0, 0.2, 1);
}

.bigeasy-sticky-cta.is-visible {
	transform: translateY(0);
}

.bigeasy-sticky-cta__call,
.bigeasy-sticky-cta__book {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 14px 12px;
	border-radius: var(--bigeasy-radius-md);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--outfit);
	font-weight: 600;
	font-size: 14px;
	transition: all var(--bigeasy-transition-fast);
}

.bigeasy-sticky-cta__call {
	background: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--white);
}

.bigeasy-sticky-cta__call:hover {
	background: var(--wp--preset--color--navy-800);
	color: var(--wp--preset--color--white);
}

.bigeasy-sticky-cta__book {
	background: var(--wp--preset--color--orange-500);
	color: var(--wp--preset--color--white);
}

.bigeasy-sticky-cta__book:hover {
	background: var(--wp--preset--color--orange-600);
	color: var(--wp--preset--color--white);
}

@media (min-width: 900px) {
	.bigeasy-sticky-cta {
		display: none; /* Desktop has persistent header CTA — no need for sticky */
	}
}

/* ============================================================
   Testimonial slot (Sonic Boom polish on Stage 3 base)
   ============================================================ */

/* Stage 5.5 (2026-05-13) · operator directive — hide testimonials sitewide until real customer
   testimonials arrive post-launch. Markup preserved for future swap-in. To re-enable: remove the
   display: none line below OR convert to a theme_mod-gated PHP conditional in functions.php. */
.bigeasy-testimonial {
	display: none !important;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-lg);
	padding: 36px;
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: 28px;
	row-gap: 10px;
	box-shadow: var(--wp--preset--shadow--sm);
	position: relative;
	max-width: 760px;
	margin-inline: auto;
}

.bigeasy-testimonial[data-content-status="pending"] {
	border: 1px dashed var(--wp--preset--color--orange-400);
	background: var(--wp--preset--color--orange-100);
}

.bigeasy-testimonial[data-content-status="pending"]::before {
	content: 'CONTENT-PENDING';
	position: absolute;
	top: 12px;
	right: 16px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--orange-600);
}

.bigeasy-testimonial__photo {
	grid-row: span 2;
}

.bigeasy-testimonial__photo-placeholder {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	background: var(--wp--preset--color--navy-900);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--orange-400);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-align: center;
	line-height: 1.2;
	text-transform: uppercase;
	padding: 8px;
	box-sizing: border-box;
	position: relative;
	overflow: hidden;
}

.bigeasy-testimonial__photo-placeholder::after {
	content: '';
	position: absolute;
	bottom: -8px;
	width: 50px;
	height: 30px;
	border-radius: 50% 50% 0 0;
	background: var(--wp--preset--color--orange-400);
	opacity: 0.45;
}

.bigeasy-testimonial__quote {
	font-family: var(--wp--preset--font-family--playfair);
	font-style: italic;
	font-size: 19px;
	line-height: 1.55;
	color: var(--wp--preset--color--navy-900);
	margin: 0;
}

.bigeasy-testimonial__quote p { margin: 0; }

.bigeasy-testimonial[data-content-status="pending"] .bigeasy-testimonial__quote {
	color: var(--wp--preset--color--orange-600);
	font-style: normal;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 16px;
}

.bigeasy-testimonial__cite {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--ink-700);
}

.bigeasy-testimonial[data-content-status="pending"] .bigeasy-testimonial__cite {
	color: var(--wp--preset--color--orange-600);
}

[data-content-pending] {
	background: linear-gradient(90deg, transparent 0%, rgba(236, 114, 0, 0.06) 50%, transparent 100%);
}

@media (max-width: 640px) {
	.bigeasy-testimonial {
		grid-template-columns: 1fr;
		text-align: center;
		justify-items: center;
		padding: 28px 24px;
	}
}

/* ============================================================
   Footer
   ============================================================ */

.bigeasy-footer a {
	color: var(--wp--preset--color--white);
	text-decoration: none;
	transition: color var(--bigeasy-transition-fast);
}

.bigeasy-footer a:hover { color: var(--wp--preset--color--orange-400); }

/* ============================================================
   Reveal-on-scroll
   ============================================================ */

/* F.2 v3 (2026-05-17 · operator: "why am I seeing a giant white space on /faq/ still?"):
   The opacity:0 default was leaving below-fold sections invisible until each
   crossed the IntersectionObserver threshold. On long pages (FAQ hub = 11k px)
   the user lands, sees ~600px of content, then a wall of white until they
   scroll through each section's reveal.

   Fix: keep the transform slide-in (visual delight), drop the opacity fade
   so sections are ALWAYS visible. Below-fold content paints immediately. */
@media (prefers-reduced-motion: no-preference) {
	html.js [data-bigeasy-reveal] {
		transform: translateY(16px);
		transition: transform var(--bigeasy-transition-slow);
		will-change: transform;
	}
	html.js [data-bigeasy-reveal].is-revealed {
		transform: translateY(0);
	}
	html.js [data-bigeasy-reveal-stagger] > * {
		transform: translateY(14px);
		transition: transform 600ms ease-out;
	}
	html.js [data-bigeasy-reveal-stagger].is-revealed > * {
		transform: translateY(0);
	}
	html.js [data-bigeasy-reveal-stagger].is-revealed > *:nth-child(2) { transition-delay: 80ms; }
	html.js [data-bigeasy-reveal-stagger].is-revealed > *:nth-child(3) { transition-delay: 160ms; }
	html.js [data-bigeasy-reveal-stagger].is-revealed > *:nth-child(4) { transition-delay: 240ms; }
	html.js [data-bigeasy-reveal-stagger].is-revealed > *:nth-child(5) { transition-delay: 320ms; }
	html.js [data-bigeasy-reveal-stagger].is-revealed > *:nth-child(6) { transition-delay: 400ms; }
}

/* ============================================================
   LAYOUT FIX — full-bleed sections + 1080px content (Stage 3.5.1)
   ----------------------------------------------------------------
   Applied after Playwright empirical scan revealed sections rendered
   at 720px contentSize. Forces full-bleed breakout via alignfull +
   standardizes inner content wrapper to .bigeasy-section__inner.

   theme.json contentSize bumped 720px -> 1080px in parallel.
   ============================================================ */

/* Force full-bleed breakout — works regardless of parent constrain */
.bigeasy-section.alignfull,
.alignfull.bigeasy-section,
.bigeasy-hero.alignfull,
.bigeasy-problem.alignfull,
.bigeasy-proof.alignfull,
.bigeasy-solution.alignfull,
.bigeasy-evidence.alignfull,
.bigeasy-action.alignfull {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-left: 0 !important;
	padding-right: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	box-sizing: border-box;
}

/* Unified inner wrapper — premium editorial spacing.
   D5 Item 2 (2026-05-13): vertical padding +25%.
   D6 Sub-item 3 (2026-05-13): bumped again to +50% from original baseline per Adviser 5 Option A approval. */
/* F.18 (2026-05-17) · Operator confirmed visible dead-space across multiple pages.
   Root cause: .bigeasy-section had 80px outer top/bottom AND .bigeasy-section__inner
   had clamp(72px, 9vw, 144px) — at 1440 viewport that's ~130px on top of the 80px,
   yielding 210px of padding on each side of each section's content, i.e., 420px of
   pure whitespace between adjacent section content blocks.
   Reduced inner vertical padding from clamp(72,9vw,144) → clamp(24,3vw,48).
   Total per-section now ~110-130px each side (still breathable, not bloated). */
.bigeasy-section__inner {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: clamp(24px, 3vw, 48px) clamp(24px, 5vw, 80px);
	box-sizing: border-box;
}

/* Legacy per-section inner wrappers — promoted to the unified spec. */
.bigeasy-problem__inner,
.bigeasy-proof__inner,
.bigeasy-solution__inner,
.bigeasy-evidence__inner,
.bigeasy-action__inner {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: clamp(24px, 3vw, 48px) clamp(24px, 5vw, 80px);
	box-sizing: border-box;
}

/* Hero content — constrain to 1080px reading column inside full-bleed bg.
   D6 Sub-item 3 (2026-05-13): first-time bump per Adviser 5 Option A approval —
   heroes should feel more open than sections. */
.bigeasy-hero__content {
	max-width: 1080px !important;
	padding: clamp(96px, 10vw, 140px) clamp(24px, 5vw, 80px) !important;
}

/* Action section uses 2-column grid — preserve via override
   (E-followup-2 revert · operator wanted original layout · the real bug was
   .bigeasy-form__input box-sizing:content-box overflow inside the card · fixed
   above in the .bigeasy-form__input rule) */
.bigeasy-action__inner.bigeasy-section__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}

@media (max-width: 900px) {
	.bigeasy-action__inner.bigeasy-section__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}
}

/* E.2-4 revision (2026-05-16): cap + center the bottom-section inspection form
   at ALL viewport sizes (was previously scoped only to @media max-width:900px).
   At desktop the 2-col grid gave the form a 608px right cell, but the form
   itself filled to 536px and aligned flush-left leaving 72px dead space on the
   right of the cell. Universal margin auto + max-width centers the form
   within its grid cell at desktop AND its full row when grid collapses on
   tablet. Scoped to .bigeasy-action .bigeasy-form so .bigeasy-hero-form is
   untouched. justify-self:center reinforces center alignment within the grid
   cell context. */
.bigeasy-action .bigeasy-form {
	width: 100%;
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
	justify-self: center;
}

/* Edge-to-edge bg gradients on full-bleed sections need an inner wrap to keep their radial-overlay decorations bounded */
.bigeasy-proof.alignfull,
.bigeasy-action.alignfull {
	position: relative;
	overflow: hidden;
}
/* ============================================================
   STAGE 4 — Service template additions
   process steps · honest disclaimer · cross-service nav
   ============================================================ */

.bigeasy-process-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
	margin: 0 0 48px;
}
/* Stage 5.5 · process-step + case-image now host real photos */
.bigeasy-process-step__image {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--bigeasy-radius-md);
	margin: -8px 0 16px;
	background: var(--wp--preset--color--navy-100);
}
.bigeasy-case__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.bigeasy-case__image:has(img)::before,
.bigeasy-case__image:has(img)::after {
	display: none;
}
.bigeasy-case__caption {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 12px;
	font-style: italic;
	color: var(--wp--preset--color--ink-500);
	line-height: 1.4;
	margin: 8px 0 0;
}

.bigeasy-process-step {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-lg);
	padding: 32px 28px;
	position: relative;
	transition: all var(--bigeasy-transition-base);
}
.bigeasy-process-step:hover {
	transform: translateY(-3px);
	border-color: var(--wp--preset--color--orange-400);
	box-shadow: var(--wp--preset--shadow--md);
}
.bigeasy-process-step__num {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 14px;
	font-weight: 700;
	color: var(--wp--preset--color--orange-700);
	letter-spacing: 0.18em;
	margin-bottom: 12px;
}
.bigeasy-process-step__title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 22px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	line-height: 1.25;
	margin: 0 0 12px;
}
.bigeasy-process-step__body {
	color: var(--wp--preset--color--ink-700);
	font-size: 15px;
	line-height: 1.6;
	margin: 0;
}

.bigeasy-solution__honest {
	background: var(--wp--preset--color--navy-50);
	border-left: 4px solid var(--wp--preset--color--orange-500);
	border-radius: var(--bigeasy-radius-md);
	padding: 32px 36px;
	margin-top: 32px;
}
.bigeasy-solution__honest-title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 22px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 12px;
}
.bigeasy-solution__honest p {
	color: var(--wp--preset--color--ink-700);
	font-size: 16px;
	line-height: 1.7;
	margin: 0;
}

.bigeasy-cross-services { background: var(--wp--preset--color--off-white); }
.bigeasy-cross-services__header { text-align: center; margin-bottom: 48px; }
.bigeasy-cross-services__eyebrow {
	color: var(--wp--preset--color--orange-700);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin: 0 0 16px;
}
.bigeasy-cross-services__heading {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(28px, 2.5vw + 0.5rem, 40px);
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0;
}
.bigeasy-cross-services__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
}
.bigeasy-cross-service-link {
	display: flex;
	align-items: center;
	gap: 20px;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-lg);
	padding: 24px 28px;
	text-decoration: none;
	color: var(--wp--preset--color--navy-900);
	transition: all var(--bigeasy-transition-base);
}
.bigeasy-cross-service-link:hover {
	transform: translateY(-2px);
	border-color: var(--wp--preset--color--navy-900);
	box-shadow: var(--wp--preset--shadow--md);
	color: var(--wp--preset--color--navy-900);
}
.bigeasy-cross-service-link > svg:first-child {
	flex-shrink: 0;
	color: var(--wp--preset--color--navy-900);
}
.bigeasy-cross-service-link > div,
.bigeasy-cross-service-link > .bigeasy-cross-service-link__text { flex: 1; }
/* F.20b (2026-05-17) · text wrapper is now a <span> (not <div>) to bypass browser
   <div>-in-<a> auto-split. Force flex column layout so title + body stack. */
.bigeasy-cross-service-link__text {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.bigeasy-cross-service-link__title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 18px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 4px;
	line-height: 1.3;
	display: block;
}
.bigeasy-cross-service-link__body {
	color: var(--wp--preset--color--ink-500);
	font-size: 14px;
	margin: 0;
	line-height: 1.4;
	display: block;
}
.bigeasy-cross-service-link__arrow {
	flex-shrink: 0;
	color: var(--wp--preset--color--orange-500);
	transition: transform var(--bigeasy-transition-base);
}
.bigeasy-cross-service-link:hover .bigeasy-cross-service-link__arrow {
	transform: translateX(4px);
}
/* ============================================================
   STAGE 5 PHASE 3 — FAQ page components
   4-section FAQ architecture (hero typography · answer · related · action)
   ============================================================ */

.bigeasy-faq-hero {
	background: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--white);
	position: relative;
	overflow: hidden;
}
.bigeasy-faq-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at top left, rgba(236, 114, 0, 0.08), transparent 50%);
	pointer-events: none;
}
.bigeasy-faq-hero__eyebrow {
	color: var(--wp--preset--color--orange-400);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin: 0 0 20px;
	position: relative;
	z-index: 1;
}
.bigeasy-faq-hero__h1 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(32px, 3.5vw + 0.5rem, 56px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--white);
	margin: 0 0 24px;
	max-width: 900px;
	position: relative;
	z-index: 1;
}
.bigeasy-faq-hero__subhead {
	font-size: clamp(17px, 0.5vw + 1rem, 20px);
	line-height: 1.55;
	color: rgba(255,255,255,0.85);
	margin: 0;
	max-width: 700px;
	position: relative;
	z-index: 1;
}

.bigeasy-faq-answer {
	background: var(--wp--preset--color--off-white);
}
.bigeasy-faq-answer__tldr {
	background: var(--wp--preset--color--navy-100);
	border-left: 4px solid var(--wp--preset--color--orange-500);
	padding: 28px 36px;
	border-radius: var(--bigeasy-radius-md);
	margin-bottom: 48px;
	max-width: 820px;
}
.bigeasy-faq-answer__tldr h2 {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 19px; /* Stage 6 Part 2 edge-case · orange-700 on navy-100 = 4.24:1 (below 4.5 AA-normal) → bump size to clear 3:1 large-text rule (≥18.67px bold). Same Option B logic as CTAs. */
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-700);
	margin: 0 0 10px;
}
.bigeasy-faq-answer__tldr p {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--wp--preset--color--navy-900);
	margin: 0;
}
.bigeasy-faq-answer__body { max-width: 820px; }
.bigeasy-faq-answer__body h2 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(26px, 2vw + 0.5rem, 36px);
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 24px;
}
.bigeasy-faq-answer__body h3 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 22px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	margin: 32px 0 12px;
}
.bigeasy-faq-answer__body p {
	color: var(--wp--preset--color--ink-700);
	font-size: 17px;
	line-height: 1.7;
	margin: 0 0 16px;
}
.bigeasy-faq-answer__body ul,
.bigeasy-faq-answer__body ol {
	color: var(--wp--preset--color--ink-700);
	font-size: 17px;
	line-height: 1.7;
	margin: 0 0 16px;
	padding-left: 24px;
}
.bigeasy-faq-answer__body li { margin-bottom: 8px; }
.bigeasy-faq-answer__body em { font-style: italic; color: var(--wp--preset--color--navy-900); }
.bigeasy-faq-answer__body strong { color: var(--wp--preset--color--navy-900); }

.bigeasy-faq-related { background: var(--wp--preset--color--navy-50); }
.bigeasy-faq-related h2 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(26px, 2vw + 0.5rem, 36px);
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 32px;
}
.bigeasy-faq-related__links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 12px;
}
.bigeasy-faq-related__links li { margin: 0; }
.bigeasy-faq-related__links a {
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md);
	padding: 16px 20px;
	text-decoration: none;
	color: var(--wp--preset--color--navy-900);
	font-family: var(--wp--preset--font-family--outfit);
	font-weight: 500;
	font-size: 15px;
	line-height: 1.4;
	transition: all var(--bigeasy-transition-fast);
}
.bigeasy-faq-related__links a::before {
	content: '\2192';
	color: var(--wp--preset--color--orange-500);
	font-weight: 600;
	flex-shrink: 0;
}
.bigeasy-faq-related__links a:hover {
	border-color: var(--wp--preset--color--navy-900);
	transform: translateX(2px);
	color: var(--wp--preset--color--navy-900);
	box-shadow: var(--wp--preset--shadow--sm);
}
/* ============================================================
   PRE-STAGE-6 CLEANUP — /about/ promise grid · legal pages · FAQ index
   ============================================================ */

/* Legal pages (terms / privacy) — narrow readable column */
.bigeasy-legal-content {
	max-width: 760px;
	margin: 0 auto;
	line-height: 1.8;
}
.bigeasy-legal-content h2 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(24px, 2vw + 0.25rem, 32px);
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 56px 0 16px;
	line-height: 1.2;
}
.bigeasy-legal-content > h2:first-child { margin-top: 0; }
.bigeasy-legal-content h3 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 22px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	margin: 32px 0 12px;
}
.bigeasy-legal-content p {
	color: var(--wp--preset--color--ink-700);
	font-size: 17px;
	line-height: 1.8;
	margin: 0 0 16px;
}
.bigeasy-legal-content ul,
.bigeasy-legal-content ol {
	color: var(--wp--preset--color--ink-700);
	font-size: 17px;
	line-height: 1.8;
	margin: 0 0 16px;
	padding-left: 24px;
}
.bigeasy-legal-content li { margin-bottom: 8px; }
.bigeasy-legal-content em { font-style: italic; color: var(--wp--preset--color--navy-900); }
.bigeasy-legal-content strong { color: var(--wp--preset--color--navy-900); }

.bigeasy-legal-banner {
	background: var(--wp--preset--color--orange-100);
	border-left: 4px solid var(--wp--preset--color--orange-500);
	padding: 20px 28px;
	border-radius: var(--bigeasy-radius-md);
	margin: 0 auto 48px;
	max-width: 760px;
}
.bigeasy-legal-banner__label {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-600);
	margin: 0 0 8px;
}
.bigeasy-legal-banner__text {
	color: var(--wp--preset--color--ink-700);
	font-size: 15px;
	line-height: 1.6;
	margin: 0;
}
.bigeasy-legal-meta {
	font-size: 14px;
	color: var(--wp--preset--color--ink-500);
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--wp--preset--color--ink-200);
}

/* About page promise grid */
.bigeasy-about-promise__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
	margin-top: 40px;
}
.bigeasy-about-promise__item {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-lg);
	padding: 28px 32px;
	transition: all var(--bigeasy-transition-base);
}
.bigeasy-about-promise__item:hover {
	transform: translateY(-3px);
	border-color: var(--wp--preset--color--orange-400);
	box-shadow: var(--wp--preset--shadow--md);
}
.bigeasy-about-promise__item h3 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 20px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 10px;
}
.bigeasy-about-promise__item p {
	color: var(--wp--preset--color--ink-700);
	font-size: 15px;
	line-height: 1.55;
	margin: 0;
}
.bigeasy-about-context {
	background: var(--wp--preset--color--off-white);
}
.bigeasy-about-context__heading {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(28px, 2.5vw + 0.5rem, 42px);
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 24px;
	line-height: 1.15;
}

/* FAQ index page */
.bigeasy-faq-index { background: var(--wp--preset--color--off-white); }
.bigeasy-faq-index__header { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.bigeasy-faq-index__intro {
	color: var(--wp--preset--color--ink-700);
	font-size: 18px;
	line-height: 1.6;
	margin: 0;
}
.bigeasy-faq-index__groups {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 24px;
}
.bigeasy-faq-index-group {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-lg);
	padding: 32px;
}
.bigeasy-faq-index-group__title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 22px;
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 6px;
}
.bigeasy-faq-index-group__count {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-700);
	margin: 0 0 20px;
}
.bigeasy-faq-index-group__list { list-style: none; padding: 0; margin: 0; }
.bigeasy-faq-index-group__list li {
	padding: 14px 0;
	border-bottom: 1px solid var(--wp--preset--color--ink-100);
}
.bigeasy-faq-index-group__list li:last-child { border-bottom: none; }
.bigeasy-faq-index-card__q {
	display: block;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 16px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	text-decoration: none;
	margin-bottom: 6px;
	line-height: 1.35;
}
.bigeasy-faq-index-card__q:hover { color: var(--wp--preset--color--orange-600); }
.bigeasy-faq-index-card__preview {
	font-size: 14px;
	color: var(--wp--preset--color--ink-500);
	line-height: 1.5;
	margin: 0 0 6px;
}
.bigeasy-faq-index-card__cta {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--orange-700);
	text-decoration: none;
}

/* ============================================================
   Stage 5.5 (2026-05-13) · Back-to-top button
   Spec: STAGE-5.5-PREP-RESEARCH-REPORT.md §9
   ============================================================ */
.bigeasy-back-to-top {
	position: fixed;
	bottom: 24px;
	right: 24px;
	bottom: max(24px, env(safe-area-inset-bottom));
	width: 48px;
	height: 48px;
	border-radius: var(--bigeasy-radius-full, 9999px);
	background: var(--wp--preset--color--orange-500);
	color: var(--wp--preset--color--white);
	border: none;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 9999;
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity 200ms ease-out, transform 200ms ease-out, background-color 150ms ease-out, box-shadow 150ms ease-out;
	box-shadow: 0 6px 18px rgba(236, 114, 0, 0.25);
}
.bigeasy-back-to-top[hidden] { display: flex; } /* override hidden so transform/opacity still apply when scrolled-out */
.bigeasy-back-to-top.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}
.bigeasy-back-to-top:hover {
	background: var(--wp--preset--color--orange-600);
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(236, 114, 0, 0.35);
}
.bigeasy-back-to-top:active { transform: translateY(0); }
.bigeasy-back-to-top:focus-visible {
	outline: 3px solid var(--wp--preset--color--orange-400);
	outline-offset: 2px;
}
.bigeasy-back-to-top svg { display: block; }
@media (max-width: 767px) {
	.bigeasy-back-to-top {
		width: 44px;
		height: 44px;
		bottom: 16px;
		right: 16px;
		bottom: max(16px, env(safe-area-inset-bottom));
	}
}
@media (prefers-reduced-motion: reduce) {
	.bigeasy-back-to-top { transition: opacity 0ms, transform 0ms; }
	.bigeasy-back-to-top:hover { transform: none; }
}
.bigeasy-faq-index-card__cta:hover { color: var(--wp--preset--color--navy-900); }

/* ============================================================
   Stage 5.5.1 Batch 1 (2026-05-13) · Rescue pass
   ============================================================ */

/* sr-only utility — visually hidden, screen-reader accessible.
   Used for "Illustrative example…" disclaimers on before/after evidence images. */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Migrate the visible Stage 5.5 case caption to sr-only.
   Visible "Before"/"After" labels still render via [data-label]::before pseudo-element on case__image divs.
   Per operator directive: visitor sees only Before/After labels; FTC/state-law shield preserved in sr-only. */
.bigeasy-case__caption {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Hide 3 trust badges pending real-asset provisioning (Pre-Merge gate).
   Carrier-neutral insurance copy + remaining badges still render. */
.bigeasy-trust-badge[data-content-pending="license-ct"],
.bigeasy-trust-badge[data-content-pending="license-ny"],
.bigeasy-trust-badge[data-content-pending="bbb"] {
	display: none !important;
}

/* Section background images — subtle textural treatment, low opacity, doesn't compete with foreground.
   Applied to existing section selectors; falls back gracefully if image missing. */

/* Section 2 · Problem/Triggers — fieldstone texture */
[data-section="problem"] {
	position: relative;
	isolation: isolate;
}
[data-section="problem"]::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('../images/bg-section-fieldstone-foundation.png');
	background-size: cover;
	background-position: right center;
	background-repeat: no-repeat;
	opacity: 0.08;
	z-index: -1;
	pointer-events: none;
}

/* Section 3 · Proof/Stats — navy bg + Northeast home overcast at 12% */
[data-section="proof"] {
	position: relative;
	isolation: isolate;
}
[data-section="proof"]::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('../images/bg-section-northeast-home-overcast.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 0.12;
	mix-blend-mode: screen;
	z-index: 0;
	pointer-events: none;
}
[data-section="proof"] > *:not(::after) { position: relative; z-index: 1; }

/* Section 4 · Solution/Contrarian — basement interior soft at 6% */
[data-section="solution"] {
	position: relative;
	isolation: isolate;
}
[data-section="solution"]::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('../images/bg-section-basement-interior-soft.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 0.06;
	z-index: -1;
	pointer-events: none;
}

/* Section 5 · Evidence/Cases — craft tools flatlay right-side accent at 5% grayscale */
[data-section="evidence"] {
	position: relative;
	isolation: isolate;
}
[data-section="evidence"]::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 40%;
	background-image: url('../images/bg-section-craft-tools-flatlay.png');
	background-size: cover;
	background-position: center right;
	background-repeat: no-repeat;
	opacity: 0.05;
	filter: grayscale(1);
	z-index: -1;
	pointer-events: none;
}

/* Section 7 · Action/Form — CT autumn home front at 15% with navy gradient overlay */
[data-section="action"] {
	position: relative;
	isolation: isolate;
}
[data-section="action"]::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('../images/bg-section-ct-autumn-home-front.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 0.15;
	mix-blend-mode: screen;
	z-index: 0;
	pointer-events: none;
}
[data-section="action"] > *:not(::after) { position: relative; z-index: 1; }

/* ============================================================
   Stage 5.5.1 Batch 2 (2026-05-13) · Portable elements rescue
   ============================================================ */

/* --- Hero 2-column split layout (text + form) --- */
.bigeasy-hero__inner--split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 380px);
	gap: 48px;
	align-items: start;
	max-width: 1280px;
	margin: 0 auto;
}
@media (max-width: 1023px) {
	.bigeasy-hero__inner--split {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}
.bigeasy-hero__text { min-width: 0; }
.bigeasy-hero__form-col { min-width: 0; }

/* --- Trust badge row in hero (below H2) --- */
.bigeasy-hero__trust-row {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 8px;
	margin: 24px 0 28px;
	max-width: 720px;
}
@media (max-width: 767px) {
	.bigeasy-hero__trust-row {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.bigeasy-trust-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px 6px;
	border-radius: var(--bigeasy-radius-sm, 4px);
	background: rgba(255, 255, 255, 0.10);
	border: 1px solid rgba(255, 255, 255, 0.22);
	min-height: 44px;
	text-align: center;
}
.bigeasy-trust-slot--logo {
	background: rgba(255, 255, 255, 0.06);
	border-style: dashed; /* placeholder slot styling — swap to solid + real PNG at Pre-Merge */
}
.bigeasy-trust-slot__label {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.2;
}
.bigeasy-trust-slot--text .bigeasy-trust-slot__label {
	color: rgba(255, 255, 255, 0.95);
}

/* --- Hero form (form-on-hero) --- */
.bigeasy-hero-form {
	background: var(--wp--preset--color--navy-900);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--bigeasy-radius-lg, 12px);
	padding: 24px 24px 20px;
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.30);
	color: var(--wp--preset--color--white);
}
.bigeasy-hero-form__eyebrow {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-400);
	margin: 0 0 8px;
}
.bigeasy-hero-form__title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--wp--preset--color--white);
	margin: 0 0 6px;
}
.bigeasy-hero-form__tagline {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	color: rgba(255, 255, 255, 0.78);
	margin: 0 0 16px;
	line-height: 1.5;
}
.bigeasy-hero-form__field {
	margin-bottom: 10px;
}
.bigeasy-hero-form__label {
	display: block;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 12px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: 4px;
	letter-spacing: 0.02em;
}
.bigeasy-hero-form__input {
	display: block;
	width: 100%;
	padding: 10px 12px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 15px;
	color: var(--wp--preset--color--navy-900);
	background: var(--wp--preset--color--white);
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: var(--bigeasy-radius-md, 8px);
	box-sizing: border-box;
	transition: border-color 150ms ease, box-shadow 150ms ease;
}
.bigeasy-hero-form__input::placeholder {
	color: var(--wp--preset--color--orange-700);
	opacity: 0.75;
}
.bigeasy-hero-form__input:focus {
	outline: none;
	border-color: var(--wp--preset--color--orange-500);
	box-shadow: 0 0 0 3px rgba(236, 114, 0, 0.30);
}
.bigeasy-hero-form__input.is-error {
	border-color: var(--wp--preset--color--error);
	box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.25);
}
.bigeasy-hero-form__select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2302155A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 32px;
}
.bigeasy-hero-form__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	margin-top: 10px;
	padding: 14px 16px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 20px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--orange-500);
	border: none;
	border-radius: var(--bigeasy-radius-md, 8px);
	cursor: pointer;
	transition: background-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
	box-shadow: 0 6px 18px rgba(236, 114, 0, 0.25);
}
.bigeasy-hero-form__submit:hover {
	background: var(--wp--preset--color--orange-600);
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(236, 114, 0, 0.35);
}
.bigeasy-hero-form__submit:focus-visible {
	outline: 3px solid var(--wp--preset--color--orange-400);
	outline-offset: 2px;
}
.bigeasy-hero-form__assurance {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 11px;
	color: rgba(255, 255, 255, 0.65);
	margin: 12px 0 0;
	line-height: 1.4;
}
.bigeasy-hero-form__live { min-height: 0; }
.bigeasy-hero-form__success {
	text-align: center;
	padding: 24px 12px;
}
.bigeasy-hero-form__success-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--wp--preset--color--success, #0E7C50);
	color: var(--wp--preset--color--white);
	margin-bottom: 12px;
}
.bigeasy-hero-form__success h3 {
	font-family: var(--wp--preset--font-family--playfair);
	color: var(--wp--preset--color--white);
	margin: 0 0 8px;
	font-size: 20px;
}
.bigeasy-hero-form__success p {
	color: rgba(255, 255, 255, 0.78);
	font-size: 14px;
	line-height: 1.55;
	margin: 0;
}

/* E2-3 (2026-05-16) · Photo upload field for hero form · raw HTML scaffold.
   Styled to match the dark navy-900 hero form context · white text on white
   input chrome · orange focus ring consistent with .bigeasy-hero-form__input. */
.bigeasy-hero-form__field--file {
	margin-bottom: 10px;
}
.bigeasy-hero-form__label-optional {
	font-weight: 400;
	color: rgba(255, 255, 255, 0.55);
	letter-spacing: 0;
	text-transform: none;
	margin-left: 4px;
}
.bigeasy-hero-form__file-input {
	display: block;
	width: 100%;
	padding: 8px 10px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	color: var(--wp--preset--color--navy-900);
	background: var(--wp--preset--color--white);
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: var(--bigeasy-radius-md, 8px);
	box-sizing: border-box;
	cursor: pointer;
	transition: border-color 150ms ease, box-shadow 150ms ease;
}
.bigeasy-hero-form__file-input:focus-visible {
	outline: none;
	border-color: var(--wp--preset--color--orange-500);
	box-shadow: 0 0 0 3px rgba(236, 114, 0, 0.30);
}
.bigeasy-hero-form__file-input::file-selector-button {
	padding: 6px 12px;
	margin-right: 10px;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 12px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--orange-500);
	border: none;
	border-radius: var(--bigeasy-radius-sm, 6px);
	transition: background-color 150ms ease;
}
.bigeasy-hero-form__file-input::file-selector-button:hover {
	background: var(--wp--preset--color--orange-600);
}

/* --- 3-stripe operational-promise bar (below hero) --- */
.bigeasy-promise-bar {
	position: relative;
	z-index: 2;
	width: 100%;
}
.bigeasy-promise-bar__inner {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: none;
	margin: 0;
}
@media (max-width: 767px) {
	.bigeasy-promise-bar__inner { grid-template-columns: 1fr; }
}
.bigeasy-promise-bar__stripe {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 22px 28px;
	min-height: 80px;
	/* D7 Sub-item 2 (2026-05-14) · Consistent hover lift across all 3 stripes regardless
	   of bg variant. Middle stripe (--orange) is intentional emphasis (not hover leak);
	   subtle translate-Y + drop-shadow + icon scale layered on top of existing bg. */
	transition: transform 240ms ease, box-shadow 240ms ease;
	position: relative;
	cursor: default;
}
.bigeasy-promise-bar__stripe:hover,
.bigeasy-promise-bar__stripe:focus-within {
	transform: translateY(-3px);
	box-shadow: 0 12px 26px rgba(2, 21, 90, 0.14);
	z-index: 1;
}
.bigeasy-promise-bar__stripe .bigeasy-promise-bar__icon {
	transition: transform 240ms ease;
}
.bigeasy-promise-bar__stripe:hover .bigeasy-promise-bar__icon,
.bigeasy-promise-bar__stripe:focus-within .bigeasy-promise-bar__icon {
	transform: scale(1.08);
}
@media (prefers-reduced-motion: reduce) {
	.bigeasy-promise-bar__stripe,
	.bigeasy-promise-bar__stripe .bigeasy-promise-bar__icon {
		transition: none;
	}
	.bigeasy-promise-bar__stripe:hover,
	.bigeasy-promise-bar__stripe:focus-within {
		transform: none;
	}
	.bigeasy-promise-bar__stripe:hover .bigeasy-promise-bar__icon,
	.bigeasy-promise-bar__stripe:focus-within .bigeasy-promise-bar__icon {
		transform: none;
	}
}
/* D8 Sub-item 5 (2026-05-14) · Unified all-white default + orange-on-hover treatment.
   Operator: "I want all of them to be white at first and only turn orange when hovered."
   Override the prior --orange variant (middle stripe was hardcoded orange-700 bg). All 3
   stripes now default to --white styling; hover flips to orange-500 with white text + icon.
   Per D7 cascade-source-order lesson: keep the --white + --orange variant rules but make
   both resolve to white-bg default (the orange variant rule below is intentionally
   redefined to white, not deleted, so any cached/legacy markup with --orange class still
   renders correctly during the next deploy). The `:hover` rule below provides the
   orange-on-hover flip uniformly regardless of --white/--orange variant class. */
.bigeasy-promise-bar__stripe--white,
.bigeasy-promise-bar__stripe--orange {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy-900);
}
/* Unified orange-on-hover (overrides D7 Commit B base hover transition with bg+color flip) */
.bigeasy-promise-bar__stripe:hover,
.bigeasy-promise-bar__stripe:focus-within {
	background: var(--wp--preset--color--orange-500);
	color: var(--wp--preset--color--white);
	transform: translateY(-4px);
	box-shadow: 0 12px 24px rgba(236, 114, 0, 0.28);
	z-index: 1;
}
.bigeasy-promise-bar__icon {
	flex: 0 0 22px;
	color: currentColor;
	transition: color 240ms ease;
}
.bigeasy-promise-bar__stripe--white .bigeasy-promise-bar__icon,
.bigeasy-promise-bar__stripe--orange .bigeasy-promise-bar__icon {
	color: var(--wp--preset--color--orange-700);
}
.bigeasy-promise-bar__stripe:hover .bigeasy-promise-bar__icon,
.bigeasy-promise-bar__stripe:focus-within .bigeasy-promise-bar__icon {
	color: var(--wp--preset--color--white);
}
@media (prefers-reduced-motion: reduce) {
	.bigeasy-promise-bar__stripe:hover,
	.bigeasy-promise-bar__stripe:focus-within {
		transform: none;
	}
	.bigeasy-promise-bar__icon { transition: none; }
}
.bigeasy-promise-bar__copy { min-width: 0; }
.bigeasy-promise-bar__title {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0 0 2px;
	color: currentColor;
	line-height: 1.25;
}
.bigeasy-promise-bar__subtext {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	color: currentColor;
	/* 0.78 opacity drops effective contrast below 4.5:1 on orange-700 — bumped to 0.92 to pass AA-Normal */
	opacity: 0.92;
	margin: 0;
	line-height: 1.4;
}

/* --- Mobile sticky CTA refinement (existing class · spec from §F2) --- */
.bigeasy-sticky-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	display: none; /* JS toggles via .is-visible on scroll past 600px */
	grid-template-columns: 1fr 1fr;
	z-index: 1000;
	box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.18);
	transform: translateY(100%);
	transition: transform 220ms ease-out;
	padding-bottom: env(safe-area-inset-bottom);
	background: var(--wp--preset--color--navy-900);
}
@media (max-width: 767px) {
	.bigeasy-sticky-cta { display: grid; }
}
.bigeasy-sticky-cta.is-visible { transform: translateY(0); }
.bigeasy-sticky-cta__call,
.bigeasy-sticky-cta__book {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 56px;
	padding: 0 12px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 20px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	text-decoration: none;
	transition: background-color 150ms ease;
}
.bigeasy-sticky-cta__call { background: var(--wp--preset--color--orange-500); }
.bigeasy-sticky-cta__call:hover { background: var(--wp--preset--color--orange-600); }
.bigeasy-sticky-cta__book { background: var(--wp--preset--color--navy-900); }
.bigeasy-sticky-cta__book:hover { background: var(--wp--preset--color--navy-800); }
.bigeasy-sticky-cta__call:focus-visible,
.bigeasy-sticky-cta__book:focus-visible {
	outline: 3px solid var(--wp--preset--color--orange-400);
	outline-offset: -3px;
}
/* Offset back-to-top button above sticky CTA on mobile */
@media (max-width: 767px) {
	.bigeasy-sticky-cta.is-visible ~ .bigeasy-back-to-top {
		bottom: calc(56px + env(safe-area-inset-bottom) + 16px);
	}
}

/* --- D5 Item 4 (2026-05-13) · Footer subtle dark bg image overlay ---
   Adds depth to the footer beyond flat navy-900 fill. Uses an existing
   bg-section image at very low opacity layered over the navy-900 fill,
   so the footer keeps its dark identity while gaining a subtle texture. */
.bigeasy-footer.has-navy-900-background-color {
	position: relative;
	isolation: isolate;
}
.bigeasy-footer.has-navy-900-background-color::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('/wp-content/themes/bigeasy/assets/images/bg-section-northeast-home-overcast.png');
	background-size: cover;
	background-position: center;
	opacity: 0.08;
	mix-blend-mode: luminosity;
	pointer-events: none;
	z-index: 0;
}
.bigeasy-footer.has-navy-900-background-color > * {
	position: relative;
	z-index: 1;
}

/* --- D5 Item 4 · Footer brand mark (white logo variant) --- */
.bigeasy-footer__brand {
	text-align: center;
	margin: 0 auto 32px;
}
.bigeasy-footer__brand-link {
	display: inline-block;
	line-height: 0;
}
.bigeasy-footer__brand-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange-400);
	outline-offset: 4px;
	border-radius: var(--bigeasy-radius-sm, 4px);
}
.bigeasy-footer__logo {
	max-width: 240px;
	height: auto;
	width: 100%;
	display: inline-block;
}
@media (max-width: 600px) {
	.bigeasy-footer__logo { max-width: 180px; }
	.bigeasy-footer__brand { margin-bottom: 24px; }
}

/* --- Footer trust logos row --- */
.bigeasy-footer-trust {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 16px;
	padding: 24px 0;
	margin-bottom: 16px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}
@media (max-width: 767px) {
	.bigeasy-footer-trust {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 12px;
	}
}
/* D6 Sub-item 6 (2026-05-13) · Trust-badges-A readability lift on dark navy footer.
   Operator-flagged: faded grayscale + low opacity made BBB / IICRC / Licensed labels
   unreadable. Lift: pure white text (16:1 contrast WCAG AAA), checkmark bullets (✓),
   solid border replacing the dashed build-hint, slight typography polish. */
.bigeasy-footer-trust__slot {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 12px;
	min-height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--bigeasy-radius-sm, 4px);
	background: rgba(255, 255, 255, 0.06);
	transition: background-color 200ms ease, border-color 200ms ease;
}
.bigeasy-footer-trust__slot:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.42);
}
/* Solid border across all slots (was dashed on --logo variants; build hint retired
   now that real credentials are operator-provisionable). */
.bigeasy-footer-trust__slot--logo { border-style: solid; }
.bigeasy-footer-trust__label {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	color: var(--wp--preset--color--white);
	line-height: 1.2;
	text-align: center;
	display: inline-flex;
	align-items: center;
	gap: 5px;
}
/* Checkmark bullet (✓) before each badge text — operator-explicit ask.
   Color: brand orange-400 so it pops against the white label without overwhelming. */
.bigeasy-footer-trust__label::before {
	content: '\2713';
	color: var(--wp--preset--color--orange-400);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}
@media (max-width: 480px) {
	.bigeasy-footer-trust__label { font-size: 11px; letter-spacing: 0.06em; }
}

/* ============================================================
   Stage 5.5.1 Batch 3 (2026-05-13) · Page heroes + new pages + mega-menu + bigger case images
   ============================================================ */

/* --- Universal page hero (used on /about/ /faq/ /contact/ /service-areas/ /blog/) ---
   D6 Sub-item 3 (2026-05-13): first-time clamp() bump per Adviser 5 Option A approval —
   replaces brittle fixed 80px with responsive scaling that matches homepage hero rhythm. */
.bigeasy-page-hero {
	position: relative;
	min-height: 320px;
	display: flex;
	align-items: center;
	overflow: hidden;
	padding: clamp(96px, 10vw, 140px) clamp(24px, 5vw, 80px);
	isolation: isolate;
}
.bigeasy-page-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	z-index: -2;
	transform: scale(1.02);
	transition: transform 800ms ease-out;
}
.bigeasy-page-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(2, 21, 90, 0.78) 0%, rgba(2, 21, 90, 0.55) 60%, rgba(2, 21, 90, 0.78) 100%);
	z-index: -1;
}
.bigeasy-page-hero__content {
	position: relative;
	z-index: 1;
	max-width: 920px;
	margin: 0 auto;
	color: var(--wp--preset--color--white);
	text-align: left;
}
.bigeasy-page-hero__eyebrow {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-400);
	margin: 0 0 12px;
}
.bigeasy-page-hero__h1 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(34px, 3vw + 0.5rem, 56px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--white);
	margin: 0 0 16px;
}
.bigeasy-page-hero__intro {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: clamp(16px, 0.4vw + 1rem, 19px);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.92);
	margin: 0;
	max-width: 720px;
}

/* --- /contact/ split layout (form left · info right on desktop) --- */
.bigeasy-contact {
	background: var(--wp--preset--color--off-white, #FAFBFC);
	padding: 64px 24px;
}
.bigeasy-contact__inner {
	max-width: 1140px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
	gap: 48px;
	align-items: start;
}
@media (max-width: 899px) {
	.bigeasy-contact__inner { grid-template-columns: 1fr; gap: 32px; }
}
.bigeasy-contact__info-col { color: var(--wp--preset--color--ink-900); }
.bigeasy-contact__block { margin-bottom: 28px; }
.bigeasy-contact__heading {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-700);
	margin: 0 0 6px;
}
.bigeasy-contact__phone {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 28px;
	font-weight: 700;
	margin: 0 0 4px;
}
.bigeasy-contact__phone a {
	color: var(--wp--preset--color--navy-900);
	text-decoration: none;
}
.bigeasy-contact__phone a:hover { color: var(--wp--preset--color--orange-700); }
.bigeasy-contact__email {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 17px;
	font-weight: 600;
	margin: 0 0 4px;
}
.bigeasy-contact__email a {
	color: var(--wp--preset--color--navy-900);
	text-decoration: none;
}
.bigeasy-contact__email a:hover { color: var(--wp--preset--color--orange-700); }
.bigeasy-contact__detail {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-700);
	margin: 4px 0 0;
}
.bigeasy-contact__detail a {
	color: var(--wp--preset--color--orange-700);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.bigeasy-contact__form-col .bigeasy-hero-form { margin: 0; }

/* --- /service-areas/ city grid --- */
.bigeasy-areas {
	background: var(--wp--preset--color--off-white, #FAFBFC);
	padding: 64px 24px;
}
.bigeasy-areas__inner {
	max-width: 1140px;
	margin: 0 auto;
}
.bigeasy-areas__state { margin-bottom: 56px; }
.bigeasy-areas__state:last-child { margin-bottom: 32px; }
.bigeasy-areas__state-name {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(28px, 2vw + 0.5rem, 40px);
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 8px;
}
.bigeasy-areas__state-intro {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 16px;
	color: var(--wp--preset--color--ink-700);
	margin: 0 0 24px;
}
.bigeasy-areas__city-grid {
	display: grid;
	/* E-followup-3 (2026-05-16) · operator flagged cards as too narrow ·
	   bumped minmax 240→340 → 3 cards/row at 1280 inner (was 4-5/row at 285 each)
	   · cards now ~410 wide each for comfortable line lengths · 4 cols fires
	   only at 1600+ viewport · 2 cols on tablet · 1 col on mobile */
	grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
	gap: 24px;
}
.bigeasy-areas__city {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-lg, 12px);
	padding: 24px 28px;
}
.bigeasy-areas__city-name {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 20px;
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 12px;
}
.bigeasy-areas__service-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.bigeasy-areas__service-list li {
	margin-bottom: 4px;
}
.bigeasy-areas__service-list a {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	color: var(--wp--preset--color--navy-900);
	text-decoration: none;
	display: inline-block;
	padding: 4px 0;
	border-bottom: 1px solid transparent;
	transition: color 150ms ease, border-color 150ms ease;
}
.bigeasy-areas__service-list a:hover {
	color: var(--wp--preset--color--orange-700);
	border-bottom-color: var(--wp--preset--color--orange-500);
}
.bigeasy-areas__cta {
	text-align: center;
	padding: 32px 24px;
	background: var(--wp--preset--color--navy-100);
	border-radius: var(--bigeasy-radius-lg, 12px);
	margin-top: 32px;
}
.bigeasy-areas__cta p {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 17px;
	color: var(--wp--preset--color--navy-900);
	margin: 0;
	line-height: 1.5;
}
.bigeasy-areas__cta a {
	color: var(--wp--preset--color--orange-700);
	text-decoration: none;
}
.bigeasy-areas__cta a:hover { text-decoration: underline; }

/* --- Mega-menu styling for nav dropdowns --- *
 * Stage 5.5.1 Batch 4 (2026-05-13) · F1+F3 fix · scoped to desktop only.
 * Mobile drawer (≤767px) inherits Gutenberg native rendering — auto-expand all submenus
 * with the block-theme's own white-bg-fallback. Header.html no longer sets overlayBackgroundColor
 * or overlayTextColor on wp:navigation, so submenu containers no longer carry
 * `has-navy-900-background-color` / `has-white-color` utility classes (which caused the
 * navy-on-navy text invisibility on desktop dropdowns). */
@media (min-width: 768px) {
	.wp-block-navigation .has-child > .wp-block-navigation__submenu-container {
		background: var(--wp--preset--color--white);
		border: 1px solid var(--wp--preset--color--ink-200);
		border-radius: var(--bigeasy-radius-md, 8px);
		box-shadow: 0 12px 32px rgba(2, 21, 90, 0.10);
		padding: 12px 4px;
		min-width: 260px;
	}
	.wp-block-navigation .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		color: var(--wp--preset--color--navy-900);
		font-family: var(--wp--preset--font-family--outfit);
		font-weight: 600; /* bumped 500 → 600 for stronger readability per audit */
		font-size: 16px;  /* bumped 15 → 16 baseline */
		padding: 12px 18px; /* bumped 10 → 12 for better touch + visual breathing */
		border-radius: var(--bigeasy-radius-sm, 4px);
		transition: background-color 120ms ease, color 120ms ease;
		white-space: nowrap;
	}
	.wp-block-navigation .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
		background: var(--wp--preset--color--navy-100);
		color: var(--wp--preset--color--orange-700);
	}
	/* Bucket B · 2-col Service Areas dropdown reverted to simple single-column (default WP block dropdown).
	   .bigeasy-nav-areas__index keeps a subtle top-border separator for the "all 11 cities" indicator. */
	.bigeasy-nav-areas > .wp-block-navigation__submenu-container > .bigeasy-nav-areas__index {
		border-top: 1px solid var(--wp--preset--color--ink-200);
		margin-top: 8px;
		padding-top: 8px;
	}
	.bigeasy-nav-areas__index > .wp-block-navigation-item__content {
		font-style: italic;
		color: var(--wp--preset--color--orange-700) !important;
	}
	/* Bucket B · in-nav "Book Free Inspection" CTA-style item removed in nav post 8 patch.
	   The header__cta button (parts/header.html) is the single header CTA surface now. */
}

/* --- Bigger before/after evidence images (per operator directive) --- */
.bigeasy-case__image {
	aspect-ratio: 16 / 11; /* taller than the prior 4:3 — gives image more vertical presence */
	min-height: 360px;
}
@media (max-width: 767px) {
	.bigeasy-case__image { min-height: 240px; }
}
/* Data-label "Before" / "After" badge → repositioned to bottom-left for clarity at the larger size */
.bigeasy-case__image[data-label]::before {
	content: attr(data-label);
	position: absolute;
	left: 12px;
	top: auto;
	bottom: 12px;
	background: rgba(2, 21, 90, 0.85);
	color: var(--wp--preset--color--white);
	padding: 4px 10px;
	border-radius: var(--bigeasy-radius-sm, 4px);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	z-index: 2;
}
.bigeasy-case__image { position: relative; }
/* Hover affordance on desktop only */
@media (hover: hover) and (min-width: 768px) {
	.bigeasy-case {
		transition: transform 200ms ease-out, box-shadow 200ms ease-out;
	}
	.bigeasy-case:hover {
		transform: translateY(-2px);
		box-shadow: 0 14px 30px rgba(2, 21, 90, 0.10);
	}
}

/* ============================================================
   Stage 5.5.1 Batch 6 (2026-05-13) · HTML Site Map page
   ============================================================ */
.bigeasy-sitemap {
	background: var(--wp--preset--color--off-white, #FAFBFC);
	padding: 64px 24px 80px;
}
.bigeasy-sitemap__inner {
	max-width: 1140px;
	margin: 0 auto;
}
.bigeasy-sitemap__header {
	text-align: left;
	margin-bottom: 48px;
}
.bigeasy-sitemap__eyebrow {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-700);
	margin: 0 0 8px;
}
.bigeasy-sitemap__h1 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(32px, 3vw + 0.5rem, 48px);
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 12px;
	line-height: 1.1;
}
.bigeasy-sitemap__intro {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 17px;
	color: var(--wp--preset--color--ink-700);
	line-height: 1.55;
	margin: 0;
	max-width: 680px;
}

.bigeasy-sitemap__section {
	margin-bottom: 48px;
}
.bigeasy-sitemap__h2 {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(24px, 1.5vw + 0.5rem, 32px);
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--wp--preset--color--ink-200);
}
.bigeasy-sitemap__h2 .bigeasy-sitemap__count {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	font-weight: 400;
	color: var(--wp--preset--color--ink-500);
	margin-left: 8px;
	letter-spacing: 0;
	text-transform: none;
}

/* Main + Services lists */
.bigeasy-sitemap__list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.bigeasy-sitemap__list--2col {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px 24px;
}
@media (max-width: 600px) {
	.bigeasy-sitemap__list--2col { grid-template-columns: 1fr; }
}
.bigeasy-sitemap__list li {
	padding: 6px 0;
}
.bigeasy-sitemap__list a {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 15px;
	color: var(--wp--preset--color--navy-900);
	text-decoration: none;
	display: inline-block;
	padding: 2px 0;
	border-bottom: 1px solid transparent;
	transition: color 150ms ease, border-color 150ms ease;
}
.bigeasy-sitemap__list a:hover {
	color: var(--wp--preset--color--orange-700);
	border-bottom-color: var(--wp--preset--color--orange-500);
}

/* Service Areas — state group + city grid */
.bigeasy-sitemap__state {
	margin-bottom: 32px;
}
.bigeasy-sitemap__state-name {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 22px;
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 16px;
}
.bigeasy-sitemap__state-name .bigeasy-sitemap__count {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	font-weight: 400;
	color: var(--wp--preset--color--ink-500);
	margin-left: 6px;
}
.bigeasy-sitemap__city-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 20px;
}
.bigeasy-sitemap__city {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md, 8px);
	padding: 16px 18px;
}
.bigeasy-sitemap__city-name {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	font-weight: 700;
	color: var(--wp--preset--color--orange-700);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 8px;
}
.bigeasy-sitemap__city-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.bigeasy-sitemap__city-list li { padding: 3px 0; }
.bigeasy-sitemap__city-list a {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	color: var(--wp--preset--color--navy-900);
	text-decoration: none;
	display: inline-block;
	padding: 1px 0;
	transition: color 150ms ease;
}
.bigeasy-sitemap__city-list a:hover { color: var(--wp--preset--color--orange-700); }

/* FAQ grid */
.bigeasy-sitemap__faq-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
}
@media (max-width: 768px) {
	.bigeasy-sitemap__faq-grid { grid-template-columns: 1fr; }
}
.bigeasy-sitemap__faq-group {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md, 8px);
	padding: 20px 22px;
}
.bigeasy-sitemap__faq-group-name {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 18px;
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	margin: 0 0 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--wp--preset--color--ink-100);
}
.bigeasy-sitemap__faq-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.bigeasy-sitemap__faq-list li { padding: 5px 0; }
.bigeasy-sitemap__faq-list a {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	color: var(--wp--preset--color--navy-900);
	text-decoration: none;
	line-height: 1.4;
	display: inline-block;
	padding: 2px 0;
	border-bottom: 1px solid transparent;
	transition: color 150ms ease, border-color 150ms ease;
}
.bigeasy-sitemap__faq-list a:hover {
	color: var(--wp--preset--color--orange-700);
	border-bottom-color: var(--wp--preset--color--orange-500);
}

/* ============================================================
   BUCKET B · 2026-05-13 · live-site parity + new homepage sections
   ------------------------------------------------------------
   Tokens used (all already declared upstream via theme.json + :root):
     var(--wp--preset--color--*) for palette
     var(--bigeasy-radius-*)     for radii
     var(--orange-700)           for AA text-on-white labels
   ============================================================ */

/* --- B1 · Header right cluster (primary CTA + secondary phone) ---
   D2.6 (2026-05-13) · Phase 2 polish · P1 CTA tighten + P2 phone-text collapse @ 1024-1279 +
   P3 mobile logo cap @ 140px + P4 tablet inner-flex gap 16px. Addresses measured nav-wrap @ 1440
   (right cluster was 609px starving nav row) + oversized mobile logo (200x120 → 140xauto). */
/* D6 Sub-item 2 · stack phone callout BELOW orange CTA on desktop + tablet (≥1024px).
   Below 1024 the CTA hides (existing rule line 3160) and mobile keeps its hamburger + sticky pattern. */
/* D10-A initial direction · horizontal flex row · superseded by D10-E.
   D10-E (2026-05-14) · Operator post-D10 review: with both items horizontal the
   right cluster is too wide and pushes the 6th nav item ("Blog") to a second row.
   Stacking vertically with phone callout ABOVE the orange CTA narrows the cluster
   and lets the menu fit on one row. Phone is first in DOM order so column-flow
   places it on top naturally. flex-end alignment keeps both items hugging the
   right edge of the cluster. */
.bigeasy-header__right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
}
@media (max-width: 1023px) {
	/* Below 1024 the orange CTA hides (existing rule) · phone-only cluster · re-allow
	   horizontal layout in the rare case we add another sibling later */
	.bigeasy-header__right { flex-direction: row; align-items: center; gap: 16px; }
}
.bigeasy-header__cta {
	display: inline-block;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;           /* P1 · 14 → 13 */
	font-weight: 700;
	letter-spacing: 0.03em;    /* P1 · 0.04 → 0.03 (tighter at smaller size) */
	padding: 10px 16px;        /* P1 · 12px 20px → 10px 16px */
	background: var(--wp--preset--color--orange-500);
	color: var(--wp--preset--color--white);
	text-decoration: none;
	border-radius: var(--bigeasy-radius-md, 8px);
	white-space: nowrap;
	box-shadow: 0 4px 12px rgba(236, 114, 0, 0.22);
	transition: background-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}
.bigeasy-header__cta:hover,
.bigeasy-header__cta:focus-visible {
	background: var(--wp--preset--color--orange-600);
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgba(236, 114, 0, 0.32);
}
.bigeasy-header__phone-num { font-weight: 400; opacity: 0.92; margin-left: 6px; }
@media (max-width: 1023px) {
	.bigeasy-header__cta { display: none; } /* mobile drawer + emergency banner surface CTA */
}
/* P2 · Collapse phone TEXT to icon-only between 1024-1279 (icon stays · still tappable) */
@media (min-width: 1024px) and (max-width: 1279px) {
	.bigeasy-header__phone-text { display: none; }
}
/* P4 · Tighten inner-flex gap on tablets so nav has breathing room before 1280 */
@media (max-width: 1279px) {
	.bigeasy-header > .wp-block-group { gap: 16px; }
}
/* P3 · Cap mobile logo size so header doesn't dominate viewport */
@media (max-width: 767px) {
	.bigeasy-header .wp-block-site-logo img { max-width: 140px; height: auto; }
	.bigeasy-header { padding-top: 12px; padding-bottom: 12px; }
}
/* P5 (D2.7) · Tighten wp:navigation blockGap @ 1024-1279 so 5 items fit on 1 row.
   Pairs with P2 (phone-text collapse) + P4 (inner-flex gap → 16) to close the ~48px nav underflow
   measured in D2.6: nav natural width 468px vs available ~421px after logo/cluster/gaps.
   NOTE: WP wp:navigation block wraps the actual <ul> inside several __responsive-container
   divs — the UL is NOT a direct child of <nav>. Using descendant selector + targeting the
   UL's own class (.wp-block-navigation__container) for reliability. */
/* gsd-route-emergency-justified */
/* H.3 (2026-05-22) · Nav-wrap DEFINITIVE fix · supersedes H.2.
   Root cause: the header row is capped at 1320px (constrained layout) at EVERY
   desktop width, but the prior fix only tightened the gap up to 1599px — so at
   >=1600 the nav reverted to a 32px block-gap. logo(200) + 6-item nav @32px(~817)
   + right cluster(~326) + inner gaps then exceeds 1320, and the WP nav <ul>
   (default flex-wrap:wrap) dropped BLOG to a second row at 1680/1920.
   Fix, in three parts:
     1. flex-wrap:nowrap on the desktop nav <ul> so items can NEVER wrap;
     2. a 16px gap that provably fits the 1320 cap across 1024-1599 (logo+nav+CTA);
     3. on large monitors (>=1600) widen the sticky header row into the otherwise
        empty side margin so the nav breathes at a roomier 28px gap (no wrap, no
        collision) instead of cramming at 16px in the middle of a 1920 viewport.
   Scoped to min-width:1024 so the mobile drawer (column stack) is untouched. */
@media (min-width: 1024px) {
	.bigeasy-header .wp-block-navigation { --wp--style--block-gap: 16px; }
	.bigeasy-header .wp-block-navigation .wp-block-navigation__container {
		flex-wrap: nowrap;
		gap: 16px !important;
	}
	/* Keep TOP-LEVEL labels on a single line (e.g. "Service Areas" must not break
	   mid-phrase when the row is tight). Targeting direct children of the top-level
	   __container (submenu items live under __submenu-container, so they keep their
	   normal wrapping) makes this robust to WP's responsive-wrapper nesting. */
	.bigeasy-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		white-space: nowrap;
	}
}
/* Compact band (1024-1439): row is tighter than the 1320 cap here, so trim the
   nav gap and logo a touch to keep all 6 single-line labels + phone + CTA on one
   row without collision. Above 1440 the full treatment + H.3 widen rules apply. */
@media (min-width: 1024px) and (max-width: 1439px) {
	.bigeasy-header .wp-block-navigation { --wp--style--block-gap: 12px; }
	.bigeasy-header .wp-block-navigation .wp-block-navigation__container { gap: 12px !important; }
	.bigeasy-header__logo { max-width: 180px; }
}
@media (min-width: 1600px) {
	.bigeasy-header > .wp-block-group { max-width: 1480px; }
	.bigeasy-header .wp-block-navigation { --wp--style--block-gap: 28px; }
	.bigeasy-header .wp-block-navigation .wp-block-navigation__container { gap: 28px !important; }
}
/* P6 (D4 · Bucket D Item 1) · Logo cap @ 1024-1279 to recover ~38px horizontal space
   so 5-item nav finally collapses to 1 row at tablet width. Adviser-approved Option A. */
@media (min-width: 1024px) and (max-width: 1279px) {
	.bigeasy-header .wp-block-site-logo img { max-width: 160px; height: auto; }
}

/* --- B10 · Trust logos strip (between hero close + promise-bar) ---
   D8 Sub-item 4 (2026-05-14) · 3D elevation feel applied per Adviser 5 approval.
   Operator wants the WHOLE SECTION to read as elevated above the page surface
   (not just the icon-circles having internal hover-lift). Layered shadow + radius
   + inset top highlight + lateral inset to detach from edges. */
.bigeasy-trust-strip {
	background: var(--wp--preset--color--navy-100);
	padding: 32px 24px;
	border-radius: 16px;
	border-top: 0;
	border-bottom: 0;
	box-shadow:
		0 12px 32px rgba(2, 21, 90, 0.10),
		0 4px 8px rgba(2, 21, 90, 0.05),
		inset 0 1px 0 rgba(255, 255, 255, 0.7);
	margin: 32px auto;
	max-width: calc(100% - 48px);
	transition: transform 240ms ease, box-shadow 240ms ease;
}
@media (hover: hover) and (min-width: 768px) {
	.bigeasy-trust-strip:hover {
		transform: translateY(-2px);
		box-shadow:
			0 16px 40px rgba(2, 21, 90, 0.13),
			0 6px 12px rgba(2, 21, 90, 0.06),
			inset 0 1px 0 rgba(255, 255, 255, 0.7);
	}
}
@media (max-width: 768px) {
	.bigeasy-trust-strip {
		box-shadow: 0 8px 16px rgba(2, 21, 90, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.6);
		margin: 24px auto;
		max-width: calc(100% - 32px);
		padding: 24px 16px;
		border-radius: 12px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.bigeasy-trust-strip { transition: none; }
	.bigeasy-trust-strip:hover { transform: none; }
}
.bigeasy-trust-strip__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	align-items: center;
	gap: 24px;
	max-width: 1140px;
	margin: 0 auto;
}
.bigeasy-trust-strip__badge {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--wp--preset--color--ink-700);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.bigeasy-trust-strip__badge svg { color: var(--wp--preset--color--navy-900); flex-shrink: 0; }
@media (max-width: 640px) {
	.bigeasy-trust-strip__inner { gap: 16px; }
	.bigeasy-trust-strip__badge { font-size: 12px; }
}

/* D6 Sub-item 7a (2026-05-13) · Enriched icon-circles variant
   Approved by Adviser 5 (Direction A). Filled orange-500 48px circle with white inline
   SVG icon + bold title label. Secondary metric line omitted per Adviser caveat (no
   fabricated numbers). Hover lift gives polish. */
.bigeasy-trust-strip__inner:has(.bigeasy-trust-strip__badge--enriched) {
	padding: 8px 0;
}
.bigeasy-trust-strip__badge--enriched {
	gap: 14px;
	align-items: center;
	text-transform: none;
	letter-spacing: 0;
	color: var(--wp--preset--color--navy-900);
	font-weight: 400;
}
.bigeasy-trust-strip__icon-circle {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--wp--preset--color--orange-500);
	/* WCAG 1.4.11 non-text contrast: orange-500 #EC7200 on navy-100 #E7EAF3 = 2.50:1
	   (fails 3:1 minimum for UI components). Navy-900 #02155A ring provides
	   independent separation at ~13:1 vs the navy-100 background, satisfying SC 1.4.11. */
	border: 1.5px solid var(--wp--preset--color--navy-900);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--white);
	box-shadow: 0 4px 12px rgba(236, 114, 0, 0.22);
	flex-shrink: 0;
	transition: transform 200ms ease, box-shadow 200ms ease;
}
.bigeasy-trust-strip__icon-circle svg { color: var(--wp--preset--color--white); }
.bigeasy-trust-strip__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	line-height: 1.25;
}
.bigeasy-trust-strip__title {
	font-family: var(--wp--preset--font-family--outfit);
	font-weight: 700;
	font-size: 15px;
	color: var(--wp--preset--color--navy-900);
	letter-spacing: 0.01em;
}
.bigeasy-trust-strip__sub {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 12px;
	font-weight: 500;
	color: var(--wp--preset--color--ink-500);
}
.bigeasy-trust-strip__badge--enriched:hover .bigeasy-trust-strip__icon-circle {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(236, 114, 0, 0.32);
}
@media (max-width: 640px) {
	.bigeasy-trust-strip__icon-circle { width: 40px; height: 40px; }
	.bigeasy-trust-strip__icon-circle svg { width: 18px; height: 18px; }
	.bigeasy-trust-strip__title { font-size: 13px; }
}

/* E.2-2 (2026-05-18) · Trust strip alignment fix · operator screenshot @ iPhone showed the
   4 badges splitting 2+1+1 (Facebook+Google on row 1, then 100% Satisfaction alone on row 2
   and Quality Premium alone on row 3) due to flex-wrap + justify-content:space-around — the
   lone wrapped items centered themselves in their rows and looked misaligned vs row 1.
   Fix: force a 2x2 CSS grid at <=600px so all 4 badges share consistent column widths and
   left-edge alignment. Above 600px the existing flex layout handles wider viewports cleanly. */
@media (max-width: 600px) {
	.bigeasy-trust-strip__inner {
		display: grid;
		grid-template-columns: 1fr 1fr;
		justify-items: start;
		align-items: center;
		gap: 18px 12px;
	}
	.bigeasy-trust-strip__badge--enriched {
		width: 100%;
	}
}

/* --- New homepage section base (shared) ---
   D7 Sub-item 1 (2026-05-14): Duplicate .bigeasy-section__inner rule deleted from
   this block. The duplicate previously declared `padding: 0 24px;` and won the
   cascade by source-order against the unified-spec rule at line 1463, silently
   cancelling D5 Item 2 AND D6 Commit B spacing bumps for 2 sessions. Root cause
   confirmed via D7-spacing-rootcause-audit-gate. Adviser 5 approved verbatim delete.
   .bigeasy-section__inner now resolves cleanly to line 1463's
   `padding: clamp(72px, 9vw, 144px) clamp(24px, 5vw, 80px);` */
.bigeasy-section { padding: 80px 0; }
@media (max-width: 768px) { .bigeasy-section { padding: 56px 0; } }

/* --- B12 · CT Experts section --- */
.bigeasy-ct-experts { background: var(--wp--preset--color--white); text-align: center; }
.bigeasy-ct-experts__inner { max-width: 920px; }
.bigeasy-ct-experts__heading {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3.2vw, 44px);
	line-height: 1.15;
	margin: 0 0 16px;
}
.bigeasy-ct-experts__subheading { color: var(--wp--preset--color--ink-500); font-size: 20px; font-style: italic; margin: 0 0 24px; }
.bigeasy-ct-experts__body { color: var(--wp--preset--color--ink-700); font-size: 17px; line-height: 1.7; margin: 0; }

/* --- B3 · Working Plan section --- */
.bigeasy-working-plan { background: var(--wp--preset--color--off-white); }
.bigeasy-working-plan__heading {
	text-align: center;
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3vw, 40px);
	margin: 0 0 48px;
}
.bigeasy-working-plan__steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 32px; }
.bigeasy-working-plan__step { text-align: center; padding: 24px; }
.bigeasy-working-plan__num {
	display: block;
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	font-size: 56px;
	font-weight: 700;
	color: var(--orange-700);
	line-height: 1;
	margin-bottom: 12px;
}
.bigeasy-working-plan__icon { color: var(--wp--preset--color--navy-900); margin-bottom: 16px; }
.bigeasy-working-plan__title {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 12px;
}
.bigeasy-working-plan__desc { color: var(--wp--preset--color--ink-700); font-size: 16px; line-height: 1.6; margin: 0; }

/* --- B5 · Service Areas 2-col list --- */
.bigeasy-areas-2col { background: var(--wp--preset--color--off-white); }
.bigeasy-areas-2col__heading {
	text-align: center;
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3vw, 40px);
	margin: 0 0 48px;
}
.bigeasy-areas-2col__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; max-width: 720px; margin: 0 auto; }
.bigeasy-areas-2col__state {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 16px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--wp--preset--color--orange-500);
}
.bigeasy-areas-2col__list { list-style: none; padding: 0; margin: 0; }
.bigeasy-areas-2col__list li { padding: 8px 0; }
.bigeasy-areas-2col__list a {
	color: var(--wp--preset--color--navy-900);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 18px;
	font-weight: 600;
	text-decoration: none;
	transition: color 150ms ease;
}
.bigeasy-areas-2col__list a:hover,
.bigeasy-areas-2col__list a:focus-visible { color: var(--orange-700); }
@media (max-width: 640px) {
	.bigeasy-areas-2col__grid { grid-template-columns: 1fr; gap: 32px; }
}

/* --- B4 · Service Area Map --- */
.bigeasy-areas-map { background: var(--wp--preset--color--white); }
.bigeasy-areas-map__inner { text-align: center; }
.bigeasy-areas-map__heading {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3vw, 40px);
	margin: 0 0 8px;
}
.bigeasy-areas-map__subhead { color: var(--wp--preset--color--ink-500); font-size: 18px; margin: 0 0 32px; }
.bigeasy-areas-map__image {
	max-width: 100%;
	height: auto;
	border-radius: var(--bigeasy-radius-md, 8px);
	box-shadow: 0 8px 24px rgba(2, 21, 90, 0.12);
}
.bigeasy-areas-map__placeholder {
	display: flex; align-items: center; justify-content: center;
	min-height: 320px;
	background: var(--wp--preset--color--navy-100);
	border-radius: var(--bigeasy-radius-md, 8px);
	color: var(--wp--preset--color--ink-500);
	font-style: italic;
}

/* --- D5 Item 3 (2026-05-13) · Merged Service Areas + Map (2-col desktop, stacked mobile) ---
   Replaces the previously stacked B4/B5 sections with a single side-by-side layout.
   List LEFT (with CT + NY inner 2-col), Map RIGHT, breakpoint 768px for stack. */
.bigeasy-service-areas-merged { background: var(--wp--preset--color--off-white); }
.bigeasy-service-areas-merged__inner { text-align: center; }
.bigeasy-service-areas-merged__heading {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3vw, 40px);
	margin: 0 0 8px;
}
.bigeasy-service-areas-merged__subhead {
	color: var(--wp--preset--color--ink-500);
	font-size: 18px;
	margin: 0 0 40px;
}
.bigeasy-service-areas-merged__layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
	max-width: 1080px;
	margin: 0 auto;
	text-align: left;
}
.bigeasy-service-areas-merged__list-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}
.bigeasy-service-areas-merged__col { min-width: 0; }
.bigeasy-service-areas-merged__state {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 12px;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--wp--preset--color--orange-500);
}
.bigeasy-service-areas-merged__list { list-style: none; padding: 0; margin: 0; }
.bigeasy-service-areas-merged__list li { padding: 6px 0; }
.bigeasy-service-areas-merged__list a {
	color: var(--wp--preset--color--navy-900);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 17px;
	font-weight: 600;
	text-decoration: none;
	transition: color 150ms ease;
}
.bigeasy-service-areas-merged__list a:hover,
.bigeasy-service-areas-merged__list a:focus-visible { color: var(--orange-700); }
.bigeasy-service-areas-merged__map-col { min-width: 0; }
.bigeasy-service-areas-merged__image {
	width: 100%;
	max-width: 100%;
	height: auto;
	border-radius: var(--bigeasy-radius-md, 8px);
	box-shadow: 0 8px 24px rgba(2, 21, 90, 0.12);
	display: block;
	transition: transform 320ms cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 320ms ease-out;
}

/* F.13 (2026-05-17) · Make map a clickable link to /service-areas/ with hover affordance + "See all 11" CTA overlay */
.bigeasy-service-areas-merged__map-link {
	position: relative;
	display: block;
	border-radius: var(--bigeasy-radius-md, 8px);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
}
.bigeasy-service-areas-merged__map-cta {
	position: absolute;
	left: 50%;
	bottom: 16px;
	transform: translateX(-50%) translateY(8px);
	background: var(--wp--preset--color--navy-900, #02155a);
	color: #fff;
	font-family: var(--wp--preset--font-family--outfit, system-ui, sans-serif);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 10px 18px;
	border-radius: 999px;
	box-shadow: 0 6px 18px -6px rgba(2, 21, 90, 0.45);
	opacity: 0;
	pointer-events: none;
	transition: opacity 240ms ease-out, transform 320ms cubic-bezier(0.2, 0.7, 0.3, 1);
	white-space: nowrap;
}
.bigeasy-service-areas-merged__map-cta span { color: var(--wp--preset--color--orange-400, #FF9F4B); margin-left: 4px; }

@media (prefers-reduced-motion: no-preference) {
	.bigeasy-service-areas-merged__map-link:hover .bigeasy-service-areas-merged__image,
	.bigeasy-service-areas-merged__map-link:focus-visible .bigeasy-service-areas-merged__image {
		transform: scale(1.02);
		box-shadow: 0 18px 38px -8px rgba(2, 21, 90, 0.28);
	}
	.bigeasy-service-areas-merged__map-link:hover .bigeasy-service-areas-merged__map-cta,
	.bigeasy-service-areas-merged__map-link:focus-visible .bigeasy-service-areas-merged__map-cta {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

/* County link · subtle slide + orange underline grow on hover */
.bigeasy-service-areas-merged__list a {
	transition: color 180ms ease, padding-left 200ms cubic-bezier(0.2, 0.7, 0.3, 1);
}
@media (prefers-reduced-motion: no-preference) {
	.bigeasy-service-areas-merged__list a:hover,
	.bigeasy-service-areas-merged__list a:focus-visible {
		padding-left: 6px;
	}
}
/* Focus-visible outline for keyboard users on the map link */
.bigeasy-service-areas-merged__map-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange-500, #DC5A00);
	outline-offset: 4px;
}
@media (max-width: 768px) {
	.bigeasy-service-areas-merged__layout {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.bigeasy-service-areas-merged__list-col { gap: 24px; }
}
@media (max-width: 480px) {
	.bigeasy-service-areas-merged__list-col { grid-template-columns: 1fr; gap: 24px; }
}

/* --- B6 · Homepage FAQ accordion (native details/summary) --- */
.bigeasy-faq-home { background: var(--wp--preset--color--white); }
.bigeasy-faq-home__heading {
	text-align: center;
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3vw, 40px);
	margin: 0 0 48px;
}
.bigeasy-faq-home__list { max-width: 800px; margin: 0 auto; }
.bigeasy-faq-home__item {
	background: var(--wp--preset--color--off-white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md, 8px);
	margin-bottom: 12px;
	overflow: hidden;
	transition: border-color 150ms ease;
}
.bigeasy-faq-home__item[open] { border-left: 4px solid var(--wp--preset--color--orange-500); }
.bigeasy-faq-home__q {
	cursor: pointer;
	padding: 20px 56px 20px 24px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 18px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	position: relative;
	list-style: none;
}
.bigeasy-faq-home__q::-webkit-details-marker { display: none; }
.bigeasy-faq-home__q::after {
	content: '+';
	position: absolute;
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 28px;
	font-weight: 400;
	line-height: 1;
	color: var(--orange-700);
	transition: transform 200ms ease;
}
.bigeasy-faq-home__item[open] .bigeasy-faq-home__q::after { content: '−'; }
.bigeasy-faq-home__a { padding: 0 24px 20px; color: var(--wp--preset--color--ink-700); font-size: 16px; line-height: 1.65; }
.bigeasy-faq-home__a p { margin: 0; }
.bigeasy-faq-home__cta { text-align: center; margin-top: 32px; }

/* --- F.6 (2026-05-17) · Unified FAQ accordion sitewide.
   Operator: FAQ child / FAQ hub / pillar FAQs were inconsistent. Apply the
   cleaner homepage card-accordion treatment (.bigeasy-faq-home__item) to
   every <details> FAQ block in the theme.
   ----------------------------------------------------------------
   Selectors covered:
   - .bigeasy-faq-related (FAQ child page Related Questions block + cross-cluster
     "Related Topics" section; both share the same markup root)
   - .bigeasy-faq-marquee (FAQ hub marquee widget)
   - .bigeasy-pillar-faq (pillar page FAQ block — Adviser deferred wiring)
   ============================================================ */
.bigeasy-faq-related {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--wp--preset--color--ink-200);
}
.bigeasy-faq-related__heading,
.bigeasy-faq-marquee__heading,
.bigeasy-pillar-faq__heading {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(1.5rem, 3vw, 2rem);
	margin: 0 0 24px;
}
/* Card-accordion base · matches .bigeasy-faq-home__item */
.bigeasy-faq-related__item,
.bigeasy-faq-marquee__item,
.bigeasy-pillar-faq__item {
	background: var(--wp--preset--color--off-white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md, 8px);
	margin-bottom: 12px;
	overflow: hidden;
	transition: border-color 150ms ease, box-shadow 200ms ease;
	padding: 0;
}
.bigeasy-faq-related__item[open],
.bigeasy-faq-marquee__item[open],
.bigeasy-pillar-faq__item[open] {
	border-left: 4px solid var(--wp--preset--color--orange-500);
}
.bigeasy-faq-related__item:hover,
.bigeasy-faq-marquee__item:hover,
.bigeasy-pillar-faq__item:hover {
	border-color: rgba(2, 21, 90, 0.18);
}
/* First-of-type top border override (was used to wrap a borderless list) */
.bigeasy-faq-related__item:first-of-type { border-top: 1px solid var(--wp--preset--color--ink-200); }

/* Question / summary
   F.12 (2026-05-17): broadened selectors to also catch <summary> elements
   that don't carry the __q class (FAQ hub marquee uses plain <summary><strong>).
   Using descendant selector instead of class match for resilience. */
.bigeasy-faq-related__q,
.bigeasy-faq-marquee__q,
.bigeasy-pillar-faq__q,
.bigeasy-faq-related__item > summary,
.bigeasy-faq-marquee__item > summary,
.bigeasy-pillar-faq__item > summary {
	cursor: pointer;
	padding: 20px 56px 20px 24px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 18px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	position: relative;
	list-style: none;
	display: block;
	line-height: 1.4;
}
.bigeasy-faq-related__q::-webkit-details-marker,
.bigeasy-faq-marquee__q::-webkit-details-marker,
.bigeasy-pillar-faq__q::-webkit-details-marker,
.bigeasy-faq-related__item > summary::-webkit-details-marker,
.bigeasy-faq-marquee__item > summary::-webkit-details-marker,
.bigeasy-pillar-faq__item > summary::-webkit-details-marker { display: none; }
.bigeasy-faq-related__q::after,
.bigeasy-faq-marquee__q::after,
.bigeasy-pillar-faq__q::after,
.bigeasy-faq-related__item > summary::after,
.bigeasy-faq-marquee__item > summary::after,
.bigeasy-pillar-faq__item > summary::after {
	content: '+';
	position: absolute;
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 28px;
	font-weight: 400;
	line-height: 1;
	color: var(--orange-700);
	transition: transform 200ms ease;
}
.bigeasy-faq-related__item[open] .bigeasy-faq-related__q::after,
.bigeasy-faq-marquee__item[open] .bigeasy-faq-marquee__q::after,
.bigeasy-pillar-faq__item[open] .bigeasy-pillar-faq__q::after,
.bigeasy-faq-related__item[open] > summary::after,
.bigeasy-faq-marquee__item[open] > summary::after,
.bigeasy-pillar-faq__item[open] > summary::after {
	content: '−';
	transform: translateY(-50%);
}
/* Strong inside summary should not look bold-vs-not-bold weight-shifted */
.bigeasy-faq-related__item > summary strong,
.bigeasy-faq-marquee__item > summary strong,
.bigeasy-pillar-faq__item > summary strong {
	font-weight: inherit;
}

/* Answer body */
.bigeasy-faq-related__a,
.bigeasy-faq-marquee__a,
.bigeasy-pillar-faq__a {
	padding: 0 24px 20px;
	color: var(--wp--preset--color--ink-700);
	font-size: 16px;
	line-height: 1.65;
}
.bigeasy-faq-related__a p,
.bigeasy-faq-marquee__a p,
.bigeasy-pillar-faq__a p { margin: 0 0 12px; }
.bigeasy-faq-related__a p:last-child,
.bigeasy-faq-marquee__a p:last-child,
.bigeasy-pillar-faq__a p:last-child { margin: 0; }

/* Hover (subtle, respect reduced-motion) */
@media (prefers-reduced-motion: no-preference) {
	.bigeasy-faq-related__item:hover,
	.bigeasy-faq-marquee__item:hover,
	.bigeasy-pillar-faq__item:hover { box-shadow: 0 6px 18px -10px rgba(2, 21, 90, 0.14); }
}

/* --- B7 · Latest Blogs widget (placeholder cards) --- */
.bigeasy-latest-blogs { background: var(--wp--preset--color--off-white); }
.bigeasy-latest-blogs__heading {
	text-align: center;
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3vw, 40px);
	margin: 0 0 48px;
}
.bigeasy-latest-blogs__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 32px; }
.bigeasy-latest-blogs__card {
	background: var(--wp--preset--color--white);
	border-radius: var(--bigeasy-radius-md, 8px);
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(2, 21, 90, 0.06);
	transition: transform 200ms ease, box-shadow 200ms ease;
}
.bigeasy-latest-blogs__card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(2, 21, 90, 0.12);
}
.bigeasy-latest-blogs__image {
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, var(--wp--preset--color--orange-100), var(--wp--preset--color--navy-100));
	position: relative;
	overflow: hidden;
}
/* D7 Commit E (2026-05-14) · Featured image rendering when post has post-thumbnail.
   Category eyebrow overlays bottom-left over the photo for cluster context. */
.bigeasy-latest-blogs__img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	aspect-ratio: 16 / 9;
}
.bigeasy-latest-blogs__category--overlay {
	position: absolute;
	left: 12px;
	bottom: 10px;
	background: rgba(2, 21, 90, 0.78);
	color: var(--wp--preset--color--orange-400);
	padding: 4px 10px;
	border-radius: var(--bigeasy-radius-sm, 4px);
	z-index: 2;
	pointer-events: none;
}

/* D6 Sub-item 7b (2026-05-13) · Improved placeholder design for blog cards.
   Replaces gradient PNG placeholders with intentional editorial chrome:
   navy gradient + subtle diagonal stripe pattern + category eyebrow + topic icon.
   Approved by Adviser 5 (Direction A). */
.bigeasy-latest-blogs__image--brand {
	aspect-ratio: 16 / 9;
	background:
		repeating-linear-gradient(45deg, transparent 0 8px, rgba(255, 255, 255, 0.04) 8px 9px),
		linear-gradient(135deg, var(--wp--preset--color--navy-900) 0%, var(--wp--preset--color--navy-700, #1c317a) 100%);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	color: var(--wp--preset--color--white);
	position: relative;
	overflow: hidden;
}
.bigeasy-latest-blogs__image--brand::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 4px;
	background: var(--wp--preset--color--orange-500);
}
.bigeasy-latest-blogs__category {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 11px;
	letter-spacing: 0.16em;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-400);
	position: relative;
	z-index: 1;
}
.bigeasy-latest-blogs__topic-icon {
	display: inline-flex;
	color: rgba(255, 255, 255, 0.88);
	position: relative;
	z-index: 1;
}
.bigeasy-latest-blogs__topic-icon svg { display: block; }
.bigeasy-latest-blogs__title {
	padding: 20px;
	margin: 0;
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: 18px;
	font-weight: 700;
}

/* --- B8 · Instagram placeholder grid --- */
.bigeasy-instagram { background: var(--wp--preset--color--white); }
.bigeasy-instagram__heading {
	text-align: center;
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3vw, 40px);
	margin: 0 0 32px;
}
.bigeasy-instagram__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	max-width: 720px;
	margin: 0 auto 24px;
}
@media (max-width: 640px) {
	.bigeasy-instagram__grid { grid-template-columns: repeat(2, 1fr); }
}
.bigeasy-instagram__tile {
	aspect-ratio: 1;
	background: var(--wp--preset--color--orange-100);
	border-radius: var(--bigeasy-radius-sm, 4px);
	display: block;
	position: relative;
	transition: transform 200ms ease, background-color 200ms ease;
	overflow: hidden;
}
.bigeasy-instagram__tile::after {
	content: '';
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='%23A65500' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='2' width='20' height='20' rx='5'/><path d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/><line x1='17.5' y1='6.5' x2='17.51' y2='6.5'/></svg>") center no-repeat;
	opacity: 0.5;
	transition: opacity 200ms ease;
}
.bigeasy-instagram__tile:hover,
.bigeasy-instagram__tile:focus-visible {
	transform: scale(1.02);
	background: #FAD9B5;
}
.bigeasy-instagram__tile:hover::after,
.bigeasy-instagram__tile:focus-visible::after { opacity: 0.75; }
.bigeasy-instagram__follow { text-align: center; margin: 0; }
.bigeasy-instagram__follow a {
	color: var(--orange-700);
	font-family: var(--wp--preset--font-family--outfit);
	font-weight: 600;
	font-size: 18px;
	text-decoration: none;
}
.bigeasy-instagram__follow a:hover,
.bigeasy-instagram__follow a:focus-visible { text-decoration: underline; }

/* --- B9 · 4-col footer grid (replaces wp:columns layout) --- */
.bigeasy-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1.4fr 1.2fr 1fr;
	gap: 48px;
	margin-top: 48px;
}
@media (max-width: 900px) { .bigeasy-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (max-width: 560px) { .bigeasy-footer__grid { grid-template-columns: 1fr; gap: 24px; } }
.bigeasy-footer__heading {
	font-family: var(--wp--preset--font-family--outfit);
	color: var(--wp--preset--color--orange-400);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 16px;
}
.bigeasy-footer__list { list-style: none; padding: 0; margin: 0; }
.bigeasy-footer__list li { line-height: 2; }
.bigeasy-footer__list a {
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	text-decoration: none;
	transition: color 150ms ease;
}
.bigeasy-footer__list a:hover,
.bigeasy-footer__list a:focus-visible { color: var(--wp--preset--color--orange-400); text-decoration: underline; }
.bigeasy-footer__areas { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 560px) { .bigeasy-footer__areas { grid-template-columns: 1fr; } }
.bigeasy-footer__area-state {
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	font-weight: 700;
	margin: 0 0 4px;
}
.bigeasy-footer__list--areas li { line-height: 1.9; }
.bigeasy-footer__list--areas a {
	font-size: 13px;
	color: var(--wp--preset--color--ink-200);
	text-decoration: none;
	transition: color 180ms ease;
}
/* D8 Sub-item 3 (2026-05-14) · Footer area-link hover/focus state. Was href="#" placeholders
   pre-D8 · now real anchor targets to /service-areas/ + service-location pages. */
.bigeasy-footer__list--areas a:hover,
.bigeasy-footer__list--areas a:focus-visible {
	color: var(--wp--preset--color--orange-400);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.bigeasy-footer__list--areas a:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange-400);
	outline-offset: 2px;
	border-radius: 2px;
}
.bigeasy-footer__contact { margin: 0 0 20px; line-height: 1.7; }
.bigeasy-footer__contact a {
	color: var(--wp--preset--color--white);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
}
.bigeasy-footer__phone strong { font-size: 16px; font-weight: 700; }
.bigeasy-footer__email:hover { color: var(--wp--preset--color--orange-400); }
.bigeasy-footer__social {
	list-style: none;
	display: flex;
	gap: 12px;
	padding: 0;
	margin: 16px 0 0;
}
.bigeasy-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	color: var(--wp--preset--color--white);
	background: rgba(255, 255, 255, 0.08);
	transition: background-color 150ms ease, color 150ms ease, transform 150ms ease;
}
.bigeasy-footer__social a:hover,
.bigeasy-footer__social a:focus-visible {
	background: var(--wp--preset--color--orange-500);
	color: var(--wp--preset--color--white);
	transform: translateY(-1px);
}
.bigeasy-footer__sep {
	border: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.10);
	margin: 48px 0 24px;
}
.bigeasy-footer__copyright {
	text-align: center;
	color: var(--wp--preset--color--ink-300);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	margin: 0;
}

/* --- B11 · Contact form (7-field + upload + captcha placeholder) --- */
.bigeasy-contact-form .bigeasy-hero-form__fieldset {
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md, 8px);
	padding: 12px 16px 16px;
	margin: 0 0 16px;
}
.bigeasy-contact-form .bigeasy-hero-form__fieldset legend {
	padding: 0 6px;
}
.bigeasy-contact-form .bigeasy-hero-form__fieldset .bigeasy-hero-form__input {
	margin-bottom: 8px;
}
.bigeasy-contact-form .bigeasy-hero-form__fieldset .bigeasy-hero-form__input:last-child { margin-bottom: 0; }
.bigeasy-contact-form .bigeasy-hero-form__textarea {
	min-height: 120px;
	resize: vertical;
	font-family: inherit;
}
.bigeasy-contact-form .bigeasy-hero-form__field--upload .bigeasy-hero-form__upload {
	display: block;
	width: 100%;
	padding: 18px;
	border: 2px dashed var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md, 8px);
	background: var(--wp--preset--color--off-white);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	cursor: pointer;
}
.bigeasy-contact-form .bigeasy-hero-form__field--upload .bigeasy-hero-form__upload:hover,
.bigeasy-contact-form .bigeasy-hero-form__field--upload .bigeasy-hero-form__upload:focus-visible {
	border-color: var(--wp--preset--color--orange-500);
	background: var(--wp--preset--color--white);
}
.bigeasy-contact-form .bigeasy-hero-form__hint {
	color: var(--wp--preset--color--ink-500);
	font-size: 12px;
	margin: 6px 0 0;
}
.bigeasy-contact-form .bigeasy-hero-form__field--captcha .bigeasy-hero-form__captcha-placeholder {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md, 8px);
	background: var(--wp--preset--color--off-white);
}
.bigeasy-contact-form .bigeasy-hero-form__captcha-placeholder input[type="checkbox"] {
	width: 20px; height: 20px;
	accent-color: var(--wp--preset--color--orange-500);
}
.bigeasy-contact-form .bigeasy-hero-form__captcha-placeholder label {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	cursor: pointer;
}
.bigeasy-contact-form .bigeasy-hero-form__captcha-icon {
	margin-left: auto;
	font-size: 11px;
	color: var(--wp--preset--color--ink-500);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
/* Required-field asterisk colour (consistent with brand) */
.bigeasy-contact-form .bigeasy-hero-form__label span[aria-hidden] {
	color: var(--orange-700);
	margin-left: 2px;
}
/* Screen-reader-only utility used by Instagram tiles + others */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ============================================================
   BUCKET C · 2026-05-13 · blog CPT + archive + single + cards
   ============================================================ */

/* Blog archive grid */
.bigeasy-blog-archive .bigeasy-blog-grid__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 32px;
}
.bigeasy-blog-card {
	background: var(--wp--preset--color--white);
	border-radius: var(--bigeasy-radius-md, 8px);
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(2, 21, 90, 0.06);
	transition: transform 200ms ease, box-shadow 200ms ease;
}
.bigeasy-blog-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(2, 21, 90, 0.12);
}
.bigeasy-blog-card .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
	object-fit: cover;
}
.bigeasy-blog-card__title a {
	color: var(--wp--preset--color--navy-900);
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	font-size: 22px;
	font-weight: 700;
	text-decoration: none;
	display: block;
	padding: 16px 20px 0;
}
.bigeasy-blog-card__title a:hover { color: var(--orange-700); }
.bigeasy-blog-card__excerpt {
	padding: 8px 20px 20px;
	margin: 0;
	color: var(--wp--preset--color--ink-700);
	font-size: 15px;
	line-height: 1.55;
}

/* Blog single */
.bigeasy-blog-single__title {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3.6vw, 44px);
	line-height: 1.15;
	margin: 0 0 16px;
}
.bigeasy-blog-single__meta {
	color: var(--wp--preset--color--ink-500);
	font-size: 14px;
	gap: 8px;
	margin-bottom: 32px;
}
.bigeasy-blog-single__meta p { margin: 0; }
.bigeasy-blog-single .wp-block-post-content { font-size: 17px; line-height: 1.75; color: var(--wp--preset--color--ink-700); }
.bigeasy-blog-single .wp-block-post-content h2 {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	font-size: 28px; color: var(--wp--preset--color--navy-900);
	margin: 40px 0 16px;
}
.bigeasy-blog-single .wp-block-post-content h3 {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	font-size: 22px; color: var(--wp--preset--color--navy-900);
	margin: 32px 0 12px;
}
.bigeasy-blog-single .wp-block-post-content p { margin: 0 0 20px; }
.bigeasy-blog-single .wp-block-post-content ul,
.bigeasy-blog-single .wp-block-post-content ol { margin: 0 0 24px 24px; }
.bigeasy-blog-single .wp-block-post-content li { margin-bottom: 8px; }
.bigeasy-blog-single__cta {
	background: var(--wp--preset--color--off-white);
	border-radius: var(--bigeasy-radius-md, 8px);
	padding: 32px;
	margin-top: 56px;
	text-align: center;
	border: 1px solid var(--wp--preset--color--ink-200);
}
.bigeasy-blog-single__cta h3 {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: 24px;
	margin: 0 0 12px;
}
.bigeasy-blog-single__cta p {
	color: var(--wp--preset--color--ink-700);
	margin: 0 0 24px;
}

/* Wave 3 · live latest-blogs card link wrapper */
.bigeasy-latest-blogs__link {
	display: block;
	text-decoration: none;
	color: inherit;
	height: 100%;
}
.bigeasy-latest-blogs__link:hover .bigeasy-latest-blogs__title { color: var(--orange-700); }
.bigeasy-latest-blogs__link img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* ============================================================
   D9 Sub-item 2 (2026-05-14) · Reviews slider section
   Atmospheric basement-context bg image + navy darken overlay for AA contrast on
   white text. Centered content card · serif headline · sans body. ARIA carousel
   semantics + dot tablist controls. JS in sonic-boom.js::initReviewsSlider().
   ============================================================ */
.bigeasy-reviews-slider {
	position: relative;
	overflow: hidden;
	background-color: var(--wp--preset--color--navy-900);
	background-image: var(--bigeasy-reviews-bg, none);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: var(--wp--preset--color--white);
	padding: clamp(72px, 10vw, 120px) 24px;
	isolation: isolate;
}
.bigeasy-reviews-slider__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(2,21,90,0.78) 0%, rgba(2,21,90,0.72) 50%, rgba(2,21,90,0.85) 100%);
	z-index: 0;
	pointer-events: none;
}
.bigeasy-reviews-slider__inner {
	position: relative;
	z-index: 1;
	max-width: 880px;
	margin: 0 auto;
	text-align: center;
}
.bigeasy-reviews-slider__chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-400);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(244, 147, 64, 0.4);
	border-radius: 999px;
	padding: 8px 16px;
	margin: 0 0 28px;
}
.bigeasy-reviews-slider__chip-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--orange-400);
	box-shadow: 0 0 0 4px rgba(244, 147, 64, 0.18);
}
.bigeasy-reviews-slider__heading {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	font-size: clamp(32px, 5vw, 56px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--white);
	margin: 0 0 16px;
}
.bigeasy-reviews-slider__sub {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: clamp(16px, 1.6vw, 18px);
	color: rgba(255, 255, 255, 0.88);
	margin: 0 0 48px;
}
.bigeasy-reviews-slider__viewport {
	position: relative;
	min-height: 280px;
}
.bigeasy-reviews-slider__slide {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 360ms ease, transform 360ms ease, visibility 360ms;
	pointer-events: none;
}
.bigeasy-reviews-slider__slide.is-active {
	position: relative;
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}
.bigeasy-reviews-slider__quoteframe {
	color: var(--wp--preset--color--orange-400);
	margin: 0 0 20px;
	opacity: 0.9;
}
.bigeasy-reviews-slider__quoteicon {
	width: 48px;
	height: 48px;
}
.bigeasy-reviews-slider__quote {
	margin: 0 0 24px;
	max-width: 720px;
}
.bigeasy-reviews-slider__quote p {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: clamp(18px, 2vw, 22px);
	line-height: 1.55;
	color: var(--wp--preset--color--white);
	margin: 0;
	font-weight: 400;
}
.bigeasy-reviews-slider__stars {
	display: inline-flex;
	gap: 4px;
	margin: 0 0 18px;
	color: var(--wp--preset--color--orange-400);
}
.bigeasy-reviews-slider__star { display: block; }
.bigeasy-reviews-slider__cite {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 15px;
	color: rgba(255, 255, 255, 0.92);
	margin: 0;
	letter-spacing: 0.02em;
}
.bigeasy-reviews-slider__name { font-weight: 600; color: var(--wp--preset--color--white); }
.bigeasy-reviews-slider__sep { color: rgba(255, 255, 255, 0.45); }
.bigeasy-reviews-slider__loc { color: rgba(255, 255, 255, 0.78); }

.bigeasy-reviews-slider__controls {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 40px;
}
.bigeasy-reviews-slider__dot {
	width: 12px;
	height: 12px;
	padding: 0;
	border-radius: 50%;
	background: transparent;
	border: 2px solid rgba(255, 255, 255, 0.55);
	cursor: pointer;
	transition: background 200ms ease, border-color 200ms ease, transform 200ms ease;
	position: relative;
}
.bigeasy-reviews-slider__dot:hover { border-color: var(--wp--preset--color--orange-400); }
.bigeasy-reviews-slider__dot.is-active {
	background: var(--wp--preset--color--orange-500);
	border-color: var(--wp--preset--color--orange-500);
	transform: scale(1.15);
}
.bigeasy-reviews-slider__dot:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange-400);
	outline-offset: 4px;
}

@media (max-width: 768px) {
	.bigeasy-reviews-slider { padding: 56px 20px; }
	.bigeasy-reviews-slider__sub { margin-bottom: 36px; }
	.bigeasy-reviews-slider__viewport { min-height: 360px; }
	.bigeasy-reviews-slider__quoteicon { width: 36px; height: 36px; }
	.bigeasy-reviews-slider__quote p { font-size: 17px; line-height: 1.5; }
	.bigeasy-reviews-slider__controls { margin-top: 32px; }
	/* Touch-target spec compliance — dots stay 12×12 visual but get 44×44 hit area via padding */
	.bigeasy-reviews-slider__dot {
		width: 44px;
		height: 44px;
		border-width: 0;
		background: transparent;
	}
	.bigeasy-reviews-slider__dot::after {
		content: '';
		position: absolute;
		top: 50%; left: 50%;
		transform: translate(-50%, -50%);
		width: 12px;
		height: 12px;
		border-radius: 50%;
		border: 2px solid rgba(255, 255, 255, 0.55);
		background: transparent;
		transition: background 200ms ease, border-color 200ms ease;
	}
	.bigeasy-reviews-slider__dot.is-active::after {
		background: var(--wp--preset--color--orange-500);
		border-color: var(--wp--preset--color--orange-500);
	}
	.bigeasy-reviews-slider__dot:hover::after { border-color: var(--wp--preset--color--orange-400); }
}

@media (prefers-reduced-motion: reduce) {
	.bigeasy-reviews-slider__slide { transition: opacity 0ms, transform 0ms, visibility 0ms; }
	.bigeasy-reviews-slider__dot { transition: none; }
}

/* D9 Sub-item 3-fix (2026-05-14) · the prior .bigeasy-promise section + classes
   (.bigeasy-promise · .bigeasy-promise__inner · .bigeasy-promise__eyebrow ·
   .bigeasy-promise__heading · .bigeasy-promise__lede) shipped in commit 9bf7baa
   were retired here. Hero block restructure (Sub-item 3-fix) carries the
   eyebrow + lede payload inside the hero itself — see .bigeasy-eyebrow,
   .bigeasy-eyebrow__stars, .bigeasy-star, .bigeasy-eyebrow__label, and
   .bigeasy-hero__lede declarations earlier in this file. */

/* --- Bucket E.2-2 (2026-05-16) · Location pin icons + orange hover state ---
   Adds a decorative map-pin glyph in front of each location-list link AND in
   front of each city card heading on /service-areas/. Pure CSS · no markup
   changes · mask-image carries the SVG so color is fully driven by CSS custom
   properties (no hardcoded fill in the data URI · per design discipline).

   Background context (per S57 brand-color text-vs-fill split):
   - Homepage list lives on --off-white · /service-areas/ cards on --white ·
     /about/ 2-col list on --off-white. All light backgrounds → use --orange-700
     (#A65500 · 5.27:1 on white · AAA-Large · AA-Normal · well above the 3:1
     WCAG 2.1 AA threshold for UI components and graphical objects).
   - Resting pin color: inherits currentColor (matches anchor's --navy-900).
   - Hover/focus pin color: --orange-700 (anchor color already transitions to
     orange-700 via existing rules; pin follows because background-color is
     currentColor; explicit fallback rules below for browsers that don't
     repaint masked pseudo backgrounds on currentColor swap).
   - Reduced-motion: transitions disabled.
   - Schema/markup integrity preserved: zero DOM additions, all existing anchor
     hrefs + Speakable cssSelectors untouched. */

.bigeasy-service-areas-merged__list a,
.bigeasy-areas-2col__list a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.bigeasy-service-areas-merged__list a::before,
.bigeasy-areas-2col__list a::before,
.bigeasy-areas__city-name::before {
	content: "";
	display: inline-block;
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	vertical-align: -2px;
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	transition: background-color 200ms ease;
}
/* /service-areas/ city card heading · pin scaled to the 20px heading. Heading
   isn't a link so we don't rely on currentColor — use the brand orange directly. */
.bigeasy-areas__city-name::before {
	width: 16px;
	height: 16px;
	margin-right: 8px;
	background-color: var(--wp--preset--color--orange-600);
}
/* Card-level hover/focus-within on /service-areas/ cards intensifies the pin
   to --orange-700 (AAA-Large contrast on white card background). */
.bigeasy-areas__city:hover .bigeasy-areas__city-name::before,
.bigeasy-areas__city:focus-within .bigeasy-areas__city-name::before {
	background-color: var(--wp--preset--color--orange-700);
}
/* Anchor-level hover + keyboard-focus parity on the merged + 2-col location
   lists. Existing rules already swap the anchor color to --orange-700 on hover
   and :focus-visible — these rules explicitly drive the masked pin alongside. */
.bigeasy-service-areas-merged__list a:hover::before,
.bigeasy-service-areas-merged__list a:focus-visible::before,
.bigeasy-areas-2col__list a:hover::before,
.bigeasy-areas-2col__list a:focus-visible::before {
	background-color: var(--wp--preset--color--orange-700);
}
@media (prefers-reduced-motion: reduce) {
	.bigeasy-service-areas-merged__list a::before,
	.bigeasy-areas-2col__list a::before,
	.bigeasy-areas__city-name::before {
		transition: none;
	}
}

/* ============================================================
   E.2-1 revision (2026-05-16) · Real-image trust badges in hero
   ============================================================
   Relocated from Proof section to hero per live-site reference
   (bigeasybasements.com places badges below H1, above CTAs).
   4 PNG badges (Facebook 5-star · Google 5-star · 100% satisfaction
   · quality premium seal). Source heights 61-69px · rendered at
   clamp(28px, 3.5vw, 40px) so display stays UNDER source pixel
   dimensions = downscale only = retina-crisp · zero upscale
   pixelation. Mobile drops to 28px. */
.bigeasy-hero__trust-row--logos {
	display: flex;
	gap: clamp(12px, 2.5vw, 28px);
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	list-style: none;
	padding: 0;
	margin: 18px 0 24px;
}
.bigeasy-hero__trust-row--logos li {
	display: flex;
	align-items: center;
}
.bigeasy-hero__trust-row--logos img {
	height: clamp(28px, 3.5vw, 40px);
	width: auto;
	max-width: 100%;
	display: block;
	/* On dark hero bg, slight lift on hover for polish */
	transition: transform 200ms ease, filter 200ms ease;
}
.bigeasy-hero__trust-row--logos img:hover {
	transform: translateY(-1px);
	filter: brightness(1.05);
}
@media (prefers-reduced-motion: reduce) {
	.bigeasy-hero__trust-row--logos img {
		transition: none;
	}
	.bigeasy-hero__trust-row--logos img:hover {
		transform: none;
	}
}
/* Pillar-page variant · same badges injected via REST PATCH into
   bigeasy-hero block on the 6 service pillar pages */
.bigeasy-hero__trust-logos {
	display: flex;
	gap: clamp(12px, 2.5vw, 28px);
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	list-style: none;
	padding: 0;
	margin: 14px 0 18px;
}
.bigeasy-hero__trust-logos img {
	height: clamp(28px, 3.5vw, 40px);
	width: auto;
	max-width: 100%;
	display: block;
}

/* ============================================================
   F.2b · Related Topics (topical-cluster interlinking)
   ============================================================ */
.bigeasy-related-topics {
	background: linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%);
	border-top: 1px solid rgba(2, 21, 90, 0.08);
	padding: clamp(48px, 7vw, 88px) 0;
}
.bigeasy-related-topics__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 clamp(20px, 4vw, 40px);
}
.bigeasy-related-topics__heading {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: clamp(1.6rem, 3.4vw, 2.4rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--wp--preset--color--navy-900, #02155a);
	margin: 0 0 12px;
}
.bigeasy-related-topics__lede {
	font-size: clamp(0.98rem, 1.4vw, 1.08rem);
	line-height: 1.55;
	color: rgba(2, 21, 90, 0.78);
	margin: 0 0 36px;
	max-width: 720px;
}
.bigeasy-related-topics__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: clamp(24px, 3.5vw, 40px);
}
.bigeasy-related-topics__col {
	background: #ffffff;
	border: 1px solid rgba(2, 21, 90, 0.08);
	border-radius: 14px;
	padding: clamp(20px, 2.5vw, 28px) clamp(20px, 2.5vw, 28px) clamp(18px, 2.3vw, 24px);
	transition: transform 240ms cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 240ms ease-out, border-color 240ms ease-out;
	box-shadow: 0 1px 2px rgba(2, 21, 90, 0.04);
}
.bigeasy-related-topics__col:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px -10px rgba(2, 21, 90, 0.18);
	border-color: rgba(220, 90, 0, 0.35);
}
.bigeasy-related-topics__col-heading {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-700, #A65500);
	margin: 0 0 14px;
	padding-bottom: 12px;
	border-bottom: 2px solid rgba(220, 90, 0, 0.18);
}
.bigeasy-related-topics__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.bigeasy-related-topics__list li { margin: 0; }
.bigeasy-related-topics__link {
	display: block;
	padding: 9px 0;
	color: var(--wp--preset--color--navy-900, #02155a);
	font-size: 0.97rem;
	line-height: 1.4;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color 180ms ease, transform 180ms ease, border-color 180ms ease;
	position: relative;
}
.bigeasy-related-topics__link::before {
	content: "›";
	display: inline-block;
	margin-right: 8px;
	color: rgba(220, 90, 0, 0.5);
	font-weight: 700;
	transition: transform 200ms ease, color 200ms ease;
}
.bigeasy-related-topics__link:hover,
.bigeasy-related-topics__link:focus-visible {
	color: var(--wp--preset--color--orange-700, #A65500);
	border-bottom-color: rgba(220, 90, 0, 0.35);
}
.bigeasy-related-topics__link:hover::before,
.bigeasy-related-topics__link:focus-visible::before {
	transform: translateX(4px);
	color: var(--wp--preset--color--orange-700, #A65500);
}
@media (max-width: 640px) {
	.bigeasy-related-topics__grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.bigeasy-related-topics__col { padding: 20px; }
}

/* ============================================================
   F.3 · Polish — hover / focus animations layer (best practices)
   ----------------------------------------------------------------
   All transitions wrapped in prefers-reduced-motion guard.
   - Buttons: subtle lift + shadow
   - Service / case / city cards: lift on hover
   - Inline links inside .entry-content: animated underline
   - Images: subtle zoom inside .bigeasy-card__media wrappers
   - CTA arrows: animate forward on hover
   ============================================================ */

@media (prefers-reduced-motion: no-preference) {
	/* Buttons */
	.bigeasy-btn {
		transition: transform 200ms cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 200ms ease, background-color 200ms ease, color 200ms ease;
		will-change: transform;
	}
	.bigeasy-btn:hover,
	.bigeasy-btn:focus-visible {
		transform: translateY(-2px);
	}
	.bigeasy-btn--primary:hover,
	.bigeasy-btn--primary:focus-visible {
		box-shadow: 0 10px 22px -6px rgba(220, 90, 0, 0.45);
	}
	.bigeasy-btn--ghost:hover,
	.bigeasy-btn--ghost:focus-visible {
		box-shadow: 0 8px 20px -8px rgba(2, 21, 90, 0.35);
	}
	.bigeasy-btn:active { transform: translateY(0); }

	/* Cards — lift + shadow */
	.bigeasy-service-card,
	.bigeasy-case-card,
	.bigeasy-trigger-card,
	.bigeasy-areas__city-card,
	.bigeasy-blog-card,
	.bigeasy-faq-related__item {
		transition: transform 260ms cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 260ms ease-out, border-color 260ms ease-out;
	}
	.bigeasy-service-card:hover,
	.bigeasy-case-card:hover,
	.bigeasy-trigger-card:hover,
	.bigeasy-areas__city-card:hover,
	.bigeasy-blog-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 18px 36px -14px rgba(2, 21, 90, 0.25);
	}

	/* Image zoom inside card media wrappers */
	.bigeasy-service-card__media img,
	.bigeasy-case-card__media img,
	.bigeasy-blog-card__media img,
	.bigeasy-evidence__case-media img {
		transition: transform 500ms cubic-bezier(0.2, 0.7, 0.3, 1);
	}
	.bigeasy-service-card:hover .bigeasy-service-card__media img,
	.bigeasy-case-card:hover .bigeasy-case-card__media img,
	.bigeasy-blog-card:hover .bigeasy-blog-card__media img,
	.bigeasy-evidence__case-media:hover img {
		transform: scale(1.04);
	}

	/* Inline content links — animated underline */
	.entry-content p > a,
	.entry-content li > a,
	.bigeasy-faq-answer__body a {
		position: relative;
		text-decoration: none;
		background-image: linear-gradient(currentColor, currentColor);
		background-position: 0 100%;
		background-repeat: no-repeat;
		background-size: 100% 1px;
		transition: color 200ms ease, background-size 220ms ease;
	}
	.entry-content p > a:hover,
	.entry-content li > a:hover,
	.bigeasy-faq-answer__body a:hover {
		background-size: 100% 2px;
	}

	/* CTA arrows — slide on hover */
	.bigeasy-cta-arrow,
	.bigeasy-btn .bigeasy-btn__arrow,
	a[class*="bigeasy-"]:has(> .bigeasy-btn__arrow) .bigeasy-btn__arrow {
		display: inline-block;
		transition: transform 220ms ease;
	}
	.bigeasy-btn:hover .bigeasy-btn__arrow,
	.bigeasy-btn:focus-visible .bigeasy-btn__arrow {
		transform: translateX(4px);
	}

	/* Hero trust badges — subtle fade-in offset */
	.bigeasy-hero__trust-row--logos img {
		transition: opacity 220ms ease, transform 220ms ease;
	}
	.bigeasy-hero__trust-row--logos img:hover {
		transform: scale(1.06);
	}

	/* Footer area links — underline grow */
	.bigeasy-footer__list a {
		position: relative;
		transition: color 180ms ease, padding-left 180ms ease;
	}
	.bigeasy-footer__list a:hover { padding-left: 4px; }

	/* Sticky CTA bar — subtle pulse on entry */
	.bigeasy-sticky-cta {
		transition: transform 300ms ease, opacity 300ms ease;
	}

	/* Header nav link hover */
	.bigeasy-nav__link {
		position: relative;
		transition: color 180ms ease;
	}
	.bigeasy-nav__link::after {
		content: '';
		position: absolute;
		left: 50%;
		bottom: -4px;
		width: 0;
		height: 2px;
		background: var(--wp--preset--color--orange-500, #DC5A00);
		transition: width 220ms ease, left 220ms ease;
		border-radius: 1px;
	}
	.bigeasy-nav__link:hover::after,
	.bigeasy-nav__link:focus-visible::after,
	.bigeasy-nav__link.is-active::after {
		width: 100%;
		left: 0;
	}

	/* FAQ accordion summary arrows */
	.bigeasy-faq-related__item summary {
		cursor: pointer;
		transition: color 180ms ease;
	}
	.bigeasy-faq-related__item summary:hover {
		color: var(--wp--preset--color--orange-700, #A65500);
	}
	.bigeasy-faq-related__item[open] summary {
		color: var(--wp--preset--color--orange-700, #A65500);
	}

	/* Trust strip icons — subtle bounce on hover */
	.bigeasy-trust-strip__item,
	.bigeasy-promise-bar__item {
		transition: transform 240ms cubic-bezier(0.2, 0.7, 0.3, 1);
	}
	.bigeasy-trust-strip__item:hover,
	.bigeasy-promise-bar__item:hover {
		transform: translateY(-2px);
	}
}

/* Always-on (non-motion) — focus visibility for keyboard users */
.bigeasy-btn:focus-visible,
.bigeasy-related-topics__link:focus-visible,
.bigeasy-nav__link:focus-visible,
.bigeasy-footer__list a:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange-500, #DC5A00);
	outline-offset: 3px;
	border-radius: 4px;
}

/* F.15 (2026-05-17) · Inline contextual links inside body prose.
   Style: navy text + subtle underline; orange underline on hover.
   Distinct from CTA buttons + Related Topics module links. */
.bigeasy-inline-link {
	color: var(--wp--preset--color--navy-900, #02155a);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 100% 1px;
	transition: color 180ms ease, background-size 220ms ease, background-image 220ms ease;
	padding: 0 1px;
}
.bigeasy-inline-link:hover,
.bigeasy-inline-link:focus-visible {
	color: var(--wp--preset--color--orange-700, #A65500);
	background-image: linear-gradient(var(--wp--preset--color--orange-500, #DC5A00), var(--wp--preset--color--orange-500, #DC5A00));
	background-size: 100% 2px;
}
.bigeasy-inline-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange-500, #DC5A00);
	outline-offset: 2px;
	border-radius: 2px;
}

/* F.15.1 (2026-05-17) · context-aware inline link color for dark-background sections.
   Navy-on-navy was invisible. Inside hero / page-hero / action (navy bg) sections
   AND header (orange-on-navy emergency banner), switch to bright text + amber hover. */
.bigeasy-hero .bigeasy-inline-link,
.bigeasy-hero--full .bigeasy-inline-link,
.bigeasy-hero--service .bigeasy-inline-link,
.bigeasy-page-hero .bigeasy-inline-link,
.bigeasy-action .bigeasy-inline-link,
.bigeasy-footer .bigeasy-inline-link,
[data-section="hero"] .bigeasy-inline-link {
	color: rgba(255, 255, 255, 0.95);
}
.bigeasy-hero .bigeasy-inline-link:hover,
.bigeasy-hero .bigeasy-inline-link:focus-visible,
.bigeasy-hero--full .bigeasy-inline-link:hover,
.bigeasy-hero--full .bigeasy-inline-link:focus-visible,
.bigeasy-hero--service .bigeasy-inline-link:hover,
.bigeasy-hero--service .bigeasy-inline-link:focus-visible,
.bigeasy-page-hero .bigeasy-inline-link:hover,
.bigeasy-page-hero .bigeasy-inline-link:focus-visible,
.bigeasy-action .bigeasy-inline-link:hover,
.bigeasy-action .bigeasy-inline-link:focus-visible,
.bigeasy-footer .bigeasy-inline-link:hover,
.bigeasy-footer .bigeasy-inline-link:focus-visible,
[data-section="hero"] .bigeasy-inline-link:hover,
[data-section="hero"] .bigeasy-inline-link:focus-visible {
	color: var(--wp--preset--color--orange-400, #FF9F4B);
	background-image: linear-gradient(var(--wp--preset--color--orange-400, #FF9F4B), var(--wp--preset--color--orange-400, #FF9F4B));
}

/* G.1 (2026-05-17) · WCAG 2.4.1 Bypass Blocks · skip-to-content link.
   Visually hidden until :focus · slides into view at top-left when keyboard user tabs into the page. */
.bigeasy-skip-link {
	position: absolute;
	top: 0;
	left: 0;
	transform: translateY(-200%);
	background: var(--wp--preset--color--navy-900, #02155a);
	color: #ffffff;
	padding: 12px 20px;
	border-radius: 0 0 8px 0;
	font-family: var(--wp--preset--font-family--outfit, system-ui, sans-serif);
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
	z-index: 99999;
	transition: transform 200ms ease;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}
.bigeasy-skip-link:focus,
.bigeasy-skip-link:focus-visible {
	transform: translateY(0);
	outline: 3px solid var(--wp--preset--color--orange-500, #DC5A00);
	outline-offset: 2px;
}
/* Prevent #main-content scrollIntoView from creating visible focus ring on the wrapper itself */
#main-content:focus,
#main-content:focus-visible { outline: none; }

/* G.4 (2026-05-17) · WCAG 2.5.5 Target Size · ensure interactive elements meet 44x44 minimum touch target.
   Padding-only bumps · no layout changes · doesn't affect visual size of borders/backgrounds. */

/* Nav links · was 86×27 → bump to 44px+ height via padding */
.wp-block-navigation-item__content {
	min-height: 44px;
	display: inline-flex !important;
	align-items: center;
	padding: 10px 8px;
}

/* Form inputs/selects · was 38px height → 44px min */
.bigeasy-hero-form__input,
.bigeasy-hero-form__select,
.bigeasy-form__input,
.bigeasy-form__select {
	min-height: 44px;
}

/* Native radio/checkbox · enlarge via parent label padding hit area */
.bigeasy-form__choice {
	min-height: 44px;
	display: flex;
	align-items: center;
	padding: 10px 16px;
}

/* CTA links inside cards (trigger cards, emergency banner, header phone) · pad to reach 44px */
.bigeasy-trigger-card__cta,
.bigeasy-emergency-banner__cta,
.bigeasy-header__phone {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	padding-top: 10px;
	padding-bottom: 10px;
}

/* FAQ index card links · already at 43px · +1 via padding */
.bigeasy-faq-index-card__q {
	min-height: 44px;
}

/* Related Topics column links · 41 → 44 */
.bigeasy-related-topics__link {
	min-height: 44px;
	display: flex;
	align-items: center;
}

/* G.4 · WCAG 2.5.5 exception: inline links inside body prose are exempt per WCAG 2.2 footnote
   on Target Size. .bigeasy-inline-link is intentionally inline and not enlarged. */

/* G.4 · Submenu dropdown caret · expand hit area via padding without changing visual size of the caret itself.
   The carets stay 10x10 visually but the surrounding button gets 44x44 click area. */
.wp-block-navigation__submenu-icon {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}

/* G.4 (cont) · county links + reviews-slider dots + hero scrollhint touch-target bumps */
.bigeasy-service-areas-merged__list a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	padding: 6px 0;
}
.bigeasy-reviews-slider__dot {
	min-width: 44px;
	min-height: 44px;
	padding: 14px;
}
.bigeasy-hero__scrollhint {
	min-height: 44px;
	padding: 4px 8px;
}

/* --- H5 Bucket (2026-05-18) · Sitewide CSS for the new location-page FAQ block
   added during Batch A location-page uniqueness rewrites. 5 city agents used
   slightly different child class names so we target both the data-section
   attribute (always present) and every observed class variant. Reuses the
   .bigeasy-faq-home__item visual pattern (card-accordion with orange-700 +/-
   marker) so the new FAQ blocks match the home FAQ aesthetic. Browser-default
   <details>/<summary> semantics already accessible per Bucket G; this layer
   adds visual polish only. ----------------------------------------------------*/

/* Section wrapper · catches .bigeasy-faqs OR .bigeasy-faq (Hartford variant)
   AND any [data-section="faqs"] just to be defensive. */
[data-section="faqs"].bigeasy-section,
.bigeasy-faqs.bigeasy-section,
section.bigeasy-faq.bigeasy-section {
	background: var(--wp--preset--color--white);
}

/* Header block (all 5 variants used __header / __eyebrow / __heading) */
[data-section="faqs"] .bigeasy-faqs__header,
[data-section="faqs"] .bigeasy-faq__header {
	max-width: 800px;
	margin: 0 auto 36px;
	text-align: center;
}
[data-section="faqs"] .bigeasy-faqs__eyebrow,
[data-section="faqs"] .bigeasy-faq__eyebrow {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--orange-700);
	margin: 0 0 12px;
}
[data-section="faqs"] .bigeasy-faqs__heading,
[data-section="faqs"] .bigeasy-faq__heading {
	font-family: var(--wp--preset--font-family--playfair, 'Playfair Display'), serif;
	color: var(--wp--preset--color--navy-900);
	font-size: clamp(28px, 3vw, 40px);
	margin: 0;
	line-height: 1.18;
}

/* List wrapper */
[data-section="faqs"] .bigeasy-faqs__list,
[data-section="faqs"] .bigeasy-faq__list {
	max-width: 800px;
	margin: 0 auto;
}

/* <details> item · catches all 3 variants: .bigeasy-faq-item · .bigeasy-faq__item · .bigeasy-faq-item */
[data-section="faqs"] details.bigeasy-faq-item,
[data-section="faqs"] details.bigeasy-faq__item {
	background: var(--wp--preset--color--off-white);
	border: 1px solid var(--wp--preset--color--ink-200);
	border-radius: var(--bigeasy-radius-md, 8px);
	margin-bottom: 12px;
	overflow: hidden;
	transition: border-color 150ms ease;
}
[data-section="faqs"] details.bigeasy-faq-item[open],
[data-section="faqs"] details.bigeasy-faq__item[open] {
	border-left: 4px solid var(--wp--preset--color--orange-500);
}

/* <summary> question · catches __q / __question / .bigeasy-faq-item__q variants */
[data-section="faqs"] summary,
[data-section="faqs"] .bigeasy-faq-item__q,
[data-section="faqs"] .bigeasy-faq__q,
[data-section="faqs"] .bigeasy-faq__question {
	cursor: pointer;
	padding: 20px 56px 20px 24px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 17px;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	position: relative;
	list-style: none;
	min-height: 44px; /* WCAG 2.5.5 touch target · Bucket G G.4 inherit */
	display: flex;
	align-items: center;
}
[data-section="faqs"] summary::-webkit-details-marker { display: none; }
[data-section="faqs"] summary::after {
	content: '+';
	position: absolute;
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 28px;
	font-weight: 400;
	line-height: 1;
	color: var(--orange-700);
	transition: transform 200ms ease;
}
[data-section="faqs"] details[open] summary::after { content: '−'; }

/* Hide any inline icon span the Stamford / Hartford agents injected — the ::after
   marker is the canonical accordion indicator. */
[data-section="faqs"] .bigeasy-faq__icon { display: none; }

/* Answer body · catches __a / __answer */
[data-section="faqs"] .bigeasy-faq-item__a,
[data-section="faqs"] .bigeasy-faq__a,
[data-section="faqs"] .bigeasy-faq__answer {
	padding: 0 24px 20px;
	color: var(--wp--preset--color--ink-700);
	font-size: 16px;
	line-height: 1.65;
}
[data-section="faqs"] .bigeasy-faq-item__a p,
[data-section="faqs"] .bigeasy-faq__a p,
[data-section="faqs"] .bigeasy-faq__answer p {
	margin: 0 0 12px;
}
[data-section="faqs"] .bigeasy-faq-item__a p:last-child,
[data-section="faqs"] .bigeasy-faq__a p:last-child,
[data-section="faqs"] .bigeasy-faq__answer p:last-child {
	margin-bottom: 0;
}

/* --- H.5 (2026-05-19) · Mobile submenu tap-to-toggle fix · operator reported
   mobile submenu dropdowns "not working." Root cause empirically traced:
   WP core's .is-menu-open block force-shows all submenus inline (height:auto;
   opacity:1) AND tries to hide the chevron carets (display:none). Our Bucket G
   G.4 touch-target override `.submenu-icon { display: inline-flex !important }`
   keeps the carets visible, but the auto-expanded submenus made the carets
   non-functional UX (operator taps caret, nothing visibly happens because the
   submenu was already shown by WP core CSS).

   Fix: inside the open mobile drawer, hide submenus by default and show them
   only when the parent toggle has aria-expanded="true". Restores the standard
   tap-to-expand mobile menu pattern. WP Interactivity API already toggles
   aria-expanded on the toggle button (verified empirically · view.min.js
   handles actions.toggleMenuOnClick) so the JS path was sound · just the CSS
   was force-overriding the visual state. Shortens drawer height from ~1500px
   (all submenus auto-expanded · 3+ screens of scroll) to ~600px (top-level
   items only · expand as needed).

   Chevron rotates 180° on aria-expanded="true" for visual feedback. */
.bigeasy-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
  display: none !important;
}
.bigeasy-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-submenu > button.wp-block-navigation-submenu__toggle[aria-expanded="true"]
  ~ .wp-block-navigation__submenu-container {
  display: flex !important;
}
/* Chevron rotation for visual feedback on open/close */
.bigeasy-header .wp-block-navigation__responsive-container.is-menu-open
  button.wp-block-navigation-submenu__toggle svg {
  transition: transform 200ms ease;
}
.bigeasy-header .wp-block-navigation__responsive-container.is-menu-open
  button.wp-block-navigation-submenu__toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

/* ============================================================
   GRAVITY FORMS BRAND SKIN (2026-05-22 · one-form migration)
   ----------------------------------------------------------------
   The single canonical lead form (GF id 2) renders in three contexts,
   all wrapped in .bigeasy-gf-card:
     - Hero      .bigeasy-hero__form-col.bigeasy-gf-card  (navy panel)
     - Contact   .bigeasy-contact-form-wrap.bigeasy-gf-card (navy panel)
     - Inline    .bigeasy-form-card.bigeasy-gf-card  (white card, panel
                 supplied by .bigeasy-form-card — pillars/FAQ/blog/About)
   All rules are scoped under .bigeasy-gf-card so Gravity Forms styling
   anywhere else (e.g. wp-admin previews) is untouched. Targets GF 2.10
   markup classes directly rather than overriding Orbital CSS variables,
   so it is resilient across GF theme settings.
   ============================================================ */
.bigeasy-gf-card .gform_wrapper,
.bigeasy-gf-card .gform_wrapper form { margin: 0; }
.bigeasy-gf-card .gform_wrapper .gform_fields {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
.bigeasy-gf-card .gform_wrapper .gfield { margin: 0; }

/* Labels + required marker + descriptions */
.bigeasy-gf-card .gform_wrapper .gfield_label {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
	margin: 0 0 4px;
	color: var(--wp--preset--color--ink-700);
}
.bigeasy-gf-card .gform_wrapper .gfield_required { color: var(--orange-700, #b45309); margin-left: 2px; }
.bigeasy-gf-card .gform_wrapper .gfield_description,
.bigeasy-gf-card .gform_wrapper .gform_fileupload_rules {
	font-size: 12px;
	color: var(--wp--preset--color--ink-500);
	padding-top: 4px;
	margin: 0;
}

/* Inputs / selects / textareas */
.bigeasy-gf-card .gform_wrapper input[type="text"],
.bigeasy-gf-card .gform_wrapper input[type="email"],
.bigeasy-gf-card .gform_wrapper input[type="tel"],
.bigeasy-gf-card .gform_wrapper input[type="number"],
.bigeasy-gf-card .gform_wrapper textarea,
.bigeasy-gf-card .gform_wrapper select {
	width: 100%;
	box-sizing: border-box;
	min-height: 44px;
	padding: 10px 12px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 15px;
	line-height: 1.4;
	color: var(--wp--preset--color--navy-900);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200, #d6dae2);
	border-radius: var(--bigeasy-radius-md, 8px);
	transition: border-color 150ms ease, box-shadow 150ms ease;
}
.bigeasy-gf-card .gform_wrapper textarea { min-height: 96px; }
.bigeasy-gf-card .gform_wrapper input:focus,
.bigeasy-gf-card .gform_wrapper textarea:focus,
.bigeasy-gf-card .gform_wrapper select:focus {
	outline: none;
	border-color: var(--wp--preset--color--orange-500);
	box-shadow: 0 0 0 3px rgba(236, 114, 0, 0.18);
}

/* Submit button → brand orange (matches .bigeasy-btn--primary) */
.bigeasy-gf-card .gform_wrapper .gform_footer input[type="submit"],
.bigeasy-gf-card .gform_wrapper .gform_footer button[type="submit"],
.bigeasy-gf-card .gform_wrapper .gform-footer input[type="submit"],
.bigeasy-gf-card .gform_wrapper [id^="gform_submit_button_"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-top: 6px;
	padding: 14px 18px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 18px;
	font-weight: 700;
	/* !important: override Gravity Forms' Orbital theme button styling, which is
	   enqueued after theme.css at equal specificity. Scoped to .bigeasy-gf-card. */
	color: var(--wp--preset--color--white) !important;
	background: var(--wp--preset--color--orange-500) !important;
	border: 0 !important;
	border-radius: var(--bigeasy-radius-md, 8px);
	box-shadow: 0 4px 12px rgba(236, 114, 0, 0.22);
	cursor: pointer;
	transition: background-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}
.bigeasy-gf-card .gform_wrapper .gform_footer input[type="submit"]:hover,
.bigeasy-gf-card .gform_wrapper [id^="gform_submit_button_"]:hover,
.bigeasy-gf-card .gform_wrapper .gform_footer input[type="submit"]:focus-visible,
.bigeasy-gf-card .gform_wrapper [id^="gform_submit_button_"]:focus-visible {
	background: var(--wp--preset--color--orange-600) !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgba(236, 114, 0, 0.32);
}

/* File upload (drag-drop area + select-files button)
   NOTE: Gravity Forms 2.10 renders the multi-file drop zone with class
   `.gform_drop_area` (not the older `.gform_drag_drop_area`). Target both so
   the theme styling actually lands instead of falling back to GF's default. */
.bigeasy-gf-card .gform_wrapper .gform_drag_drop_area,
.bigeasy-gf-card .gform_wrapper .gform_drop_area {
	border: 1.5px dashed var(--wp--preset--color--ink-200, #c4ccd8) !important;
	border-radius: var(--bigeasy-radius-md, 8px);
	background: var(--wp--preset--color--white) !important;
	padding: 22px 18px;
	color: var(--wp--preset--color--ink-500);
}
.bigeasy-gf-card .gform_wrapper .gform_button_select_files,
.bigeasy-gf-card .gform_wrapper button.gform_button_select_files {
	display: inline-flex;
	align-items: center;
	width: auto;
	min-height: 40px;
	margin: 0;
	padding: 10px 16px;
	font-family: var(--wp--preset--font-family--outfit);
	font-weight: 600;
	color: var(--wp--preset--color--white) !important;
	background: var(--wp--preset--color--navy-900) !important;
	border: 0 !important;
	border-radius: var(--bigeasy-radius-md, 8px);
	cursor: pointer;
}

/* Single-file native upload input (hero form). The theme input rules only cover
   text/email/tel/number — so the bare <input type=file> fell through to GF's
   default, rendering "No file chosen" as white-on-white with a flimsy border.
   Scoped with `>` to the direct child so the multi-file Plupload shim is untouched. */
.bigeasy-gf-card .gform_wrapper .ginput_container_fileupload > input[type="file"] {
	width: 100%;
	box-sizing: border-box;
	min-height: 44px;
	padding: 7px 10px;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	color: var(--wp--preset--color--navy-900);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ink-200, #d6dae2);
	border-radius: var(--bigeasy-radius-md, 8px);
}
.bigeasy-gf-card .gform_wrapper .ginput_container_fileupload > input[type="file"]::file-selector-button,
.bigeasy-gf-card .gform_wrapper .ginput_container_fileupload > input[type="file"]::-webkit-file-upload-button {
	font-family: var(--wp--preset--font-family--outfit);
	font-weight: 600;
	font-size: 13px;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--navy-900);
	border: 0;
	border-radius: var(--bigeasy-radius-sm, 6px);
	padding: 8px 14px;
	margin-right: 12px;
	cursor: pointer;
	transition: background-color 150ms ease;
}
.bigeasy-gf-card .gform_wrapper .ginput_container_fileupload > input[type="file"]:hover::file-selector-button,
.bigeasy-gf-card .gform_wrapper .ginput_container_fileupload > input[type="file"]:hover::-webkit-file-upload-button {
	background: var(--wp--preset--color--navy-800, #0a1f6b);
}

/* Both lead forms restate the file rules in a branded custom description
   ("Optional · … · up to N files"), so GF's auto-generated rules line is a
   redundant duplicate — hide it sitewide and keep the custom description.
   !important: GF's framework sets .gfield_description display at equal
   specificity but is enqueued after theme.css, so it would otherwise win. */
.bigeasy-gf-card .gform_fileupload_rules { display: none !important; }

/* Validation */
.bigeasy-gf-card .gform_wrapper .gfield_error input,
.bigeasy-gf-card .gform_wrapper .gfield_error textarea,
.bigeasy-gf-card .gform_wrapper .gfield_error select { border-color: #d32f2f; }
.bigeasy-gf-card .gform_wrapper .gfield_validation_message,
.bigeasy-gf-card .gform_wrapper .validation_message {
	color: #d32f2f;
	font-size: 12px;
	margin-top: 4px;
	background: none;
	border: 0;
	padding: 0;
}
.bigeasy-gf-card .gform_wrapper .gform_validation_errors {
	background: #fdecec;
	border: 1px solid #f3b5b5;
	border-radius: var(--bigeasy-radius-md, 8px);
	padding: 12px 14px;
	margin-bottom: 14px;
	box-shadow: none;
}
.bigeasy-gf-card .gform_wrapper .gform_validation_errors .gform_submission_error { color: #8a1c1c; }

/* AJAX confirmation message */
.bigeasy-gf-card .gform_confirmation_message {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 16px;
	line-height: 1.55;
	color: var(--wp--preset--color--navy-900);
	padding: 8px 0;
}

/* ---- NAVY context (hero + contact): dark panel, light labels ---- */
.bigeasy-hero__form-col.bigeasy-gf-card,
.bigeasy-contact-form-wrap.bigeasy-gf-card {
	background: var(--wp--preset--color--navy-900);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--bigeasy-radius-lg, 12px);
	padding: 24px;
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.30);
	color: var(--wp--preset--color--white);
}
.bigeasy-hero__form-col.bigeasy-gf-card .gfield_label,
.bigeasy-contact-form-wrap.bigeasy-gf-card .gfield_label { color: rgba(255, 255, 255, 0.88); }
.bigeasy-hero__form-col.bigeasy-gf-card .gfield_required,
.bigeasy-contact-form-wrap.bigeasy-gf-card .gfield_required { color: var(--wp--preset--color--orange-400); }
.bigeasy-hero__form-col.bigeasy-gf-card .gfield_description,
.bigeasy-hero__form-col.bigeasy-gf-card .gform_fileupload_rules,
.bigeasy-contact-form-wrap.bigeasy-gf-card .gfield_description,
.bigeasy-contact-form-wrap.bigeasy-gf-card .gform_fileupload_rules { color: rgba(255, 255, 255, 0.65); }
.bigeasy-hero__form-col.bigeasy-gf-card .gform_drag_drop_area,
.bigeasy-contact-form-wrap.bigeasy-gf-card .gform_drag_drop_area {
	border-color: rgba(255, 255, 255, 0.25);
	background: rgba(255, 255, 255, 0.04);
	color: rgba(255, 255, 255, 0.72);
}
.bigeasy-hero__form-col.bigeasy-gf-card .gform_confirmation_message,
.bigeasy-contact-form-wrap.bigeasy-gf-card .gform_confirmation_message { color: var(--wp--preset--color--white); }

/* Homepage mid-page CTA card (replaces the duplicate inspection form on the
   front page — GF can't render the same form twice on one page). Sits in the
   right column of the navy .bigeasy-action grid. */
.bigeasy-action__cta-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-radius: var(--bigeasy-radius-lg, 12px);
	padding: 32px;
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.30);
}
.bigeasy-action__cta-eyebrow {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-400);
	margin: 0;
}
.bigeasy-action__cta-title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--wp--preset--color--white);
	margin: 0;
}
.bigeasy-action__cta-text {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.80);
	margin: 0 0 4px;
}

/* Inspection CTA block (2026-05-23) — replaces the retired 3-step form on the ~58
   pillar/FAQ/blog/About pages; a white .bigeasy-form-card with a button to /contact/. */
.bigeasy-inspection-cta__text {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 16px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-700);
	margin: 0 0 24px;
}
.bigeasy-inspection-cta__btn {
	background-image: none; /* defend against any prose-link gradient overriding the orange fill */
}

/* 2026-05-23 fix · Two GF rendering issues in the navy hero/contact cards:
   (1) wpautop wraps the form's trailing hidden inputs (gform_ajax, state_2, etc.) in
       <p> + <br>; once the footer is a normal block those rendered as ~200px of empty
       vertical space. Collapse the <br>/<p> noise — the hidden inputs stay in the DOM
       (display:none children still submit), so nothing breaks.
   (2) GF's Orbital "foundation" theme made .gform_footer display:flex, which sized the
       submit <input> wrong (a 163px square). Pin it to a normal full-width block button.
   !important throughout to beat GF's framework selector specificity. */
.bigeasy-gf-card .gform_wrapper .gform_footer,
.bigeasy-gf-card .gform_wrapper .gform-footer {
	display: block !important;
	margin-top: 18px !important;
	padding: 0 !important;
}
.bigeasy-gf-card .gform_wrapper .gform_footer br,
.bigeasy-gf-card .gform_wrapper .gform-footer br { display: none !important; }
.bigeasy-gf-card .gform_wrapper .gform_footer p,
.bigeasy-gf-card .gform_wrapper .gform-footer p {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0 !important;
}
.bigeasy-gf-card .gform_wrapper .gform_footer input[type="submit"],
.bigeasy-gf-card .gform_wrapper .gform-footer input[type="submit"],
.bigeasy-gf-card .gform_wrapper [id^="gform_submit_button_"] {
	display: block !important;
	width: 100% !important;
	min-height: 52px !important;
	height: auto !important;
	padding: 14px 20px !important;
	line-height: 1.3 !important;
	font-size: 18px !important;
	text-align: center !important;
	aspect-ratio: auto !important;
}
/* Compact native single-file upload input (hero form); /contact/ keeps the multi-file zone. */
.bigeasy-gf-card .gform_wrapper input[type="file"] {
	width: 100%;
	box-sizing: border-box;
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 14px;
	padding: 8px 0;
	color: inherit;
}
