
.business-selector {

	/* -----------------------------------------------------
	   Brand Colors
	----------------------------------------------------- */
	--color-primary: #0a0a0a;
	--color-secondary: #ffffff;
	--color-accent: #00b894;
	--color-accent-dark: #009e7d;

	--color-text-primary: #101010;
	--color-text-secondary: #4a4a4a;
	--color-text-muted: #7a7a7a;
	--color-text-inverse: #ffffff;

	--color-background: #ffffff;
	--color-background-alt: #f7f7f8;
	--color-background-dark: #0a0a0a;

	--color-border: #e5e5e5;
	--color-border-dark: #2a2a2a;

	--color-success: #1fa971;
	--color-warning: #d99a2b;
	--color-error: #d9432b;

	/* -----------------------------------------------------
	   Typography
	----------------------------------------------------- */
	--font-family-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--font-family-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--font-family-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;

	--font-size-base: 16px;

	--font-size-xs: 0.75rem;
	--font-size-sm: 0.875rem;
	--font-size-md: 1rem;
	--font-size-lg: 1.125rem;
	--font-size-xl: 1.25rem;
	--font-size-2xl: 1.5rem;
	--font-size-3xl: 2rem;
	--font-size-4xl: 2.5rem;
	--font-size-5xl: 3.25rem;
	--font-size-6xl: 4rem;

	--font-weight-regular: 400;
	--font-weight-medium: 500;
	--font-weight-semibold: 600;
	--font-weight-bold: 700;

	--line-height-tight: 1.2;
	--line-height-normal: 1.5;
	--line-height-relaxed: 1.75;

	--letter-spacing-tight: -0.02em;
	--letter-spacing-normal: 0;
	--letter-spacing-wide: 0.04em;

	/* -----------------------------------------------------
	   Spacing Scale
	----------------------------------------------------- */
	--space-xxs: 0.25rem;
	--space-xs: 0.5rem;
	--space-sm: 0.75rem;
	--space-md: 1rem;
	--space-lg: 1.5rem;
	--space-xl: 2rem;
	--space-2xl: 3rem;
	--space-3xl: 4rem;
	--space-4xl: 6rem;
	--space-5xl: 8rem;

	/* -----------------------------------------------------
	   Border Radius
	----------------------------------------------------- */
	--radius-sm: 4px;
	--radius-md: 8px;
	--radius-lg: 16px;
	--radius-xl: 24px;
	--radius-full: 999px;

	/* -----------------------------------------------------
	   Shadows
	----------------------------------------------------- */
	--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
	--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.06);
	--shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.08);
	--shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.12);

	/* -----------------------------------------------------
	   Container Widths
	----------------------------------------------------- */
	--container-sm: 640px;
	--container-md: 960px;
	--container-lg: 1200px;
	--container-xl: 1440px;
	--container-full: 100%;

	--container-padding-inline: var(--space-lg);

	/* -----------------------------------------------------
	   Breakpoints (reference values — used in media queries)
	----------------------------------------------------- */
	--breakpoint-xs: 375px;
	--breakpoint-sm: 576px;
	--breakpoint-md: 768px;
	--breakpoint-lg: 1024px;
	--breakpoint-xl: 1280px;
	--breakpoint-2xl: 1536px;

	/* -----------------------------------------------------
	   Transitions (tokens only — no animation keyframes)
	----------------------------------------------------- */
	--transition-fast: 150ms ease;
	--transition-base: 250ms ease;
	--transition-slow: 400ms ease;

	/* -----------------------------------------------------
	   Z-Index Scale
	----------------------------------------------------- */
	--z-index-dropdown: 100;
	--z-index-sticky: 200;
	--z-index-overlay: 300;
	--z-index-modal: 400;
	--z-index-toast: 500;
}
*,*::before,*::after{box-sizing:border-box}
.business-selector {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100vh;
	height: 100svh;
	min-height: 560px;
	overflow: hidden;
	color: var(--color-text-inverse);
	background-color: var(--color-background-dark);
	--bs-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--bs-inst: #6ea8ff;
}


/* ---------------------------------------------------------
   Brand bar (logo + tagline), floats above both panels
--------------------------------------------------------- */
.business-selector__brand {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 6;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-xs);
	padding: var(--space-xl) var(--container-padding-inline) 0;
	pointer-events: none;
}

