/* =========================================================================
   FormationsCSE — Design system Landing SSCT v4
   Converti depuis les maquettes « Landing SSCT v4 » (desktop 1440 / mobile 390).
   Toutes les classes sont préfixées .fcse- et pilotées par les patterns
   Gutenberg du thème enfant.
   ========================================================================= */

:root {
	--fcse-primary: #005C7A;
	--fcse-blue: #0084AE;
	--fcse-blue-light: #4DA9C6;
	--fcse-ink: #12303B;
	--fcse-slate: #456B79;
	--fcse-gray: #7A94A0;
	--fcse-gray2: #6C8189;
	--fcse-gray3: #8FA3AC;
	--fcse-orange: #F68712;
	--fcse-orange-dark: #AC5F0D;
	--fcse-yellow: #FFCC29;
	--fcse-gold: #B38F1D;
	--fcse-gold-dark: #8A6A15;
	--fcse-bg: #F7FCFD;
	--fcse-border: #E6F3F7;
	--fcse-border2: #DCEDF3;
	--fcse-border3: #CFE7EF;
	--fcse-cream: #FFFAEA;
	--fcse-cream-border: #FFDB69;
	--fcse-peach: #FEF3E7;
	--fcse-peach-border: #FBD5AC;
	--fcse-font: "Inter", system-ui, -apple-system, sans-serif;
}

/* Sections pleine largeur : on masque le débordement dû à 100vw. */
body.single-formation,
body.page-template-page-landing {
	overflow-x: hidden;
}

/* Supprime le padding que le thème ajoute autour de l'article. */
body.single-formation article.fcse-landing,
body.page-template-page-confirmation article.fcse-landing,
body.page-template-page-landing article.fcse-landing {
	padding: 0 !important;
	margin: 0;
	background: transparent;
}

.fcse-landing > .entry-content {
	background: #fff;
}

/* -------------------------------------------------------------------------
   Base landing
   ------------------------------------------------------------------------- */

/* Astra applique « .entry-content .wp-block-group { padding: 3em } » à tous
   les groupes. Ce reset (spécificité supérieure) le neutralise ; chaque
   composant fcse redéclare son padding via la variable --fcse-pad. */
.entry-content div.wp-block-group {
	padding: var(--fcse-pad, 0);
}

/* Groupes purement structurels : jamais de padding, même hérité. */
.fcse-cards,
.fcse-intro,
.fcse-acc-list,
.fcse-banner__text {
	--fcse-pad: 0;
}

/* WordPress génère « :root :where(.is-layout-flow) > * { margin-block-start:
   24px } » (blockGap hérité du theme.json d'Astra) : il décale le premier
   bloc et injecte 24px entre tous les enfants des groupes, par-dessus les
   marges du design system. Le theme.json enfant remet blockGap à 0 ; cette
   règle-ci — même sélecteur, même spécificité, chargée après les global
   styles — sert de filet si la valeur revenait via une mise à jour. */
:root :where(.fcse-landing .is-layout-flow, .fcse-section.is-layout-flow, .fcse-section .is-layout-flow) > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Fond de section jusqu'aux bords de l'écran, contenu limité à la largeur
   maquette (1296 px utiles = 1440 − 2 × 72 de marges). */
.fcse-section {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 76px max(20px, calc(50vw - 648px));
	background: #fff;
	font-family: var(--fcse-font);
	color: var(--fcse-ink);
	scroll-margin-top: 90px;
}

/* Sélecteur renforcé : bat « .entry-content .wp-block-group » d'Astra
   (padding 3em) quel que soit l'ordre de chargement des feuilles. */
.entry-content div.fcse-section {
	margin-top: 0;
	margin-bottom: 0;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 76px max(20px, calc(50vw - 648px));
}

.fcse-section--alt { background: var(--fcse-bg); }
.fcse-section--dark { background: var(--fcse-primary); color: #fff; }

/* Le texte SANS classe (paragraphe ou liste ajoutés librement dans
   l'éditeur) n'a aucune règle de couleur : il hérite. Sur fond bleu il
   héritait de « --fcse-ink », donc s'affichait en presque-noir, illisible
   — et rien à « réinitialiser » puisque c'était la valeur par défaut.
   On corrige par l'héritage, pas par une règle sur « p » : tout ce qui a
   déjà une couleur explicite (titres, leads, cartes) garde la sienne.

   Contrepartie : les surfaces CLAIRES posées sur ce fond sombre doivent
   rétablir l'encre, sinon leur texte libre deviendrait blanc sur blanc. */
.fcse-section--dark .fcse-card,
.fcse-section--dark .fcse-form-card,
.fcse-section--dark .fcse-panel,
.fcse-section--dark .fcse-note-box,
.fcse-section--dark .fcse-price-card,
.fcse-section--dark .fcse-link-card,
.fcse-section--dark .fcse-helpbar,
.fcse-section--dark .fcse-sessions,
.fcse-section--dark details.fcse-acc {
	color: var(--fcse-ink);
}

.fcse-section--gradient { background: linear-gradient(180deg, #F7FCFD 0%, #fff 100%); }
.fcse-section--bordered { border-top: 1px solid var(--fcse-border); }

/* « Flush-top » : l'enchaînement sans double espace ne vaut que si la
   section précédente est une section claire qui apporte déjà son propre
   padding-bottom. Placée ailleurs (après un bandeau slim, une section
   sombre, un bloc libre ou en tête de page), la section garde son padding
   normal — sinon les blocs se collent. */
.fcse-section:not(.fcse-section--slim):not(.fcse-section--dark) + .fcse-section--flush-top,
.entry-content div.fcse-section:not(.fcse-section--slim):not(.fcse-section--dark) + div.fcse-section--flush-top {
	padding-top: 0;
}

/* Blocs libres (paragraphe, image, titre…) insérés entre deux sections :
   on leur garde une respiration au lieu de les coller aux sections. */
.fcse-landing .entry-content > :not(.fcse-section) {
	margin-top: 40px;
	margin-bottom: 40px;
}

.fcse-section--slim,
.entry-content div.fcse-section--slim { padding-top: 22px; padding-bottom: 22px; }

.fcse-section p,
.fcse-section li,
.fcse-section h1,
.fcse-section h2,
.fcse-section h3 {
	font-family: var(--fcse-font);
}

/* Paragraphes sans classe (texte libre ajouté dans l'éditeur) : le blockGap
   WordPress étant neutralisé, on leur redonne un espacement par défaut.
   Placé tôt dans la feuille : les règles des composants (.fcse-phone-card p,
   .fcse-note-box p…) gardent la main. */
.fcse-section p:not([class]) { margin-top: 0; margin-bottom: 14px; }
.fcse-section p:not([class]):last-child { margin-bottom: 0; }

.fcse-section a {
	text-decoration: none;
}

/* -------------------------------------------------------------------------
   Typographie
   ------------------------------------------------------------------------- */

h1.fcse-h1 {
	margin: 0 0 18px;
	font-size: 38px;
	line-height: 1.2;
	font-weight: 600;
	color: var(--fcse-primary);
	letter-spacing: -0.01em;
	text-wrap: pretty;
}

h2.fcse-h2 {
	margin: 0 0 14px;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--fcse-primary);
	text-wrap: pretty;
}

h2.fcse-h2--light { color: #fff; }
h2.fcse-h2--center { text-align: center; }

h3.fcse-h3 {
	margin: 0 0 8px;
	font-size: 25px;
	font-weight: 500;
	color: var(--fcse-primary);
}

.fcse-accent { color: var(--fcse-orange); }

p.fcse-kicker {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fcse-blue-light);
}

p.fcse-kicker--orange { color: var(--fcse-orange); }
p.fcse-kicker--yellow { color: var(--fcse-yellow); }
p.fcse-kicker--blue { color: var(--fcse-blue); }
p.fcse-kicker--gray { color: var(--fcse-gray3); }

p.fcse-lead {
	margin: 0 0 26px;
	font-size: 17px;
	line-height: 1.65;
	color: var(--fcse-slate);
	text-wrap: pretty;
}

p.fcse-lead--light { color: #BFE0EB; }

.fcse-intro {
	max-width: 700px;
	margin: 0 auto 48px;
	text-align: center;
}

.fcse-intro p.fcse-lead { margin-bottom: 0; }

.fcse-intro--left {
	max-width: initial;
	margin-left: 0;
	text-align: left;
}

/* Respiration supplémentaire entre l'intro d'une section et son contenu
   (retour client : parcours, comparaison, catalogue se sentaient collés). */
.fcse-intro + .fcse-cards,
.fcse-intro + .wp-block-columns,
.fcse-intro + .fcse-acc-list,
.fcse-intro + .fcse-sessions,
.fcse-intro + .fcse-timeline {
	margin-top: 10px;
}

p.fcse-badge {
	display: inline-block;
	margin: 0 0 22px;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--fcse-cream);
	border: 1px solid var(--fcse-cream-border);
	font-size: 13px;
	font-weight: 600;
	color: var(--fcse-gold);
}

.fcse-quote {
	margin: 26px 0 0;
	padding: 18px 22px !important;
	border-left: 3px solid var(--fcse-yellow);
	background: var(--fcse-cream);
	border-radius: 0 12px 12px 0;
	max-width: 520px;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--fcse-primary);

}
.fcse-quote p { margin-bottom: 0.8rem;}

.fcse-quote-dark {
	--fcse-pad: 20px 22px;
	padding: 20px 22px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.08);
	margin-bottom: 22px;
}

.fcse-quote-dark p {
	margin: 0;
	font-size: 17px;
	line-height: 1.6;
	color: #fff;
}

p.fcse-center-note {
	margin: 30px auto 0;
	text-align: center;
	font-size: 17px;
	color: var(--fcse-slate);
}

p.fcse-center-note a,
p.fcse-note a {
	font-weight: 600;
	color: var(--fcse-blue);
}

p.fcse-center-note a:hover,
p.fcse-note a:hover { color: var(--fcse-primary); }

p.fcse-note {
	margin: 32px 0 0;
	font-size: 16px;
	color: var(--fcse-gray);
}

/* -------------------------------------------------------------------------
   Bloc libre « Titre + texte » (pattern fcse/titre-texte)

   Une colonne de lecture : le contenu d'une section fait 1296px de large,
   ce qui est parfait pour des cartes mais illisible pour du texte suivi.
   Les règles ciblent les blocs natifs (paragraphe, liste, lien) pour que
   tout ce qui est ajouté dans le bloc reste à la charte.
   ------------------------------------------------------------------------- */

.fcse-prose { max-width: 760px; }

.fcse-section .fcse-prose p:not([class]) {
	margin: 0 0 16px;
	font-size: 17px;
	line-height: 1.7;
	color: var(--fcse-slate);
}

.fcse-section .fcse-prose > :last-child { margin-bottom: 0; }

.fcse-prose h3.fcse-h3 {
	margin-top: 30px;
	margin-bottom: 10px;
	font-size: 21px;
	font-weight: 600;
}

.fcse-section .fcse-prose ul,
.fcse-section .fcse-prose ol {
	margin: 0 0 16px;
	padding-left: 22px;
	font-size: 17px;
	line-height: 1.7;
	color: var(--fcse-slate);
}

.fcse-section .fcse-prose li { margin-bottom: 6px; }

.fcse-section .fcse-prose a {
	font-weight: 600;
	color: var(--fcse-blue);
	text-decoration: underline;
}

.fcse-section .fcse-prose a:hover { color: var(--fcse-primary); }

@media (max-width: 781px) {
	.fcse-section .fcse-prose p:not([class]),
	.fcse-section .fcse-prose ul,
	.fcse-section .fcse-prose ol { font-size: 16px; }
	.fcse-prose h3.fcse-h3 { font-size: 19px; margin-top: 24px; }
}

/* -------------------------------------------------------------------------
   Boutons (sur core/button)
   ------------------------------------------------------------------------- */

.fcse-section .wp-block-buttons { gap: 14px; }

.fcse-section .wp-block-button .wp-block-button__link {
	font-family: var(--fcse-font);
	font-size: 17px;
	font-weight: 600;
	border-radius: 999px;
	padding: 15px 30px;
	transition: all 0.18s ease;
	border: 1.5px solid transparent;
}

.fcse-section .fcse-btn--primary .wp-block-button__link {
	background: var(--fcse-orange);
	color: #fff;
	box-shadow: 0 10px 24px rgba(246, 135, 18, 0.3);
}

.fcse-section .fcse-btn--primary .wp-block-button__link:hover {
	background: var(--fcse-orange-dark);
	color: #fff;
	transform: translateY(-2px);
}

.fcse-section .fcse-btn--outline .wp-block-button__link {
	background: transparent;
	border-color: var(--fcse-orange);
	color: var(--fcse-orange-dark);
	box-shadow: none;
}

.fcse-section .fcse-btn--outline .wp-block-button__link:hover {
	background: var(--fcse-peach);
	color: var(--fcse-orange-dark);
}

.fcse-section .fcse-btn--blue .wp-block-button__link {
	background: var(--fcse-blue);
	color: #fff;
}

.fcse-section .fcse-btn--blue .wp-block-button__link:hover {
	background: var(--fcse-primary);
	color: #fff;
}

.fcse-section .fcse-btn--yellow .wp-block-button__link {
	background: var(--fcse-yellow);
	color: var(--fcse-primary);
}

.fcse-section .fcse-btn--yellow .wp-block-button__link:hover {
	background: #fff;
	color: var(--fcse-primary);
}

.fcse-section .fcse-btn--ghost .wp-block-button__link {
	background: transparent;
	border-color: var(--fcse-border3);
	color: var(--fcse-primary);
}

.fcse-section .fcse-btn--ghost .wp-block-button__link:hover {
	border-color: var(--fcse-blue);
	color: var(--fcse-primary);
}

.fcse-section .fcse-btn--ghost-dark .wp-block-button__link {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.4);
	color: #fff;
	font-weight: 500;
}

.fcse-section .fcse-btn--ghost-dark .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
}

.fcse-section .fcse-btn--gold .wp-block-button__link {
	background: transparent;
	border-color: var(--fcse-gold);
	color: var(--fcse-gold-dark);
}

