/**
 * Sitewide decorative page BG — Figma 1:3141 / 1:24.
 * Enqueue: all public front. Do not put LCP/critical rules here.
 */

html {
	background: var(--bhm-paper);
}

body {
	background: transparent;
	position: relative;
}

.bhm-page-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
	user-select: none;
}

.bhm-site-main,
.bhm-site-footer,
.bhm-bottom-nav {
	position: relative;
	z-index: 1;
}

.bhm-page-bg__glow,
.bhm-page-bg__blueprint,
.bhm-page-bg__plan {
	position: absolute;
	display: block;
	pointer-events: none;
}

.bhm-page-bg__glow {
	max-width: none;
	object-fit: fill;
}

.bhm-page-bg__glow--d-a,
.bhm-page-bg__glow--d-b {
	display: none;
}

.bhm-page-bg__glow--m-a {
	top: 3374px;
	right: -127px;
	width: 437px;
	height: 438px;
}

.bhm-page-bg__glow--m-b {
	top: 2805px;
	right: 140px;
	width: 497px;
	height: 497px;
}

.bhm-page-bg__blueprint {
	left: calc(50% + 103.86px);
	/* Figma 1:27 top in BG 7307px. Not (figma.y − height) — that stacked gbimg4 in the hero. */
	top: 1659.64px;
	width: 1270.118px;
	height: 1270.118px;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: translateX(-50%);
}

.bhm-page-bg__blueprint-inner {
	position: relative;
	flex: none;
	width: 693.446px;
	height: 1102.772px;
	transform: rotate(-135deg);
	overflow: hidden;
}

.bhm-page-bg__blueprint-inner picture,
.bhm-page-bg__blueprint-inner img,
.bhm-page-bg__plan-inner picture,
.bhm-page-bg__plan-inner img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bhm-page-bg__blueprint-fade {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0) 77.431%,
		rgba(255, 255, 255, 0.81) 100%
	);
}

.bhm-page-bg__plan {
	left: calc(50% + 149.5px);
	/* Figma 1:28 center Y (2787 + 311/2) in BG 7307px. Not 50% of document — short pages stacked bg1 on gbimg4. */
	top: 2942.5px;
	width: 766px;
	height: 311px;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: translate(-50%, -50%);
}

.bhm-page-bg__plan-inner {
	flex: none;
	width: 766px;
	height: 311px;
	opacity: 0.3;
	transform: rotate(180deg) scaleY(-1);
}

.bhm-page-bg__plan-inner img {
	opacity: 0.6;
}

/* Page-shell fills: let deco show through. Cards/forms keep their own surfaces. */
.bhm-section--muted {
	background: transparent;
}

@media (min-width: 768px) {
	.bhm-page-bg__glow--m-a,
	.bhm-page-bg__glow--m-b {
		display: none;
	}

	.bhm-page-bg__glow--d-a,
	.bhm-page-bg__glow--d-b {
		display: block;
	}

	.bhm-page-bg__glow--d-a {
		top: 1945px;
		left: calc(50% - 642px);
		width: 1226px;
		height: 1028px;
		transform: translateX(-50%);
	}

	.bhm-page-bg__glow--d-b {
		top: 2434px;
		left: calc(50% + 653px);
		width: 1226px;
		height: 1028px;
		transform: translateX(-50%);
	}

	.bhm-page-bg__blueprint {
		left: calc(50% + 463.72px);
		/* Figma 1:3144 top in BG 7307px. */
		top: 1895.23px;
		width: 2163.366px;
		height: 2163.366px;
	}

	.bhm-page-bg__blueprint-inner {
		width: 1181.133px;
		height: 1878.329px;
		opacity: 0.7;
	}

	.bhm-page-bg__plan {
		left: calc(50% + 19.71px);
		/* Figma 1:3145 center Y (2149 + 707.28/2) in BG 7307px. */
		top: 2502.64px;
		width: 1485.419px;
		height: 707.282px;
	}

	.bhm-page-bg__plan-inner {
		width: 1440px;
		height: 584px;
		opacity: 0.1;
		transform: rotate(175deg) scaleY(-1);
	}
}

/*
 * Compact canvas — service family (PLP, job hub, area child, areas hub).
 * Home Y (gbimg4 / bg1 in the 7307px frame) does not fit these templates.
 * Reuse the same glow imgs; hide floorplans (heroes already have media).
 */
:is(
	.bhm-template-services,
	.bhm-template-service,
	.bhm-template-service-area,
	.bhm-template-areas-hub
) .bhm-page-bg__blueprint,
:is(
	.bhm-template-services,
	.bhm-template-service,
	.bhm-template-service-area,
	.bhm-template-areas-hub
) .bhm-page-bg__plan {
	display: none;
}

:is(
	.bhm-template-services,
	.bhm-template-service,
	.bhm-template-service-area,
	.bhm-template-areas-hub
) .bhm-page-bg__glow--m-a {
	top: 48px;
	right: -80px;
}

:is(
	.bhm-template-services,
	.bhm-template-service,
	.bhm-template-service-area,
	.bhm-template-areas-hub
) .bhm-page-bg__glow--m-b {
	top: auto;
	bottom: 10%;
	right: 24px;
}

@media (min-width: 768px) {
	:is(
		.bhm-template-services,
		.bhm-template-service,
		.bhm-template-service-area,
		.bhm-template-areas-hub
	) .bhm-page-bg__glow--d-a {
		top: -140px;
		left: calc(50% - 420px);
		width: 1226px;
		height: 1028px;
		transform: translateX(-50%);
	}

	:is(
		.bhm-template-services,
		.bhm-template-service,
		.bhm-template-service-area,
		.bhm-template-areas-hub
	) .bhm-page-bg__glow--d-b {
		top: auto;
		bottom: 8%;
		left: calc(50% + 380px);
		width: 1226px;
		height: 1028px;
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-transparency: reduce) {
	:is(
		.bhm-template-services,
		.bhm-template-service,
		.bhm-template-service-area,
		.bhm-template-areas-hub
	) .bhm-page-bg {
		display: none;
	}
}
