/* =========================================================================
   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-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;
}

/* 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); }
.fcse-section--gradient { background: linear-gradient(180deg, #F7FCFD 0%, #fff 100%); }
.fcse-section--bordered { border-top: 1px solid var(--fcse-border); }

.fcse-section--flush-top,
.entry-content div.fcse-section--flush-top { padding-top: 0; }

.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);
}

.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: 780px;
	margin-left: 0;
	text-align: left;
}

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);
}

p.fcse-quote {
	margin: 6px 0 0;
	padding: 18px 22px;
	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);
	font-style: italic;
}

.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);
}

/* -------------------------------------------------------------------------
   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-btn--primary .wp-block-button__link {
	background: var(--fcse-orange);
	color: #fff;
	box-shadow: 0 10px 24px rgba(246, 135, 18, 0.3);
}

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

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

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

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

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

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

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

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

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

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

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

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

.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;
}

/* 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;
}

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

.fcse-trustbar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 44px;
	flex-wrap: wrap;
}

.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);
}

/* -------------------------------------------------------------------------
   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);
}

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-section .wp-block-columns.fcse-2col {
	gap: 20px;
	max-width: 1020px;
	margin: 34px auto 0;
}

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

.fcse-section .wp-block-columns.fcse-pricing {
	gap: 24px;
	max-width: 1000px;
	margin: 0 auto 28px;
	align-items: flex-start;
}

.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);
}

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);
}

/* -------------------------------------------------------------------------
   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__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;
}

.fcse-form-card h3.fcse-h3 { margin-bottom: 22px; font-size: 24px; }

.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;
}

.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;
}

/* -------------------------------------------------------------------------
   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; }

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

@media (max-width: 1024px) {
	.fcse-section,
	.entry-content div.fcse-section { padding-top: 60px; padding-bottom: 60px; }
	.fcse-section--flush-top,
	.entry-content div.fcse-section--flush-top { padding-top: 0; }
	.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); }
	h1.fcse-h1 { font-size: 32px; }
	.fcse-section .wp-block-columns.fcse-hero,
	.fcse-section .wp-block-columns.fcse-methode,
	.fcse-section .wp-block-columns.fcse-devis { gap: 32px; }
}

@media (max-width: 781px) {
	/* WP empile les colonnes sous 782px ; on adapte le reste. */
	.fcse-section,
	.entry-content div.fcse-section { padding-top: 48px; padding-bottom: 48px; scroll-margin-top: 70px; }
	.fcse-section--flush-top,
	.entry-content div.fcse-section--flush-top { padding-top: 0; }
	.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; }

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

	.fcse-trustbar { flex-direction: column; gap: 14px; }
	.fcse-trustbar p + p::before { display: none; }
	.fcse-trustbar p { text-align: center; font-size: 15px; }

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

	.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));
}