.business-selector__logo {
	pointer-events: auto;
}

.business-selector__lockup {
	display: inline-flex;
	align-items: center;
	gap: var(--space-md);
}

.business-selector__logo img,
.business-selector__logo-image {
	display: block;
	width: auto;
	height: 58px;
	max-width: none;
	filter: drop-shadow(0 4px 22px rgba(0, 184, 148, 0.45));
}

.business-selector__logo-text {
	font-family: var(--font-family-heading);
	font-size: 1.9rem;
	font-weight: var(--font-weight-bold);
	line-height: 1;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	background: linear-gradient(100deg, #fff 0%, #fff 40%, #9fe8d6 50%, #fff 60%, #fff 100%);
	background-size: 250% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	text-shadow: none;
}

/* Cursor follower ("Enter" label), pointer devices only */
.business-selector__cursor {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 30;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 92px;
	height: 92px;
	margin: -46px 0 0 -46px;
	border-radius: var(--radius-full);
	font-size: var(--font-size-xs);
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-primary);
	background-color: var(--bs-cursor, var(--color-accent));
	opacity: 0;
	transform: translate3d(var(--cx, -200px), var(--cy, -200px), 0) scale(0.3);
	transition: opacity 300ms ease, scale 400ms var(--bs-ease), background-color 300ms ease;
	pointer-events: none;
}

.business-selector__cursor.is-visible {
	opacity: 1;
	transform: translate3d(var(--cx, -200px), var(--cy, -200px), 0) scale(1);
}

@media (hover: none), (max-width: 900px) {

	.business-selector__cursor {
		display: none;
	}
}

@keyframes bs-shine {
	from { background-position: 150% 0; }
	to   { background-position: -50% 0; }
}

@keyframes bs-float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-4px); }
}

.business-selector__tagline {
	margin: 0;
	font-size: var(--font-size-xs);
	font-weight: var(--font-weight-medium);
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.62);
}


/* ---------------------------------------------------------
   Panels
--------------------------------------------------------- */
.business-selector__panels {
	position: relative;
	display: flex;
	flex: 1;
	min-height: 0;
}

.business-selector__panel {
	position: relative;
	display: flex;
	align-items: flex-end;
	flex: 1 1 0;
	min-width: 0;
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	isolation: isolate;
	transition: flex-grow 900ms var(--bs-ease);
	--x: 50%;
	--y: 50%;
	--mx: 0;
	--my: 0;
}

.business-selector__panel--instrumentation {
	background: radial-gradient(120% 90% at 20% 20%, #101b2e 0%, #070b13 60%, #05070b 100%);
	--bs-accent: var(--bs-inst);
}

.business-selector__panel--ev {
	background: radial-gradient(120% 90% at 80% 20%, #06251f 0%, #05100d 60%, #040807 100%);
	--bs-accent: var(--color-accent);
}

.business-selector__panel.is-disabled {
	cursor: default;
}

/* Desktop hover-expand */
@media (hover: hover) and (min-width: 901px) {

	.business-selector__panels:hover .business-selector__panel {
		flex-grow: 0.92;
	}

	.business-selector__panels:hover .business-selector__panel:hover,
	.business-selector__panels:hover .business-selector__panel:focus-visible {
		flex-grow: 1.16;
	}
}

.business-selector__panel:focus-visible {
	outline: 2px solid var(--bs-accent);
	outline-offset: -4px;
}


/* ---------------------------------------------------------
   Media layer (uploaded image or decorative art)
--------------------------------------------------------- */
.business-selector__media {
	position: absolute;
	inset: -4%;
	z-index: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: translate3d(calc(var(--mx) * -18px), calc(var(--my) * -14px), 0) scale(1.04);
	transition: transform 700ms var(--bs-ease);
	will-change: transform;
}

.business-selector__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.9) contrast(1.05);
}

.business-selector__art {
	width: min(86vh, 120%);
	max-width: none;
	height: auto;
	opacity: 0.9;
	fill: none;
	stroke: var(--bs-accent);
	stroke-width: 1.2;
}