.fcse-section .fcse-btn--gold .wp-block-button__link:hover {
	background: #fff;
	color: var(--fcse-gold-dark);
}

.fcse-btn--full { width: 100%; }
.fcse-btn--full .wp-block-button__link { width: 100%; text-align: center; }

/* -------------------------------------------------------------------------
   Grilles de cartes
   ------------------------------------------------------------------------- */

.fcse-cards {
	display: grid;
	gap: 20px;
}

.fcse-cards--2 { grid-template-columns: repeat(2, 1fr); gap: 18px; }
.fcse-cards--3 { grid-template-columns: repeat(3, 1fr); gap: 22px; }
.fcse-cards--4 { grid-template-columns: repeat(4, 1fr); }

.fcse-card {
	--fcse-pad: 26px 24px;
	padding: 26px 24px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--fcse-border);
	box-shadow: 0 2px 10px rgba(0, 92, 122, 0.05);
	transition: all 0.2s ease;
}

.fcse-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(0, 92, 122, 0.12);
	border-color: var(--fcse-blue-light);
}

p.fcse-card__kicker {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--fcse-blue-light);
}

p.fcse-card__title {
	margin: 0 0 6px;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--fcse-ink);
}

p.fcse-card__title--blue { color: var(--fcse-primary); }

p.fcse-card__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--fcse-gray);
}

/* Carte objectif : barre jaune décorative */
.fcse-card--obj {
	border-radius: 18px;
	box-shadow: 0 6px 22px rgba(0, 92, 122, 0.07);
}

.fcse-card--obj::before {
	content: "";
	display: block;
	height: 6px;
	width: 34%;
	border-radius: 3px;
	background: var(--fcse-yellow);
	margin-bottom: 18px;
}

.fcse-card--obj:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px rgba(0, 92, 122, 0.13);
}

/* Mini-carte (section équipe) */
.fcse-mini-card {
	--fcse-pad: 26px;
	padding: 26px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--fcse-border);
}

p.fcse-mini-card__title {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 600;
	color: var(--fcse-orange);
}

p.fcse-mini-card__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--fcse-gray2);
}

/* -------------------------------------------------------------------------
   Icônes (boîtes arrondies + pictos CSS mask, aucun SVG dans le contenu)
   ------------------------------------------------------------------------- */

.wp-block-spacer.fcse-icon {
	height: 48px !important;
	width: 48px;
	border-radius: 14px 14px 14px 4px;
	background: var(--fcse-border);
	position: relative;
	margin: 0 0 16px;
}

.wp-block-spacer.fcse-icon::after {
	content: "";
	position: absolute;
	inset: 11px;
	background: var(--fcse-blue);
	-webkit-mask: var(--fcse-icon-shape, none) center / contain no-repeat;
	mask: var(--fcse-icon-shape, none) center / contain no-repeat;
}

.fcse-icon--peach { background: var(--fcse-peach); }
.fcse-icon--peach::after { background: var(--fcse-orange); }

.fcse-icon--users { --fcse-icon-shape: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M16 19v-1.5a3.5 3.5 0 0 0-3.5-3.5h-5A3.5 3.5 0 0 0 4 17.5V19'/><circle cx='10' cy='7.5' r='3.2'/><path d='M17.5 13.6a3.2 3.2 0 0 1 2.5 3.1V18'/><path d='M15.6 5.2a2.7 2.7 0 0 1 0 5.2'/></svg>"); }
.fcse-icon--clock { --fcse-icon-shape: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12.5' r='8'/><path d='M12 8.2v4.6l3.1 1.9'/><path d='M9 2.8h6'/></svg>"); }
.fcse-icon--screen { --fcse-icon-shape: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='2.6' y='5.4' width='13.2' height='10.4' rx='2.2'/><path d='M15.8 9.6l5.6-3.1v9.4l-5.6-3.1z'/><path d='M7 19.6h6'/></svg>"); }
.fcse-icon--funding { --fcse-icon-shape: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M16.5 7.4A6 6 0 0 0 7.2 9.4'/><path d='M7.2 14.6a6 6 0 0 0 9.3 2'/><path d='M4.6 10.4h7.2'/><path d='M4.6 13.6h7.2'/></svg>"); }
.fcse-icon--bulb { --fcse-icon-shape: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M9 17.5h6'/><path d='M10 20.6h4'/><path d='M12 3.4a5.8 5.8 0 0 0-3.3 10.6c.5.35.8.9.8 1.5h5a1.9 1.9 0 0 1 .8-1.5A5.8 5.8 0 0 0 12 3.4z'/></svg>"); }
.fcse-icon--question { --fcse-icon-shape: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M9.3 9.1a2.8 2.8 0 1 1 4 2.6c-.8.5-1.3 1.2-1.3 2.1v.5'/><path d='M12 17.9h.01'/><circle cx='12' cy='12' r='8.6'/></svg>"); }
.fcse-icon--pencil { --fcse-icon-shape: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M14.2 6.6a3.6 3.6 0 0 1 4.9 4.6l-8 8-4.6 1.2 1.2-4.6z'/><path d='M4.4 4.2h6'/><path d='M4.4 8.4h4'/><path d='M4.4 12.6h2.6'/></svg>"); }
.fcse-icon--anchor { --fcse-icon-shape: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='5.2' r='2.3'/><path d='M12 7.5v13'/><path d='M8.4 10.6h7.2'/><path d='M4.2 14.4a7.8 7.8 0 0 0 15.6 0'/><path d='M4.2 14.4h2.4'/><path d='M17.4 14.4h2.4'/></svg>"); }

/* -------------------------------------------------------------------------
   Hero
   ------------------------------------------------------------------------- */

.fcse-section .wp-block-columns.fcse-hero {
	gap: 56px;
	align-items: center;
}

/* Blocs Image des compositions : remplacer / supprimer librement.
   Avec image : arrondie, pleine largeur. Sans image : emplacement hachuré. */
.fcse-section .wp-block-image.fcse-media {
	margin: 0;
}

.fcse-media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 20px;
	border: 1px solid var(--fcse-border3);
}

.fcse-media--short img { border-radius: 18px; }

.fcse-media:not(:has(img)) {
	min-height: 400px;
	border-radius: 20px;
	background: repeating-linear-gradient(135deg, var(--fcse-border) 0 14px, var(--fcse-bg) 14px 28px);
	border: 1px solid var(--fcse-border3);
}

.fcse-media--short:not(:has(img)) {
	min-height: 260px;
	border-radius: 18px;
}

/* Légendes d'images (figcaption ajoutées dans l'éditeur). Le sélecteur
   doublé bat les styles par défaut d'Astra quel que soit l'ordre de
   chargement. */
.fcse-section figcaption,
.fcse-section .wp-block-image figcaption {
	margin: 12px 0 0;
	font-family: var(--fcse-font);
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--fcse-gray);
	text-align: center;
}

.fcse-section--dark figcaption,
.fcse-section--dark .wp-block-image figcaption {
	color: rgba(255, 255, 255, 0.72);
}

/* Hero : la carte flottante est ancrée au bas du groupe média — une légende
   en flux normal finirait toujours dessous. On la sort du flux (le groupe se
   termine donc au bas de la photo, la carte garde sa place) et on l'affiche
   sous le débord de la carte, dans un espace réservé par margin-bottom. */
.fcse-hero__media .wp-block-image.fcse-media {
	position: relative;
}

.fcse-hero__media figcaption,
.fcse-hero__media .wp-block-image figcaption {
	position: absolute;
	top: calc(100% + 36px);
	left: 0;
	right: 0;
	margin: 0;
}

.fcse-hero__media:has(figcaption) {
	margin-bottom: 64px;
}

/* Ancien placeholder texte (compat contenus déjà créés) */
.fcse-photo-ph {
	min-height: 400px;
	border-radius: 20px;
	background: repeating-linear-gradient(135deg, var(--fcse-border) 0 14px, var(--fcse-bg) 14px 28px);
	border: 1px solid var(--fcse-border3);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	--fcse-pad: 20px;
	padding: 20px;
}

.fcse-photo-ph--short { min-height: 260px; border-radius: 18px; }

.fcse-photo-ph p {
	margin: 0;
	font-family: ui-monospace, Menlo, monospace;
	font-size: 12px;
	color: var(--fcse-blue-light);
	letter-spacing: 0.06em;
	text-align: center;
	max-width: 280px;
	line-height: 1.6;
}

.fcse-photo-ph p + p { color: var(--fcse-gray); letter-spacing: normal; }

.fcse-landing .wp-block-image.fcse-photo img,
.fcse-photo img {
	border-radius: 20px;
	width: 100%;
	height: auto;
}

/* Carte flottante sur la photo du hero (« PME · Formateurs anciens élus… ») */
.fcse-hero__media {
	--fcse-pad: 0;
	position: relative;
}

.fcse-float-card {
	--fcse-pad: 14px 20px;
	padding: 14px 20px;
	position: absolute;
	bottom: -24px;
	left: -28px;
	display: flex;
	align-items: center;
	gap: 12px;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 12px 32px rgba(0, 92, 122, 0.14);
	max-width: calc(100% + 16px);
}

/* Pastille du hero : picto (nouvelle version) ou initiales « PME »
   (contenus déjà publiés — on garde les deux styles). */
.fcse-float-card .fcse-float-card__icon,
p.fcse-float-card__avatar {
	margin: 0;
	flex: none;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--fcse-border);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	font-weight: 600;
	color: var(--fcse-blue);
}

.fcse-float-card__icon img {
	display: block;
	width: 21px;
	height: 21px;
}

.fcse-float-card__text {
	--fcse-pad: 0;
	line-height: 1.3;
	margin: 0 !important;
}

p.fcse-float-card__title {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--fcse-ink);
}

p.fcse-float-card__sub {
	margin: 0;
	font-size: 13px;
	color: var(--fcse-gray);
}

/* Chiffres clés sous les CTA du hero (+5 000 stagiaires, Qualiopi…) */
.fcse-stats {
	--fcse-pad: 0;
	display: flex;
	gap: 34px;
	margin-top: 30px;
}

.fcse-stat { --fcse-pad: 0; }

.fcse-stat + .fcse-stat {
	border-left: 1px solid var(--fcse-border);
	padding-left: 34px;
}

p.fcse-stat__num {
	margin: 0;
	font-size: 26px;
	font-weight: 600;
	color: var(--fcse-primary);
}

p.fcse-stat__label {
	margin: 2px 0 0;
	font-size: 14px;
	line-height: 1.4;
	color: var(--fcse-gray);
}

/* -------------------------------------------------------------------------
   Bandeau de confiance (fond bleu foncé)
   ------------------------------------------------------------------------- */

/* Retour client : les trois preuves restent sur UNE ligne, c'est le texte
   qui passe sur deux lignes à côté du logo. En grille de colonnes égales
   (plutôt qu'en flex dimensionné par le contenu) : les trois blocs sont
   centrés dans leur tiers, donc régulièrement espacés quelle que soit la
   longueur des libellés. grid-auto-flow gère aussi bien 2 que 4 items. */
.fcse-trustbar {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	align-items: center;
	justify-items: center;
	gap: 0;
}

.fcse-trustbar p {
	margin: 0;
	font-size: 17px;
	color: #fff;
	position: relative;
}

.fcse-trustbar p strong { font-weight: 600; }

.fcse-trustbar p + p::before {
	content: "";
	position: absolute;
	left: -22px;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 34px;
	background: rgba(255, 255, 255, 0.22);
}

/* Variante avec logos (Qualiopi, DREETS…) : item = logo + texte. */
.fcse-trust-item {
	--fcse-pad: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	position: relative;
	min-width: 0;
	width: 100%;
	padding-inline: 24px;
	box-sizing: border-box;
}

/* Pastille blanche de taille fixe : les trois logos n'ont pas le même
   rapport largeur/hauteur (Qualiopi 281×172, DREETS 701×240, Aventum
   1280×740), c'est le cadre qui les aligne, pas l'image. */
.fcse-trust-item .wp-block-image {
	margin: 0;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 104px;
	height: 56px;
	padding: 6px 8px;
	box-sizing: border-box;
	border-radius: 10px;
	background: #fff;
}

.fcse-trust-item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: none;
	padding: 0;
	border: none;
	border-radius: 0;
}

.fcse-trust-item p {
	margin: 0;
	min-width: 0;
	font-size: 17px;
	line-height: 1.4;
	color: #fff;
	text-wrap: balance;
}

.fcse-trust-item + .fcse-trust-item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 34px;
	background: rgba(255, 255, 255, 0.22);
}

/* -------------------------------------------------------------------------
   Parcours (semaines) et notes
   ------------------------------------------------------------------------- */

.fcse-week {
	position: relative;
	--fcse-pad: 26px;
	padding: 26px;
	border-radius: 18px;
	background: #fff;
	border: 1px solid var(--fcse-border);
	box-shadow: 0 4px 18px rgba(0, 92, 122, 0.06);
}

p.fcse-week__head {
	margin: 0 0 18px;
	font-size: 14px;
	font-weight: 600;
	color: var(--fcse-gray);
	display: flex;
	justify-content: space-between;
	gap: 10px;
}

p.fcse-week__head strong {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fcse-blue-light);
}

p.fcse-day {
	margin: 0 0 14px;
	padding-left: 52px;
	position: relative;
	font-size: 14px;
	color: var(--fcse-gray);
	line-height: 1.45;
	min-height: 40px;
}

p.fcse-day strong {
	display: block;
	font-size: 17px;
	font-weight: 500;
	color: var(--fcse-ink);
}

p.fcse-day .fcse-chip {
	position: absolute;
	left: 0;
	top: 2px;
	width: 38px;
	height: 38px;
	border-radius: 12px 12px 12px 3px;
	background: var(--fcse-border);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	font-weight: 600;
	color: var(--fcse-blue);
}

/* Formation à la journée : séquences (« Matin », « 9h00 – 12h30 »…).
   La pastille devient une étiquette de largeur libre, donc en flux :
   le titre + le format passent dans .fcse-day__body à côté d'elle. */
p.fcse-day--seq {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	align-items: flex-start;
	padding-left: 0;
	min-height: 0;
}

p.fcse-day--seq .fcse-chip {
	position: static;
	flex: 0 0 auto;
	width: auto;
	min-width: 38px;
	height: auto;
	padding: 8px 12px;
	font-size: 14px;
	white-space: nowrap;
}

p.fcse-day--seq .fcse-day__body {
	flex: 1 1 220px;
}

/* Intervalle entre deux cartes de semaines non consécutives (« Semaine 1 »
   puis « Semaine 4 ») : une colonne intercalée porte le trait et sa durée,
   d'après la maquette « Parcours atelier facultatif ». Le dégradé bleu →
   orange est celui du rail de la timeline mobile : même fil conducteur.

   La grille reprend la main sur ses colonnes — une par carte, une par
   intervalle — pour que les cellules restent alignées ; la gouttière
   passe donc à 0 et c'est la cellule qui la reproduit. */
.fcse-liens--2 {
	gap: 0;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.fcse-liens--3 {
	gap: 0;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
}

.fcse-lien {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	/* Semaines qui s'enchaînent : la cellule ne fait que la gouttière. */
	min-width: 22px;
	padding: 0;
}

/* Le retrait vertical amène le trait à hauteur de la première journée. */
.fcse-lien--duree {
	min-width: 148px;
	padding: 84px 14px 0;
}

.fcse-lien__trait {
	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, var(--fcse-blue-light), var(--fcse-orange));
}

span.fcse-lien__label {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.35;
	text-align: center;
	color: var(--fcse-gray);
}

/* Temps mis en avant : sorti des cartes, affiché en bandeau sous le
   parcours et relié à la dernière carte par un pointillé. D'après la
   maquette « Parcours atelier facultatif », option A. Ni carte blanche ni
   pastille numérotée : ce temps n'est pas une des journées dues, le
   traiter comme les autres reviendrait à le faire compter. */
.fcse-atelier {
	display: flex;
	align-items: center;
	gap: 18px;
	--fcse-pad: 20px 24px;
	padding: 20px 24px;
	border-radius: 14px;
	background: var(--fcse-bg);
	border: 1px dashed var(--fcse-border3);
}

.fcse-atelier + .fcse-atelier { margin-top: 10px; }

.fcse-atelier__icone {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: var(--fcse-border);
	color: var(--fcse-blue);
}

.fcse-atelier__corps { flex: 1 1 0; }

span.fcse-atelier__kicker {
	display: block;
	margin-bottom: 5px;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fcse-blue-light);
}

