/*
 * Exuvie - Financement participatif : page de campagne, liste « Soutenir », bandeau de l'accueil,
 * encart et entrée « Soutenir » du menu.
 * Couleurs reprises de la palette du thème Kadence (--global-palette*), valeurs d'exuvie.fr en secours :
 * vert pour les titres et le visuel des grands soutiens, orange des boutons du thème pour le reste.
 */

.exv-fp,
.exv-fp-accueil {
	--exv-fp-vert: var(--global-palette1, #0c8568);
	--exv-fp-vert-fonce: var(--global-palette2, #003d2d);
	--exv-fp-vert-clair: #e3f2ed;
	--exv-fp-texte: var(--global-palette4, #2d3748);
	--exv-fp-gris: var(--global-palette5, #4a5568);
	--exv-fp-gris-clair: var(--global-palette6, #718096);
	--exv-fp-fond: var(--global-palette8, #f7fafc);
	--exv-fp-bord: #e2e8f0;
	--exv-fp-orange: #c05621;
	--exv-fp-orange-clair: #fdf0e6;
	/* Boutons : la couleur des boutons du thème (« Ajouter au panier »), orange d'exuvie.fr en secours. */
	--exv-fp-bouton: var(--global-palette-btn-bg, #cd4e10);
	--exv-fp-bouton-texte: var(--global-palette-btn, #fff);
	/* Orange Exuvie pour tout ce qui n'est ni titre ni image : chiffres, prix, jauge, liens, icônes, cases.
	   La teinte foncée sert aux petits textes (lisibilité sur fond blanc). */
	--exv-fp-accent: var(--exv-fp-bouton);
	--exv-fp-accent-fonce: #a8400c;
	--exv-fp-accent-clair: #fdf0e6;
	--exv-fp-ombre: 0 10px 30px rgba(0, 61, 45, .1);
	--exv-fp-largeur: var(--global-content-width, 1240px);
	/* Colonne du texte du projet ; la grille des intervenants prend la même. */
	--exv-fp-largeur-texte: 900px;
	--exv-fp-marge: var(--global-content-edge-padding, 1.5rem);
	--exv-fp-titres: var(--global-heading-font-family, inherit);
}

.exv-fp {
	color: var(--exv-fp-texte);
	box-sizing: border-box;
}

.exv-fp *,
.exv-fp *::before,
.exv-fp *::after {
	box-sizing: inherit;
}

.exv-fp svg {
	width: 16px;
	height: 16px;
	flex: none;
}

/* Chiffres, noms et boutons dans la police des titres du thème (Neutra Bold sur exuvie.fr). */
.exv-fp .exv-fp-montant strong,
.exv-fp .exv-fp-stats b,
.exv-fp .exv-fp-palier-nom,
.exv-fp .exv-fp-palier-prix,
.exv-fp .exv-fp-bouton,
.exv-fp .exv-fp-suggestions button,
.exv-fp .exv-fp-montant-libre input,
.exv-fp .exv-fp-bandeau-titre,
.exv-fp .exv-fp-encart-titre,
.exv-fp .exv-fp-carte-titre,
.exv-fp .exv-fp-etape b,
.exv-fp .exv-fp-ligne b,
.exv-fp .exv-fp-colle-chiffres b {
	font-family: var(--exv-fp-titres);
	font-weight: 400;
}

.exv-fp-conteneur {
	max-width: var(--exv-fp-largeur);
	margin: 0 auto;
	padding: 0 var(--exv-fp-marge);
}

.exv-fp .exv-fp-surtitre {
	display: inline-block;
	font-size: 11px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--exv-fp-accent-fonce);
	background: var(--exv-fp-accent-clair);
	padding: 4px 10px;
	border-radius: 999px;
}

.exv-fp .exv-fp-sous-titre {
	color: var(--exv-fp-gris);
	margin: 0;
}

/* ---------- Jauge ---------- */
.exv-fp .exv-fp-message {
	border-radius: 6px;
	padding: 10px 12px;
	font-size: 14px;
	margin: 0 0 14px;
}

.exv-fp-message--bientot {
	background: var(--exv-fp-orange-clair);
	color: var(--exv-fp-orange);
}

.exv-fp-message--atteint {
	background: var(--exv-fp-accent-clair);
	color: var(--exv-fp-accent-fonce);
}

.exv-fp-message--fin {
	background: #edf2f7;
	color: var(--exv-fp-texte);
}

.exv-fp-montant {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 8px;
}

.exv-fp-montant strong {
	font-size: 36px;
	line-height: 1;
	color: var(--exv-fp-accent);
}

.exv-fp-montant span {
	color: var(--exv-fp-gris);
}

.exv-fp-barre {
	position: relative;
	height: 12px;
	background: var(--exv-fp-accent-clair);
	border-radius: 999px;
	margin: 12px 0 14px;
	overflow: hidden;
}

.exv-fp-barre i {
	position: absolute;
	inset: 0 auto 0 0;
	background: linear-gradient(90deg, var(--exv-fp-accent) 0%, #e8742f 100%);
	border-radius: 999px;
	transition: width .6s ease;
}

.exv-fp-barre.is-atteint i {
	background: repeating-linear-gradient(45deg, var(--exv-fp-accent) 0 10px, #e8742f 10px 20px);
}

.exv-fp-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: 1px solid var(--exv-fp-bord);
}

.exv-fp-stats b {
	display: block;
	font-size: 22px;
	line-height: 1.1;
	color: var(--exv-fp-accent);
}

.exv-fp-stats small {
	color: var(--exv-fp-gris-clair);
	font-size: 13px;
}

.exv-fp .exv-fp-rebours {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	background: var(--exv-fp-fond);
	border-radius: 8px;
	padding: 10px 12px;
	margin: 16px 0 0;
	font-size: 14px;
	line-height: 1.45;
	color: var(--exv-fp-gris);
}

.exv-fp-rebours svg {
	margin-top: 2px;
	color: var(--exv-fp-accent);
}

.exv-fp-rebours b {
	color: var(--exv-fp-accent-fonce);
}

/* ---------- Boutons : orange, comme « Ajouter au panier » ---------- */
.exv-fp .exv-fp-bouton {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	border: 0;
	border-radius: 8px;
	background: var(--exv-fp-bouton);
	color: var(--exv-fp-bouton-texte);
	text-decoration: none;
	font-size: 16px;
	line-height: 1.3;
	padding: 12px 18px;
	cursor: pointer;
	box-shadow: none;
}

.exv-fp .exv-fp-bouton:hover,
.exv-fp .exv-fp-bouton:focus-visible {
	background: var(--exv-fp-bouton);
	color: var(--exv-fp-bouton-texte);
	filter: brightness(.9);
	box-shadow: 0 6px 16px rgba(205, 78, 16, .25);
}

.exv-fp .exv-fp-bouton--grand {
	width: 100%;
	font-size: 18px;
	padding: 15px 18px;
}

.exv-fp .exv-fp-bouton.is-off,
.exv-fp .exv-fp-bouton.is-off:hover {
	background: #cbd5e0;
	color: #fff;
	cursor: not-allowed;
}

.exv-fp .exv-fp-lien {
	display: block;
	text-align: center;
	margin-top: 10px;
	font-size: 15px;
	color: var(--exv-fp-accent-fonce);
}

.exv-fp .exv-fp-rassurance {
	list-style: none;
	margin: 16px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid var(--exv-fp-bord);
	display: grid;
	gap: 6px;
	font-size: 14px;
	color: var(--exv-fp-gris);
}

.exv-fp .exv-fp-rassurance li {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	margin: 0;
}

.exv-fp-rassurance svg {
	margin-top: 3px;
	color: var(--exv-fp-accent);
}

/* ---------- Page de la campagne ---------- */
.exv-fp-page {
	padding-top: 20px;
}

.exv-fp-notices {
	margin-bottom: 16px;
}

.exv-fp-tete {
	padding: 6px 0 18px;
}

.exv-fp .exv-fp-titre-page {
	font-size: 30px;
	line-height: 1.1;
	margin: 12px 0 8px;
	color: var(--exv-fp-vert-fonce);
}

/* « La Voie de la Nature — L'appel de l'hygiénisme » : un seul titre, sur la même ligne, même couleur. */
.exv-fp-titre-second {
	color: inherit;
}

.exv-fp-tete .exv-fp-sous-titre {
	font-size: 16px;
	line-height: 1.5;
	margin-bottom: 12px;
}

.exv-fp .exv-fp-puces {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.exv-fp .exv-fp-puces li {
	background: #fff;
	border: 1px solid var(--exv-fp-bord);
	border-radius: 999px;
	padding: 5px 12px;
	font-size: 13px;
	color: var(--exv-fp-gris);
	margin: 0;
}

.exv-fp-haut {
	display: grid;
	gap: 22px;
}

.exv-fp-affiche img,
.exv-fp-sans-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 12px;
}

.exv-fp-sans-image {
	display: grid;
	place-items: center;
	background: linear-gradient(140deg, #8fc9b5, #3b8a72);
	color: rgba(255, 255, 255, .9);
}

.exv-fp-sans-image svg {
	width: 40px;
	height: 40px;
}

.exv-fp-video {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 12px;
	overflow: hidden;
	background: #000;
}

.exv-fp-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.exv-fp .exv-fp-accroche {
	margin: 18px 0 0;
	padding: 0 0 0 16px;
	border: 0;
	border-left: 3px solid var(--exv-fp-accent);
	background: none;
	font-size: 17px;
	line-height: 1.6;
	font-style: normal;
	color: var(--exv-fp-texte);
}

.exv-fp .exv-fp-accroche p {
	margin: 0;
}

.exv-fp .exv-fp-accroche cite {
	display: block;
	margin-top: 8px;
	font-size: 14px;
	font-style: normal;
	color: var(--exv-fp-gris);
}

.exv-fp-collecte {
	background: #fff;
	border: 1px solid var(--exv-fp-bord);
	border-radius: 14px;
	padding: 22px;
	box-shadow: var(--exv-fp-ombre);
}

/* Sections */
.exv-fp-section {
	padding: 40px 0;
}

.exv-fp .exv-fp-section-titre {
	font-size: 26px;
	line-height: 1.2;
	color: var(--exv-fp-vert-fonce);
	margin: 0 0 18px;
}

.exv-fp-histoire,
.exv-fp-section--paliers {
	background: #fff;
}

.exv-fp-histoire {
	margin-top: 40px;
}

/* Suite du texte après la grille des intervenants placée par le repère : pas de marge en plus. */
.exv-fp-histoire.exv-fp-histoire--suite {
	margin-top: 0;
}

.exv-fp-texte {
	max-width: var(--exv-fp-largeur-texte);
	font-size: 17px;
	line-height: 1.7;
}

.exv-fp-texte > :first-child {
	margin-top: 0;
}

.exv-fp-texte h2 {
	color: var(--exv-fp-vert-fonce);
	font-size: 26px;
}

.exv-fp-texte h3 {
	color: var(--exv-fp-vert-fonce);
}

.exv-fp-texte img {
	border-radius: 8px;
	height: auto;
}

.exv-fp-texte .gallery {
	display: grid;
	grid-template-columns: repeat(var(--exv-fp-colonnes, 3), 1fr);
	gap: 10px;
	margin: 18px 0 22px;
}

.exv-fp-texte .gallery-columns-2 {
	--exv-fp-colonnes: 2;
}

.exv-fp-texte .gallery-item {
	margin: 0;
	width: auto;
	max-width: none;
	float: none;
}

.exv-fp-texte .gallery-item img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border: 0;
}

.exv-fp-texte .gallery br {
	display: none;
}

.exv-fp-blocs {
	background: #fff;
}

/* Budget et étapes */
.exv-fp-budget {
	display: grid;
	gap: 32px;
}

/* Budget sans étapes (ou étapes sans budget) : une seule colonne, centrée. */
.exv-fp-budget.exv-fp-budget--seul {
	max-width: calc(860px + 2 * var(--exv-fp-marge));
	grid-template-columns: minmax(0, 1fr);
}

.exv-fp-budget--seul .exv-fp-section-titre {
	text-align: center;
}

.exv-fp .exv-fp-tableau {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border: 1px solid var(--exv-fp-bord);
	border-radius: 12px;
	overflow: hidden;
	font-size: 15px;
	margin: 0;
}

.exv-fp .exv-fp-tableau td {
	padding: 10px 14px;
	border: 0;
	border-bottom: 1px solid var(--exv-fp-bord);
	vertical-align: top;
}

.exv-fp .exv-fp-tableau td:last-child {
	text-align: right;
	white-space: nowrap;
	color: var(--exv-fp-accent-fonce);
	font-family: var(--exv-fp-titres);
}

.exv-fp .exv-fp-tableau tfoot td {
	background: var(--exv-fp-accent-clair);
	color: var(--exv-fp-accent-fonce);
	font-family: var(--exv-fp-titres);
	border-bottom: 0;
}

/* Poste financé par ce qui dépasse l'objectif (« au-delà de 15 000 € »), sous le total. */
.exv-fp .exv-fp-tableau tfoot .exv-fp-au-dela td {
	background: #fff;
	color: var(--exv-fp-texte);
	font-family: inherit;
	border-top: 1px solid var(--exv-fp-bord);
}

.exv-fp .exv-fp-tableau tfoot .exv-fp-au-dela td:last-child {
	color: var(--exv-fp-accent-fonce);
	font-family: var(--exv-fp-titres);
}

.exv-fp .exv-fp-etapes {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.exv-fp .exv-fp-etape {
	display: grid;
	grid-template-columns: 26px auto 1fr;
	gap: 10px;
	align-items: start;
	background: #fff;
	border: 1px solid var(--exv-fp-bord);
	border-radius: 10px;
	padding: 12px 14px;
	margin: 0;
	line-height: 1.45;
}

.exv-fp-etape-coche {
	display: grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	border: 2px solid var(--exv-fp-bord);
	color: transparent;
}

.exv-fp-etape-coche svg {
	width: 14px;
	height: 14px;
}

.exv-fp-etape b {
	color: var(--exv-fp-accent-fonce);
	white-space: nowrap;
}

.exv-fp-etape.is-atteinte {
	border-color: #9fd3c3;
}

.exv-fp-etape.is-atteinte .exv-fp-etape-coche {
	background: var(--exv-fp-accent);
	border-color: var(--exv-fp-accent);
	color: #fff;
}

/* Paliers */
.exv-fp-paliers {
	display: grid;
	gap: 18px;
}

.exv-fp-palier {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--exv-fp-bord);
	border-radius: 14px;
	overflow: hidden;
	transition: box-shadow .15s, border-color .15s;
}

.exv-fp-palier:hover {
	border-color: var(--exv-fp-accent);
	box-shadow: 0 6px 18px rgba(205, 78, 16, .1);
}

.exv-fp-palier-visuel {
	aspect-ratio: 16 / 7;
	background: linear-gradient(140deg, #eef6f3, #d9ebe4);
	overflow: hidden;
}

.exv-fp-palier-visuel img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.exv-fp-palier-visuel .exv-fp-sans-image {
	aspect-ratio: auto;
	height: 100%;
	border-radius: 0;
}

.exv-fp-couvertures {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	height: 100%;
	padding: 10px;
}

.exv-fp-couvertures img {
	width: auto;
	height: 100%;
	object-fit: contain;
}

.exv-fp-palier-corps {
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
	padding: 16px 18px 18px;
}

.exv-fp-palier-haut {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
}

.exv-fp-palier-nom {
	font-size: 19px;
	line-height: 1.25;
	color: var(--exv-fp-vert-fonce);
}

.exv-fp-palier-prix {
	font-size: 22px;
	color: var(--exv-fp-accent);
	white-space: nowrap;
}

.exv-fp-palier-prix svg {
	width: 20px;
	height: 20px;
	vertical-align: -3px;
}

.exv-fp-palier-texte {
	color: var(--exv-fp-gris);
	font-size: 15px;
	line-height: 1.5;
}

.exv-fp .exv-fp-palier-texte p {
	margin: 0 0 6px;
}

.exv-fp .exv-fp-palier-comprend {
	font-style: italic;
	color: var(--exv-fp-gris-clair);
}

.exv-fp-palier-infos {
	display: flex;
	gap: 6px;
	align-items: center;
	font-size: 13px;
	color: var(--exv-fp-gris-clair);
}

.exv-fp-palier-formulaire {
	display: grid;
	gap: 10px;
	margin: auto 0 0;
}

.exv-fp-palier > .exv-fp-palier-corps > .exv-fp-bouton {
	margin-top: auto;
}

.exv-fp-palier .exv-fp-bouton {
	width: 100%;
}

.exv-fp .exv-fp-choix {
	display: grid;
	gap: 4px;
	font-size: 13px;
	color: var(--exv-fp-gris);
	margin: 0;
}

.exv-fp .exv-fp-choix select {
	width: 100%;
	padding: 9px 10px;
	border: 1px solid #cbd5e0;
	border-radius: 6px;
	background: #fff;
	font-size: 14px;
	color: var(--exv-fp-texte);
}

/* Case « Ne pas citer mon nom au générique » */
.exv-fp .exv-fp-anonyme {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 13px;
	color: var(--exv-fp-gris);
	cursor: pointer;
}

.exv-fp .exv-fp-anonyme[hidden] {
	display: none;
}

.exv-fp .exv-fp-anonyme input {
	width: 16px;
	height: 16px;
	margin: 0;
	flex: none;
	accent-color: var(--exv-fp-accent);
}

.exv-fp-fenetre .exv-fp-anonyme {
	margin-top: 12px;
}

.exv-fp-badge {
	align-self: flex-start;
	font-size: 12px;
	font-weight: 600;
	padding: 3px 9px;
	border-radius: 999px;
}

.exv-fp-badge--limite {
	background: var(--exv-fp-orange-clair);
	color: var(--exv-fp-orange);
}

.exv-fp-badge--epuise {
	background: #edf2f7;
	color: var(--exv-fp-gris);
}

.exv-fp-badge--favori {
	background: var(--exv-fp-accent-clair);
	color: var(--exv-fp-accent-fonce);
}

.exv-fp-palier.is-epuise .exv-fp-palier-visuel {
	filter: grayscale(1) opacity(.6);
}

.exv-fp-palier.is-epuise .exv-fp-palier-nom,
.exv-fp-palier.is-epuise .exv-fp-palier-prix {
	color: var(--exv-fp-gris-clair);
}

/* Montant libre */
.exv-fp-palier--libre {
	border: 2px dashed #f0b48f;
	background: #fffaf6;
}

.exv-fp-suggestions {
	display: flex;
	gap: 6px;
	margin: 0 0 10px;
}

.exv-fp .exv-fp-suggestions button {
	flex: 1;
	border: 1px solid var(--exv-fp-bord);
	background: #fff;
	border-radius: 6px;
	padding: 8px 0;
	color: var(--exv-fp-accent-fonce);
	font-size: 15px;
	cursor: pointer;
	box-shadow: none;
}

.exv-fp .exv-fp-suggestions button:hover,
.exv-fp .exv-fp-suggestions button.is-on {
	border-color: var(--exv-fp-accent);
	background: var(--exv-fp-accent-clair);
	color: var(--exv-fp-accent-fonce);
}

.exv-fp-libre-ligne {
	display: flex;
	gap: 8px;
}

/* Le champ prend la place laissée par le bouton, sans sa largeur par défaut (trop large sur téléphone). */
.exv-fp .exv-fp-montant-libre {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	align-items: center;
	border: 1px solid #cbd5e0;
	border-radius: 6px;
	background: #fff;
	padding: 0 12px;
	margin: 0;
	transition: border-color .15s, box-shadow .15s;
}

.exv-fp .exv-fp-montant-libre:focus-within {
	border-color: var(--exv-fp-accent);
	box-shadow: 0 0 0 3px var(--exv-fp-accent-clair);
}

/*
 * Plus précis que « input[type="number"]:focus » du thème, chargé après nous : sur exuvie.fr il met
 * le texte en --global-palette3, qui est le blanc, et le chiffre disparaissait au clic.
 */
.exv-fp .exv-fp-montant-libre input[type="number"],
.exv-fp .exv-fp-montant-libre input[type="number"]:focus {
	border: 0;
	border-radius: 0;
	outline: 0;
	box-shadow: none;
	flex: 1 1 0;
	width: 0;
	min-width: 0;
	font-size: 18px;
	color: var(--exv-fp-texte);
	padding: 10px 0;
	background: transparent;
}

.exv-fp-montant-libre span[aria-hidden] {
	color: var(--exv-fp-gris-clair);
}

.exv-fp .exv-fp-libre .exv-fp-bouton {
	width: auto;
}

.exv-fp-libre-infos {
	color: var(--exv-fp-gris-clair);
	font-size: 13px;
}

/* Fenêtre de choix après le montant libre (feuille en bas de l'écran sur téléphone) */
.exv-fp-fenetre {
	width: min(520px, calc(100% - 32px));
	max-width: none;
	max-height: calc(100% - 32px);
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: 14px;
	background: #fff;
	color: var(--exv-fp-texte);
	box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
	overscroll-behavior: contain;
}

.exv-fp-fenetre::backdrop {
	background: rgba(0, 30, 22, .55);
}

.exv-fp-fenetre-formulaire {
	display: grid;
	gap: 14px;
	padding: 20px;
}

.exv-fp-fenetre-tete {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}

.exv-fp .exv-fp-fenetre-tete h2 {
	margin: 0;
	font-size: 22px;
	line-height: 1.25;
	color: var(--exv-fp-vert-fonce);
}

.exv-fp-fenetre-tete h2 span {
	color: var(--exv-fp-accent);
	white-space: nowrap;
}

.exv-fp .exv-fp-fenetre-fermer,
.exv-fp .exv-fp-fenetre-fermer:hover {
	display: grid;
	place-items: center;
	flex: none;
	width: 36px;
	height: 36px;
	margin: -6px -8px 0 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	box-shadow: none;
	color: var(--exv-fp-gris);
	cursor: pointer;
}

.exv-fp .exv-fp-fenetre-fermer:hover {
	background: var(--exv-fp-fond);
}

.exv-fp .exv-fp-fenetre-fermer svg {
	width: 22px;
	height: 22px;
}

.exv-fp .exv-fp-fenetre-intro {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--exv-fp-gris);
}

.exv-fp-options {
	display: grid;
	gap: 8px;
}

.exv-fp .exv-fp-option {
	display: grid;
	gap: 8px;
	border: 1px solid var(--exv-fp-bord);
	border-radius: 10px;
	padding: 12px 14px;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}

.exv-fp .exv-fp-option.is-on {
	border-color: var(--exv-fp-accent);
	background: #f4faf8;
	box-shadow: 0 0 0 1px var(--exv-fp-accent);
}

.exv-fp .exv-fp-option[hidden] {
	display: none;
}

.exv-fp .exv-fp-option-tete {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	cursor: pointer;
}

.exv-fp .exv-fp-option-tete input {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--exv-fp-accent);
}

.exv-fp-option-nom {
	flex: 1;
	font-family: var(--exv-fp-titres);
	font-size: 16px;
	line-height: 1.3;
	color: var(--exv-fp-vert-fonce);
}

.exv-fp-option-prix {
	font-family: var(--exv-fp-titres);
	font-size: 17px;
	color: var(--exv-fp-accent);
	white-space: nowrap;
}

.exv-fp-option-comprend {
	padding-left: 28px;
	font-size: 13px;
	font-style: italic;
	color: var(--exv-fp-gris-clair);
}

.exv-fp .exv-fp-option-choix {
	display: grid;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 0 0 0 28px;
	border: 0;
}

.exv-fp .exv-fp-option-choix[disabled] {
	display: none;
}

.exv-fp .exv-fp-fenetre-recap {
	margin: 0;
	padding: 10px 12px;
	border-radius: 8px;
	background: var(--exv-fp-fond);
	font-size: 14px;
	line-height: 1.45;
	color: var(--exv-fp-gris);
}

@media (max-width: 699px) {
	.exv-fp-fenetre {
		width: 100%;
		max-height: 92%;
		margin: auto 0 0;
		border-radius: 16px 16px 0 0;
	}

	.exv-fp-fenetre-formulaire {
		padding: 18px 16px 22px;
	}
}

/* Grands soutiens : une carte de plus, à la suite des paliers */
.exv-fp-palier--grands {
	border-color: #e7d49b;
}

.exv-fp-palier--grands:hover {
	border-color: #c9a646;
}

.exv-fp-palier-visuel.exv-fp-grands-visuel {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	/* Cinq amis en silhouette au coucher du soleil : photo de Vitaly Gariev sur Unsplash (licence Unsplash,
	   unsplash.com/photos/ngN4CTsIBjE), sous un voile vert pour l'étoile et le texte dorés. */
	background: linear-gradient(rgba(0, 40, 30, .3), rgba(0, 40, 30, .5)), url("grands-soutiens-cinq-amis.webp") center / cover no-repeat, linear-gradient(135deg, var(--exv-fp-vert-fonce) 0%, #0a6f57 100%);
}

.exv-fp .exv-fp-grands-icone {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: #f6c453;
}

.exv-fp .exv-fp-grands-icone svg {
	width: 28px;
	height: 28px;
}

.exv-fp-grands-surtitre {
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #f6c453;
}

.exv-fp-grands-record {
	display: grid;
	justify-items: center;
	gap: 2px;
	margin-top: 4px;
	padding: 8px 16px;
	border-radius: 10px;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	text-align: center;
}

.exv-fp-grands-record[hidden] {
	display: none;
}

.exv-fp-grands-record small {
	font-size: 12px;
	opacity: .85;
}

.exv-fp .exv-fp-grands-record b {
	font-family: var(--exv-fp-titres);
	font-weight: 400;
	font-size: 26px;
	line-height: 1.1;
	color: #f6c453;
}

.exv-fp-badge--grands {
	background: #fbf3dc;
	color: #8a6514;
}

/* Intervenants : 2 par ligne sur téléphone, 3 sur tablette, 4 sur ordinateur, dans la largeur du texte */
.exv-fp-section--intervenants > .exv-fp-conteneur {
	max-width: var(--exv-fp-largeur-texte);
}

.exv-fp .exv-fp-intervenants {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 14px;
}

.exv-fp .exv-fp-intervenant {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
}

.exv-fp-intervenant-photo {
	display: block;
	aspect-ratio: 4 / 5;
	border-radius: 12px;
	overflow: hidden;
	background: var(--exv-fp-accent-clair);
	margin-bottom: 8px;
}

.exv-fp .exv-fp-intervenant-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
}

.exv-fp-intervenant-initiales {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	font-family: var(--exv-fp-titres);
	font-size: 44px;
	color: var(--exv-fp-accent);
}

.exv-fp-intervenant-nom {
	font-family: var(--exv-fp-titres);
	font-size: 17px;
	line-height: 1.25;
	color: var(--exv-fp-vert-fonce);
}

.exv-fp-intervenant-role {
	font-size: 14px;
	line-height: 1.35;
	color: var(--exv-fp-gris);
}

@media (min-width: 700px) {
	.exv-fp .exv-fp-intervenants {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 28px 20px;
	}
}

@media (min-width: 1025px) {
	.exv-fp .exv-fp-intervenants {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Questions */
.exv-fp-questions {
	max-width: 900px;
}

.exv-fp .exv-fp-question {
	background: #fff;
	border: 1px solid var(--exv-fp-bord);
	border-radius: 10px;
	margin: 0 0 10px;
}

.exv-fp .exv-fp-question summary {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 18px;
	cursor: pointer;
	list-style: none;
	font-family: var(--exv-fp-titres);
	color: var(--exv-fp-vert-fonce);
}

.exv-fp-question summary::-webkit-details-marker {
	display: none;
}

.exv-fp-question summary::after {
	content: "+";
	color: var(--exv-fp-accent);
	font-size: 20px;
	line-height: 1;
}

.exv-fp-question[open] summary::after {
	content: "–";
}

.exv-fp-question > div {
	padding: 0 18px 14px;
	color: var(--exv-fp-gris);
	line-height: 1.6;
}

.exv-fp-question > div p {
	margin: 0;
}

/* Barre collée en bas de l'écran (téléphone et tablette) */
.exv-fp-colle {
	display: none;
}

/* ---------- Liste « Soutenir » ---------- */
.exv-fp-liste {
	max-width: var(--exv-fp-largeur);
	margin: 0 auto;
	padding: 10px var(--exv-fp-marge) 48px;
}

.exv-fp .exv-fp-liste-tete h1 {
	font-size: 32px;
	line-height: 1.15;
	color: var(--exv-fp-vert-fonce);
	margin: 0 0 6px;
}

.exv-fp .exv-fp-liste-tete p {
	color: var(--exv-fp-gris);
	margin: 0 0 18px;
}

.exv-fp-filtres {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 8px;
}

.exv-fp .exv-fp-filtres button {
	border: 1px solid var(--exv-fp-bord);
	background: #fff;
	color: var(--exv-fp-texte);
	border-radius: 999px;
	padding: 5px 13px;
	font-size: 14px;
	cursor: pointer;
	box-shadow: none;
}

.exv-fp .exv-fp-filtres button.is-on {
	background: var(--exv-fp-accent);
	border-color: var(--exv-fp-accent);
	color: #fff;
}

.exv-fp .exv-fp-liste-groupe h2 {
	font-size: 13px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--exv-fp-gris-clair);
	margin: 26px 0 12px;
}

.exv-fp-cartes {
	display: grid;
	gap: 18px;
}

.exv-fp-carte {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--exv-fp-bord);
	border-radius: 14px;
	overflow: hidden;
}

.exv-fp-carte-image img,
.exv-fp-carte-image .exv-fp-sans-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 0;
}

.exv-fp-carte-corps {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
	padding: 14px 16px 16px;
}

.exv-fp-etiquette {
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--exv-fp-accent-fonce);
}

.exv-fp .exv-fp-carte-titre {
	font-size: 19px;
	line-height: 1.25;
	margin: 0;
}

.exv-fp .exv-fp-carte-titre a {
	color: var(--exv-fp-vert-fonce);
	text-decoration: none;
}

.exv-fp-carte .exv-fp-barre {
	height: 8px;
	margin: 2px 0 0;
}

.exv-fp .exv-fp-ligne {
	font-size: 13.5px;
	color: var(--exv-fp-gris);
	margin: 0;
}

.exv-fp .exv-fp-ligne b {
	color: var(--exv-fp-accent-fonce);
}

.exv-fp-carte .exv-fp-bouton {
	margin-top: auto;
	width: 100%;
}

.exv-fp .exv-fp-vide {
	border: 1px dashed var(--exv-fp-bord);
	border-radius: 12px;
	background: #fff;
	padding: 22px 16px;
	text-align: center;
	color: var(--exv-fp-gris-clair);
	margin: 0;
}

.exv-fp .is-masquee {
	display: none;
}

/* ---------- Bandeau de l'accueil ---------- */
.exv-fp-accueil {
	max-width: var(--exv-fp-largeur);
	margin: 28px auto;
	padding: 0 var(--exv-fp-marge);
}

.exv-fp-bandeau {
	display: grid;
	gap: 14px;
	background: #fff;
	border-radius: 14px;
	box-shadow: var(--exv-fp-ombre);
	overflow: hidden;
	padding-bottom: 16px;
}

.exv-fp-bandeau-image img,
.exv-fp-bandeau-image .exv-fp-sans-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 8;
	object-fit: cover;
	border-radius: 0;
}

.exv-fp-bandeau-corps,
.exv-fp-bandeau > .exv-fp-bouton {
	margin: 0 16px;
}

.exv-fp .exv-fp-bandeau-titre {
	display: block;
	font-size: 19px;
	line-height: 1.25;
	color: var(--exv-fp-vert-fonce);
	text-decoration: none;
	margin: 6px 0 4px;
}

.exv-fp-bandeau .exv-fp-sous-titre {
	font-size: 14px;
	line-height: 1.45;
}

.exv-fp-bandeau .exv-fp-barre {
	height: 8px;
	margin: 10px 0 6px;
}

/* ---------- Encart (produits liés, remerciement) ---------- */
.exv-fp-encart {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 12px;
	align-items: center;
	border: 1px solid var(--exv-fp-accent-clair);
	background: #f7fbf9;
	border-radius: 10px;
	padding: 10px;
	margin: 16px 0;
}

.exv-fp-encart-image img,
.exv-fp-encart-image .exv-fp-sans-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 6px;
}

.exv-fp .exv-fp-encart-titre {
	display: block;
	color: var(--exv-fp-vert-fonce);
	font-size: 15px;
	line-height: 1.3;
	margin: 6px 0 2px;
}

.exv-fp-encart .exv-fp-barre {
	height: 6px;
	margin: 6px 0;
}

.exv-fp-encart .exv-fp-ligne {
	font-size: 12.5px;
}

.exv-fp .exv-fp-encart-lien {
	display: inline-block;
	margin-top: 4px;
	color: var(--exv-fp-accent-fonce);
	font-weight: 600;
	text-decoration: none;
}

/* ---------- Entrée « Soutenir » du menu (classe menu-soutenir), en pastille comme « Formations » ---------- */
.menu-soutenir > a,
#mobile-site-navigation li.menu-soutenir > a {
	background: linear-gradient(135deg, #0c8568 0%, #0a6f57 100%) !important;
	color: #fff !important;
	padding: 8px 18px !important;
	border-radius: 25px;
	font-weight: 600 !important;
	box-shadow: 0 2px 8px rgba(12, 133, 104, .3);
	transition: all .3s ease;
}

.menu-soutenir > a:hover,
.menu-soutenir.current-menu-item > a,
#site-navigation .primary-menu-container > ul > li.menu-soutenir.current-menu-item > a,
#mobile-site-navigation li.menu-soutenir.current-menu-item > a {
	background: linear-gradient(135deg, #0a6f57 0%, #003d2d 100%) !important;
	color: #fff !important;
}

.menu-soutenir > a .nav-drop-title-wrap,
.menu-soutenir > a .dropdown-nav-toggle {
	color: #fff !important;
}

#mobile-site-navigation li.menu-soutenir {
	display: flex;
	align-items: center;
}

@media (max-width: 1024px) {
	.menu-soutenir > a {
		padding: 7px 12px !important;
		border-radius: 100px;
		line-height: 1.2 !important;
	}
}

/* Tablette : avec « Soutenir », six entrées ; on resserre pour qu'elles tiennent sur une ligne. */
@media (min-width: 768px) and (max-width: 1100px) {
	#site-navigation .primary-menu-container > ul {
		flex-wrap: nowrap;
	}

	#site-navigation .primary-menu-container > ul > li > a {
		padding-left: 10px !important;
		padding-right: 10px !important;
	}
}