.business-selector__panel--instrumentation .business-selector__art {
	margin-right: -8%;
}

.business-selector__panel--ev .business-selector__art {
	margin-left: -8%;
}

.business-selector__art-grid line {
	stroke: rgba(110, 168, 255, 0.1);
	stroke-width: 1;
}

.business-selector__art-ring {
	opacity: 0.45;
}

.business-selector__art-ring--dash {
	stroke-dasharray: 3 9;
	opacity: 0.6;
	transform-origin: 300px 300px;
	animation: bs-spin 60s linear infinite;
}

.business-selector__art-ring--outer {
	stroke-width: 2;
	opacity: 0.7;
}

.business-selector__art-ticks line {
	stroke: var(--bs-accent);
	stroke-width: 1.5;
	opacity: 0.7;
}

.business-selector__art-needle {
	transform-origin: 300px 300px;
	animation: bs-sweep 7s var(--bs-ease) infinite alternate;
}

.business-selector__art-needle line {
	stroke: var(--bs-accent);
	stroke-width: 3;
	stroke-linecap: round;
}

.business-selector__art-needle circle {
	fill: var(--bs-accent);
	stroke: none;
}

.business-selector__art-arc {
	stroke-width: 6;
	stroke-linecap: round;
	transform-origin: 300px 300px;
}

.business-selector__art-arc--one {
	stroke-dasharray: 520 430;
	animation: bs-spin 14s linear infinite;
}

.business-selector__art-arc--two {
	stroke-dasharray: 330 360;
	opacity: 0.75;
	animation: bs-spin 9s linear infinite reverse;
}

.business-selector__art-arc--three {
	stroke-dasharray: 190 250;
	opacity: 0.55;
	animation: bs-spin 6s linear infinite;
}

.business-selector__art-streaks line {
	stroke: var(--bs-accent);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-dasharray: 60 140;
	opacity: 0.55;
	animation: bs-streak 3.2s linear infinite;
}

.business-selector__art-streaks line:nth-child(2) { animation-delay: -0.6s; }
.business-selector__art-streaks line:nth-child(3) { animation-delay: -1.2s; }
.business-selector__art-streaks line:nth-child(4) { animation-delay: -1.8s; }
.business-selector__art-streaks line:nth-child(5) { animation-delay: -2.4s; }

.business-selector__shade {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 28%),
		linear-gradient(0deg, rgba(0, 0, 0, 0.82) 0%, rgba(0, 0, 0, 0) 62%);
	pointer-events: none;
}

.business-selector__spot {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: radial-gradient(520px circle at var(--x) var(--y), color-mix(in srgb, var(--bs-accent) 26%, transparent), transparent 62%);
	opacity: 0;
	transition: opacity var(--transition-slow);
	pointer-events: none;
}

.business-selector__panel:hover .business-selector__spot,
.business-selector__panel:focus-visible .business-selector__spot {
	opacity: 1;
}


/* ---------------------------------------------------------
   Content
--------------------------------------------------------- */
.business-selector__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-sm);
	width: 100%;
	max-width: 560px;
	padding: var(--space-xl) clamp(1.5rem, 5vw, 5rem) clamp(2.5rem, 8vh, 5.5rem);
	transform: translate3d(calc(var(--mx) * 8px), calc(var(--my) * 6px), 0);
	transition: transform 600ms var(--bs-ease);
}

.business-selector__panel--ev .business-selector__content {
	margin-left: auto;
}

.business-selector__index {
	font-family: var(--font-family-mono);
	font-size: var(--font-size-sm);
	letter-spacing: 0.2em;
	color: var(--bs-accent);
}

.business-selector__eyebrow {
	font-size: var(--font-size-xs);
	font-weight: var(--font-weight-semibold);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.7);
}

.business-selector__heading {
	display: block;
	font-family: var(--font-family-heading);
	font-size: clamp(2rem, 3.3vw, 3.75rem);
	overflow-wrap: break-word;
	font-weight: var(--font-weight-bold);
	line-height: 1.02;
	letter-spacing: var(--letter-spacing-tight);
}

.business-selector__text {
	max-width: 38ch;
	font-size: var(--font-size-md);
	line-height: var(--line-height-normal);
	color: rgba(255, 255, 255, 0.72);
	transition: opacity var(--transition-slow), transform 600ms var(--bs-ease);
}