strong.fcse-atelier__titre {
	display: block;
	margin-bottom: 3px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--fcse-primary);
}

span.fcse-atelier__texte {
	display: block;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--fcse-gray);
}

/* Le pointillé occupe une rangée qui reprend la grille des cartes : il
   tombe donc pile sous la dernière, quel que soit le nombre de semaines
   et jusqu'au repli sur une colonne. */
.fcse-cards.fcse-atelier-lien { gap: 0; }
.fcse-atelier-lien > span { display: block; }

.fcse-atelier-lien > span:last-child::after {
	content: "";
	display: block;
	width: 2px;
	height: 30px;
	margin: 0 auto;
	background: repeating-linear-gradient(
		var(--fcse-border3) 0,
		var(--fcse-border3) 5px,
		transparent 5px,
		transparent 10px
	);
}

/* Carte unique (une seule semaine, ou formation à la journée) : le temps
   mis en avant passe à droite de la carte plutôt qu'en bandeau dessous —
   sous une carte seule, le bandeau pleine largeur pesait plus lourd que
   les journées dues. Le pointillé traverse la gouttière à l'horizontale,
   à hauteur de l'icône du bandeau. */
.fcse-parcours-cote {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}

/* Le pointillé part de l'icône du premier bandeau — accroché à elle
   plutôt qu'à un décalage en dur, il reste à sa hauteur quel que soit le
   nombre de lignes du texte. Il recule de la gouttière (48 px) plus le
   padding gauche du bandeau (24 px) pour venir mourir sur la carte. */
.fcse-parcours-cote__temps .fcse-atelier:first-child .fcse-atelier__icone {
	position: relative;
}

.fcse-parcours-cote__temps .fcse-atelier:first-child .fcse-atelier__icone::before {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(100% + 24px);
	width: 48px;
	height: 2px;
	margin-top: -1px;
	background: repeating-linear-gradient(
		90deg,
		var(--fcse-border3) 0,
		var(--fcse-border3) 5px,
		transparent 5px,
		transparent 10px
	);
}

p.fcse-week-note {
	margin: 16px 0 0;
	padding: 12px 14px;
	border-radius: 10px;
	background: var(--fcse-cream);
	font-size: 14px;
	line-height: 1.5;
	color: var(--fcse-gold);
	font-weight: 500;
}

.fcse-note-box {
	--fcse-pad: 24px 26px;
	padding: 24px 26px;
	border-radius: 16px;
	background: var(--fcse-bg);
	border: 1px solid var(--fcse-border2);
	height: 100%;
}

.fcse-note-box p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--fcse-slate); }

.fcse-note-box p.fcse-note-box__title {
	margin-bottom: 8px;
	font-size: 17px;
	font-weight: 600;
	color: var(--fcse-primary);
}

.fcse-note-box--peach {
	background: var(--fcse-peach);
	border-color: var(--fcse-peach-border);
}

.fcse-note-box--peach p { color: var(--fcse-gold-dark); }
.fcse-note-box--peach p.fcse-note-box__title { color: var(--fcse-orange-dark); }

.fcse-note-box--cream {
	background: var(--fcse-cream);
	border-color: var(--fcse-cream-border);
}

.fcse-note-box--cream p,
.fcse-note-box--cream p.fcse-note-box__title { color: var(--fcse-gold-dark); }

.fcse-section .wp-block-columns.fcse-2col {
	gap: 20px;
	max-width: 1020px;
	margin: 34px auto 0;
}

/* Colonnes côte à côte : les encadrés remplissent la colonne pour que tous
   aient la même hauteur, quelle que soit la longueur du texte. */
.fcse-section .wp-block-columns.fcse-2col > .wp-block-column > .fcse-note-box {
	height: 100%;
}

/* -------------------------------------------------------------------------
   Tarifs
   ------------------------------------------------------------------------- */

.fcse-section .wp-block-columns.fcse-pricing {
	gap: 24px;
	max-width: 1000px;
	/* 16px en haut : le badge « Le plus demandé » déborde de la carte
	   (top:-13px), sans cette réserve il chevauche le texte d'intro. */
	margin: 16px auto 28px;
	align-items: stretch;
}

/* Cartes tarifs à même hauteur, CTA alignés en bas. */
.fcse-section .wp-block-columns.fcse-pricing > .wp-block-column > .fcse-price-card {
	height: 100%;
	display: flex;
	flex-direction: column;
}

.fcse-price-card > .wp-block-buttons { margin-top: auto; }

.fcse-price-card {
	position: relative;
	--fcse-pad: 38px;
	padding: 38px;
	border-radius: 20px;
	background: #fff;
	border: 1px solid var(--fcse-border);
	box-shadow: 0 6px 22px rgba(0, 92, 122, 0.06);
}

.fcse-price-card--featured {
	border: 1.5px solid var(--fcse-orange);
	box-shadow: 0 18px 44px rgba(246, 135, 18, 0.16);
}

/* Bloc SSCT + tarif de l'accueil : éditorial à gauche, carte tarif à droite. */
.fcse-section .wp-block-columns.fcse-ssct {
	gap: 64px;
	align-items: flex-start;
	margin-top: 16px; /* réserve pour le badge de la carte */
}

/* Carte-lien « SSCT renouvellement » (bordure pointillée). */
.fcse-link-card {
	--fcse-pad: 20px 24px;
	padding: 20px 24px;
	border-radius: 14px;
	background: #fff;
	border: 1.5px dashed var(--fcse-border3);
	margin: 4px 0 26px !important;
}

.fcse-link-card p.fcse-card__title { margin-bottom: 4px; }
.fcse-link-card p.fcse-card__text a { font-weight: 600; color: var(--fcse-blue); }
.fcse-link-card p.fcse-card__text a:hover { color: var(--fcse-primary); }

/* Pied de la carte tarif accueil : le bloc intra sous un filet. */
.fcse-price-card__intra {
	--fcse-pad: 0;
	border-top: 1px solid var(--fcse-border);
	margin-top: 22px;
	padding-top: 22px;
}

.fcse-price-card__intra p.fcse-kicker { margin-bottom: 8px; }
.fcse-price-card__intra p.fcse-card__text { margin-bottom: 16px; }
.fcse-price-card__intra .wp-block-buttons { margin-bottom: 12px; }
.fcse-price-card > .fcse-price-card__intra { margin-top: 22px; }

p.fcse-price-card__badge {
	position: absolute;
	top: -13px;
	left: 38px;
	margin: 0;
	padding: 5px 14px;
	border-radius: 999px;
	background: var(--fcse-yellow);
	font-size: 13px;
	font-weight: 600;
	color: var(--fcse-primary);
}

.fcse-price-card p.fcse-kicker { margin-bottom: 10px; }

.fcse-price-card p.fcse-muted {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--fcse-gray);
}

p.fcse-price {
	margin: 0 0 6px;
	font-size: 17px;
	color: var(--fcse-gray);
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}

p.fcse-price strong {
	font-size: 40px;
	font-weight: 600;
	color: var(--fcse-ink);
}

p.fcse-price-sub {
	margin: 0 0 22px;
	font-size: 15px;
	color: var(--fcse-gray);
}

/* Liste à puces « point bleu » */
.fcse-section ul.fcse-checklist {
	list-style: none;
	margin: 0 0 26px;
	padding: 0;
}

.fcse-section ul.fcse-checklist li {
	position: relative;
	margin: 0 0 11px;
	padding-left: 32px;
	font-size: 17px;
	color: var(--fcse-slate);
}

.fcse-section ul.fcse-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50% 50% 50% 10%;
	background: var(--fcse-border);
}

.fcse-section ul.fcse-checklist li::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 9px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--fcse-blue);
}

/* Barre d'aide (« vous ne savez pas quel format choisir ? ») */
.fcse-helpbar {
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
	--fcse-pad: 20px 26px;
	padding: 20px 26px;
	border-radius: 14px;
	background: #fff;
	border: 1px solid var(--fcse-border);
}

.fcse-helpbar p { margin: 0; font-size: 17px; color: var(--fcse-slate); }
.fcse-helpbar p a { font-weight: 600; color: var(--fcse-blue); }
.fcse-helpbar p a:hover { color: var(--fcse-primary); }

.fcse-helpbar--blue {
	max-width: 880px;
	background: var(--fcse-border);
	border: none;
	border-radius: 16px;
	padding: 24px 30px;
	justify-content: space-between;
	margin-top: 30px;
}

.fcse-helpbar--blue p { color: var(--fcse-primary); line-height: 1.6; flex: 1; min-width: 260px; }

/* -------------------------------------------------------------------------
   Comparaison avant / après
   ------------------------------------------------------------------------- */

.fcse-section .wp-block-columns.fcse-compare { gap: 28px; align-items: stretch; }

.fcse-compare__col {
	--fcse-pad: 34px 36px;
	padding: 34px 36px;
	border-radius: 18px;
	background: #F6F8F9;
	border: 1px solid #E3E9EC;
	height: 100%;
}

.fcse-compare__col--after {
	background: var(--fcse-bg);
	border: 1.5px solid var(--fcse-blue-light);
	box-shadow: 0 16px 40px rgba(0, 132, 174, 0.12);
}

.fcse-compare__col p.fcse-kicker { margin-bottom: 18px; }

.fcse-section ul.fcse-list-dash,
.fcse-section ul.fcse-list-dot {
	list-style: none;
	margin: 0;
	padding: 0;
}

.fcse-section ul.fcse-list-dash li {
	position: relative;
	padding: 13px 0 13px 34px;
	border-bottom: 1px solid #E3E9EC;
	font-size: 17px;
	line-height: 1.5;
	color: var(--fcse-gray2);
	margin: 0;
}

.fcse-section ul.fcse-list-dash li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 24px;
	width: 20px;
	height: 2px;
	background: #B9C6CC;
}

.fcse-section ul.fcse-list-dot li {
	position: relative;
	padding: 13px 0 13px 34px;
	border-bottom: 1px solid var(--fcse-border2);
	font-size: 17px;
	line-height: 1.5;
	color: var(--fcse-ink);
	font-weight: 500;
	margin: 0;
}

.fcse-section ul.fcse-list-dot li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 16px;
	width: 20px;
	height: 20px;
	border-radius: 50% 50% 50% 10%;
	background: var(--fcse-border);
}

.fcse-section ul.fcse-list-dot li::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 22px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--fcse-blue);
}

/* Onglets « Ailleurs / Chez nous » injectés par le JS quand les deux
   colonnes s'empilent (≤ 900px). Invisibles au-delà : les colonnes
   restent côte à côte comme sur la maquette desktop. */
.fcse-compare-tabs { display: none; }

@media (max-width: 900px) {
	.fcse-compare-tabs {
		display: flex;
		gap: 8px;
		padding: 5px;
		border-radius: 999px;
		background: var(--fcse-border);
		max-width: 420px;
		margin: 0 auto 18px;
	}

	.fcse-compare-tabs button {
		flex: 1;
		padding: 11px 6px;
		border: none;
		border-radius: 999px;
		background: transparent;
		font-family: var(--fcse-font);
		font-size: 14.5px;
		font-weight: 600;
		color: var(--fcse-slate);
		cursor: pointer;
		transition: all 0.15s ease;
	}

	.fcse-compare-tabs button.is-active {
		background: #fff;
		color: var(--fcse-primary);
		box-shadow: 0 2px 8px rgba(0, 92, 122, 0.12);
	}

	.fcse-compare--tabbed > .wp-block-column.is-tab-hidden { display: none; }
}

/* -------------------------------------------------------------------------
   Section méthode (fond bleu foncé)
   ------------------------------------------------------------------------- */

.fcse-section .wp-block-columns.fcse-methode { gap: 64px; align-items: flex-start; }

.fcse-section--dark .fcse-card { border: none; }
.fcse-section--dark .fcse-card:hover { box-shadow: 0 18px 36px rgba(0, 0, 0, 0.18); }

