/* Widget « Diaporama de fond » (inc/elementor-diaporama.php). */

/* Le widget couvre tout son bloc parent (qui doit être en position relative). */
.elementor-widget-csm-diaporama-fond {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	max-width: none !important;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

.csm-diapo {
	position: absolute;
	inset: 0;
	overflow: hidden;
	background: #2f1b11;
}

.csm-diapo__piste {
	position: absolute;
	inset: 0;
}

.csm-diapo__image {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity var(--csm-diapo-transition, 1200ms) ease-in-out;
}

.csm-diapo__image.is-active {
	opacity: 1;
}

.csm-diapo__image img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: var(--pos, center center);
}

/* Fondu et zoom lent : l'image active grossit pendant son affichage ; la
 * sortante garde son zoom le temps du fondu, puis revient à 1. */
.csm-diapo--zoom .csm-diapo__image img {
	transform: scale(1);
	transition: transform 0s linear var(--csm-diapo-transition, 1200ms);
}

.csm-diapo--zoom .csm-diapo__image.is-active img {
	transform: scale(1.08);
	transition: transform calc(var(--csm-diapo-delai, 6000ms) + var(--csm-diapo-transition, 1200ms)) linear 0s;
}

/* Glissement : piste horizontale. */
.csm-diapo--glissement .csm-diapo__piste {
	display: flex;
	transform: translateX(calc(var(--csm-diapo-rang, 0) * -100%));
	transition: transform var(--csm-diapo-transition, 1200ms) cubic-bezier(.65, 0, .35, 1);
}

.csm-diapo--glissement .csm-diapo__image {
	position: relative;
	inset: auto;
	flex: 0 0 100%;
	height: 100%;
	opacity: 1;
	transition: none;
}

/* Points et bouton pause : au-dessus du voile et du texte du héros. */
.csm-diapo__controles {
	position: absolute;
	bottom: clamp(16px, 2.4vw, 36px);
	z-index: 5;
	display: flex;
	align-items: center;
	gap: 10px;
}

.csm-diapo__controles--droite {
	right: clamp(20px, 3vw, 48px);
}

.csm-diapo__controles--gauche {
	left: clamp(20px, 3vw, 48px);
}

.csm-diapo__controles--centre {
	left: 50%;
	transform: translateX(-50%);
}

.csm-diapo__point,
.csm-diapo__pause {
	margin: 0;
	padding: 0;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

/* Zone de clic de 24 px, point visible de 10 px. */
.csm-diapo__point {
	position: relative;
	width: 24px;
	height: 24px;
	border: 0;
	background: none;
}

.csm-diapo__point::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 10px;
	margin: -5px 0 0 -5px;
	border: 1px solid rgba(255, 255, 255, .85);
	border-radius: 50%;
	background: transparent;
	transition: background-color .25s ease, transform .25s ease;
}

.csm-diapo__point:hover::before {
	background: rgba(255, 255, 255, .5);
}

.csm-diapo__point.is-active::before {
	background: #fff;
	transform: scale(1.2);
}

.csm-diapo__pause {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px dashed rgba(255, 255, 255, .7);
	border-radius: 50%;
	background: rgba(27, 17, 14, .35);
	color: #fff;
	transition: background-color .25s ease;
}

.csm-diapo__pause:hover {
	background: rgba(27, 17, 14, .6);
}

.csm-diapo__point:focus-visible,
.csm-diapo__pause:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.csm-diapo__icone-lecture,
.csm-diapo.is-pause .csm-diapo__icone-pause {
	display: none;
}

.csm-diapo.is-pause .csm-diapo__icone-lecture {
	display: block;
}

.csm-diapo__note {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 6;
	max-width: 420px;
	margin: 0;
	padding: 8px 12px;
	border-radius: 6px;
	background: rgba(255, 255, 255, .92);
	color: #1b110e;
	font: 400 12px / 1.4 system-ui, sans-serif;
}

/* Cadrage par appareil (points de rupture Elementor par défaut). */
@media (max-width: 1024px) {
	.csm-diapo__image img {
		object-position: var(--pos-t, var(--pos, center center));
	}
}

@media (max-width: 767px) {
	.csm-diapo__image img {
		object-position: var(--pos-m, var(--pos-t, var(--pos, center center)));
	}
}

@media (prefers-reduced-motion: reduce) {
	.csm-diapo--zoom .csm-diapo__image img,
	.csm-diapo--zoom .csm-diapo__image.is-active img {
		transform: none;
		transition: none;
	}
}

/* Assombrir l'image (réglage par diapo) : par-dessus l'image, sous le voile du bloc. */
.csm-diapo__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(27, 17, 14, var(--ombre, 0));
	pointer-events: none;
}

/* À gauche : aligné sur la gouttière du texte du héros. */
.csm-diapo__controles--gauche {
	left: calc(var(--sm-gouttiere, clamp(20px, 3vw, 48px)) - 5px);
}
