/**
 * Addon Divi FilterGrid Slider - styles de base.
 *
 * Toutes les valeurs sont pilotées par des variables CSS --adfs-*,
 * écrites par les réglages du plugin sur l'élément portant la classe cible.
 * Elles sont ensuite reportées sur les variables natives de Swiper, ce qui
 * évite les !important et laisse le thème reprendre la main si besoin.
 */

/**
 * .dp-dfg-container est une grille CSS dont la colonne unique est implicite,
 * donc de largeur « auto » : elle se dimensionne sur le contenu de ses enfants.
 * Le contenu du slider étant la ligne flex de Swiper, dont la largeur est
 * elle-même calculée à partir de celle du slider, les deux se poussent
 * mutuellement à chaque mesure. Le ResizeObserver interne de Swiper relançant
 * le calcul à chaque changement de taille, la largeur s'emballe jusqu'à
 * plusieurs millions de pixels.
 *
 * minmax( 0, 1fr ) fige la colonne sur la largeur du conteneur : le slider ne
 * peut plus être dimensionné par son contenu. FilterGrid ne déclare jamais
 * grid-template-columns sur ce conteneur, l'empilement filtres / éléments /
 * pagination et les gouttières sont donc intacts.
 */
.dp-dfg-container.adfs-has-slider {
	grid-template-columns: minmax( 0, 1fr );
}

.adfs-slider {
	position: relative;
	overflow: hidden;
	/* Second garde-fou : un enfant à débordement masqué refuse par défaut de
	   se réduire sous la largeur de son contenu. */
	min-width: 0;
	max-width: 100%;
	padding-bottom: var( --adfs-container-pb, 40px );

	--swiper-scrollbar-bg-color: var( --adfs-sb-track, rgba( 0, 0, 0, 0.2 ) );
	--swiper-scrollbar-drag-bg-color: var( --adfs-sb-drag, #195672 );
	--swiper-scrollbar-size: var( --adfs-sb-height, 2px );
	--swiper-scrollbar-bottom: var( --adfs-sb-bottom, 0px );

	--swiper-navigation-color: var( --adfs-arrow-color, #195672 );
	--swiper-navigation-size: var( --adfs-arrow-size, 34px );
	--swiper-navigation-sides-offset: var( --adfs-arrow-offset, 0px );

	--swiper-pagination-color: var( --adfs-bullet-active, #195672 );
	--swiper-pagination-bullet-inactive-color: var( --adfs-bullet-color, rgba( 0, 0, 0, 0.2 ) );
	--swiper-pagination-bullet-inactive-opacity: 1;
	--swiper-pagination-bullet-size: var( --adfs-bullet-size, 8px );
	--swiper-pagination-bottom: 0px;
}

/**
 * FilterGrid pose « display: grid » sur .dp-dfg-items (avec un repli flex et
 * des largeurs en pourcentage sur les éléments), plus des gouttières en
 * grid-gap. Swiper attend une ligne flex unique : on neutralise cette mise en
 * page, l'espacement étant repris par le réglage « Espacement ».
 */
.adfs-slider .dp-dfg-items.swiper-wrapper {
	display: flex !important;
	flex-wrap: nowrap !important;
	grid-template-columns: none !important;
	grid-template-rows: none !important;
	grid-gap: 0 !important;
	gap: 0 !important;
	width: 100%;
	height: auto;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: content-box;
	align-items: stretch;
}

/**
 * Le padding des éléments reste au module Divi : lui aussi serait écrasé par
 * une remise à zéro autoritaire.
 */
.adfs-slider .dp-dfg-items.swiper-wrapper > .swiper-slide {
	flex-shrink: 0;
	width: 100%;
	height: auto;
	max-width: none !important;
	float: none !important;
	clear: none !important;
	position: relative;
	left: auto !important;
	top: auto !important;
}

/**
 * Swiper écrit l'espacement en style en ligne sur chaque diapositive :
 * margin-right en direction horizontale, margin-bottom en vertical. Un
 * !important de feuille de style l'emporterait sur ce style en ligne et
 * supprimerait l'espacement. On neutralise donc les marges de FilterGrid
 * côté par côté, en laissant celle que Swiper pilote sans !important : la
 * spécificité suffit face au module, et le style en ligne reprend la main.
 */
.adfs-slider.swiper-horizontal .dp-dfg-items.swiper-wrapper > .swiper-slide {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	margin-left: 0 !important;
	margin-right: 0;
}

.adfs-slider.swiper-vertical .dp-dfg-items.swiper-wrapper > .swiper-slide {
	margin-top: 0 !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	margin-bottom: 0;
}

/* Le mode "slidesPerView: auto" laisse la largeur au contenu. */
.adfs-slider.swiper-css-mode .dp-dfg-items.swiper-wrapper {
	box-sizing: border-box;
}

/* Les filtres et la pagination restent en dehors du slider : leurs menus
   déroulants ne sont donc jamais rognés par le débordement masqué. */
.dp-dfg-container.adfs-has-slider > .dp-dfg-filters,
.dp-dfg-container.adfs-has-slider > .dp-dfg-pagination {
	position: relative;
	z-index: 2;
}

/* Gouttière technique des dispositions maçonnées : jamais une diapositive. */
.adfs-slider .dp-dfg-masonry-gutter {
	display: none !important;
}

/* ---------------------------------------------------------------------
 * Barre de défilement
 * ------------------------------------------------------------------ */

.adfs-slider .swiper-scrollbar {
	border-radius: var( --adfs-sb-radius, 0px );
}

.adfs-slider .swiper-scrollbar .swiper-scrollbar-drag {
	border-radius: var( --adfs-sb-radius, 0px );
}

/* ---------------------------------------------------------------------
 * Flèches
 * ------------------------------------------------------------------ */

.adfs-slider .swiper-button-prev,
.adfs-slider .swiper-button-next {
	width: var( --adfs-arrow-size, 34px );
	height: var( --adfs-arrow-size, 34px );
	background-color: var( --adfs-arrow-bg, transparent );
	border-radius: var( --adfs-arrow-radius, 50px );
	transition: color 0.25s ease, background-color 0.25s ease, opacity 0.25s ease;
}

.adfs-slider .swiper-button-prev::after,
.adfs-slider .swiper-button-next::after {
	font-size: calc( var( --adfs-arrow-size, 34px ) * 0.45 );
	font-weight: 700;
}

.adfs-slider .swiper-button-prev:hover,
.adfs-slider .swiper-button-next:hover {
	color: var( --adfs-arrow-hover, var( --adfs-arrow-color, #195672 ) );
}

/* ---------------------------------------------------------------------
 * Puces
 * ------------------------------------------------------------------ */

.adfs-slider .swiper-pagination-bullet {
	width: var( --adfs-bullet-size, 8px );
	height: var( --adfs-bullet-size, 8px );
	transition: background-color 0.25s ease, transform 0.25s ease;
}

.adfs-slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
	background: var( --adfs-bullet-active, #195672 );
}

/* ---------------------------------------------------------------------
 * Constructeur visuel Divi : on montre la grille telle quelle.
 * ------------------------------------------------------------------ */

.et-fb .adfs-slider,
.et-bfb .adfs-slider {
	overflow: visible;
}