.fcse-section--dark p.fcse-lead { color: #BFE0EB; }

/* -------------------------------------------------------------------------
   Accordéons (programme + FAQ) — bloc natif core/details
   ------------------------------------------------------------------------- */

.fcse-acc-list {
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.fcse-acc-list--narrow { max-width: 880px; gap: 10px; }

details.fcse-acc {
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--fcse-border);
	overflow: hidden;
	transition: box-shadow 0.2s ease;
	margin: 0;
	padding: 0;
}

details.fcse-acc:hover { box-shadow: 0 12px 28px rgba(0, 92, 122, 0.1); }

details.fcse-acc > summary {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 20px 24px;
	cursor: pointer;
	font-family: var(--fcse-font);
	font-size: 17px;
	font-weight: 500;
	color: var(--fcse-ink);
	line-height: 1.4;
}

details.fcse-acc > summary::-webkit-details-marker { display: none; }

details.fcse-acc > summary::after {
	content: "+";
	flex: none;
	margin-left: auto;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--fcse-border);
	color: var(--fcse-blue);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	font-weight: 600;
}

details.fcse-acc[open] > summary::after { content: "−"; background: var(--fcse-orange); color: #fff; }

details.fcse-acc > :not(summary) {
	margin: 0 24px 0;
	padding: 0 0 8px;
}

details.fcse-acc > p {
	font-size: 17px;
	line-height: 1.7;
	color: var(--fcse-slate);
	padding-bottom: 22px;
}

/* Variante programme : jour + volume horaire dans le titre */
details.fcse-acc--day > summary {
	font-size: 19px;
	padding: 22px 26px;
}

details.fcse-acc--day > summary .fcse-acc__meta {
	color: var(--fcse-blue-light);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

details.fcse-acc ul.fcse-points {
	list-style: none;
	margin: 0 26px 8px;
	padding: 0 0 18px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 28px;
}

details.fcse-acc ul.fcse-points li {
	position: relative;
	padding: 6px 0 6px 28px;
	font-size: 16px;
	line-height: 1.45;
	color: var(--fcse-ink);
	margin: 0;
}

details.fcse-acc ul.fcse-points li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 10px;
	width: 16px;
	height: 16px;
	border-radius: 50% 50% 50% 10%;
	background: var(--fcse-border);
}

details.fcse-acc ul.fcse-points li::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 15px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--fcse-blue);
}

details.fcse-acc p.fcse-week-note {
	display: inline-block;
	margin: 0 26px 22px;
	padding: 12px 16px;
	font-size: 15px;
}

/* -------------------------------------------------------------------------
   Panneau équipe
   ------------------------------------------------------------------------- */

.fcse-panel {
	--fcse-pad: 44px;
	padding: 44px;
	border-radius: 22px;
	background: var(--fcse-bg);
	border: 1px solid var(--fcse-border);
}

.fcse-panel .wp-block-columns { gap: 48px; align-items: center; margin-bottom: 36px; }
.fcse-panel .fcse-cards { gap: 18px; }

/* -------------------------------------------------------------------------
   Bandeau CTA (fond crème)
   ------------------------------------------------------------------------- */

.fcse-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	flex-wrap: wrap;
	--fcse-pad: 34px 44px;
	padding: 34px 44px;
	border-radius: 20px;
	background: var(--fcse-cream);
	border: 1px solid var(--fcse-cream-border);
}

.fcse-banner__text { flex: 1; min-width: 280px; }

.fcse-banner__text p { margin: 0; font-size: 17px; color: var(--fcse-gold-dark); }

.fcse-banner__text p.fcse-banner__title {
	margin-bottom: 6px;
	font-size: 22px;
	font-weight: 600;
	color: var(--fcse-primary);
}

/* -------------------------------------------------------------------------
   Témoignages
   ------------------------------------------------------------------------- */

.fcse-testimonial {
	--fcse-pad: 30px;
	padding: 30px;
	border-radius: 18px;
	background: #fff;
	border: 1px solid var(--fcse-border);
}

.fcse-testimonial::before {
	content: "”";
	display: block;
	font-size: 32px;
	line-height: 1;
	color: var(--fcse-yellow);
	margin-bottom: 14px;
}

.fcse-testimonial p { margin: 0; }

.fcse-testimonial p.fcse-testimonial__stars {
	margin: 0 0 10px;
	color: var(--fcse-yellow);
	font-size: 16px;
	letter-spacing: 3px;
}

.fcse-testimonial p.fcse-testimonial__quote {
	font-size: 16px;
	line-height: 1.7;
	color: var(--fcse-slate);
	margin-bottom: 18px;
}

.fcse-testimonial p.fcse-testimonial__who {
	font-size: 15px;
	color: var(--fcse-ink);
	font-weight: 500;
}

.fcse-testimonial p.fcse-testimonial__role {
	font-size: 14px;
	color: var(--fcse-gray);
}

/* -------------------------------------------------------------------------
   Section devis (fond bleu foncé)
   ------------------------------------------------------------------------- */

.fcse-section .wp-block-columns.fcse-devis { gap: 64px; align-items: flex-start; }

.fcse-section ul.fcse-dots {
	list-style: none;
	margin: 0 0 30px;
	padding: 0;
}

.fcse-section ul.fcse-dots li {
	position: relative;
	margin: 0 0 14px;
	padding-left: 26px;
	font-size: 17px;
	color: #fff;
}

.fcse-section ul.fcse-dots li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 7px;
	width: 12px;
	height: 12px;
	border-radius: 50% 50% 50% 10%;
	background: var(--fcse-yellow);
}

.fcse-section ul.fcse-dots li:nth-child(2)::before { border-radius: 10% 50% 50% 50%; background: #F9AB59; }
.fcse-section ul.fcse-dots li:nth-child(3)::before { border-radius: 50% 10% 50% 50%; background: var(--fcse-blue-light); }

.fcse-phone-card {
	--fcse-pad: 22px 24px;
	padding: 22px 24px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.08);
	max-width: 440px;
}

.fcse-phone-card p { margin: 0 0 12px; font-size: 15px; color: #BFE0EB; }

.fcse-phone-card p.fcse-phone-card__title {
	font-size: 17px;
	font-weight: 600;
	color: #fff;
}

.fcse-phone-card p:last-child { margin-bottom: 0; }
.fcse-phone-card .wp-block-buttons { margin-bottom: 12px; }

.fcse-form-card {
	--fcse-pad: 32px;
	padding: 32px;
	border-radius: 20px;
	background: #fff;
	/* Cible du scroll après choix d'une session : on vise la carte
	   formulaire, pas la section (sinon on atterrit sur les arguments). */
	scroll-margin-top: 84px;
}

/* La carte de devis n'affiche pas de titre : le visiteur y arrive depuis
   le H2 de la section (ou un bouton « Demander un devis »), l'intitulé
   était une redite. Le titre du formulaire Gravity Forms est déjà coupé au
   rendu ; cette règle neutralise l'ancien H3 « Demander un devis » encore
   présent dans les pages créées avant, que le verrou contentOnly de la
   section empêche de supprimer dans l'éditeur. */
.fcse-form-card h3.fcse-h3 { display: none; }

/* Même chose pour le titre que Gravity Forms imprime lui-même : notre
   bloc « Formulaire » le coupe au rendu (title="false"), mais une carte
   où le formulaire a été posé avec le bloc de Gravity Forms le ramène.
   La règle est limitée à la carte de devis : les formulaires du reste du
   site gardent leur titre. */
.fcse-form-card .gform_title { display: none; }

.fcse-section p.fcse-form-hint,
.fcse-form-card p.fcse-form-hint {
	margin: 0 0 14px;
	--fcse-pad: 14px;
	padding: 14px;
	border-radius: 10px;
	background: var(--fcse-bg);
	border: 1px dashed var(--fcse-border3);
	font-size: 14px;
	line-height: 1.6;
	color: var(--fcse-gray);
	font-style: italic;
}

/* Un formulaire par format (bloc « Formulaire ») : les deux sont dans la
   page, seul celui du format choisi est affiché. Le format par défaut est
   posé au rendu, le JS prend le relais au clic — pas de formulaire qui
   clignote au chargement. Dans l'éditeur, les deux portent la classe
   is-active : on doit pouvoir les régler tous les deux. */
.fcse-forms .fcse-form { display: none; }
.fcse-forms .fcse-form.is-active { display: block; }

.fcse-form-card p.fcse-form-footnote {
	margin: 14px 0 0;
	font-size: 13px;
	line-height: 1.6;
	color: var(--fcse-gray3);
	text-align: center;
}

/* -------------------------------------------------------------------------
   Devis en 2 étapes (progressif, activé par le JS quand la carte contient
   à la fois le choix de session et un formulaire)
   ------------------------------------------------------------------------- */

.fcse-steps {
	display: flex;
	gap: 8px;
	margin: 0 0 18px;
}

.fcse-steps__step { flex: 1; }

.fcse-steps__bar {
	height: 4px;
	border-radius: 2px;
	background: var(--fcse-border);
	margin-bottom: 6px;
	transition: background 0.2s ease;
}

.fcse-steps__step.is-current .fcse-steps__bar,
.fcse-steps__step.is-done .fcse-steps__bar { background: var(--fcse-orange); }

.fcse-steps__label {
	font-size: 11px;
	font-weight: 600;
	color: var(--fcse-gray3);
}

.fcse-steps__step.is-current .fcse-steps__label,
.fcse-steps__step.is-done .fcse-steps__label { color: var(--fcse-orange-dark); }

/* Étape 1 : le formulaire est masqué ; étape 2 : le choix est masqué.
   !important assumé : les plugins de formulaire réaffichent leur conteneur
   par un style inline (Gravity Forms fait un jQuery.show() au chargement),
   qui l'emporterait sur ces règles et ramènerait le formulaire à l'étape 1. */
.fcse-wizard[data-fcse-step="1"] .fcse-wizard-hide-1 { display: none !important; }
.fcse-wizard[data-fcse-step="2"] .fcse-wizard-hide-2 { display: none !important; }

button.fcse-wizard-next {
	display: block;
	width: 100%;
	margin-top: 16px;
	padding: 15px 30px;
	border: none;
	border-radius: 999px;
	background: var(--fcse-orange);
	color: #fff;
	font-family: var(--fcse-font);
	font-size: 17px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 10px 24px rgba(246, 135, 18, 0.3);
	transition: all 0.18s ease;
}

button.fcse-wizard-next:hover { background: var(--fcse-orange-dark); transform: translateY(-2px); }

button.fcse-wizard-back {
	display: inline-block;
	margin: 0 0 14px;
	padding: 0;
	border: none;
	background: none;
	font-family: var(--fcse-font);
	font-size: 14px;
	font-weight: 600;
	color: var(--fcse-blue);
	cursor: pointer;
}

button.fcse-wizard-back:hover { color: var(--fcse-primary); }

/* Tarif total estimé (nombre de participants × prix par participant). */
p.fcse-total {
	margin: 14px 0 0;
	padding: 12px 14px;
	border-radius: 10px;
	background: var(--fcse-cream);
	font-size: 14.5px;
	color: var(--fcse-gold-dark);
}

p.fcse-total strong { color: var(--fcse-primary); font-size: 16px; }

/* -------------------------------------------------------------------------
   Gravity Forms — champs accordés au design system
   ------------------------------------------------------------------------- */

/* Variables du thème Orbital (GF 2.7+) quand il est actif. */
.fcse-section .gform_wrapper {
	--gf-color-primary: var(--fcse-blue);
	--gf-color-primary-contrast: #fff;
	--gf-ctrl-border-color: var(--fcse-border3);
	--gf-ctrl-radius: 10px;
	--gf-ctrl-shadow: none;
	font-family: var(--fcse-font);
}

.fcse-section .gform_wrapper .gform_fields {
	grid-row-gap: 16px;
	row-gap: 16px;
}

/* Libellés */
.fcse-section .gform_wrapper .gfield_label,
.fcse-section .gform_wrapper legend.gfield_label,
.fcse-section .gform_wrapper .gform-field-label {
	font-family: var(--fcse-font);
	font-size: 14px;
	font-weight: 600;
	color: var(--fcse-primary);
	margin-bottom: 6px;
}

.fcse-section .gform_wrapper .gfield_required { color: var(--fcse-orange); }

/* Champs de saisie */
.fcse-section .gform_wrapper input[type="text"],
.fcse-section .gform_wrapper input[type="email"],
.fcse-section .gform_wrapper input[type="tel"],
.fcse-section .gform_wrapper input[type="number"],
.fcse-section .gform_wrapper input[type="url"],
.fcse-section .gform_wrapper input[type="date"],
.fcse-section .gform_wrapper select,
.fcse-section .gform_wrapper textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--fcse-border3);
	border-radius: 10px;
	background: #fff;
	font-family: var(--fcse-font);
	font-size: 15px;
	line-height: 1.4;
	color: var(--fcse-ink);
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.fcse-section .gform_wrapper input::placeholder,
.fcse-section .gform_wrapper textarea::placeholder { color: var(--fcse-gray3); }

.fcse-section .gform_wrapper input:focus,
.fcse-section .gform_wrapper select:focus,
.fcse-section .gform_wrapper textarea:focus {
	outline: none;
	border-color: var(--fcse-blue);
	box-shadow: 0 0 0 3px rgba(0, 132, 174, 0.14);
}

.fcse-section .gform_wrapper textarea { min-height: 110px; resize: vertical; }

/* Cases à cocher / boutons radio */
.fcse-section .gform_wrapper input[type="checkbox"],
.fcse-section .gform_wrapper input[type="radio"] {
	accent-color: var(--fcse-blue);
	width: 17px;
	height: 17px;
}

.fcse-section .gform_wrapper .gfield_checkbox label,
.fcse-section .gform_wrapper .gfield_radio label,
.fcse-section .gform_wrapper .gfield_consent_label {
	font-family: var(--fcse-font);
	font-size: 14px;
	font-weight: 400;
	color: var(--fcse-slate);
}

/* Descriptions sous les champs */
.fcse-section .gform_wrapper .gfield_description {
	font-size: 13px;
	line-height: 1.5;
	color: var(--fcse-gray);
}