.business-selector__cta {
	display: inline-flex;
	align-items: center;
	gap: var(--space-sm);
	margin-top: var(--space-md);
	padding: 6px 6px 6px var(--space-lg);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--radius-full);
	font-size: var(--font-size-sm);
	font-weight: var(--font-weight-semibold);
	letter-spacing: var(--letter-spacing-wide);
	background-color: rgba(255, 255, 255, 0.06);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	transition: background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base);
}

.business-selector__cta-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: var(--radius-full);
	color: var(--color-primary);
	background-color: var(--bs-accent);
	transition: transform 500ms var(--bs-ease);
}

.business-selector__panel:hover .business-selector__cta,
.business-selector__panel:focus-visible .business-selector__cta {
	background-color: var(--bs-accent);
	border-color: var(--bs-accent);
	color: var(--color-primary);
}

.business-selector__panel:hover .business-selector__cta-arrow,
.business-selector__panel:focus-visible .business-selector__cta-arrow {
	background-color: var(--color-primary);
	color: var(--color-text-inverse);
	transform: translateX(4px) rotate(-45deg);
}


/* ---------------------------------------------------------
   Divider, hint, curtain
--------------------------------------------------------- */
.business-selector__divider {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	z-index: 4;
	width: 1px;
	background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.55) 30%, rgba(255, 255, 255, 0.55) 70%, transparent);
	pointer-events: none;
	transition: left 900ms var(--bs-ease);
}

@media (hover: hover) and (min-width: 901px) {

	.business-selector__panels:has(.business-selector__panel--instrumentation:hover) .business-selector__divider {
		left: 55.8%;
	}

	.business-selector__panels:has(.business-selector__panel--ev:hover) .business-selector__divider {
		left: 44.2%;
	}
}

.business-selector__hint {
	position: absolute;
	right: 0;
	bottom: var(--space-md);
	left: 0;
	z-index: 6;
	margin: 0;
	text-align: center;
	font-size: var(--font-size-xs);
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.45);
	pointer-events: none;
}

.business-selector__curtain {
	position: absolute;
	inset: 0;
	z-index: 20;
	background-color: var(--color-background-dark);
	pointer-events: none;
	opacity: 0;
	transition: opacity 500ms var(--bs-ease);
}

/* Leaving: chosen panel takes the whole screen, then the page fades. */
.business-selector.is-leaving .business-selector__curtain {
	opacity: 1;
	transition-delay: 450ms;
}

.business-selector.is-leaving .business-selector__panel {
	flex-grow: 0.0001;
}

.business-selector.is-leaving .business-selector__panel.is-chosen {
	flex-grow: 40;
}

.business-selector.is-leaving .business-selector__divider {
	opacity: 0;
}


/* ---------------------------------------------------------
   Keyframes
--------------------------------------------------------- */
@keyframes bs-spin {
	to { transform: rotate(360deg); }
}

@keyframes bs-sweep {
	from { transform: rotate(-120deg); }
	to   { transform: rotate(95deg); }
}

@keyframes bs-streak {
	from { stroke-dashoffset: 200; }
	to   { stroke-dashoffset: 0; }
}

@keyframes bs-panel-in-left {
	from { clip-path: inset(0 100% 0 0); }
	to   { clip-path: inset(0 0 0 0); }
}

@keyframes bs-panel-in-right {
	from { clip-path: inset(0 0 0 100%); }
	to   { clip-path: inset(0 0 0 0); }
}

