/*========================
* 
* 				HOME PAGE
* 
* ======================*/
/* SECTION 1 : HERO */
/* Rangée ecosystème - Rangée Cartes */
.innn-rangee-cartes-enjeux.manifest-version .fl-row-content {
	position: relative;
}

.innn-rangee-cartes-enjeux.manifest-version .fl-row-content::after {
	content: "";
	position: absolute;

	width: 320px;
	height: 900px;
	background: url("https://manifest.innn.fr/wp-content/uploads/sites/4/2026/09/manifest-ecosysteme-rangee-visuel.svg") center / contain no-repeat;
	right: -16px;
	top: 56%;
	transform: translateY(-50%);

	pointer-events: none;
}

/* Rangée thématiques */
/* Parent de la carte */
.fl-col-content:has(> .manifest-rangee-themes--item) {
	display: flex;
	flex-direction: column;
}


/* Module Beaver */
.manifest-rangee-themes--item {
	width: 100%;
	flex: 1;
}


/* Conteneurs internes Beaver */
.manifest-rangee-themes--item > .fl-module-content,
.manifest-rangee-themes--item .fl-callout,
.manifest-rangee-themes--item .fl-callout-content {
	height: 100%;
}
.manifest-rangee-themes--item .fl-callout-content {
	display: flex;
	flex-direction: column;
}

.manifest-rangee-themes--item .fl-callout-text-wrap {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding-left: 82px; /* Pour être aligné avec le titre donc la taille de l'icone + l'espace = 82px */
}

.manifest-rangee-themes--item .fl-callout-cta-link {
	margin-top: auto;
}
.manifest-rangee-themes--item .fl-callout {
	height: 100%;
	padding:24px;
}

/* Titre */
.manifest-rangee-themes--item .fl-callout-title {
	font-family: var(--typo-principale);
	font-weight: var(--bold);
	font-size: var(--size-titre-5);
	line-height: calc(var(--size-titre-5) + 4px);
}

.manifest-rangee-themes--item .fl-callout-title-link {
	display: flex;
	align-items: center;
	gap: 24px;

	text-decoration: none;
}

/* VARIANTE POUR LES RESSOURCES */
.manifest-rangee-themes--item.ressource-version .fl-callout-title-link {
	flex-direction: column;
	align-items: flex-start;
}
.manifest-rangee-themes--item.ressource-version .fl-callout-text-wrap {
	padding-left: 0;
}
.manifest-rangee-themes--item.ressource-version .fl-callout-text {
	margin-bottom: 0px !important;
}

.carte-cliquable {
	position: relative;
	cursor: pointer;
}

.carte-cliquable .fl-callout-title-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 10;
}

.carte-cliquable .fl-callout-button {
	display: none;
}

/* Icône */
.manifest-rangee-themes--item .fl-icon {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;
	border: 1px solid rgba(203, 203, 203, 0.15);
	padding: 8px;

	border-radius: 8px;
	background: #fff;
	border: 0.5px solid #2d6cde;

}

.manifest-rangee-themes--item .fl-icon i {
	font-size: inherit;
}


/* Description */
.manifest-rangee-themes--item .fl-callout-text {
	margin-bottom: 25px;
}

.manifest-rangee-themes--item .fl-callout-text p {
	font-family: var(--typo-secondaire) !important;
	font-weight: var(--regular);
	font-size: var(--size-contenu-3);
	line-height: calc(var(--size-contenu-3) + 4px);
}

/* CTA */
.manifest-rangee-themes--item .fl-callout-cta-link {
	color: inherit !important;
	text-decoration: none !important;
	font-weight: 700;
}

.manifest-rangee-themes--item .fl-callout-cta-link:hover {
	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 0.2em !important;
}
/**/
/* ==================================================
SLIDER IMAGES MANIFEST
================================================== */
.manifest-icon-lien--horizontal .fl-icon a {
	    border: 0.5px solid #fff;
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    background-color: rgba(255, 255, 255, 0.15);
	border-radius: 4px;
	width: 40px;
	height: 40px;
	display: flex;
    align-items: center;
    justify-content: center;
}
.manifest-icon-lien--horizontal .fl-icon-text a p {
	margin: 0 !important;
	font-family: var(--typo-secondaire) !important;
    font-weight: var(--regular);
    font-size: var(--size-contenu-3);
    line-height: calc(var(--size-contenu-3) + 4px);
	color: var(--blanc);
}
/* =========================================
CADRE IMAGE
Ratio 376 x 570
========================================= */

.manifest-images--slider .uabb-image-carousel-content {
	position: relative;
	width: 100%;
	aspect-ratio: 376 / 570;

	overflow: hidden;

	border: 0.5px solid rgba(255, 255, 255, 0.3);
	border-radius: 4px;
}

/* =========================================
IMAGE : REMPLIT TOUJOURS LE CADRE
========================================= */