/* Bouton envoyer : même style que les boutons fcse-btn--primary. */
.fcse-section .gform_wrapper .gform_footer { margin-top: 6px; padding: 0; }

.fcse-section .gform_wrapper .gform_footer input[type="submit"],
.fcse-section .gform_wrapper .gform_footer button,
.fcse-section .gform_wrapper .gform_button {
	width: 100%;
	padding: 15px 30px;
	border: none;
	border-radius: 999px;
	background: var(--fcse-orange);
	color: #fff;
	font-family: var(--fcse-font);
	font-size: 17px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 10px 24px rgba(246, 135, 18, 0.3);
	transition: all 0.18s ease;
}

.fcse-section .gform_wrapper .gform_footer input[type="submit"]:hover,
.fcse-section .gform_wrapper .gform_footer button:hover,
.fcse-section .gform_wrapper .gform_button:hover {
	background: var(--fcse-orange-dark);
	transform: translateY(-2px);
}

/* Validation : messages discrets, dans la charte. */
.fcse-section .gform_wrapper .gfield_error input,
.fcse-section .gform_wrapper .gfield_error select,
.fcse-section .gform_wrapper .gfield_error textarea { border-color: #D4553F; }

.fcse-section .gform_wrapper .gfield_validation_message,
.fcse-section .gform_wrapper .validation_message {
	margin-top: 6px;
	padding: 8px 12px;
	border: 1px solid #F3CDC2;
	border-radius: 8px;
	background: #FDF2EE;
	font-family: var(--fcse-font);
	font-size: 13px;
	color: #B5432F;
}

.fcse-section .gform_wrapper .gform_validation_errors {
	border-radius: 12px;
	padding: 14px 18px;
}

/* Message de confirmation après envoi. */
.fcse-section .gform_confirmation_message {
	font-family: var(--fcse-font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--fcse-primary);
}

/* -------------------------------------------------------------------------
   Contact Form 7 — champs accordés au design system (mêmes règles que GF)
   ------------------------------------------------------------------------- */

.fcse-section .wpcf7 { font-family: var(--fcse-font); }

.fcse-section .wpcf7 form > p { margin: 0 0 16px; }

.fcse-section .wpcf7 label {
	display: block;
	font-family: var(--fcse-font);
	font-size: 14px;
	font-weight: 600;
	color: var(--fcse-primary);
	margin-bottom: 6px;
}

.fcse-section .wpcf7 input[type="text"],
.fcse-section .wpcf7 input[type="email"],
.fcse-section .wpcf7 input[type="tel"],
.fcse-section .wpcf7 input[type="number"],
.fcse-section .wpcf7 input[type="url"],
.fcse-section .wpcf7 input[type="date"],
.fcse-section .wpcf7 select,
.fcse-section .wpcf7 textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--fcse-border3);
	border-radius: 10px;
	background: #fff;
	font-family: var(--fcse-font);
	font-size: 15px;
	line-height: 1.4;
	color: var(--fcse-ink);
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.fcse-section .wpcf7 input::placeholder,
.fcse-section .wpcf7 textarea::placeholder { color: var(--fcse-gray3); }

.fcse-section .wpcf7 input:focus,
.fcse-section .wpcf7 select:focus,
.fcse-section .wpcf7 textarea:focus {
	outline: none;
	border-color: var(--fcse-blue);
	box-shadow: 0 0 0 3px rgba(0, 132, 174, 0.14);
}

.fcse-section .wpcf7 textarea { min-height: 110px; resize: vertical; }

.fcse-section .wpcf7 input[type="checkbox"],
.fcse-section .wpcf7 input[type="radio"] {
	accent-color: var(--fcse-blue);
	width: 17px;
	height: 17px;
}

.fcse-section .wpcf7 input[type="submit"],
.fcse-section .wpcf7 .wpcf7-submit {
	width: 100%;
	padding: 15px 30px;
	border: none;
	border-radius: 999px;
	background: var(--fcse-orange);
	color: #fff;
	font-family: var(--fcse-font);
	font-size: 17px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 10px 24px rgba(246, 135, 18, 0.3);
	transition: all 0.18s ease;
}

.fcse-section .wpcf7 input[type="submit"]:hover,
.fcse-section .wpcf7 .wpcf7-submit:hover {
	background: var(--fcse-orange-dark);
	transform: translateY(-2px);
}

.fcse-section .wpcf7 .wpcf7-spinner { display: block; margin: 8px auto 0; }

.fcse-section .wpcf7 .wpcf7-not-valid-tip {
	margin-top: 6px;
	padding: 8px 12px;
	border: 1px solid #F3CDC2;
	border-radius: 8px;
	background: #FDF2EE;
	font-family: var(--fcse-font);
	font-size: 13px;
	color: #B5432F;
}

.fcse-section .wpcf7 .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 16px;
	border-radius: 12px;
	border: 1px solid var(--fcse-border2);
	background: var(--fcse-bg);
	font-family: var(--fcse-font);
	font-size: 14px;
	line-height: 1.6;
	color: var(--fcse-primary);
}

.fcse-section .wpcf7 form.invalid .wpcf7-response-output,
.fcse-section .wpcf7 form.failed .wpcf7-response-output {
	border-color: #F3CDC2;
	background: #FDF2EE;
	color: #B5432F;
}

.fcse-section .wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--fcse-cream-border);
	background: var(--fcse-cream);
	color: var(--fcse-gold-dark);
}

/* -------------------------------------------------------------------------
   Sessions ([fcse_sessions]) : sélecteur + popup « Choisir mes dates »
   ------------------------------------------------------------------------- */

.fcse-sessions {
	margin-bottom: 18px;
	padding: 18px;
	border-radius: 14px;
	background: var(--fcse-bg);
	border: 1px solid var(--fcse-border2);
}

/* Sélecteur de format : Inter-CSE (dates + formulaire) / Intra (formulaire) */
p.fcse-format__label {
	margin: 0 0 8px;
	font-size: 14px;
	font-weight: 500;
	color: var(--fcse-slate);
}

.fcse-format {
	display: flex;
	gap: 10px;
	margin-bottom: 4px;
}

.fcse-format__opt {
	flex: 1;
	text-align: center;
	padding: 24px 18px 24px 18px;
	border-radius: 999px;
	border: 1.5px solid var(--fcse-border2);
	background: #fff;
	font-family: var(--fcse-font);
	font-size: 15px;
	font-weight: 600;
	color: var(--fcse-slate);
	cursor: pointer;
	transition: all 0.15s ease;
}

.fcse-format__opt:hover { border-color: var(--fcse-blue-light); }

/* Format que la formation ne propose pas (métabox « Formats proposés ») :
   masqué côté serveur, ou par le JS sur le devis multi-formations. */
.fcse-format__opt[hidden] { display: none; }

/* Un seul format proposé : plus rien à choisir, la pastille n'est qu'un
   rappel — elle ne prend plus toute la largeur et ne réagit pas au survol. */
.fcse-format--single .fcse-format__opt {
	flex: 0 1 auto;
	padding: 24px 18px 24px 18px;
	cursor: default;
	border-color: var(--fcse-blue);
	background: var(--fcse-bg);
	color: var(--fcse-primary);
}

/* Devis multi-formations (accueil) : le format reste rendu en <button>,
   parce que la formation suivante peut de nouveau en proposer deux. La
   pastille restée seule garde alors la largeur qu'elle a dans le duo —
   sinon le bloc changeait de taille à chaque changement de formation. */
.fcse-format--single button.fcse-format__opt {
	flex: 0 0 calc(50% - 5px);
	padding: 24px 18px 24px 18px;
}

p.fcse-format__hint {
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--fcse-gray2);
}

.fcse-format__opt.is-selected {
	border-color: var(--fcse-blue);
	background: var(--fcse-bg);
	color: var(--fcse-primary);
}

.fcse-sessions__picker { margin-top: 14px; }

/* Format Intra : on masque le choix des dates. */
.fcse-sessions--intra .fcse-sessions__picker { display: none; }

/* Choix de la formation ([fcse_sessions choix_formation="1"]) : un picker
   de dates par formation, seul celui de la formation active est visible. */
.fcse-sessions--choice .fcse-sessions__picker { display: none; }
.fcse-sessions--choice .fcse-sessions__picker.is-active { display: block; }
.fcse-sessions--intra .fcse-sessions__picker.is-active { display: none; }

.fcse-frows {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin-bottom: 14px;
}

.fcse-frow {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 13px 15px;
	border-radius: 12px;
	border: 1.5px solid var(--fcse-border2);
	background: #fff;
	cursor: pointer;
	transition: all 0.15s ease;
	font-family: var(--fcse-font);
}

.fcse-frow:hover { border-color: var(--fcse-blue-light); }

.fcse-frow.is-selected {
	border-color: var(--fcse-orange);
	background: var(--fcse-peach);
}

.fcse-frow__dot {
	flex: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2px solid var(--fcse-border3);
	position: relative;
}

.fcse-frow.is-selected .fcse-frow__dot { border-color: var(--fcse-orange); }

.fcse-frow.is-selected .fcse-frow__dot::after {
	content: "";
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: var(--fcse-orange);
}

.fcse-frow__main {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.fcse-frow__main strong {
	font-size: 15.5px;
	font-weight: 600;
	color: var(--fcse-ink);
}

.fcse-frow__main small {
	font-size: 13px;
	color: var(--fcse-gray);
	line-height: 1.4;
}

/* Aperçu des prochaines sessions (carte tarif de l'accueil). */
.fcse-sessions--apercu {
	margin-bottom: 22px;
	padding: 16px;
}

.fcse-sessions--apercu .fcse-srow { padding: 10px 12px; }

/* Champs techniques du formulaire (session/format choisis) : remplis par le
   script, invisibles pour le visiteur. La valeur est bien envoyée — un champ
   en display:none reste soumis avec le formulaire. Gravity Forms : champ
   Texte avec la classe CSS « fcse-session » / « fcse-format » (onglet
   Apparence). WPForms : idem via les classes CSS du champ. */
.gfield.fcse-session,
.gfield.fcse-format,
.gfield.fcse-formation,
.gform-field.fcse-session,
.gform-field.fcse-format,
.gform-field.fcse-formation,
.wpforms-field.fcse-session,
.wpforms-field.fcse-format,
.wpforms-field.fcse-formation {
	display: none !important;
}

p.fcse-sessions__title {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 600;
	color: var(--fcse-primary);
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
}

p.fcse-sessions__title span {
	font-size: 13px;
	font-weight: 400;
	color: var(--fcse-gray);
}

.fcse-sessions__list {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.fcse-srow {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 13px 15px;
	border-radius: 12px;
	border: 1.5px solid var(--fcse-border2);
	background: #fff;
	cursor: pointer;
	transition: all 0.15s ease;
	font-family: var(--fcse-font);
}

.fcse-srow:hover:not(.fcse-srow--full) { border-color: var(--fcse-blue-light); }

.fcse-srow--full { cursor: default; opacity: 0.6; }

/* Ligne « Une autre date » : pour ceux à qui aucune session ne convient. */
.fcse-srow--other { border-style: dashed; background: var(--fcse-bg); }
.fcse-srow--other.is-selected { border-style: solid; background: var(--fcse-peach); }
.fcse-srow--other .fcse-srow__main strong { color: var(--fcse-primary); }

.fcse-srow.is-selected {
	border-color: var(--fcse-orange);
	background: var(--fcse-peach);
}

.fcse-srow__dot {
	flex: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2px solid var(--fcse-border3);
	position: relative;
}

.fcse-srow.is-selected .fcse-srow__dot { border-color: var(--fcse-orange); }

.fcse-srow.is-selected .fcse-srow__dot::after {
	content: "";
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: var(--fcse-orange);
}

.fcse-srow__main {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.fcse-srow__main strong {
	font-size: 15.5px;
	font-weight: 600;
	color: var(--fcse-ink);
}

.fcse-srow__main small {
	font-size: 13px;
	color: var(--fcse-gray);
	line-height: 1.4;
}

.fcse-srow__main small.fcse-srow__format {
	color: var(--fcse-blue);
	font-weight: 500;
}

.fcse-srow__tag {
	flex: none;
	font-size: 12px;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 999px;
}

.fcse-srow__tag--open { background: var(--fcse-border); color: var(--fcse-blue); }
.fcse-srow__tag--last { background: var(--fcse-peach); color: var(--fcse-orange-dark); }
.fcse-srow__tag--full { background: #EDF0F2; color: var(--fcse-gray3); }

p.fcse-sessions__hint,
p.fcse-sessions__empty {
	margin: 12px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--fcse-gray);
}

p.fcse-sessions__empty { margin: 0; font-size: 14px; }

/* Popup natif <dialog> */
.fcse-modal {
	width: min(560px, calc(100vw - 40px));
	max-height: min(80vh, 720px);
	overflow-y: auto;
	padding: 26px;
	border: none;
	border-radius: 20px;
	box-shadow: 0 30px 80px rgba(0, 44, 60, 0.35);
	font-family: var(--fcse-font);
	color: var(--fcse-ink);
}

.fcse-modal::backdrop {
	background: rgba(0, 44, 60, 0.55);
	backdrop-filter: blur(2px);
}

.fcse-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 16px;
}

p.fcse-modal__title {
	margin: 0;
	font-size: 20px;
	font-weight: 600;
	color: var(--fcse-primary);
}

.fcse-modal__close {
	flex: none;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: none;
	background: var(--fcse-border);
	color: var(--fcse-primary);
	font-size: 15px;
	cursor: pointer;
}

.fcse-modal__close:hover { background: var(--fcse-border3); }

/* -------------------------------------------------------------------------
   Ressources
   ------------------------------------------------------------------------- */

.fcse-res-card {
	display: flex;
	flex-direction: column;
	--fcse-pad: 26px;
	padding: 26px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--fcse-border);
	transition: all 0.2s ease;
	height: 100%;
}

.fcse-res-card:hover {
	box-shadow: 0 14px 32px rgba(0, 92, 122, 0.12);
	border-color: var(--fcse-border3);
}

p.fcse-res-card__cat {
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fcse-blue);
}

p.fcse-res-card__cat--orange { color: var(--fcse-orange); }