@keyframes bs-rise {
	from { opacity: 0; transform: translate3d(0, 26px, 0); }
	to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes bs-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

@keyframes bs-line {
	from { transform: scaleY(0); }
	to   { transform: scaleY(1); }
}


/* ---------------------------------------------------------
   Intro choreography (JS-enabled, motion-allowed only)
--------------------------------------------------------- */
@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {

	.business-selector__panel--instrumentation {
		animation: bs-panel-in-left 1.3s var(--bs-ease) both;
	}

	.business-selector__panel--ev {
		animation: bs-panel-in-right 1.3s var(--bs-ease) both;
	}

	.business-selector__divider {
		transform-origin: top;
		animation: bs-line 1.4s var(--bs-ease) 0.3s both;
	}

	.business-selector__logo,
	.business-selector__tagline {
		animation: bs-rise 1s var(--bs-ease) 0.9s both;
	}

	.business-selector__logo-image {
		animation: bs-float 5s ease-in-out 2s infinite;
	}

	.business-selector__logo-text {
		animation: bs-shine 6s ease-in-out 2s infinite;
	}

	.business-selector__tagline {
		animation-delay: 1.05s;
	}

	.business-selector__index,
	.business-selector__eyebrow,
	.business-selector__heading,
	.business-selector__text,
	.business-selector__cta {
		animation: bs-rise 1s var(--bs-ease) both;
	}

	.business-selector__index   { animation-delay: 0.95s; }
	.business-selector__eyebrow { animation-delay: 1.05s; }
	.business-selector__heading { animation-delay: 1.15s; }
	.business-selector__text    { animation-delay: 1.3s; }
	.business-selector__cta     { animation-delay: 1.45s; }

	.business-selector__hint {
		animation: bs-fade 1s ease 1.8s both;
	}
}


/* ---------------------------------------------------------
   Reduced motion: stop the ambient loops and transitions
--------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {

	.business-selector__art-ring--dash,
	.business-selector__art-needle,
	.business-selector__art-arc,
	.business-selector__art-streaks line {
		animation: none;
	}

	.business-selector__panel,
	.business-selector__media,
	.business-selector__content,
	.business-selector__divider,
	.business-selector__curtain {
		transition: none;
	}
}


/* ---------------------------------------------------------
   Tablet / mobile: stacked halves, tap to enter
--------------------------------------------------------- */
@media (max-width: 900px) {

	.business-selector__brand {
		padding-top: var(--space-lg);
	}

	.business-selector__logo img,
	.business-selector__logo-image {
		height: 42px;
	}

	.business-selector__logo-text {
		font-size: 1.35rem;
	}

	.business-selector__panels {
		flex-direction: column;
	}

	.business-selector__panel {
		align-items: flex-end;
	}

	.business-selector__panel--instrumentation {
		animation-name: bs-panel-in-top;
	}

	.business-selector__panel--ev {
		animation-name: bs-panel-in-bottom;
	}

	.business-selector__panel--ev .business-selector__content {
		margin-left: 0;
	}

	.business-selector__content {
		gap: var(--space-xs);
		padding: var(--space-lg) var(--space-lg) var(--space-xl);
	}

	.business-selector__panel--instrumentation .business-selector__content {
		padding-top: 7rem;
	}

	.business-selector__heading {
		font-size: clamp(1.75rem, 8vw, 2.5rem);
	}

	.business-selector__text {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		font-size: var(--font-size-sm);
	}

	.business-selector__cta {
		margin-top: var(--space-xs);
	}

	.business-selector__cta-arrow {
		width: 32px;
		height: 32px;
	}

	.business-selector__art {
		width: 90vw;
		opacity: 0.55;
	}

	.business-selector__divider {
		top: 50%;
		bottom: auto;
		left: 0;
		right: 0;
		width: auto;
		height: 1px;
		background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.55) 30%, rgba(255, 255, 255, 0.55) 70%, transparent);
	}

	.business-selector__hint {
		display: none;
	}

	.business-selector.is-leaving .business-selector__panel {
		flex-grow: 0.0001;
	}

	.business-selector.is-leaving .business-selector__panel.is-chosen {
		flex-grow: 40;
	}
}

@keyframes bs-panel-in-top {
	from { clip-path: inset(0 0 100% 0); }
	to   { clip-path: inset(0 0 0 0); }
}

@keyframes bs-panel-in-bottom {
	from { clip-path: inset(100% 0 0 0); }
	to   { clip-path: inset(0 0 0 0); }
}

@media (max-width: 900px) and (max-height: 640px) {

	.business-selector__text {
		display: none;
	}

	.business-selector__panel--instrumentation .business-selector__content {
		padding-top: 5.5rem;
	}
}


/* ---------------------------------------------------------
   Photo panels (uploaded or bundled image)
   Shade keeps the subject clear in the upper area and builds a
   dark base under the text so copy is always readable.
--------------------------------------------------------- */
.business-selector__panel.has-image .business-selector__image {
	filter: saturate(1.05) contrast(1.04);
}

