/**
 * Campus — Slider Galerie.
 * Ratios : classes thème `.img-*` (variables `--ratio-*`) — ne pas redéfinir ici.
 * Ce fichier = layout slider uniquement (hauteur fixe, largeur auto).
 */

.campus-slider-galerie--empty {
	padding: 1rem 1.25rem;
	border: 1px dashed rgba(0, 0, 0, 0.25);
	border-radius: 0.75rem;
	background: rgba(0, 0, 0, 0.03);
}

.campus-slider-galerie {
	position: relative;
}

/* Bande pleine largeur : 1re slide = bord gauche container, dépassement à droite (cf. slider contenus). */
.campus-slider-galerie-band {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.campus-slider-galerie-band__inner {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--campus-wide-width, 1280px);
	margin-inline: auto;
	overflow: visible;
	padding-inline: 20px;
}

.campus-slider-galerie--align-container {
	overflow: visible;
	width: 100%;
}

/* Laisse dépasser hors colonne / rangée BB pleine largeur */
.fl-row:has(.campus-slider-galerie-band),
.fl-row:has(.campus-slider-galerie-band) .fl-row-content-wrap,
.fl-row:has(.campus-slider-galerie-band) .fl-row-content,
.fl-col:has(.campus-slider-galerie-band),
.fl-col:has(.campus-slider-galerie-band) > .fl-col-content,
.fl-module-campus-slider-galerie,
.fl-module-campus-slider-galerie > .fl-module-content {
	overflow: visible;
}

.campus-slider-galerie-band .campus-swiper-controls {
	max-width: var(--campus-wide-width, 1280px);
	margin-inline: auto;
}

.campus-slider-galerie-band .campus-swiper-nav--sides {
	--campus-swiper-nav-container: var(--campus-wide-width, 1280px);
}

.campus-slider-galerie .swiper-slide {
	width: 100%;
	height: auto;
}

.campus-slider-galerie .imgfit {
	position: relative;
	overflow: hidden;
	display: block;
}

.campus-slider-galerie .imgfit img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*
 * Mode avancé : le ratio vient de `.img-*` (thème).
 * On ne reprend que le sizing pour le slider (hauteur fixe → largeur auto).
 */
.campus-slider-galerie--advanced .imgfit.img-square,
.campus-slider-galerie--advanced .imgfit.img-portrait,
.campus-slider-galerie--advanced .imgfit.img-paysage,
.campus-slider-galerie--advanced .imgfit.img-panorama {
	width: auto;
	height: 100%;
}

/* Mode simple : orientation native (pas de classe .img-*) */
.campus-slider-galerie--simple .imgfit {
	aspect-ratio: auto;
}

.campus-slider-galerie--simple .imgfit img {
	width: auto;
	height: 100%;
	max-width: none;
}

@media (max-width: 991px) {
	.campus-slider-galerie .swiper-slide {
		width: calc(100% - 2.5rem);
	}

	.campus-slider-galerie .imgfit {
		height: 100%;
		width: auto;
	}

	/* Avancé mobile : ratio uniforme (hors échelle sémantique) */
	.campus-slider-galerie--advanced .imgfit {
		aspect-ratio: 4 / 3;
	}

	.campus-slider-galerie--simple .swiper-slide {
		width: auto;
		height: 320px;
	}

	.campus-slider-galerie--simple .imgfit {
		aspect-ratio: auto;
		height: 100%;
		width: auto;
	}
}

@media (min-width: 992px) {
	.campus-slider-galerie .swiper-slide {
		width: auto;
		height: 500px;
	}

	.campus-slider-galerie .imgfit {
		height: 100%;
		width: auto;
	}
}

/* Bouton play */
.campus-slider-galerie .imgfit .btn-play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 10;
	cursor: pointer;
	margin: 0;
	line-height: 0;
}

/* Copyright : assets/css/campus-image-copyright.css */

/* Navigation / pagination → assets/css/campus-swiper-ui.css
 * Nav latérale : même conteneur 1240 centré que le slider contenus. */

.fl-builder-edit .campus-slider-galerie-band,
.fl-builder-edit .campus-slider-galerie {
	min-height: 200px;
}