p.fcse-res-card__title {
	margin: 0 0 10px;
	font-size: 19px;
	font-weight: 600;
	color: var(--fcse-primary);
	line-height: 1.35;
	text-wrap: pretty;
}

p.fcse-res-card__summary {
	margin: 0 0 18px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--fcse-slate);
	flex: 1;
}

p.fcse-res-card__more { margin: 0; font-size: 15px; font-weight: 600; }
p.fcse-res-card__more a { color: var(--fcse-blue); }
p.fcse-res-card__more a:hover { color: var(--fcse-primary); }

/* -------------------------------------------------------------------------
   Grille formations (accueil)
   ------------------------------------------------------------------------- */

.fcse-formation-card {
	display: flex;
	flex-direction: column;
	--fcse-pad: 30px 28px;
	padding: 30px 28px;
	border-radius: 18px;
	background: #fff;
	border: 1px solid var(--fcse-border);
	box-shadow: 0 4px 18px rgba(0, 92, 122, 0.06);
	transition: all 0.2s ease;
	height: 100%;
}

.fcse-formation-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px rgba(0, 92, 122, 0.13);
	border-color: var(--fcse-blue-light);
}

.fcse-formation-card p.fcse-card__text { flex: 1; margin-bottom: 18px; }

/* Le bouton reste en bas de carte même sans texte de description : c'est
   le paragraphe (flex: 1) qui poussait le CTA, une formation sans extrait
   voyait donc son bouton remonter au milieu, désaligné des autres. */
.fcse-formation-card > .wp-block-buttons { margin-top: auto; }

/* -------------------------------------------------------------------------
   Page de confirmation (après envoi d'un formulaire)
   D'après les maquettes « Page confirmation devis » desktop et mobile.
   ------------------------------------------------------------------------- */

/* Pastille de validation : le mécanisme d'icône des sections (masque CSS,
   aucun SVG dans le contenu), en grand et en rond. */
.wp-block-spacer.fcse-icon--hero {
	height: 74px !important;
	width: 74px;
	border-radius: 50%;
	margin: 0 auto 26px;
}

.wp-block-spacer.fcse-icon--hero::after { inset: 19px; }

.fcse-icon--check { --fcse-icon-shape: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 12.4l4.6 4.6L19.5 6.6'/></svg>"); }

.fcse-confirm-actions { justify-content: center; gap: 14px; }

/* Les deux cartes de suivi : un peu plus étroites que la pleine largeur
   des sections, comme la maquette.

   En grille et non en colonnes flex : avec une gouttière, deux largeurs
   qui totalisent 100 % débordent et la seconde colonne passe à la ligne.
   La grille répartit l'espace restant, les proportions sont tenues. */
.fcse-section .wp-block-columns.fcse-confirm-cols {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	gap: 24px;
	align-items: start;
	max-width: 1080px;
	margin: 0 auto;
}

.fcse-suivi-card {
	--fcse-pad: 34px 36px;
	padding: 34px 36px;
	border-radius: 20px;
	background: #fff;
	border: 1px solid var(--fcse-border);
	box-shadow: 0 4px 18px rgba(0, 92, 122, 0.06);
}

.fcse-suivi-card p.fcse-kicker { margin-bottom: 20px; }

/* Étapes numérotées. À ne pas confondre avec .fcse-steps, la barre de
   progression du devis : ici c'est le déroulé de ce qui suit l'envoi.
   Le numéro vient d'un compteur CSS — on peut donc ajouter, retirer ou
   déplacer une étape dans l'éditeur sans avoir à renuméroter. */
.fcse-section ul.fcse-etapes {
	list-style: none;
	counter-reset: fcse-etape;
	margin: 0;
	padding: 0;
}

.fcse-section ul.fcse-etapes li {
	position: relative;
	margin: 0;
	padding: 0 0 22px 52px;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--fcse-gray);
}

.fcse-section ul.fcse-etapes li:last-child { padding-bottom: 0; }

.fcse-section ul.fcse-etapes li strong {
	display: block;
	margin-bottom: 4px;
	font-size: 18px;
	font-weight: 500;
	color: var(--fcse-ink);
}

.fcse-section ul.fcse-etapes li::before {
	counter-increment: fcse-etape;
	content: counter(fcse-etape);
	position: absolute;
	left: 0;
	top: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 11px 11px 11px 3px;
	background: var(--fcse-border);
	color: var(--fcse-blue);
	font-size: 15px;
	font-weight: 600;
}

/* Filet de liaison d'une étape à la suivante. */
.fcse-section ul.fcse-etapes li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 16px;
	top: 40px;
	bottom: 6px;
	width: 2px;
	background: var(--fcse-border);
}

.fcse-suivi-card .fcse-note-box {
	--fcse-pad: 16px 18px;
	padding: 16px 18px;
	height: auto;
	border-radius: 12px;
}

.fcse-suivi-card .fcse-note-box p { font-size: 15.5px; line-height: 1.6; }

.fcse-etapes + .fcse-note-box { margin-top: 22px; }

/* Contact direct : la seule surface sombre de la page, pour ceux qui ne
   veulent pas attendre le rappel. */
.fcse-contact-card {
	--fcse-pad: 30px 32px;
	padding: 30px 32px;
	border-radius: 20px;
	background: var(--fcse-primary);
	color: #fff;
}

.fcse-contact-card p { margin: 0 0 20px; font-size: 16px; line-height: 1.65; color: #BFE0EB; }
.fcse-contact-card p.fcse-kicker { margin-bottom: 12px; }

.fcse-contact-card p.fcse-contact-card__title {
	margin: 0 0 14px;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.35;
	color: #fff;
}

.fcse-contact-card .wp-block-buttons { margin-bottom: 10px; }
.fcse-contact-card .wp-block-buttons:last-child { margin-bottom: 0; }

.fcse-team-card {
	--fcse-pad: 26px 28px;
	padding: 26px 28px;
	border-radius: 20px;
	background: var(--fcse-bg);
	border: 1px solid var(--fcse-border2);
}

.fcse-contact-card + .fcse-team-card { margin-top: 20px; }

.fcse-team-card p.fcse-team-card__title {
	margin: 0 0 14px;
	font-size: 15px;
	font-weight: 600;
	color: var(--fcse-primary);
}

/* .fcse-dots est prévue pour le fond bleu foncé (texte blanc, pastilles de
   trois couleurs) : sur cette carte claire, encre lisible et pastilles
   toutes jaunes, comme la maquette. */
.fcse-section .fcse-team-card ul.fcse-dots { margin-bottom: 0; }

.fcse-section .fcse-team-card ul.fcse-dots li {
	margin-bottom: 10px;
	padding-left: 23px;
	font-size: 15.5px;
	line-height: 1.55;
	color: var(--fcse-slate);
}

.fcse-section .fcse-team-card ul.fcse-dots li:last-child { margin-bottom: 0; }

.fcse-section .fcse-team-card ul.fcse-dots li::before,
.fcse-section .fcse-team-card ul.fcse-dots li:nth-child(2)::before,
.fcse-section .fcse-team-card ul.fcse-dots li:nth-child(3)::before {
	top: 6px;
	width: 11px;
	height: 11px;
	border-radius: 50% 50% 50% 10%;
	background: var(--fcse-yellow);
}

/* La note de bas de section devient une barre : sur une page où il n'y a
   plus rien à faire, c'est la dernière porte de sortie, elle mérite d'être
   vue. */
p.fcse-note--bar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	--fcse-pad: 20px 26px;
	padding: 20px 26px;
	border-radius: 14px;
	background: #fff;
	border: 1px solid var(--fcse-border2);
	font-size: 16.5px;
	color: var(--fcse-slate);
	text-align: center;
}

/* -------------------------------------------------------------------------
   Responsive — d'après la maquette mobile 390px
   ------------------------------------------------------------------------- */

/* ── Tablette (≤ 1024px) ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.fcse-section,
	.entry-content div.fcse-section { padding: 60px 32px; }
	.fcse-section--slim,
	.entry-content div.fcse-section--slim { padding-top: 22px; padding-bottom: 22px; }

	.fcse-cards--4 { grid-template-columns: repeat(2, 1fr); }
	.fcse-cards--3 { grid-template-columns: repeat(2, 1fr); }

	/* Trois cartes plus leurs intervalles ne tiennent plus en rangée : on
	   empile, et l'intervalle devient une ligne entre deux cartes. */
	.fcse-liens--3 { grid-template-columns: 1fr; gap: 14px; }
	.fcse-liens--3 .fcse-lien:not(.fcse-lien--duree) { display: none; }
	.fcse-liens--3 .fcse-lien--duree { min-width: 0; padding: 0; }
	.fcse-liens--3 .fcse-lien__trait { display: none; }
	h1.fcse-h1 { font-size: 32px; }

	/* Colonnes asymétriques (55/45, 38/62, 66/34) : trop étroites en
	   tablette, on les empile dès maintenant. Le !important est nécessaire
	   pour battre le flex-basis inline posé par Gutenberg. */
	.fcse-section .wp-block-columns.fcse-hero,
	.fcse-section .wp-block-columns.fcse-methode,
	.fcse-section .wp-block-columns.fcse-devis,
	.fcse-section .wp-block-columns.fcse-ssct,
	.fcse-panel .wp-block-columns {
		flex-wrap: wrap;
		gap: 28px;
	}

	.fcse-section .wp-block-columns.fcse-hero > .wp-block-column,
	.fcse-section .wp-block-columns.fcse-methode > .wp-block-column,
	.fcse-section .wp-block-columns.fcse-devis > .wp-block-column,
	.fcse-section .wp-block-columns.fcse-ssct > .wp-block-column,
	.fcse-panel .wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
		flex-grow: 1;
	}

	/* Visuels des colonnes empilées : largeur contenue, centrés. */
	.fcse-hero .fcse-hero__media,
	.fcse-hero .wp-block-image.fcse-media,
	.fcse-hero .fcse-photo-ph {
		max-width: 560px;
		margin-left: auto;
		margin-right: auto;
	}

	/* La carte flottante reste dans l'écran une fois la colonne empilée. */
	.fcse-float-card { left: -12px; }

	.fcse-panel .wp-block-image.fcse-media,
	.fcse-panel .fcse-photo-ph {
		max-width: 480px;
		margin-left: auto;
		margin-right: auto;
	}

	/* Cartes tarifs encore côte à côte ici : padding réduit. */
	.fcse-price-card {
		--fcse-pad: 30px 26px;
		padding: 30px 26px;
	}

	.fcse-compare__col {
		--fcse-pad: 28px 24px;
		padding: 28px 24px;
	}

	/* Bandeau de confiance : les séparateurs se décalent quand ça
	   replie — on les retire. */
	.fcse-trustbar p + p::before { display: none; }
	.fcse-trust-item + .fcse-trust-item::before { display: none; }
	.fcse-trust-item { gap: 12px; padding-inline: 10px; }
	.fcse-trust-item p { font-size: 15.5px; }
	.fcse-trust-item .wp-block-image { width: 88px; height: 50px; }
}

/* ── Petite tablette (≤ 900px) : tarifs et comparaison s'empilent ────── */
@media (max-width: 900px) {
	.fcse-section .wp-block-columns.fcse-pricing,
	.fcse-section .wp-block-columns.fcse-compare {
		flex-wrap: wrap;
		gap: 20px;
	}

	.fcse-section .wp-block-columns.fcse-pricing > .wp-block-column,
	.fcse-section .wp-block-columns.fcse-compare > .wp-block-column {
		flex-basis: 100% !important;
		flex-grow: 1;
	}

	.fcse-price-card {
		--fcse-pad: 34px 30px;
		padding: 34px 30px;
	}
}