.business-selector__panel--instrumentation .business-selector__image {
	object-position: 62% 30%;
}

.business-selector__panel--ev .business-selector__image {
	object-position: 78% 22%;
}

.business-selector__panel--instrumentation.has-image .business-selector__shade {
	background:
		linear-gradient(180deg, rgba(5, 9, 16, 0.7) 0%, rgba(5, 9, 16, 0.15) 26%, rgba(5, 9, 16, 0.3) 48%, rgba(5, 9, 16, 0.92) 100%),
		linear-gradient(90deg, rgba(5, 9, 16, 0.78) 0%, rgba(5, 9, 16, 0.2) 70%, rgba(5, 9, 16, 0.1) 100%);
}

.business-selector__panel--ev.has-image .business-selector__shade {
	background:
		linear-gradient(180deg, rgba(4, 8, 7, 0.62) 0%, rgba(4, 8, 7, 0) 22%, rgba(4, 8, 7, 0.1) 42%, rgba(4, 8, 7, 0.9) 82%, rgba(4, 8, 7, 0.95) 100%),
		linear-gradient(270deg, rgba(4, 8, 7, 0.55) 0%, rgba(4, 8, 7, 0) 55%);
}

.business-selector__panel.has-image .business-selector__heading,
.business-selector__panel.has-image .business-selector__eyebrow,
.business-selector__panel.has-image .business-selector__text {
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55);
}

.business-selector__panel.has-image .business-selector__text {
	color: rgba(255, 255, 255, 0.88);
}

@media (max-width: 900px) {

	.business-selector__panel--instrumentation .business-selector__image {
		object-position: 60% 35%;
	}

	.business-selector__panel--ev .business-selector__image {
		object-position: 75% 18%;
	}
}


/* ---------------------------------------------------------
   Photo layering: blurred backdrop + uncropped foreground
--------------------------------------------------------- */
.business-selector__image--bg {
	position: absolute;
	inset: 0;
	filter: blur(28px) saturate(1.1) brightness(0.7);
	transform: scale(1.2);
}

.business-selector__image--fg {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: calc(100% - clamp(96px, 14vh, 130px));
	margin-inline: auto;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%), linear-gradient(180deg, transparent 0, #000 18%, #000 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%), linear-gradient(180deg, transparent 0, #000 18%, #000 100%);
	-webkit-mask-composite: source-in;
	mask-composite: intersect;
	animation: bs-kenburns 22s ease-in-out infinite alternate;
	transform-origin: 50% 70%;
}

/* Instrumentation: subject sits centre-frame, so a full cover crop looks best */
.business-selector__panel--instrumentation .business-selector__image--bg {
	display: none;
}

.business-selector__panel--instrumentation .business-selector__image--fg {
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	object-fit: cover;
	object-position: 62% 30%;
	-webkit-mask-image: none;
	mask-image: none;
}

.business-selector__panel.has-image .business-selector__image {
	filter: none;
}

.business-selector__panel.has-image .business-selector__image--bg {
	filter: blur(28px) saturate(1.1) brightness(0.7);
}

/* Slightly lighter shade now that the subject is never cropped */
.business-selector__panel--ev.has-image .business-selector__shade {
	background:
		linear-gradient(180deg, rgba(4, 8, 7, 0.45) 0%, rgba(4, 8, 7, 0) 22%, rgba(4, 8, 7, 0.05) 50%, rgba(4, 8, 7, 0.88) 86%, rgba(4, 8, 7, 0.95) 100%);
}

.business-selector__panel--instrumentation.has-image .business-selector__shade {
	background:
		linear-gradient(180deg, rgba(5, 9, 16, 0.5) 0%, rgba(5, 9, 16, 0.05) 24%, rgba(5, 9, 16, 0.12) 50%, rgba(5, 9, 16, 0.9) 86%, rgba(5, 9, 16, 0.95) 100%);
}