.manifest-images--slider .uabb-image-carousel-content .uabb-gallery-img {
	position: absolute;
	inset: 0;

	display: block;

	width: 100% !important;
	height: 100% !important;
	max-width: none;

	object-fit: cover;
	object-position: center;

	border-radius: 3px;
}

.manifest-images--slider .uabb-image-carousel .slick-list {
	/*overflow: visible !important;*/
}

/*.manifest-images--slider {
	width: calc(100% + 120px);
	max-width: none;
}*/


/* =========================
DÉCALAGE VERS LE HAUT
========================= */

.manifest-images--slider .slick-list {
	height: auto !important;
}

/* On réserve de l'espace en haut */
.manifest-images--slider .slick-track {
	display: flex;
	align-items: flex-start;
	padding-top: 60px;
	padding-bottom: 40px;
}

/* Images 1, 3, 5... plus hautes */
.manifest-images--slider .slick-slide:nth-child(even) {
	transform: translateY(-60px);
}


/* ==================================================
LEGENDE SUR IMAGE
================================================== */
.manifest-images--slider .uabb-image-carousel-content .uabb-background-mask {
	opacity: 1 !important;
}
.manifest-images--slider .uabb-background-mask {
	position: absolute;
	inset: 0;

	display: flex;
	align-items: flex-end;
	align-items: flex-start;

	padding: 8px;

	background: linear-gradient(
		to top,
		rgba(0, 0, 0, 0.55) 0%,
		rgba(0, 0, 0, 0) 45%
	);
}

.manifest-images--slider .uabb-inner-mask {
	width: 100%;
	justify-content: flex-end;
}

.manifest-images--slider .uabb-caption {
	margin: 0;
	font-family: var(--typo-principale);
	color: #fff;
	font-size: 16px;
	font-weight: var(--light);
	line-height: 1.4;
	letter-spacing: 0.16em;
	text-align: left;

	text-transform: uppercase;
}


/* =========================
DOTS / TIRETS SLIDER
========================= */

.manifest-images--slider .uabb-image-carousel ul.slick-dots {
	display: flex !important;
	justify-content: center;
	align-items: center;
	gap: 8px;

	margin-top: 25px;
	padding: 0;
}

.manifest-images--slider .uabb-image-carousel ul.slick-dots li {
	width: 32px;
	height: 4px;
	margin: 0;
}

.manifest-images--slider .uabb-image-carousel ul.slick-dots li button {
	display: block;

	width: 32px !important;
	height: 4px !important;

	padding: 0 !important;

	border: 0 !important;
	border-radius: 0px !important;

	background: rgba(255, 255, 255, 0.3) !important;

	font-size: 0 !important;
	line-height: 0 !important;
}


/* On supprime le rond généré par Slick/UABB */
.manifest-images--slider .uabb-image-carousel ul.slick-dots li button::before {
	display: none !important;
	content: none !important;
}


/* Tiret actif */
.manifest-images--slider .uabb-image-carousel ul.slick-dots li.slick-active button {
	background: #fff !important;
}
/* =========================================
DOTS + INDICATION "SLIDE →"
========================================= */

.manifest-images--slider .uabb-image-carousel ul.slick-dots {
	position: relative;

	display: flex !important;
	justify-content: center;
	align-items: center;

	gap: 10px;

	width: 100%;
	margin: 30px 0 0;
	padding: 0;

	list-style: none;
}


/* Chaque tiret */
.manifest-images--slider .uabb-image-carousel ul.slick-dots li {
	width: 36px !important;
	height: 3px !important;

	margin: 0 !important;
}


/* Bouton transformé en tiret */
.manifest-images--slider .uabb-image-carousel ul.slick-dots li button {
	display: block;

	width: 36px !important;
	height: 3px !important;

	padding: 0 !important;

	border: 0 !important;
	border-radius: 0 !important;

	background: rgba(255, 255, 255, 0.25) !important;

	font-size: 0 !important;
	line-height: 0 !important;
}


/* Supprime le rond natif Slick */
.manifest-images--slider .uabb-image-carousel ul.slick-dots li button::before {
	display: none !important;
	content: none !important;
}


/* Tiret actif */
.manifest-images--slider .uabb-image-carousel ul.slick-dots li.slick-active button {
	background: #fff !important;
}


/* =========================================
TEXTE APRES LES DOTS
========================================= */

.manifest-images--slider .uabb-image-carousel ul.slick-dots::after {
	content: "SLIDE →";

	display: block;

	margin-left: 16px;

	color: #fff;

	font-size: 10px;
	font-weight: 400;
	line-height: 1;

	letter-spacing: 0.04em;
	white-space: nowrap;
}