@media (max-width: 781px) {
	/* WP empile les colonnes sous 782px ; on adapte le reste. */
	.fcse-section,
	.entry-content div.fcse-section { padding: 48px 20px; scroll-margin-top: 70px; }
	.fcse-section--slim,
	.entry-content div.fcse-section--slim { padding-top: 18px; padding-bottom: 18px; }

	h1.fcse-h1 { font-size: 28px; }
	h2.fcse-h2 { font-size: 23px; }
	p.fcse-lead { font-size: 16px; }
	p.fcse-quote { font-size: 17px; }

	.fcse-cards--2,
	.fcse-cards--3,
	.fcse-cards--4 { grid-template-columns: 1fr; gap: 14px; }

	/* En colonne, l'intervalle n'est plus un trait horizontal entre deux
	   cartes mais une simple ligne de texte entre elles — le rail de la
	   timeline assure déjà la continuité. */
	.fcse-lien:not(.fcse-lien--duree) { display: none; }
	.fcse-lien--duree { min-width: 0; padding: 0; }
	.fcse-lien__trait { display: none; }

	.fcse-intro { margin-bottom: 32px; }

	/* Chiffres du hero : compactés sur une ligne. */
	.fcse-stats { gap: 12px; justify-content: space-between; margin-top: 24px; }
	.fcse-stat + .fcse-stat { padding-left: 12px; }
	p.fcse-stat__num { font-size: 22px; }
	p.fcse-stat__label { font-size: 12.5px; }

	/* Parcours : les cartes semaines deviennent une timeline verticale
	   (rail en dégradé + pastilles), comme sur la maquette mobile. */
	.fcse-timeline {
		position: relative;
		padding-left: 26px;
	}

	.fcse-timeline::before {
		content: "";
		position: absolute;
		left: 9px;
		top: 14px;
		bottom: 34px;
		width: 2px;
		background: linear-gradient(180deg, var(--fcse-blue-light), var(--fcse-yellow), var(--fcse-orange));
	}

	.fcse-timeline .fcse-week::before {
		content: "";
		position: absolute;
		left: -26px;
		top: 22px;
		width: 18px;
		height: 18px;
		box-sizing: content-box;
		border-radius: 50%;
		background: #fff;
		border: 4px solid var(--fcse-blue);
	}

	.fcse-week { --fcse-pad: 20px; padding: 20px; }
	p.fcse-week__head { margin-bottom: 14px; flex-wrap: wrap; }
	p.fcse-day { padding-left: 46px; min-height: 34px; margin-bottom: 12px; }
	p.fcse-day strong { font-size: 16px; }
	p.fcse-day .fcse-chip {
		width: 34px;
		height: 34px;
		border-radius: 11px 11px 11px 3px;
		font-size: 14px;
	}
	p.fcse-day--seq { padding-left: 0; min-height: 0; }
	p.fcse-day--seq .fcse-chip {
		width: auto;
		height: auto;
		padding: 7px 11px;
		font-size: 13px;
	}
	/* Le bandeau suit le retrait de la timeline pour rester aligné sur
	   les cartes, sinon il déborde de 26 px sur la gauche. */
	.fcse-timeline ~ .fcse-atelier,
	.fcse-timeline ~ .fcse-atelier-lien { margin-left: 26px; }
	/* Côte à côte impossible en 390 px : la colonne des temps mis en avant
	   repasse sous la carte, au même retrait, et le pointillé horizontal
	   n'a plus de gouttière à traverser. */
	.fcse-parcours-cote { grid-template-columns: 1fr; gap: 0; }
	.fcse-parcours-cote__temps { position: relative; margin-left: 26px; padding-top: 30px; }
	.fcse-parcours-cote__temps .fcse-atelier__icone::before { display: none; }

	/* Le pointillé se relève : il relie la carte au bandeau comme le
	   faisait la rangée .fcse-atelier-lien avant le passage en colonne. */
	.fcse-parcours-cote__temps::before {
		content: "";
		position: absolute;
		left: 50%;
		top: 0;
		width: 2px;
		height: 30px;
		background: repeating-linear-gradient(
			var(--fcse-border3) 0,
			var(--fcse-border3) 5px,
			transparent 5px,
			transparent 10px
		);
	}
	.fcse-atelier { --fcse-pad: 16px 18px; padding: 16px 18px; gap: 14px; align-items: flex-start; }
	.fcse-atelier__icone { width: 38px; height: 38px; }
	strong.fcse-atelier__titre { font-size: 16px; }

	/* Page de confirmation : les deux colonnes s'empilent (WordPress s'en
	   charge), les boutons prennent la largeur et la barre de note
	   redevient une simple ligne de texte, comme la maquette mobile. */
	.fcse-section .wp-block-columns.fcse-confirm-cols { grid-template-columns: 1fr; }
	.fcse-confirm-actions .wp-block-button { width: 100%; }
	.fcse-confirm-actions .wp-block-button__link { width: 100%; text-align: center; }
	.fcse-suivi-card { --fcse-pad: 24px 22px; padding: 24px 22px; }
	.fcse-contact-card { --fcse-pad: 24px 22px; padding: 24px 22px; }
	.fcse-team-card { --fcse-pad: 22px 20px; padding: 22px 20px; }
	.fcse-section ul.fcse-etapes li { padding-left: 46px; }
	p.fcse-note--bar {
		display: block;
		--fcse-pad: 0;
		padding: 0;
		border: 0;
		background: none;
		font-size: 15px;
		text-align: left;
	}

	.fcse-photo-ph { min-height: 240px; }
	.fcse-media:not(:has(img)) { min-height: 240px; }
	.fcse-media--short:not(:has(img)) { min-height: 200px; }

	.fcse-float-card {
		left: 10px;
		bottom: -16px;
		padding: 10px 14px;
		--fcse-pad: 10px 14px;
	}
	.fcse-hero__media { margin-bottom: 26px; }

	.fcse-price-card { --fcse-pad: 28px 22px;
 padding: 28px 22px; }
	p.fcse-price strong { font-size: 34px; }
	p.fcse-price-card__badge { left: 22px; }

	.fcse-compare__col { --fcse-pad: 26px 22px;
 padding: 26px 22px; }

	.fcse-panel { --fcse-pad: 26px 20px;
 padding: 26px 20px; }
	.fcse-panel .wp-block-columns { margin-bottom: 24px; }

	.fcse-banner { --fcse-pad: 26px 22px;
 padding: 26px 22px; gap: 20px; }

	details.fcse-acc > summary { padding: 16px 18px; font-size: 16px; }
	details.fcse-acc--day > summary { padding: 18px; font-size: 17px; }
	details.fcse-acc ul.fcse-points { grid-template-columns: 1fr; margin: 0 18px 8px; }
	details.fcse-acc > :not(summary) { margin: 0 18px; }
	details.fcse-acc p.fcse-week-note { margin: 0 18px 18px; }

	.fcse-form-card { --fcse-pad: 24px 20px;
 padding: 24px 20px; }
	.fcse-helpbar--blue { padding: 20px; }

	.fcse-section .wp-block-buttons { gap: 10px; }
	.fcse-section .wp-block-button { width: 100%; }
	.fcse-section .wp-block-button .wp-block-button__link {
		display: block;
		width: 100%;
		box-sizing: border-box;
		text-align: center;
	}
}

/* -------------------------------------------------------------------------
   Éditeur Gutenberg : pas de pleine largeur (le canvas est déjà cadré),
   le contenu se cale sur la largeur du canvas.
   ------------------------------------------------------------------------- */

.editor-styles-wrapper .fcse-section {
	margin-left: 0;
	margin-right: 0;
	padding-left: max(20px, calc(50% - 648px));
	padding-right: max(20px, calc(50% - 648px));
}

/* =========================================================================
   Chrome du site : topbar, header, footer, CTA sticky mobile
   (markup rendu en code — thème enfant pour header/footer, plugin pour le
   CTA sticky — à la place des builders Astra)
   ========================================================================= */

/* ── Topbar bleue ─────────────────────────────────────────────────────── */

.fcse-topbar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 32px;
	padding: 9px max(20px, calc(50vw - 648px));
	background: var(--fcse-primary);
	font-family: var(--fcse-font);
	font-size: 14px;
	color: #BFE0EB;
}

.fcse-topbar__sep {
	width: 1px;
	height: 14px;
	background: rgba(255, 255, 255, 0.25);
}

.fcse-topbar a {
	color: var(--fcse-yellow);
	font-weight: 500;
	text-decoration: none;
}

.fcse-topbar a:hover { color: #fff; }

.fcse-topbar--mobile { display: none; }

/* ── Header sticky ────────────────────────────────────────────────────── */

/* Barre d'admin WP connecté : le header sticky se cale dessous. */
body.admin-bar .fcse-header { top: 32px; }

@media (max-width: 782px) {
	body.admin-bar .fcse-header { top: 46px; }
}

.fcse-header {
	position: sticky;
	top: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 14px max(20px, calc(50vw - 648px));
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--fcse-border);
	font-family: var(--fcse-font);
}

.fcse-header__logo {
	display: flex;
	align-items: center;
	text-decoration: none;
	font-size: 22px;
	font-weight: 600;
	color: var(--fcse-primary);
}

.fcse-header__logo img {
	display: block;
	height: 46px;
	width: auto;
}

.fcse-header__nav {
	display: flex;
	align-items: center;
	gap: 28px;
	font-size: 15px;
	font-weight: 500;
}

.fcse-header__nav ul.fcse-header__menu {
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fcse-header__nav li { position: relative; margin: 0; list-style: none; }

.fcse-header__nav a {
	color: var(--fcse-ink);
	text-decoration: none;
}

.fcse-header__nav a:hover { color: var(--fcse-blue); }

/* Sous-menus (menu WordPress à deux niveaux). */
.fcse-header__nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: -18px;
	z-index: 60;
	min-width: 280px;
	margin: 0;
	padding: 10px;
	list-style: none;
	background: #fff;
	border: 1px solid var(--fcse-border);
	border-radius: 14px;
	box-shadow: 0 18px 44px rgba(0, 92, 122, 0.14);
}

.fcse-header__nav li:hover > .sub-menu,
.fcse-header__nav li:focus-within > .sub-menu { display: block; }

.fcse-header__nav .sub-menu a {
	display: block;
	padding: 9px 12px;
	border-radius: 8px;
	font-size: 14.5px;
}

.fcse-header__nav .sub-menu a:hover { background: var(--fcse-bg); }

.fcse-header__nav .menu-item-has-children > a::after {
	content: " ▾";
	font-size: 11px;
	color: var(--fcse-gray);
}