/* ---------------------------------------------------------
   Extra polish: glow, edge label, accent line, CTA shine, halo
--------------------------------------------------------- */
.business-selector__glow {
	position: absolute;
	z-index: 1;
	top: 18%;
	width: 55%;
	aspect-ratio: 1;
	border-radius: var(--radius-full);
	background: radial-gradient(circle, color-mix(in srgb, var(--bs-accent) 40%, transparent) 0%, transparent 68%);
	filter: blur(30px);
	opacity: 0.55;
	pointer-events: none;
	animation: bs-glow 9s ease-in-out infinite alternate;
}

.business-selector__panel--instrumentation .business-selector__glow {
	left: -12%;
}

.business-selector__panel--ev .business-selector__glow {
	right: -12%;
}

.business-selector__edge {
	position: absolute;
	z-index: 3;
	top: 50%;
	font-size: var(--font-size-xs);
	font-weight: var(--font-weight-semibold);
	letter-spacing: 0.4em;
	text-transform: uppercase;
	white-space: nowrap;
	color: rgba(255, 255, 255, 0.42);
	pointer-events: none;
	transition: color var(--transition-slow);
}

.business-selector__panel--instrumentation .business-selector__edge {
	left: var(--space-lg);
	transform: translateY(-50%) rotate(180deg);
	writing-mode: vertical-rl;
}

.business-selector__panel--ev .business-selector__edge {
	right: var(--space-lg);
	transform: translateY(-50%);
	writing-mode: vertical-rl;
}

.business-selector__panel:hover .business-selector__edge {
	color: var(--bs-accent);
}

.business-selector__heading::after {
	content: '';
	display: block;
	width: 56px;
	height: 3px;
	margin-top: var(--space-md);
	border-radius: var(--radius-full);
	background-color: var(--bs-accent);
	transition: width 700ms var(--bs-ease);
}

.business-selector__panel:hover .business-selector__heading::after,
.business-selector__panel:focus-visible .business-selector__heading::after {
	width: 150px;
}

.business-selector__cta {
	position: relative;
	overflow: hidden;
}

.business-selector__cta::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: -60%;
	width: 40%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.4), transparent);
	transform: skewX(-20deg);
	transition: left 800ms var(--bs-ease);
}

.business-selector__panel:hover .business-selector__cta::after {
	left: 130%;
}

.business-selector__lockup {
	position: relative;
}

.business-selector__lockup::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	width: 110px;
	height: 110px;
	margin: -55px 0 0 -26px;
	border-radius: var(--radius-full);
	background: radial-gradient(circle, rgba(0, 184, 148, 0.45), transparent 66%);
	filter: blur(14px);
	z-index: -1;
	animation: bs-halo 4s ease-in-out infinite;
}

@keyframes bs-kenburns {
	from { transform: scale(1); }
	to   { transform: scale(1.045); }
}

@keyframes bs-glow {
	from { transform: translate3d(0, 0, 0) scale(1); opacity: 0.4; }
	to   { transform: translate3d(0, 40px, 0) scale(1.15); opacity: 0.65; }
}

@keyframes bs-halo {
	0%, 100% { opacity: 0.55; transform: scale(0.9); }
	50%      { opacity: 1; transform: scale(1.15); }
}

@media (prefers-reduced-motion: reduce) {

	.business-selector__image--fg,
	.business-selector__glow,
	.business-selector__lockup::before {
		animation: none;
	}
}

@media (max-width: 900px) {

	.business-selector__edge {
		display: none;
	}

	.business-selector__image--fg {
		max-height: calc(100% - 84px);
		-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%), linear-gradient(180deg, transparent 0, #000 18%, #000 100%);
		mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%), linear-gradient(180deg, transparent 0, #000 18%, #000 100%);
	}

	.business-selector__panel--instrumentation .business-selector__image--fg {
		max-height: none;
		object-position: 62% 30%;
		-webkit-mask-image: none;
		mask-image: none;
	}
}

.business-selector__brand::before{content:'';position:absolute;inset:0 0 -40px 0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,0));pointer-events:none}


/* WordPress overlay integration */
body.gpipl-business-selector-active {
	overflow: hidden !important;
}

#gpipl-business-selector[hidden] {
	display: none !important;
}

#gpipl-business-selector {
	font-family: var(--font-family-primary);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

#gpipl-business-selector img {
	max-width: 100%;
}