/* =========================================
BOUTONS FLÈCHES DE NAVIGATION
========================================= */
.manifest-images--slider .uabb-image-carousel .slick-prev,
.manifest-images--slider .uabb-image-carousel .slick-next {
	width: 48px;
	height: 48px;

	background: transparent;
	border: 0.5px solid #fff;

	backdrop-filter: blur(30px);
	-webkit-backdrop-filter: blur(30px);

	background-color: rgba(255, 255, 255, 0.15);
	border-radius: 100%;

	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		transform 0.3s ease,
		box-shadow 0.3s ease;
}


/* Hover bouton */
.manifest-images--slider .uabb-image-carousel .slick-prev:hover,
.manifest-images--slider .uabb-image-carousel .slick-next:hover {
	background-color: rgba(255, 255, 255, 0.28);

	border-color: rgba(255, 255, 255, 1);
}


/* Focus clavier */
.manifest-images--slider .uabb-image-carousel .slick-prev:focus-visible,
.manifest-images--slider .uabb-image-carousel .slick-next:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}


/* ========================================
ICONES
======================================== */

.manifest-images--slider .uabb-image-carousel .slick-prev i,
.manifest-images--slider .uabb-image-carousel .slick-next i {
	font-size: 16px;

	width: 48px;
	height: 48px;

	line-height: 48px;
	text-align: center;

	box-sizing: content-box;

	background: none !important;

	transition: transform 0.3s ease;
}


/* La flèche droite avance légèrement */
.manifest-images--slider .uabb-image-carousel .slick-next:hover i {
}


/* La flèche gauche recule légèrement */
.manifest-images--slider .uabb-image-carousel .slick-prev:hover i {
}


/* ========================================
FONT ICON
======================================== */

.manifest-images--slider .icon-caret-left:before,
.manifest-images--slider .icon-caret-right:before {
	font-family: var(--typo-icon);

	speak: never;

	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;

	line-height: 1;

	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}


/* ========================================
FLECHE DESACTIVEE
======================================== */

.manifest-images--slider .uabb-image-carousel .slick-arrow.slick-disabled {
	opacity: 0.3;
	cursor: default;
}


/* Pas d'animation si désactivée */
.manifest-images--slider .uabb-image-carousel .slick-arrow.slick-disabled:hover {
	background-color: rgba(255, 255, 255, 0.15);
	box-shadow: none;
}

.manifest-images--slider .uabb-image-carousel .slick-prev, 
.manifest-images--slider .uabb-image-carousel .slick-prev:hover {
	left: -30px !important;
	top: 78%;
}

.manifest-images--slider .uabb-image-carousel .slick-next, 
.manifest-images--slider .uabb-image-carousel .slick-next:hover {
	left: -78px !important;
	top: 68% !important;
}
/* ==================================================
RESPONSIVE
================================================== */
@media (max-width: 1200px) {
	.manifest-images--slider {
		width: 100%;
		max-width: 100%;
	}

	.manifest-images--slider .slick-slide:nth-child(even) {
		transform: translateY(25px);
	}

	.manifest-images--slider .slick-track {
		padding-top: 25px;
		padding-bottom: 25px;
	}
	.manifest-images--slider .slick-list {
		padding-bottom: 25px;
	}
}
@media (max-width: 800px) {
	.manifest-images--slider .slick-slide:nth-child(even) {
		transform: translateY(0);
	}
	.manifest-images--slider .slick-track {
		padding-top: 25px;
		padding-bottom: 25px;
	}
	.manifest-images--slider .slick-list {
		padding-bottom: 0;
	}

	.manifest-images--slider .slick-dots li,
	.manifest-images--slider .slick-dots li button {
		width: 24px;
	}


	.manifest-rangee-themes--item .fl-callout-text-wrap {
		padding-left: 0px; /* Pour être aligné avec le titre donc la taille de l'icone + l'espace = 82px */
	}
	.manifest-rangee-themes--item .fl-callout-text {
		margin-bottom: 0px;
	}
	.manifest-rangee-themes--item .fl-callout {
		margin-bottom: 8px;
	}
}
/* ==============================
Ligne verticale au scroll
============================== */
.scroll-line-start {
	--line-start-y: 0.50;
	--line-offset-x: -50px;
}
.scroll-line {
	position: absolute;
	z-index: 20;
	width: 2px;
	pointer-events: none;
	transform: translateX(-50%);
}

/* ligne de fond */
.scroll-line__track {
	position: absolute;
	inset: 0;
	background: rgba(var(--couleur-4-rgb), 0.5);
}

/* partie déjà parcourue */
.scroll-line__progress {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 0;
	background: var(--couleur-4);
}

/* élément mobile */
.scroll-line__marker {
	position: absolute;

	left: 50%;
	top: 0;

	width: 5px;
	height: 50px;

	border-radius: 0;
	background: var(--couleur-4);

	transform: translate(-50%, -50%);

	will-change: top;
}


/* Mobile : à adapter selon ton design */
@media (max-width: 800px) {

	.scroll-line {
		display: none;
	}
	.manifest-images--slider {
		width: 100%;
		max-width: none;
	}
}