/**
 * Système orbital Beriox — hero, contact, infolettre, pages intérieures.
 */

@keyframes brx-hero-orbit-rotate {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

.vitrine-home-page .hero-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

/* Au-dessus du dégradé hero::before, sous le contenu (logo) */
.vitrine-home-page .hero-orbit-layer {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: visible;
	pointer-events: none;
}

.vitrine-home-page .hero-orbit-layer .brx-hero-orbital-system {
	position: absolute;
	inset: 0;
}

.vitrine-home-page .brx-hero-orbital-system {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 0;
	pointer-events: none;
	overflow: visible;
	--brx-orbit-stage-scale: 1;
	mask-image: radial-gradient(
		ellipse 82% 78% at 50% 50%,
		rgba(0, 0, 0, 1) 14%,
		rgba(0, 0, 0, 0.55) 38%,
		rgba(0, 0, 0, 0.15) 58%,
		transparent 88%
	);
	-webkit-mask-image: radial-gradient(
		ellipse 82% 78% at 50% 50%,
		rgba(0, 0, 0, 1) 14%,
		rgba(0, 0, 0, 0.55) 38%,
		rgba(0, 0, 0, 0.15) 58%,
		transparent 88%
	);
}

.vitrine-home-page .brx-hero-orbital-stage {
	position: relative;
	width: min(104vmin, 80rem);
	height: min(104vmin, 80rem);
	flex-shrink: 0;
	--brx-orbit-device-rotate: 0deg;
	--brx-orbit-device-tilt-x: 0deg;
	transform: scale(var(--brx-orbit-stage-scale))
		rotate(var(--brx-orbit-device-rotate))
		rotateX(var(--brx-orbit-device-tilt-x));
	transform-origin: center center;
	transform-style: preserve-3d;
	will-change: transform;
}

.vitrine-home-page .brx-hero-orbital-system--device-tilt .brx-hero-orbital-stage {
	perspective: 900px;
}

.vitrine-home-page .brx-hero-orbital-guide {
	position: absolute;
	left: 50%;
	top: 50%;
	width: var(--guide-size);
	height: var(--guide-size);
	transform: translate(-50%, -50%);
	border-radius: 50%;
	border: 1px solid rgba(123, 127, 255, 0.16);
	box-shadow: 0 0 0 0.5px rgba(123, 127, 255, 0.05);
}

.vitrine-home-page .brx-hero-orbit-ring {
	position: absolute;
	inset: 0;
	animation: brx-hero-orbit-rotate var(--orbit-duration) linear infinite;
	animation-direction: var(--orbit-direction, normal);
	will-change: transform;
}

.vitrine-home-page .brx-hero-orbit-arm {
	position: absolute;
	inset: 0;
	transform: rotate(var(--slot-angle));
}

.vitrine-home-page .brx-hero-orbit-anchor {
	position: absolute;
	left: 50%;
	top: calc(50% - var(--orbit-radius));
	transform: translate(-50%, -50%);
}

.vitrine-home-page .brx-hero-orbit-icon-upright {
	animation: brx-hero-orbit-rotate var(--orbit-duration) linear infinite reverse;
	will-change: transform;
}

.vitrine-home-page .brx-hero-orbit-ring[style*="reverse"] .brx-hero-orbit-icon-upright {
	animation-direction: normal;
}

.vitrine-home-page .brx-hero-orbit-icon-svg {
	display: block;
	width: 1.2rem;
	height: 1.2rem;
	color: rgba(123, 127, 255, 0.42);
}

[data-theme="light"] .vitrine-home-page .brx-hero-orbit-icon-svg {
	color: rgba(90, 95, 202, 0.48);
}

@media (max-width: 639px) {
	.vitrine-home-page .brx-hero-orbital-system {
		--brx-orbit-stage-scale: 1.38;
		mask-image: radial-gradient(
			ellipse 94% 90% at 50% 48%,
			rgba(0, 0, 0, 1) 8%,
			rgba(0, 0, 0, 0.62) 32%,
			rgba(0, 0, 0, 0.2) 56%,
			transparent 92%
		);
		-webkit-mask-image: radial-gradient(
			ellipse 94% 90% at 50% 48%,
			rgba(0, 0, 0, 1) 8%,
			rgba(0, 0, 0, 0.62) 32%,
			rgba(0, 0, 0, 0.2) 56%,
			transparent 92%
		);
	}

	.vitrine-home-page .brx-hero-orbital-stage {
		width: min(118vmin, 108vw);
		height: min(118vmin, 108vw);
	}

	.vitrine-home-page .brx-hero-orbit-icon-svg {
		width: 1.45rem;
		height: 1.45rem;
		color: rgba(123, 127, 255, 0.5);
	}

	.vitrine-home-page .brx-hero-orbital-guide {
		border-color: rgba(123, 127, 255, 0.22);
	}
}

@media (min-width: 640px) and (max-width: 1023px) {
	.vitrine-home-page .brx-hero-orbital-system {
		--brx-orbit-stage-scale: 1.12;
	}

	.vitrine-home-page .brx-hero-orbit-icon-svg {
		width: 1.3rem;
		height: 1.3rem;
	}
}

@media (min-width: 1024px) {
	/* Orbite ancrée à droite, derrière le logo Beriox */
	.vitrine-home-page .hero-orbit-layer .brx-hero-orbital-system {
		left: 36%;
		right: -10%;
		width: auto;
		justify-content: center;
		--brx-orbit-stage-scale: 1.05;
		mask-image: radial-gradient(
			ellipse 88% 86% at 62% 50%,
			rgba(0, 0, 0, 1) 12%,
			rgba(0, 0, 0, 0.6) 36%,
			rgba(0, 0, 0, 0.15) 58%,
			transparent 90%
		);
		-webkit-mask-image: radial-gradient(
			ellipse 88% 86% at 62% 50%,
			rgba(0, 0, 0, 1) 12%,
			rgba(0, 0, 0, 0.6) 36%,
			rgba(0, 0, 0, 0.15) 58%,
			transparent 90%
		);
	}

	.vitrine-home-page .hero-orbit-layer .brx-hero-orbital-stage {
		width: min(96vmin, 88rem);
		height: min(96vmin, 88rem);
	}

	.vitrine-home-page .brx-hero-orbit-icon-svg {
		width: 1.5rem;
		height: 1.5rem;
		color: rgba(123, 127, 255, 0.46);
	}
}

@media (min-width: 1280px) {
	.vitrine-home-page .hero-orbit-layer .brx-hero-orbital-system {
		left: 38%;
		right: -12%;
		--brx-orbit-stage-scale: 1.12;
	}

	.vitrine-home-page .hero-orbit-layer .brx-hero-orbital-stage {
		width: min(102vmin, 92rem);
		height: min(102vmin, 92rem);
	}

	.vitrine-home-page .brx-hero-orbit-icon-svg {
		width: 1.625rem;
		height: 1.625rem;
	}
}

/* Hero scroll — orbite + logo (tablette + desktop, 2 colonnes) */
@media (min-width: 768px) {
	.vitrine-home-page .home-hero-scroll .hero-orbit-layer,
	.vitrine-home-page .home-hero-scroll .home-hero-scroll__orbit-layer {
		inset: -10% -18% -6% -18%;
		display: flex;
		align-items: center;
		justify-content: center;
		overflow: visible;
	}

	.vitrine-home-page .home-hero-scroll .hero-orbit-layer .brx-hero-orbital-system {
		position: absolute;
		inset: 0;
		left: 0;
		right: 0;
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		--brx-orbit-stage-scale: 1.08;
		mask-image: radial-gradient(
			ellipse 94% 92% at 50% 50%,
			rgba(0, 0, 0, 1) 5%,
			rgba(0, 0, 0, 0.8) 44%,
			rgba(0, 0, 0, 0.42) 70%,
			transparent 97%
		);
		-webkit-mask-image: radial-gradient(
			ellipse 94% 92% at 50% 50%,
			rgba(0, 0, 0, 1) 5%,
			rgba(0, 0, 0, 0.8) 44%,
			rgba(0, 0, 0, 0.42) 70%,
			transparent 97%
		);
	}

	.vitrine-home-page .home-hero-scroll .hero-orbit-layer .brx-hero-orbital-stage {
		width: min(108vmin, 120%);
		height: min(108vmin, 120%);
		max-width: none;
		max-height: none;
	}
}

@media (min-width: 1024px) {
	.vitrine-home-page .home-hero-scroll .hero-orbit-layer .brx-hero-orbital-system {
		--brx-orbit-stage-scale: 1.16;
	}
}

@media (max-width: 767px) {
	.vitrine-home-page .home-hero-scroll .hero-orbit-layer,
	.vitrine-home-page .home-hero-scroll .home-hero-scroll__orbit-layer {
		inset: -6%;
		overflow: visible;
	}

	.vitrine-home-page .home-hero-scroll .brx-hero-orbital-system {
		--brx-orbit-stage-scale: 1.08;
		mask-image: radial-gradient(
			ellipse 94% 90% at 50% 50%,
			rgba(0, 0, 0, 1) 8%,
			rgba(0, 0, 0, 0.72) 40%,
			rgba(0, 0, 0, 0.28) 68%,
			transparent 92%
		);
		-webkit-mask-image: radial-gradient(
			ellipse 94% 90% at 50% 50%,
			rgba(0, 0, 0, 1) 8%,
			rgba(0, 0, 0, 0.72) 40%,
			rgba(0, 0, 0, 0.28) 68%,
			transparent 92%
		);
	}

	.vitrine-home-page .home-hero-scroll .brx-hero-orbital-stage {
		width: min(128vmin, 130%);
		height: min(128vmin, 130%);
	}
}

.vitrine-home-page .home-hero-scroll .brx-hero-orbital-guide {
	border-color: rgba(123, 127, 255, 0.26);
	box-shadow: 0 0 0 0.5px rgba(123, 127, 255, 0.12);
}

@media (min-width: 1280px) {
	.vitrine-home-page .home-hero-scroll .hero-orbit-layer,
	.vitrine-home-page .home-hero-scroll .home-hero-scroll__orbit-layer {
		inset: -10% -18% -6% -18%;
	}

	.vitrine-home-page .home-hero-scroll .hero-orbit-layer .brx-hero-orbital-system {
		--brx-orbit-stage-scale: 1.18;
	}

	.vitrine-home-page .home-hero-scroll .hero-orbit-layer .brx-hero-orbital-stage {
		width: min(104vmin, 118%);
		height: min(104vmin, 118%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.brx-hero-orbit-ring,
	.brx-hero-orbit-icon-upright {
		animation: none !important;
	}
}

/* —— Base commune —— */
.brx-orbit-layer {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.brx-orbit-layer .brx-orbital-system {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.brx-orbital-system {
	--brx-orbit-stage-scale: 1;
	pointer-events: none;
	overflow: visible;
}

.brx-hero-orbital-stage {
	position: relative;
	flex-shrink: 0;
	--brx-orbit-device-rotate: 0deg;
	--brx-orbit-device-tilt-x: 0deg;
	transform: scale(var(--brx-orbit-stage-scale))
		rotate(var(--brx-orbit-device-rotate))
		rotateX(var(--brx-orbit-device-tilt-x));
	transform-origin: center center;
	transform-style: preserve-3d;
	will-change: transform;
}

.brx-hero-orbital-system--device-tilt .brx-hero-orbital-stage {
	perspective: 900px;
}

.brx-hero-orbital-guide {
	position: absolute;
	left: 50%;
	top: 50%;
	width: var(--guide-size);
	height: var(--guide-size);
	transform: translate(-50%, -50%);
	border-radius: 50%;
	border: 1px solid rgba(123, 127, 255, 0.16);
	box-shadow: 0 0 0 0.5px rgba(123, 127, 255, 0.05);
}

.brx-hero-orbit-ring {
	position: absolute;
	inset: 0;
	animation: brx-hero-orbit-rotate var(--orbit-duration) linear infinite;
	animation-direction: var(--orbit-direction, normal);
	will-change: transform;
}

.brx-hero-orbit-arm {
	position: absolute;
	inset: 0;
	transform: rotate(var(--slot-angle));
}

.brx-hero-orbit-anchor {
	position: absolute;
	left: 50%;
	top: calc(50% - var(--orbit-radius));
	transform: translate(-50%, -50%);
}

.brx-hero-orbit-icon-upright {
	animation: brx-hero-orbit-rotate var(--orbit-duration) linear infinite reverse;
	will-change: transform;
}

.brx-hero-orbit-ring[style*="reverse"] .brx-hero-orbit-icon-upright {
	animation-direction: normal;
}

.brx-hero-orbit-icon-svg {
	display: block;
	width: 1.2rem;
	height: 1.2rem;
	color: rgba(123, 127, 255, 0.42);
}

[data-theme="light"] .brx-hero-orbit-icon-svg {
	color: rgba(90, 95, 202, 0.48);
}

/* —— Preset whisper —— */
.brx-orbital-system--whisper {
	mask-image: radial-gradient(ellipse 72% 68% at 50% 50%, #000 18%, transparent 78%);
	-webkit-mask-image: radial-gradient(ellipse 72% 68% at 50% 50%, #000 18%, transparent 78%);
}

.brx-orbital-system--whisper .brx-hero-orbital-stage {
	width: min(52rem, 92vw);
	height: min(52rem, 92vw);
}

.brx-orbital-system--whisper .brx-hero-orbit-icon-svg {
	width: 0.95rem;
	height: 0.95rem;
	color: rgba(123, 127, 255, 0.28);
}

.brx-orbital-system--whisper .brx-hero-orbital-guide {
	border-color: rgba(123, 127, 255, 0.1);
}

[data-theme="light"] .brx-orbital-system--whisper .brx-hero-orbit-icon-svg {
	color: rgba(90, 95, 202, 0.32);
}

/* —— Preset compact —— */
.brx-orbital-system--compact {
	mask-image: radial-gradient(ellipse 78% 74% at 50% 50%, #000 14%, transparent 82%);
	-webkit-mask-image: radial-gradient(ellipse 78% 74% at 50% 50%, #000 14%, transparent 82%);
}

.brx-orbital-system--compact .brx-hero-orbital-stage {
	width: min(64rem, 96vw);
	height: min(64rem, 96vw);
}

.brx-orbital-system--compact .brx-hero-orbit-icon-svg {
	width: 1.05rem;
	height: 1.05rem;
	color: rgba(123, 127, 255, 0.34);
}

/* —— Infolettre (footer) —— */
.footer-newsletter-band {
	position: relative;
	overflow: hidden;
}

.brx-orbit-layer--newsletter {
	z-index: 0;
}

.brx-orbit-layer--newsletter .brx-orbital-system--newsletter {
	left: -8%;
	right: -8%;
	--brx-orbit-stage-scale: 0.82;
	opacity: 0.72;
}

@media (min-width: 900px) {
	.brx-orbit-layer--newsletter .brx-orbital-system--newsletter {
		left: auto;
		right: -4%;
		width: 52%;
		justify-content: flex-end;
		--brx-orbit-stage-scale: 0.9;
	}
}

[data-theme="light"] .brx-orbit-layer--newsletter .brx-orbital-system--newsletter {
	opacity: 0.55;
}

/* —— Pied de page —— */
.footer-public .brx-orbit-layer--footer {
	z-index: 0;
}

.footer-public .brx-orbit-layer--footer .brx-orbital-system--footer {
	left: auto;
	right: -12%;
	width: 50%;
	justify-content: flex-end;
	align-items: flex-end;
	--brx-orbit-stage-scale: 0.68;
	opacity: 0.4;
	mask-image: radial-gradient(ellipse 78% 72% at 70% 65%, #000 12%, transparent 74%);
	-webkit-mask-image: radial-gradient(ellipse 78% 72% at 70% 65%, #000 12%, transparent 74%);
}

@media (min-width: 900px) {
	.footer-public .brx-orbit-layer--footer .brx-orbital-system--footer {
		right: -2%;
		width: 36%;
		--brx-orbit-stage-scale: 0.76;
		opacity: 0.46;
	}
}

@media (max-width: 899px) {
	.footer-public .brx-orbit-layer--footer .brx-orbital-system--footer {
		right: -20%;
		width: 62%;
		opacity: 0.26;
	}
}

[data-theme="light"] .footer-public .brx-orbit-layer--footer .brx-orbital-system--footer {
	opacity: 0.34;
}

@media (min-width: 900px) {
	[data-theme="light"] .footer-public .brx-orbit-layer--footer .brx-orbital-system--footer {
		opacity: 0.4;
	}
}

@media (prefers-reduced-motion: reduce) {
	.footer-public .brx-orbit-layer--footer .brx-orbital-system--footer {
		opacity: 0.22;
	}
}

/* —— Contact accueil —— */
.vitrine-home-page .contact-section--pro {
	position: relative;
	overflow: hidden;
}

.brx-orbit-layer--contact {
	z-index: 0;
}

.brx-orbit-layer--contact .brx-orbital-system--contact {
	left: auto;
	right: -12%;
	width: 58%;
	justify-content: flex-end;
	--brx-orbit-stage-scale: 0.78;
	opacity: 0.55;
}

.vitrine-home-page .contact-section--pro .contact-inner {
	position: relative;
	z-index: 1;
}

@media (max-width: 899px) {
	.brx-orbit-layer--contact .brx-orbital-system--contact {
		right: -24%;
		width: 72%;
		opacity: 0.38;
	}
}

/* —— Hero pages intérieures —— */
.page-hero .brx-orbit-layer--page-hero {
	z-index: 0;
}

.page-hero .page-hero-inner {
	position: relative;
	z-index: 1;
}

.brx-orbit-layer--page-hero .brx-orbital-system--page-hero {
	left: auto;
	right: -6%;
	width: 46%;
	justify-content: center;
	--brx-orbit-stage-scale: 0.72;
	opacity: 0.42;
}

@media (max-width: 767px) {
	.brx-orbit-layer--page-hero .brx-orbital-system--page-hero {
		right: -18%;
		width: 62%;
		opacity: 0.28;
	}
}

[data-theme="light"] .brx-orbit-layer--page-hero .brx-orbital-system--page-hero {
	opacity: 0.34;
}
