/* Site-wide UI tweaks (staging). Complianz "Gérer le consentement" tab → compact round icon, bottom-left,
   so it never covers page content or CTAs. The label stays in the DOM as the button's accessible name. */
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent {
	position: fixed !important;
	left: 12px !important; right: auto !important; top: auto !important;
	bottom: calc(12px + env(safe-area-inset-bottom)) !important;
	width: 44px !important; height: 44px !important; min-width: 0 !important;
	padding: 0 !important; margin: 0 !important;
	border: 1px solid rgba(255, 255, 255, .25) !important; border-radius: 50% !important;
	background: #25282a !important; color: #fff !important;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .35) !important;
	font-size: 0 !important; line-height: 0 !important; letter-spacing: 0 !important;
	overflow: visible !important; transform: none !important;
	opacity: .9; transition: opacity .2s, background-color .2s !important;
	z-index: 9998 !important;
}
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent::before {
	content: ""; position: absolute; inset: 0; margin: auto; width: 22px; height: 22px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.6 11.2a3 3 0 0 1-3.6-3.3 3 3 0 0 1-3.9-3.9A3 3 0 0 1 12.8 2.4 9.8 9.8 0 1 0 21.6 11.2zM8 9.5a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6zm-1 5a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6zm5 4a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6zm4-5a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.6 11.2a3 3 0 0 1-3.6-3.3 3 3 0 0 1-3.9-3.9A3 3 0 0 1 12.8 2.4 9.8 9.8 0 1 0 21.6 11.2zM8 9.5a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6zm-1 5a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6zm5 4a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6zm4-5a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6z'/%3E%3C/svg%3E") center / contain no-repeat;
}
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent:hover,
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent:focus-visible { opacity: 1; background: #ed1c24 !important; }
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent:focus-visible { outline: 3px solid #fff !important; outline-offset: 2px; }
@media (hover: hover) {
	#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent::after {
		content: "Gérer le consentement"; position: absolute; left: 54px; top: 50%; transform: translateY(-50%);
		padding: 7px 12px; border-radius: 6px; background: #25282a; color: #fff; white-space: nowrap;
		font: 13px/1.2 "Open Sans", sans-serif; letter-spacing: 0;
		opacity: 0; pointer-events: none; transition: opacity .2s;
	}
	html[lang^="en"] #cmplz-manage-consent .cmplz-btn.cmplz-manage-consent::after { content: "Manage consent"; }
	#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent:hover::after,
	#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent:focus-visible::after { opacity: 1; }
}
@media print { #cmplz-manage-consent { display: none !important; } }

/* reCAPTCHA: badge hidden (still active) only on pages where the inline notice was added by site.js. */
html.csp-recaptcha-noted .grecaptcha-badge { visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }
.csp-recaptcha-note {
	flex: 1 1 100%; width: 100%; margin: 12px 0 0 !important; padding: 0 var(--column-gap, 10px) 0 calc(var(--column-gap, 10px) / 2);
	font: 12px/1.45 "Open Sans", sans-serif !important; letter-spacing: 0; text-transform: none; color: inherit; opacity: .75;
}
.csp-recaptcha-note a { color: inherit !important; text-decoration: underline !important; }

/* ===== Design harmonization (v0.7) ===== */

/* Entrance animations: short and subtle everywhere (Elementor default was ~1.25 s with full-height slides). */
.elementor-element.animated { animation-duration: .45s !important; animation-timing-function: cubic-bezier(.2, .7, .2, 1) !important; }
.elementor-element.animated.fadeInUp, .elementor-element.animated.slideInUp { animation-name: cspInUp !important; }
.elementor-element.animated.fadeInDown, .elementor-element.animated.slideInDown { animation-name: cspInDown !important; }
.elementor-element.animated.fadeInLeft, .elementor-element.animated.slideInLeft { animation-name: cspInLeft !important; }
.elementor-element.animated.fadeInRight, .elementor-element.animated.slideInRight { animation-name: cspInRight !important; }
.elementor-element.animated.zoomIn, .elementor-element.animated.bounceIn, .elementor-element.animated.zoomInUp, .elementor-element.animated.zoomInDown { animation-name: cspZoom !important; }
@keyframes cspInUp { from { opacity: 0; transform: translate3d(0, 20px, 0); } to { opacity: 1; transform: none; } }
@keyframes cspInDown { from { opacity: 0; transform: translate3d(0, -20px, 0); } to { opacity: 1; transform: none; } }
@keyframes cspInLeft { from { opacity: 0; transform: translate3d(-20px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes cspInRight { from { opacity: 0; transform: translate3d(20px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes cspZoom { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	.elementor-invisible { visibility: visible !important; }
	.elementor-element.animated { animation: none !important; }
}

/* Buttons: one behaviour everywhere (colour comes from the global kit; offset shadow kept where set). */
.elementor-button {
	transition: background-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}
.elementor-button:hover { transform: translate(-1px, -1px); }
.elementor-button:focus-visible { outline: 3px solid #25282a; outline-offset: 3px; }

/* ===== Loading screen (LoftLoader Pro): photo of the Centre + dark veil (image set by includes/loader.php) ===== */
@supports (width: 1cqw) {
	#loftloader-wrapper {
		--csp-ll-veil: radial-gradient(ellipse 62% 58% at 50% 50%, rgba(20, 22, 25, .84), rgba(20, 22, 25, .66));
		--csp-ll-w: max(100cqw, calc(100cqh * var(--csp-ll-ratio, 1.5)));
		--csp-ll-h: calc(var(--csp-ll-w) / var(--csp-ll-ratio, 1.5));
		--csp-ll-x: calc((100cqw - var(--csp-ll-w)) * .4);
		--csp-ll-y: calc((100cqh - var(--csp-ll-h)) * .5);
	}
	#loftloader-wrapper .loader-bg { container-type: size; opacity: 1 !important; background-color: #16181b !important; }
	/* Fade / slide endings: the panel itself carries the picture. */
	#loftloader-wrapper:not(.end-split-h):not(.end-split-v) .loader-bg {
		background-image: var(--csp-ll-veil), var(--csp-ll-img) !important;
		background-size: var(--csp-ll-w) var(--csp-ll-h) !important;
		background-position: var(--csp-ll-x) var(--csp-ll-y) !important;
		background-repeat: no-repeat !important;
	}
	/* Split endings: each half shows its part of one full-screen picture, so the doors open on a seamless photo. */
	#loftloader-wrapper.end-split-h .loader-bg, #loftloader-wrapper.end-split-v .loader-bg { background-color: transparent !important; }
	#loftloader-wrapper.end-split-h .loader-bg::before, #loftloader-wrapper.end-split-h .loader-bg::after,
	#loftloader-wrapper.end-split-v .loader-bg::before, #loftloader-wrapper.end-split-v .loader-bg::after {
		background-color: #16181b !important;
		background-image: var(--csp-ll-veil), var(--csp-ll-img) !important;
		background-size: var(--csp-ll-w) var(--csp-ll-h) !important;
		background-repeat: no-repeat !important;
	}
	#loftloader-wrapper.end-split-h .loader-bg::before,
	#loftloader-wrapper.end-split-v .loader-bg::before { background-position: var(--csp-ll-x) var(--csp-ll-y) !important; }
	#loftloader-wrapper.end-split-h .loader-bg::after { background-position: calc(var(--csp-ll-x) - 50cqw) var(--csp-ll-y) !important; }
	#loftloader-wrapper.end-split-v .loader-bg::after { background-position: var(--csp-ll-x) calc(var(--csp-ll-y) - 50cqh) !important; }
}
