.kit-widget-conteneur-volet {
	--kit-volet-height: 100vh;
	--kit-volet-top: 0px;
	--kit-volet-gutter: 60px;
	--kit-volet-mobile-retention: 24px;
	--kit-volet-mobile-tolerance: 100px;
}

@media (max-width: 767px) {
	.kit-volet-sticky-ancestor {
		overflow: visible !important;
		overflow-x: visible !important;
		overflow-y: visible !important;
		clip-path: none !important;
	}
}

/* Les écrans très étroits ont besoin de récupérer de la hauteur utile. */
@media (max-width: 340px) {
	.kit-widget-conteneur-volet .kit-volet {
		--padding-top: 80px !important;
		--padding-block-start: 80px !important;
		padding-top: 80px !important;
	}
}

.kit-widget-conteneur-volet,
.kit-widget-conteneur-volet > .elementor-widget-container,
.kit-widget-conteneur-volet .kit-volets {
	overflow: visible !important;
}

.kit-widget-conteneur-volet .kit-volets {
	display: block;
	position: relative;
}

.kit-widget-conteneur-volet .kit-volets-stage {
	display: block;
	position: relative;
}

.kit-widget-conteneur-volet .kit-volet {
	position: sticky;
	top: var(--kit-volet-top);
	z-index: var(--kit-volet-index);
	width: 100%;
	min-height: var(--kit-volet-height);
	margin: 0;
	transform: translateZ(0);
	backface-visibility: hidden;
}

/* Annule la largeur boxed du volet sans modifier ses conteneurs internes. */
.kit-widget-conteneur-volet .kit-volet.e-con-boxed > .e-con-inner {
	width: 100%;
	max-width: none;
	padding-inline: var(--kit-volet-gutter);
}

/* Markup optimisé Elementor : le volet ne possède pas de .e-con-inner. */
.kit-widget-conteneur-volet .kit-volet:not(.e-con-boxed) {
	padding-inline: var(--kit-volet-gutter);
}

/*
 * Dans le builder, les panneaux restent dans le flux : aucun recouvrement,
 * chaque contenu imbriqué demeure immédiatement accessible et éditable.
 */
body.elementor-editor-active .kit-widget-conteneur-volet .kit-volet,
.elementor-editor-active .kit-widget-conteneur-volet .kit-volet {
	position: relative !important;
	top: auto !important;
	z-index: auto !important;
	min-height: min(var(--kit-volet-height), 700px);
	transform: none;
}

@media (max-width: 767px) {
	.kit-widget-conteneur-volet {
		--kit-volet-gutter: 20px;
	}

	.kit-widget-conteneur-volet:not(.kit-volet-mobile-static-yes) .kit-volets-stage {
		position: relative;
		top: auto;
		left: auto;
		width: 100%;
		height: calc(100vh - var(--kit-volet-top));
		height: calc(100svh - var(--kit-volet-top));
		overflow: hidden;
	}

	.kit-widget-conteneur-volet:not(.kit-volet-mobile-static-yes) .kit-volets-stage.kit-stage-fixed {
		position: fixed;
		top: var(--kit-volet-top);
		left: var(--kit-stage-left);
		width: var(--kit-stage-width);
	}

	.kit-widget-conteneur-volet:not(.kit-volet-mobile-static-yes) .kit-volets-stage.kit-stage-ended {
		position: absolute;
		top: auto;
		bottom: 0;
		left: 0;
	}

	.kit-widget-conteneur-volet:not(.kit-volet-mobile-static-yes) .kit-volet {
		position: absolute !important;
		inset: 0 0 auto;
		z-index: var(--kit-volet-index) !important;
		height: auto;
		min-height: 100% !important;
		max-height: none;
		overflow: visible;
		transform: translate3d(0, var(--kit-panel-y, 100vh), 0);
		will-change: transform;
	}

	/* Elementor peut réinitialiser le padding du conteneur en responsive. */
	.kit-widget-conteneur-volet .kit-volet:not(.e-con-boxed) {
		box-sizing: border-box;
		padding-inline: var(--kit-volet-gutter) !important;
	}

	.kit-widget-conteneur-volet .kit-volet.e-con-boxed > .e-con-inner {
		box-sizing: border-box;
		padding-inline: var(--kit-volet-gutter) !important;
	}

	.kit-widget-conteneur-volet.kit-volet-mobile-static-yes .kit-volet {
		position: relative !important;
		top: auto !important;
		z-index: auto !important;
		height: auto;
		min-height: var(--kit-volet-height) !important;
		max-height: none;
		overflow: visible;
		transform: none;
	}

	.kit-widget-conteneur-volet.kit-volet-mobile-static-yes .kit-volets-stage {
		position: relative;
		height: auto;
		overflow: visible;
	}
}
