/**
 * Campus — Slider push.
 * Rangée BB pleine largeur : largeur de slide (large / normal / étroit),
 * peek des voisines (Swiper slidesPerView: auto + centeredSlides).
 *
 * Le rendu card horizontale vient de campus-card.css — ne pas
 * recalculer les proportions image/texte ici.
 */

.campus-slider-push {
	/* Défaut = lecture (--campus-reading-width, déjà la largeur utile). */
	--campus-slider-push-container: var(--campus-reading-width, 1040px);
	--campus-slider-push-gap: 1.5rem;
	--campus-slider-push-peek: 1.25rem;

	position: relative;
	width: 100%;
	overflow: hidden;
}

/* Large = shell wide (1280) − padding container (20 × 2). */
.campus-slider-push--large {
	--campus-slider-push-container: calc(var(--campus-wide-width, 1280px) - 40px);
}

.campus-slider-push--normal {
	--campus-slider-push-container: var(--campus-reading-width, 1040px);
}

.campus-slider-push--narrow {
	--campus-slider-push-container: var(--campus-content-width, 720px);
}

/* Laisse dépasser hors colonne / rangée BB */
.fl-row:has(.campus-slider-push),
.fl-row:has(.campus-slider-push) .fl-row-content-wrap,
.fl-row:has(.campus-slider-push) .fl-row-content,
.fl-col:has(.campus-slider-push),
.fl-col:has(.campus-slider-push) > .fl-col-content,
.fl-module-campus-slider-push,
.fl-module-campus-slider-push > .fl-module-content,
.fl-module-campus-activite-mise-en-avant,
.fl-module-campus-activite-mise-en-avant > .fl-module-content {
	overflow: visible;
}

/* Une seule card : même plafond de largeur, sans peek ni flèches. */
.campus-slider-push--solo {
	overflow: visible;
}

.campus-slider-push--solo > .campus-card {
	width: min(100%, var(--campus-slider-push-container));
	margin-inline: auto;
}

.campus-slider-push--empty {
	padding: 1.5rem;
	text-align: center;
	color: var(--color-text-muted, #6b635a);
}

.campus-slider-push__inner {
	width: 100%;
	overflow: visible;
}

.campus-slider-push__swiper {
	overflow: visible;
	width: 100%;
}

.campus-slider-push__slide {
	box-sizing: border-box;
	display: block;
	display: flex;
	align-items: center;
	height: auto;
	/* Largeur container max ; mobile = viewport − peek pour voir le voisin */
	width: min(
		var(--campus-slider-push-container),
		calc(100% - (var(--campus-slider-push-peek) * 2))
	);
}

/* Même boîte qu’une card module seule — pas de contrainte Swiper sur la hauteur. */
.campus-slider-push__slide .campus-card,
.campus-slider-push__slide .campus-card__card {
	width: 100%;
	max-width: 100%;
	height: auto;
}

/* Renforce le layout horizontal card (mêmes valeurs que campus-card.css)
   au cas où le contexte Swiper écrase flex / overflow. */
@media (min-width: 992px) {
	.campus-slider-push .campus-card__card--standard-horizontal {
		display: flex;
		flex-direction: row;
		align-items: stretch;
		background-color: transparent !important;
		border-color: transparent !important;
		overflow: visible;
	}

	.campus-slider-push .campus-card__card--standard-horizontal .campus-card__standard-image {
		flex: 0 0 58.33333333333333%;
		max-width: 58.33333333333333%;
		min-width: 0;
		position: relative;
		z-index: 2;
		margin-right: -3.5rem;
		margin-right: -16.66666666666667%;
		margin-bottom: 0;
		overflow: visible;
	}

	.campus-slider-push .campus-card__card--standard-horizontal .campus-card__standard-image img {
		display: block;
		width: 100%;
		height: 100%;
		min-height: max(220px, 100%);
		object-fit: cover;
	}

	.campus-slider-push .campus-card__card--standard-horizontal .campus-card__standard-body {
		flex: 1 1 auto;
		min-width: 0;
		position: relative;
		z-index: 11;
		padding: 30px 0;
		display: flex;
		align-items: center;
	}

	.campus-slider-push .campus-card__card--standard-horizontal .campus-card__standard-body-inner {
		width: 100%;
		padding: 3.5rem;
		background-color: var(--card-body-bg, var(--color-surface, #f5f1ea));
	}
}

@media (max-width: 991px) {
	.campus-slider-push .campus-card__card--standard-horizontal {
		overflow: visible;
		background-color: transparent !important;
		border-color: transparent !important;
	}

	.campus-slider-push .campus-card__card--standard-horizontal .campus-card__standard-image + .campus-card__standard-body {
		position: relative;
		z-index: 2;
		margin-top: -2.5rem;
		padding: 0;
	}

	.campus-slider-push .campus-card__card--standard-horizontal .campus-card__standard-image + .campus-card__standard-body .campus-card__standard-body-inner {
		width: auto;
		margin-inline: 1.25rem;
		padding: 1.75rem 1.5rem 2rem;
		background-color: var(--card-body-bg, var(--campus-card-surface, #f5f1ea));
		color: var(--campus-card-fg, inherit);
	}
}

.campus-slider-push .campus-swiper-controls {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--campus-slider-push-container);
	margin-top: 1.5rem;
	margin-inline: auto;
	justify-content: center;
	gap: var(--campus-slider-push-gap);
}

.fl-builder-edit .campus-slider-push {
	min-height: 200px;
}
