/**
 * Pages-formulaire (v0.9) — rendu sur le site. THÈME DE BASE.
 * Une section : titre pleine largeur, puis 60 % (résumé, visuel, volets) / 40 % (encadré, boutons).
 */

/* Alternance des fonds : une section sur deux, en comptant toutes les rangées « m-section »
   (les rangées libres ajoutées dans Beaver Builder entre deux sections comptent aussi). */
.fl-builder-content .fl-row.m-section--auto:nth-child(even of .fl-row.m-section) > .fl-row-content-wrap {
	background-color: var(--c-fond-alt);
}
.fl-builder-content .fl-row.m-section--auto .fl-module { margin: 0 !important; }
.m-formulaire-bloc { position: relative; }
.m-formulaire-bloc::after { content: ""; display: table; clear: both; }

/* En-tête */
.m-entete-form .m-surtitre { margin: 0 0 0.25rem; }
.m-entete-form .m-entete__titre { margin: 0 0 0.75rem; font-size: clamp(2rem, 1.5rem + 2.5vw, 3rem); }
.m-entete-form .m-chapo p { margin: 0; }

/* Section */
.m-sf__titre {
	margin: 0 0 var(--e-5);
	font-size: clamp(1.625rem, 1.3rem + 1.4vw, 2.25rem);
	line-height: 1.15;
}
.m-sf__grille { display: grid; gap: var(--e-5); }
@media (min-width: 769px) {
	.m-sf__grille {
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
		gap: clamp(2rem, 4vw, 3.5rem);
		align-items: start;
	}
	.m-sf__grille--seule { grid-template-columns: minmax(0, 1fr); max-width: 52rem; }
	/* La colonne de droite reste visible pendant la lecture d'un long volet. */
	.m-sf__aside { position: sticky; top: calc(var(--m-sticky-top, 0px) + 72px); }
}
.m-sf__principal > :last-child { margin-bottom: 0; }
.m-sf__resume {
	margin: 0 0 var(--e-5);
	max-width: var(--largeur-texte);
	color: var(--c-texte-doux);
	font-size: 1.125rem;
	line-height: 1.6;
}
.m-sf__visuel { margin: 0 0 var(--e-5); }
.m-sf__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--rayon);
	background: var(--c-fond-alt);
}

/* Volets (accordéons natifs <details> : clavier et lecteurs d'écran sans script) */
.m-sf__accordeons { display: grid; gap: 0.75rem; }
.m-acc {
	border: 1px solid var(--c-bordure);
	border-radius: var(--rayon);
	background: var(--c-fond);
	transition: border-color var(--transition), box-shadow var(--transition);
}
.m-acc:hover, .m-acc[open] { border-color: var(--c-primaire); }
.m-acc[open] { box-shadow: var(--ombre); }
.m-acc__titre {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 1rem 1.25rem;
	cursor: pointer;
	list-style: none;
	font-family: var(--f-titres);
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--c-titres, var(--c-texte));
}
.m-acc__titre::-webkit-details-marker { display: none; }
.m-acc__titre:focus-visible { outline: var(--focus); outline-offset: -3px; border-radius: var(--rayon); }
.m-acc__icone {
	flex: none;
	width: 0.65rem;
	height: 0.65rem;
	margin-right: 0.2rem;
	border-right: 2.5px solid var(--c-primaire);
	border-bottom: 2.5px solid var(--c-primaire);
	transform: translateY(-25%) rotate(45deg);
	transition: transform 250ms ease;
}
.m-acc[open] .m-acc__icone { transform: translateY(15%) rotate(-135deg); }
.m-acc__contenu { padding: 0 1.25rem 1.25rem; font-size: var(--t-m); }
.m-acc__contenu > :first-child { margin-top: 0; }
.m-acc__contenu > :last-child { margin-bottom: 0; }
.m-acc__contenu :is(p, ul, ol) { margin: 0 0 0.75em; }
.m-acc__contenu a { color: var(--c-primaire); text-decoration: underline; text-underline-offset: 0.15em; }

/* Colonne de droite */
.m-sf__aside { display: grid; gap: var(--e-4); }
.m-sf__encadre {
	padding: clamp(1.25rem, 1rem + 1.5vw, 2rem);
	border-radius: var(--rayon);
	background: var(--c-primaire-clair);
	color: var(--c-texte);
}
.m-sf__encadre h3 { margin: 0 0 0.6rem; font-size: var(--t-l); line-height: 1.25; color: var(--c-titres, var(--c-texte)); }
.m-sf__encadre :is(p, ul, ol) { margin: 0 0 0.75em; }
.m-sf__encadre > :last-child { margin-bottom: 0; }
.m-sf__encadre a { color: var(--c-primaire); text-decoration: underline; }

.m-sf__boutons { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.m-sf__boutons li { margin: 0; }
.m-sf__bouton {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	min-height: 2.875rem;
	padding: 0.7rem 1.25rem;
	border: 2px solid var(--c-primaire);
	border-radius: var(--rayon-pilule);
	background: var(--c-fond);
	color: var(--c-primaire);
	font-family: var(--f-titres);
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.25;
	text-decoration: none !important;
	transition: background-color var(--transition), color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.m-sf__bouton::after { content: "→"; flex: none; transition: transform var(--transition); }
.m-sf__bouton--externe::after { content: "↗"; }
.m-sf__bouton--document::after { content: "↓"; }
.m-sf__bouton:hover { background: var(--c-primaire); color: #fff; transform: translateY(-1px); box-shadow: var(--ombre); }
.m-sf__bouton:hover::after { transform: translateX(3px); }
.m-sf__bouton--document:hover::after { transform: translateY(2px); }
.m-sf__bouton:active { transform: scale(0.98); box-shadow: none; }
.m-sf__fichier { font-family: var(--f-texte, inherit); font-size: 0.8125rem; font-weight: 500; opacity: 0.8; white-space: nowrap; }
.m-sf__bouton .m-sf__fichier { margin-left: auto; }

/* Dans Beaver Builder : section vide ou masquée */
.m-sf__vide {
	margin: 0;
	padding: 1.25rem;
	border: 2px dashed var(--c-bordure);
	border-radius: var(--rayon);
	color: var(--c-texte-doux);
	text-align: center;
}

/* Bouton « Modifier le texte » (Beaver Builder ouvert) */
.mf-modifier {
	position: absolute;
	top: -0.75rem;
	left: 0; /* à gauche : le panneau de Beaver Builder occupe la droite de l'écran */
	z-index: 100005;
	padding: 0.45rem 0.9rem;
	border: 0;
	border-radius: 999px;
	background: #1d2327;
	color: #fff;
	font: 600 13px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	box-shadow: 0 4px 14px rgb(0 0 0 / 0.25);
	cursor: pointer;
	opacity: 0.9;
}
.mf-modifier:hover, .mf-modifier:focus-visible { opacity: 1; background: #2271b1; }

/* Page sans Beaver Builder (secours) */
.m-sf-page .m-sf { margin-block: var(--e-6); }

@media print {
	.m-acc { break-inside: avoid; }
	.m-sf__aside { position: static; }
}

/* v0.9.1 — résumé enrichi, contenu automatique sous la section */
.m-sf__resume p { margin: 0 0 0.6em; }
.m-sf__resume > :last-child { margin-bottom: 0; }
.m-sf__resume a { color: var(--c-primaire); text-decoration: underline; }
.m-sf__special { margin-top: var(--e-6); }