a.fcse-header__tel {
	color: var(--fcse-primary);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

a.fcse-header__tel:hover { color: var(--fcse-blue); }

a.fcse-header__cta {
	padding: 11px 24px;
	border-radius: 999px;
	background: var(--fcse-orange);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: 0 6px 16px rgba(246, 135, 18, 0.28);
	transition: all 0.18s ease;
}

a.fcse-header__cta:hover { background: var(--fcse-orange-dark); color: #fff; transform: translateY(-1px); }

/* Boutons mobiles (tél rond + burger) */
.fcse-header__telbtn,
.fcse-header__burger { display: none; }

/* Menu mobile déroulant */
.fcse-mobile-menu { display: none; }

@media (max-width: 900px) {
	.fcse-topbar--desktop { display: none; }

	.fcse-topbar--mobile {
		display: flex;
		gap: 14px;
		padding-top: 8px;
		padding-bottom: 8px;
		font-size: 11.5px;
	}

	.fcse-topbar--mobile .fcse-topbar__sep { height: 11px; }

	.fcse-header { padding-top: 11px; padding-bottom: 11px; }
	.fcse-header__logo img { height: 34px; }
	.fcse-header__nav { display: none; }

	.fcse-header__actions {
		display: flex;
		align-items: center;
		gap: 10px;
	}

	.fcse-header__telbtn {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		border-radius: 50%;
		background: var(--fcse-border);
	}

	.fcse-header__telbtn svg {
		width: 19px;
		height: 19px;
		stroke: var(--fcse-primary);
		fill: none;
	}

	.fcse-header__burger {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 4px;
		width: 42px;
		height: 42px;
		border: none;
		border-radius: 12px;
		background: var(--fcse-primary);
		cursor: pointer;
		padding: 0 !important;
	}

	/* Icône en SVG inline : les styles globaux du thème écrasaient le
	   fond des <span>, les traits étaient invisibles. */
	.fcse-header__burger svg {
		display: block;
		width: 20px;
		height: 20px;
	}

	.fcse-mobile-menu.is-open {
		display: block;
		position: sticky;
		top: 64px;
		z-index: 49;
		background: #fff;
		border-bottom: 1px solid var(--fcse-border);
		padding: 8px 20px 20px;
		font-family: var(--fcse-font);
	}

	.fcse-mobile-menu ul {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.fcse-mobile-menu li { margin: 0; }

	.fcse-mobile-menu a {
		display: block;
		padding: 12px 0;
		border-bottom: 1px solid var(--fcse-border);
		color: var(--fcse-ink);
		font-size: 16px;
		font-weight: 500;
		text-decoration: none;
	}

	.fcse-mobile-menu .sub-menu a {
		padding-left: 18px;
		font-size: 15px;
		font-weight: 400;
		color: var(--fcse-slate);
	}

	a.fcse-mobile-menu__cta {
		display: block;
		margin: 16px 0 12px;
		padding: 14px;
		border-radius: 999px;
		border-bottom: none;
		background: var(--fcse-orange);
		color: #fff;
		font-weight: 600;
		text-align: center;
		box-shadow: 0 8px 18px rgba(246, 135, 18, 0.24);
	}

	p.fcse-mobile-menu__tel {
		margin: 0;
		font-size: 14px;
		color: var(--fcse-gray);
		text-align: center;
	}

	p.fcse-mobile-menu__tel a {
		color: var(--fcse-primary);
		font-weight: 600;
		text-decoration: none;
	}
}

/* ── Footer ───────────────────────────────────────────────────────────── */

.fcse-footer {
	background: var(--fcse-ink);
	font-family: var(--fcse-font);
	color: var(--fcse-gray3);
	padding: 52px max(20px, calc(50vw - 648px)) 34px;
}

.fcse-footer__grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr 1fr;
	gap: 40px;
}

.fcse-footer__brand img {
	display: block;
	height: 44px;
	width: auto;
	margin-bottom: 18px;
	filter: brightness(0) invert(1);
}

.fcse-footer__brand-name {
	display: inline-block;
	margin-bottom: 18px;
	font-size: 20px;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
}

.fcse-footer h4 {
	margin: 0 0 14px;
	font-size: 14.5px;
	font-weight: 600;
	color: #fff;
}

.fcse-footer h4 .fcse-footer__sign { display: none; }

.fcse-footer__contact p {
	margin: 0 0 8px;
	font-size: 14.5px;
	line-height: 1.5;
}

.fcse-footer__contact a { color: var(--fcse-gray3); text-decoration: none; }
.fcse-footer__contact a:hover { color: #fff; }

.fcse-footer__contact a.fcse-footer__tel {
	color: var(--fcse-yellow);
	font-size: 16.5px;
	font-weight: 600;
}

.fcse-footer__group ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.fcse-footer__group li { margin: 0; }

.fcse-footer__group a {
	color: var(--fcse-gray3);
	font-size: 14.5px;
	line-height: 1.5;
	text-decoration: none;
}

.fcse-footer__group a:hover { color: #fff; }

.fcse-footer__cert {
	margin-top: 38px;
	padding: 16px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 14px;
}

.fcse-footer__legal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	padding-top: 16px;
	font-size: 13px;
	color: var(--fcse-gray2);
}

.fcse-footer__legal ul {
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fcse-footer__legal li { margin: 0; }

.fcse-footer__legal a { color: var(--fcse-gray2); text-decoration: none; }
.fcse-footer__legal a:hover { color: #fff; }

#axeptio_overlay{ z-index: 1 !important; }
	#axeptio_main_button {
		bottom: calc(96px + env(safe-area-inset-bottom)) !important;
	}

@media (max-width: 781px) {
	.fcse-footer { padding-top: 30px; padding-bottom: 26px; }

	.fcse-footer__grid {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.fcse-footer__brand img { height: 38px; }
	.fcse-footer__contact { margin-bottom: 12px; }

	/* Groupes de liens repliés en accordéons (JS : .is-open). */
	.fcse-footer__group {
		border-radius: 12px;
		background: rgba(255, 255, 255, 0.05);
		overflow: hidden;
	}

	.fcse-footer__group h4 {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
		margin: 0;
		padding: 14px 16px;
		cursor: pointer;
	}

	.fcse-footer__group h4 .fcse-footer__sign {
		display: block;
		font-size: 15px;
		font-weight: 400;
		color: var(--fcse-gray3);
	}

	.fcse-footer__group ul { display: none; padding: 0 16px 14px; }
	.fcse-footer__group.is-open ul { display: flex; }

	.fcse-footer__cert { margin-top: 22px; font-size: 13.5px; }

	.fcse-footer__legal {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.fcse-footer__legal ul { gap: 14px; }
}

/* ── CTA sticky mobile ────────────────────────────────────────────────── */

.fcse-sticky-cta { display: none; }

@media (max-width: 781px) {
	body.fcse-has-sticky { padding-bottom: 84px; }

	.fcse-sticky-cta {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 70;
		display: flex;
		gap: 10px;
		padding: 12px 16px calc(16px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, 0.97);
		backdrop-filter: blur(10px);
		border-top: 1px solid var(--fcse-border);
		box-shadow: 0 -8px 24px rgba(0, 92, 122, 0.09);
		font-family: var(--fcse-font);
	}

	a.fcse-sticky-cta__tel {
		flex: none;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 52px;
		height: 52px;
		border-radius: 50%;
		background: var(--fcse-border);
	}

	a.fcse-sticky-cta__tel svg {
		width: 22px;
		height: 22px;
		stroke: var(--fcse-primary);
		fill: none;
	}

	a.fcse-sticky-cta__btn {
		flex: 1;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		height: 52px;
		border-radius: 999px;
		background: var(--fcse-orange);
		color: #fff;
		text-decoration: none;
		box-shadow: 0 8px 18px rgba(246, 135, 18, 0.3);
	}

	.fcse-sticky-cta__btn strong {
		font-size: 16px;
		font-weight: 600;
		line-height: 1.1;
	}

	.fcse-sticky-cta__btn small {
		font-size: 11px;
		opacity: 0.9;
	}

	/* Les éléments flottants tiers (retour en haut d'Astra, gestion des
	   cookies) remontent au-dessus de la barre sticky au lieu de la
	   chevaucher. Sélecteurs des plugins de consentement courants. */
	body.fcse-has-sticky #ast-scroll-top,
	body.fcse-has-sticky #tarteaucitronIcon,
	body.fcse-has-sticky #tarteaucitronManager,
	body.fcse-has-sticky #cmplz-manage-consent .cmplz-manage-consent,
	body.fcse-has-sticky .cky-btn-revisit-wrapper,
	body.fcse-has-sticky .cmplz-manage-consent {
		bottom: 96px !important;
	}
}

/* =========================================================================
   Retours client du 20 août 2026 (page SSCT + accueil)
   Bloc placé en fin de feuille : ces règles doivent gagner sur les mêmes
   sélecteurs déclarés plus haut, sans les dupliquer à leur emplacement
   d'origine.
   ========================================================================= */

/* Champ de formulaire masqué par le JS (« vos disponibilités » quand une
   session datée est déjà choisie). */
.fcse-field-hidden { display: none !important; }

/* Un seul avis publié : la carte reste lisible au lieu de s'étirer sur
   toute la largeur de la section. */
.fcse-cards.fcse-avis-grid.fcse-cards--1 .fcse-testimonial {
	max-width: 620px;
	margin: 0 auto;
}

/* ── Comparaison : fond sombre dès que les onglets prennent le relais ──── */

@media (max-width: 900px) {
	/* Maquette mobile : la comparaison passe en bleu foncé (elle sépare
	   franchement le haut de page du bloc méthode et fait ressortir les
	   onglets « Ailleurs / Chez nous »). Le :has() cible la section qui
	   contient la comparaison : rien à changer dans les pages publiées. */
	.fcse-section:has(> .wp-block-columns.fcse-compare),
	.entry-content div.fcse-section:has(> .wp-block-columns.fcse-compare) {
		background: var(--fcse-primary);
	}

	.fcse-section:has(> .fcse-compare) h2.fcse-h2 { color: #fff; }
	.fcse-section:has(> .fcse-compare) p.fcse-lead { color: #BFE0EB; }

	/* Cartes blanches sur le fond sombre. */
	.fcse-section:has(> .fcse-compare) .fcse-compare__col,
	.fcse-section:has(> .fcse-compare) .fcse-compare__col--after {
		background: #fff;
		border-color: transparent;
		box-shadow: 0 16px 40px rgba(0, 0, 0, 0.16);
	}

	/* Barre d'onglets sur fond sombre. */
	.fcse-section:has(> .fcse-compare) .fcse-compare-tabs {
		background: rgba(255, 255, 255, 0.12);
	}

	.fcse-section:has(> .fcse-compare) .fcse-compare-tabs button {
		color: #DCEDF3;
	}

	.fcse-section:has(> .fcse-compare) .fcse-compare-tabs button.is-active {
		background: #fff;
		color: var(--fcse-primary);
	}

	/* ── Bandeau de confiance : empilé et aligné sous 900px ─────────────── */

	/* Au-dessus de 900px les trois preuves tiennent sur une ligne (le texte
	   passe sur deux lignes à côté du logo). En dessous, il faudrait trois
	   lignes de texte : on empile, avec la colonne du logo à largeur fixe
	   pour que logos et textes s'alignent, le bloc entier centré. */
	.fcse-trustbar { grid-auto-flow: row; gap: 12px; }
	.fcse-trustbar p { text-align: center; font-size: 15px; }

	.fcse-trust-item {
		display: grid;
		grid-template-columns: 88px 1fr;
		align-items: center;
		justify-content: initial;
		gap: 14px;
		width: 100%;
		max-width: 330px;
		padding-inline: 0;
	}

	.fcse-trust-item .wp-block-image { width: 88px; height: 48px; }
	.fcse-trust-item p { font-size: 15px; text-align: left; text-wrap: initial; }
}

@media (max-width: 781px) {
	/* ── Hero ───────────────────────────────────────────────────────────── */

	/* Moins d'air entre le header et le badge du hero (retour client). */
	.fcse-section--gradient,
	.entry-content div.fcse-section--gradient { padding-top: 26px; }

	/* Légende sous le visuel : supprimée sur mobile (retour client). Le
	   texte alternatif de l'image reste en place pour l'accessibilité. */
	.fcse-hero__media figcaption,
	.fcse-hero__media .wp-block-image figcaption { display: none; }
	.fcse-hero__media:has(figcaption) { margin-bottom: 26px; }

	/* ── Avis clients en carrousel ──────────────────────────────────────── */

	/* Défilement horizontal avec accroche (scroll-snap) plutôt qu'une
	   colonne de cartes empilées. Débord jusqu'aux bords de l'écran pour
	   que la carte suivante s'annonce. */
	.fcse-cards.fcse-avis-grid {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 84%;
		gap: 12px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		margin-inline: -20px;
		padding: 2px 20px 8px;
		scrollbar-width: none;
	}

	.fcse-cards.fcse-avis-grid::-webkit-scrollbar { display: none; }

	.fcse-cards.fcse-avis-grid .fcse-testimonial {
		scroll-snap-align: center;
		--fcse-pad: 24px 22px;
		padding: 24px 22px;
	}

	/* Un seul avis : pas de carrousel, la carte occupe la largeur. */
	.fcse-cards.fcse-avis-grid.fcse-cards--1 {
		grid-auto-columns: 100%;
		margin-inline: 0;
		padding-inline: 0;
	}

	/* ── Méthode : fond blanc et 4 cartes en grille 2×2 (maquette) ──────── */

	.fcse-section--dark:has(> .wp-block-columns.fcse-methode),
	.entry-content div.fcse-section--dark:has(> .wp-block-columns.fcse-methode) {
		background: #fff;
		/* Fond redevenu blanc : le texte libre reprend l'encre foncée. */
		color: var(--fcse-ink);
	}

	.fcse-methode h2.fcse-h2--light { color: var(--fcse-primary); }
	.fcse-methode p.fcse-lead--light { color: var(--fcse-slate); }
	.fcse-methode p.fcse-kicker--yellow { color: var(--fcse-orange); }

	.fcse-methode .fcse-quote-dark { background: var(--fcse-bg); }
	.fcse-methode .fcse-quote-dark p { color: var(--fcse-ink); }

	.fcse-section--dark .fcse-methode .fcse-cards--2 {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	/* Retour client : sur fond blanc les 4 cartes se fondaient dans la
	   page — fond bleu clair pour les détacher. */
	.fcse-section--dark .fcse-methode .fcse-card {
		--fcse-pad: 18px 16px;
		padding: 18px 16px;
		background: var(--fcse-border);
		border: 1px solid var(--fcse-border3);
		box-shadow: none;
	}

	/* Cartes sur deux colonnes = ~120px de texte utile : « Questionnement »
	   se coupait en plein milieu du mot. */
	.fcse-methode p.fcse-card__title { font-size: 15px; }
	.fcse-methode p.fcse-card__text { font-size: 14px; line-height: 1.55; }

	/* ── Footer allégé (retour client : « énorme sur mobile ») ──────────── */

	.fcse-footer { padding-top: 24px; padding-bottom: 18px; }
	.fcse-footer__brand img { height: 32px; margin-bottom: 12px; }
	.fcse-footer__contact p { margin-bottom: 6px; font-size: 14px; }
	.fcse-footer__contact a.fcse-footer__tel { font-size: 15.5px; }
	.fcse-footer__group h4 { padding: 12px 14px; }
	.fcse-footer__cert { margin-top: 16px; padding: 12px 0; font-size: 12.5px; }
	.fcse-footer__legal { padding-top: 12px; font-size: 12px; }
}

/* -------------------------------------------------------------------------
   Informations pratiques (mentions Qualiopi) — bloc libre : les styles
   ciblent les blocs natifs (paragraphe, liste, lien) pour que tout ce que
   le client ajoute dans un encart reste dans la charte.
   ------------------------------------------------------------------------- */

.fcse-infos {
	--fcse-pad: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 24px;
	align-items: start;
}

.fcse-info-block {
	--fcse-pad: 26px 24px;
	padding: 26px 24px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--fcse-border2);
}

h3.fcse-info-block__title {
	margin: 0 0 12px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--fcse-primary);
}

.fcse-info-block p {
	margin: 0 0 14px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--fcse-slate);
}

.fcse-info-block > :last-child { margin-bottom: 0; }

.fcse-info-block ul {
	margin: 0 0 14px;
	padding-left: 0;
	list-style: none;
}

.fcse-info-block li {
	position: relative;
	margin: 0 0 8px;
	padding-left: 20px;
	font-size: 16px;
	line-height: 1.6;
	color: var(--fcse-slate);
}

.fcse-info-block li:last-child { margin-bottom: 0; }

.fcse-info-block li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 9px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--fcse-blue-light);
}

/* Variante 2 colonnes de la liste à puces (hero en bullet points). */
.fcse-section ul.fcse-checklist--2col {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2px 26px;
}

/* Variante accordéons : les encarts sont des blocs « Détails ». L'état
   ouvert est posé par fcse-landing.js (2 encarts ouverts sur deux
   colonnes, 1 seul sur une) — le pattern en ouvre 2 pour que la page
   reste correcte sans JavaScript. */

.fcse-infos.fcse-infos--acc { gap: 12px 24px; }

details.fcse-info-acc {
	border-color: var(--fcse-border2);
	box-shadow: none;
}

details.fcse-info-acc > summary {
	padding: 18px 22px;
	font-size: 18px;
	font-weight: 600;
	color: var(--fcse-primary);
	gap: 16px;
}

details.fcse-info-acc > p,
details.fcse-info-acc > ul,
details.fcse-info-acc > ol {
	margin: 0 22px 14px;
	padding: 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--fcse-slate);
}

details.fcse-info-acc > ul,
details.fcse-info-acc > ol { list-style: none; }

details.fcse-info-acc > p:last-child,
details.fcse-info-acc > ul:last-child,
details.fcse-info-acc > ol:last-child { margin-bottom: 20px; }

details.fcse-info-acc li {
	position: relative;
	margin: 0 0 8px;
	padding-left: 20px;
	font-size: 16px;
	line-height: 1.6;
	color: var(--fcse-slate);
}

details.fcse-info-acc li:last-child { margin-bottom: 0; }

details.fcse-info-acc li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 9px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--fcse-blue-light);
}

@media (max-width: 900px) {
	.fcse-infos.fcse-infos--acc { gap: 10px; }
}

@media (max-width: 781px) {
	details.fcse-info-acc > summary { padding: 16px 18px; font-size: 17px; }
	details.fcse-info-acc > p,
	details.fcse-info-acc > ul,
	details.fcse-info-acc > ol { margin: 0 18px 12px; font-size: 15.5px; }
	details.fcse-info-acc > p:last-child,
	details.fcse-info-acc > ul:last-child,
	details.fcse-info-acc > ol:last-child { margin-bottom: 18px; }
	details.fcse-info-acc li { font-size: 15.5px; }
}

@media (max-width: 900px) {
	.fcse-infos { grid-template-columns: 1fr; gap: 14px; }
}

@media (max-width: 781px) {
	.fcse-info-block { --fcse-pad: 22px 20px; padding: 22px 20px; }
	h3.fcse-info-block__title { font-size: 17px; }
	.fcse-info-block p,
	.fcse-info-block li { font-size: 15.5px; }
	.fcse-section ul.fcse-checklist--2col { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   Blocs FormationsCSE dans l'éditeur : bandeau de réglages au-dessus de
   l'aperçu réel du bloc. Ces classes n'existent que dans l'éditeur.
   ------------------------------------------------------------------------- */

.fcse-bloc-edition__reglages {
	margin-bottom: 16px;
	padding: 14px 16px;
	border: 1px dashed var(--fcse-border3);
	border-radius: 12px;
	background: #fff;
	font-family: var(--fcse-font);
}

p.fcse-bloc-edition__titre {
	margin: 0 0 12px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fcse-blue);
}

.fcse-bloc-edition__champs {
	display: grid;
	gap: 14px;
}

p.fcse-bloc-edition__aide {
	margin: 0;
	font-size: 13px;
	font-style: italic;
	color: var(--fcse-gray);
}

/* L'aperçu ne doit pas capter les clics : on veut sélectionner le bloc,
   pas suivre un lien de la carte rendue. */
.fcse-bloc-edition__apercu {
	pointer-events: none;
}