.exv-fp-erreur {
	border: 1px dashed #c05621;
	color: #c05621;
	padding: 8px 12px;
}

/* ---------- Grands écrans ---------- */
@media (min-width: 700px) {
	.exv-fp-paliers,
	.exv-fp-cartes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.exv-fp-bandeau {
		grid-template-columns: 240px minmax(0, 1fr) auto;
		align-items: center;
		gap: 22px;
		padding: 12px;
	}

	.exv-fp-bandeau-image img,
	.exv-fp-bandeau-image .exv-fp-sans-image {
		aspect-ratio: 16 / 10;
		border-radius: 8px;
	}

	.exv-fp-bandeau-corps,
	.exv-fp-bandeau > .exv-fp-bouton {
		margin: 0;
	}

	.exv-fp-bandeau > .exv-fp-bouton {
		margin-right: 10px;
	}

	.exv-fp-encart {
		grid-template-columns: 150px 1fr;
	}
}

@media (min-width: 900px) {
	.exv-fp-budget:not(.exv-fp-budget--seul) {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
		gap: 40px;
		align-items: start;
	}
}

@media (min-width: 1025px) {
	.exv-fp-page {
		padding-top: 30px;
	}

	.exv-fp .exv-fp-titre-page {
		font-size: 42px;
	}

	.exv-fp-haut {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
		gap: 36px;
		align-items: start;
	}

	.exv-fp-collecte {
		position: sticky;
		top: 24px;
	}

	.exv-fp-section {
		padding: 56px 0;
	}

	.exv-fp-histoire {
		margin-top: 56px;
	}

	.exv-fp .exv-fp-section-titre {
		font-size: 30px;
	}

	.exv-fp-paliers,
	.exv-fp-cartes {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.exv-fp .exv-fp-liste-tete h1 {
		font-size: 40px;
	}
}

@media (max-width: 1024px) {
	.exv-fp-colle {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		align-items: center;
		gap: 12px;
		padding: 10px 84px 10px 14px;
		background: #fff;
		border-top: 1px solid var(--exv-fp-bord);
		box-shadow: 0 -6px 18px rgba(0, 0, 0, .08);
		transition: transform .25s ease;
	}

	.exv-fp-colle.is-cachee {
		transform: translateY(110%);
	}

	.exv-fp-colle-chiffres {
		flex: 1;
		min-width: 0;
		font-size: 13px;
		color: var(--exv-fp-gris);
	}

	.exv-fp-colle-chiffres b {
		color: var(--exv-fp-accent);
		font-size: 17px;
	}

	.exv-fp-colle .exv-fp-barre {
		height: 5px;
		margin: 5px 0 0;
	}

	.exv-fp .exv-fp-colle .exv-fp-bouton {
		width: auto;
		padding: 11px 16px;
		white-space: nowrap;
	}

	.exv-fp-page {
		padding-bottom: 72px;
	}
}
