/*
 * Boussole — parcours, rapport et encarts (v0.27.180).
 *
 * Porté du canvas Claude Design « Boussole FND », système de design FND
 * (tokens/papier, encre, bleu-profond, bondi, jaune, cta...). Tout est scopé
 * sous `.ces-bsl` : la page vit dans le thème Extra/Divi, qui restyle
 * volontiers boutons, titres et champs. Les remises à zéro ci-dessous ne
 * sortent jamais de ce périmètre.
 */

.ces-bsl {
	--bsl-papier: #fbf8f2;
	--bsl-creme: #f7f3ec;
	--bsl-blanc: #ffffff;
	--bsl-ligne: #d8dfe4;
	--bsl-encre: #14283f;
	--bsl-encre-douce: #34465c;
	--bsl-gris: #6b7a8c;
	--bsl-bleu: #2c77a6;
	--bsl-bondi: #0095a5;
	--bsl-bleu-profond: #0e3554;
	--bsl-bleu-clair: #afd2d0;
	--bsl-orange: #f39774;
	--bsl-cta: #db4300;
	--bsl-cta-survol: #b53700;
	--bsl-jaune: #ffde00;
	--bsl-texte-sombre: #ecf2f6;
	--bsl-texte-sombre-doux: #c8d2dc;
	--bsl-grad-deep: linear-gradient(160deg, #0e3554 0%, #091e30 60%, #0a2238 100%);
	--bsl-ombre-carte: 0 1px 2px rgba(14, 53, 84, .06), 0 2px 6px rgba(14, 53, 84, .04);
	--bsl-ombre-haute: 0 24px 40px -16px rgba(14, 53, 84, .18), 0 6px 14px rgba(14, 53, 84, .08);
	--bsl-ombre-cta: 0 14px 30px -10px rgba(0, 0, 0, .4);
	--bsl-display: "Alice", "Cormorant Garamond", Georgia, serif;
	--bsl-texte: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

	/* Les points de rupture suivent la place réellement disponible (colonne
	   de contenu Divi, barre latérale...), pas la largeur de l'écran. */
	container-type: inline-size;
	container-name: bsl;
	font-family: var(--bsl-texte);
	color: var(--bsl-encre);
	font-size: 16px;
	line-height: 1.6;
	text-align: left;
	-webkit-font-smoothing: antialiased;
}

/* --- Remises à zéro anti-thème ------------------------------------------ */

.ces-bsl *,
.ces-bsl *::before,
.ces-bsl *::after { box-sizing: border-box; }

.ces-bsl [x-cloak] { display: none !important; }

.ces-bsl h1, .ces-bsl h2, .ces-bsl h3, .ces-bsl h4 {
	margin: 0;
	padding: 0;
	font-family: var(--bsl-display);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -.005em;
	text-transform: none;
	color: var(--bsl-bleu-profond);
	text-wrap: balance;
}
.ces-bsl p { margin: 0; padding: 0; }
.ces-bsl ul { margin: 0; padding: 0; list-style: none; }
.ces-bsl li { margin: 0; padding: 0; }
.ces-bsl img { max-width: 100%; height: auto; }
.ces-bsl button,
.ces-bsl input,
.ces-bsl textarea {
	font-family: inherit;
	letter-spacing: normal;
	text-transform: none;
	margin: 0;
}
.ces-bsl a { text-decoration: none; }
.ces-bsl button:focus-visible,
.ces-bsl a:focus-visible,
.ces-bsl input:focus-visible,
.ces-bsl textarea:focus-visible {
	outline: 3px solid var(--bsl-bondi);
	outline-offset: 2px;
}
.ces-bsl [tabindex="-1"]:focus { outline: none; }
/* Les écrans du parcours défilent sous l'en-tête fixe du thème. */
.ces-bsl .ces-bsl-q,
.ces-bsl .ces-bsl-teaser,
.ces-bsl .ces-bsl-rapport,
.ces-bsl .ces-bsl-attente { scroll-margin-top: 150px; }

.ces-bsl .ces-bsl-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* --- Briques communes ---------------------------------------------------- */

.ces-bsl .ces-bsl-sur {
	display: inline-block;
	align-self: flex-start;
	padding: 6px 14px;
	border-radius: 999px;
	background: rgba(44, 119, 166, .1);
	color: var(--bsl-bleu);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .05em;
	text-transform: uppercase;
}
.ces-bsl .ces-bsl-sur--sombre {
	background: rgba(175, 210, 208, .14);
	color: var(--bsl-bleu-clair);
}

.ces-bsl .ces-bsl-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	padding: 16px 30px;
	border: none;
	border-radius: 12px;
	background: var(--bsl-jaune);
	color: var(--bsl-encre);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	box-shadow: var(--bsl-ombre-cta);
	transition: transform .15s ease, background .15s ease;
}
.ces-bsl .ces-bsl-cta:hover { color: var(--bsl-encre); transform: translateY(-1px); }
.ces-bsl .ces-bsl-cta:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.ces-bsl .ces-bsl-cta--orange { background: var(--bsl-cta); color: #fff; }
.ces-bsl .ces-bsl-cta--orange:hover { background: var(--bsl-cta-survol); color: #fff; }
.ces-bsl .ces-bsl-cta--plein { display: flex; width: 100%; }
.ces-bsl .ces-bsl-cta--contour {
	align-self: flex-start;
	background: transparent;
	color: var(--bsl-bleu-profond);
	border: 2px solid var(--bsl-bleu-profond);
	box-shadow: none;
}
.ces-bsl .ces-bsl-cta--contour:hover { background: var(--bsl-bleu-profond); color: #fff; }
.ces-bsl .ces-bsl-fleche { flex-shrink: 0; transition: transform .2s ease; }
.ces-bsl .ces-bsl-cta:hover .ces-bsl-fleche { transform: translateX(3px); }

.ces-bsl .ces-bsl-lien {
	min-height: 44px;
	padding: 0 8px;
	border: none;
	background: transparent;
	color: var(--bsl-bleu-profond);
	font-size: 16px;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}

.ces-bsl .ces-bsl-mention { font-size: 14px; line-height: 1.5; color: var(--bsl-encre-douce); }
.ces-bsl .ces-bsl-mention--sombre { color: var(--bsl-texte-sombre-doux); }
.ces-bsl .ces-bsl-centre { text-align: center; }

.ces-bsl .ces-bsl-erreur {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--bsl-jaune);
}
.ces-bsl .ces-bsl-erreur--clair { margin-top: 18px; color: var(--bsl-cta-survol); }

.ces-bsl .ces-bsl-carte {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 30px;
	border-radius: 18px;
	background: var(--bsl-blanc);
	border: 1px solid var(--bsl-ligne);
	box-shadow: var(--bsl-ombre-carte);
}
.ces-bsl .ces-bsl-carte h3 { font-size: 26px; margin-bottom: 2px; }
.ces-bsl .ces-bsl-carte p { font-size: 16px; line-height: 1.65; color: var(--bsl-encre); }

/* --- États des boutons, verrouillés contre le thème (v0.27.186) ---------
   Le thème du site restyle `button:hover`, `input[type=submit]:hover` et
   `a:hover` (fond sombre au survol). Sans valeurs explicites, un bouton jaune
   survolé prenait ce fond sombre et son texte foncé devenait invisible. Chaque
   état de chaque bouton est donc fixé ici, en !important, avec des sélecteurs
   plus précis que ceux du thème. Rien ne sort du périmètre `.ces-bsl`. */

.ces-bsl .ces-bsl-cta,
.ces-bsl .ces-bsl-cta:hover,
.ces-bsl .ces-bsl-cta:focus,
.ces-bsl .ces-bsl-cta:active {
	background: var(--bsl-jaune) !important;
	color: var(--bsl-encre) !important;
	border: none !important;
	text-decoration: none !important;
}
.ces-bsl .ces-bsl-cta:hover { box-shadow: 0 18px 34px -10px rgba(0, 0, 0, .45) !important; }

.ces-bsl .ces-bsl-cta.ces-bsl-cta--orange,
.ces-bsl .ces-bsl-cta.ces-bsl-cta--orange:focus,
.ces-bsl .ces-bsl-cta.ces-bsl-cta--orange:active {
	background: var(--bsl-cta) !important;
	color: #fff !important;
}
.ces-bsl .ces-bsl-cta.ces-bsl-cta--orange:hover { background: var(--bsl-cta-survol) !important; color: #fff !important; }

.ces-bsl .ces-bsl-cta.ces-bsl-cta--contour,
.ces-bsl .ces-bsl-cta.ces-bsl-cta--contour:focus,
.ces-bsl .ces-bsl-cta.ces-bsl-cta--contour:active {
	background: transparent !important;
	color: var(--bsl-bleu-profond) !important;
	border: 2px solid var(--bsl-bleu-profond) !important;
}
.ces-bsl .ces-bsl-cta.ces-bsl-cta--contour:hover { background: var(--bsl-bleu-profond) !important; color: #fff !important; }

.ces-bsl .ces-bsl-opt,
.ces-bsl .ces-bsl-opt:hover,
.ces-bsl .ces-bsl-opt:focus,
.ces-bsl .ces-bsl-opt:active { background: var(--bsl-blanc) !important; color: var(--bsl-encre) !important; }
.ces-bsl .ces-bsl-opt.est-choisi,
.ces-bsl .ces-bsl-opt.est-choisi:hover,
.ces-bsl .ces-bsl-opt.est-choisi:focus { background: #ebf6f7 !important; }

.ces-bsl .ces-bsl-lien,
.ces-bsl .ces-bsl-lien:hover,
.ces-bsl .ces-bsl-lien:focus,
.ces-bsl .ces-bsl-lien:active { background: transparent !important; color: var(--bsl-bleu-profond) !important; border: none !important; box-shadow: none !important; }

.ces-bsl .ces-bsl-retour,
.ces-bsl .ces-bsl-retour:focus,
.ces-bsl .ces-bsl-retour:active { background: transparent !important; color: var(--bsl-encre-douce) !important; border: none !important; box-shadow: none !important; }
.ces-bsl .ces-bsl-retour:hover { background: var(--bsl-creme) !important; color: var(--bsl-encre) !important; }

.ces-bsl .ces-bsl-offre__autre,
.ces-bsl .ces-bsl-offre__autre:hover,
.ces-bsl .ces-bsl-offre__autre:focus { background: transparent !important; }
.ces-bsl .ces-bsl-offre__autre:hover { color: #fff !important; }

/* --- Accueil ------------------------------------------------------------- */

.ces-bsl.ces-bsl--rapport .ces-bsl-accueil-zone { display: none; }

.ces-bsl .ces-bsl-accueil {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 56px;
	align-items: center;
	padding: 64px 64px;
	border-radius: 28px;
	background: var(--bsl-grad-deep);
}
.ces-bsl .ces-bsl-accueil__texte { display: flex; flex-direction: column; align-items: flex-start; }
.ces-bsl .ces-bsl-accueil__titre {
	margin: 16px 0 24px;
	font-size: clamp(30px, 4.2vw, 44px);
	color: #fff;
}
.ces-bsl .ces-bsl-accueil__intro {
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 620px;
	font-size: 18px;
	line-height: 1.6;
	color: var(--bsl-texte-sombre-doux);
}
.ces-bsl .ces-bsl-accueil .ces-bsl-cta { margin-top: 32px; }
.ces-bsl .ces-bsl-accueil .ces-bsl-mention { margin-top: 14px; }
.ces-bsl .ces-bsl-accueil .ces-bsl-erreur { margin-top: 14px; }

.ces-bsl .ces-bsl-accueil__carte {
	display: flex;
	flex-direction: column;
	gap: 26px;
	padding: 34px;
	border-radius: 18px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .12);
}
.ces-bsl .ces-bsl-accueil__sous-titre { font-size: 26px; color: #fff; }
.ces-bsl .ces-bsl-coches { display: flex; flex-direction: column; gap: 16px; font-size: 17px; line-height: 1.5; color: var(--bsl-texte-sombre); }
.ces-bsl .ces-bsl-coches li { display: flex; gap: 12px; }
.ces-bsl .ces-bsl-coches li > span:first-child { color: var(--bsl-jaune); font-weight: 700; }
.ces-bsl .ces-bsl-filet { height: 1px; background: rgba(255, 255, 255, .12); }
.ces-bsl .ces-bsl-auteurs { display: flex; align-items: center; gap: 18px; }
.ces-bsl .ces-bsl-auteurs__photos { display: flex; flex-shrink: 0; }
.ces-bsl .ces-bsl-auteurs__photos img {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	border: 4px solid #fff;
	object-fit: cover;
	background: var(--bsl-bleu-clair);
}
.ces-bsl .ces-bsl-auteurs__photos img + img { margin-left: -18px; }
.ces-bsl .ces-bsl-auteurs p { font-size: 15px; line-height: 1.5; color: var(--bsl-texte-sombre-doux); }

/* --- Contenu sous l'accueil (v0.27.182) -------------------------------- */

.ces-bsl .ces-bsl-contenu {
	display: flex;
	flex-direction: column;
	gap: 64px;
	max-width: 1000px;
	margin: 64px auto 0;
}
.ces-bsl .ces-bsl-bloc { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.ces-bsl .ces-bsl-bloc h2 { font-size: clamp(26px, 3vw, 38px); }
.ces-bsl .ces-bsl-bloc__texte { display: flex; flex-direction: column; gap: 14px; max-width: 760px; font-size: 17px; line-height: 1.65; }
.ces-bsl .ces-bsl-bloc__chapo { max-width: 760px; font-size: 17px; line-height: 1.6; color: var(--bsl-encre-douce); }

.ces-bsl .ces-bsl-chiffres {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	width: 100%;
	margin-top: 8px;
}
.ces-bsl .ces-bsl-chiffre {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 24px;
	border-radius: 18px;
	background: var(--bsl-creme);
}
.ces-bsl .ces-bsl-chiffre__valeur { font-family: var(--bsl-display); font-size: 40px; line-height: 1.05; color: var(--bsl-bleu-profond); }
.ces-bsl .ces-bsl-chiffre__texte { font-size: 15.5px; line-height: 1.55; color: var(--bsl-encre); }
.ces-bsl .ces-bsl-chiffre__source { margin-top: auto; font-size: 13px; color: var(--bsl-encre-douce); }

.ces-bsl .ces-bsl-profils {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	width: 100%;
	margin-top: 8px;
}
.ces-bsl .ces-bsl-profil {
	padding: 20px 22px;
	border-radius: 14px;
	background: var(--bsl-blanc);
	border: 1px solid var(--bsl-ligne);
}
.ces-bsl .ces-bsl-profil h3 { font-size: 21px; margin-bottom: 6px; }
.ces-bsl .ces-bsl-profil p { font-size: 15.5px; line-height: 1.55; color: var(--bsl-encre-douce); }

.ces-bsl .ces-bsl-faq { display: flex; flex-direction: column; gap: 10px; width: 100%; max-width: 860px; margin-top: 8px; }
.ces-bsl .ces-bsl-faq__item {
	border-radius: 14px;
	background: var(--bsl-blanc);
	border: 1px solid var(--bsl-ligne);
}
.ces-bsl .ces-bsl-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 22px;
	cursor: pointer;
	list-style: none;
}
.ces-bsl .ces-bsl-faq__item summary::-webkit-details-marker { display: none; }
.ces-bsl .ces-bsl-faq__item summary::after {
	content: "+";
	flex-shrink: 0;
	font-size: 26px;
	line-height: 1;
	color: var(--bsl-bondi);
}
.ces-bsl .ces-bsl-faq__item[open] summary::after { content: "−"; }
.ces-bsl .ces-bsl-faq__item summary h3 { font-size: 20px; line-height: 1.3; }
.ces-bsl .ces-bsl-faq__item p { padding: 0 22px 20px; font-size: 16px; line-height: 1.65; color: var(--bsl-encre); }

.ces-bsl .ces-bsl-bloc--auteurs { flex-direction: row; align-items: center; gap: 32px; padding: 32px; border-radius: 22px; background: var(--bsl-creme); }
.ces-bsl .ces-bsl-bloc--auteurs > div:last-child { display: flex; flex-direction: column; gap: 12px; }
.ces-bsl .ces-bsl-auteurs__photos--grand img { width: 96px; height: 96px; border-color: var(--bsl-creme); }
.ces-bsl .ces-bsl-auteurs__photos--grand img + img { margin-left: -22px; }

.ces-bsl .ces-bsl-relance { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }

/* --- Questions ----------------------------------------------------------- */

.ces-bsl .ces-bsl-q {
	max-width: 760px;
	margin: 0 auto;
	padding: 32px 0 56px;
}
.ces-bsl .ces-bsl-q__barre { display: flex; align-items: center; gap: 18px; }
.ces-bsl .ces-bsl-retour {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 0 14px 0 8px;
	border: none;
	border-radius: 12px;
	background: transparent;
	color: var(--bsl-encre-douce);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}
.ces-bsl .ces-bsl-retour:hover { background: var(--bsl-creme); }
.ces-bsl .ces-bsl-progres {
	flex-grow: 1;
	height: 8px;
	border-radius: 999px;
	background: var(--bsl-ligne);
	overflow: hidden;
}
.ces-bsl .ces-bsl-progres > div {
	height: 100%;
	border-radius: 999px;
	background: var(--bsl-bondi);
	transition: width .3s ease;
}
.ces-bsl .ces-bsl-q__num { font-size: 14px; font-weight: 600; color: var(--bsl-encre-douce); white-space: nowrap; }
.ces-bsl .ces-bsl-q__titre { margin: 36px 0 12px; font-size: clamp(26px, 3.2vw, 34px); }
.ces-bsl .ces-bsl-q__sous { margin: 0 0 30px; font-size: 18px; line-height: 1.55; color: var(--bsl-encre-douce); }
.ces-bsl .ces-bsl-q__compteur { margin: -14px 0 18px; font-size: 15px; font-weight: 600; color: var(--bsl-bleu-profond); }

.ces-bsl .ces-bsl-opts { display: flex; flex-direction: column; gap: 12px; }
.ces-bsl .ces-bsl-opts--grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ces-bsl .ces-bsl-opt {
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
	min-height: 64px;
	padding: 14px 20px;
	border-radius: 12px;
	background: var(--bsl-blanc);
	border: 1.5px solid var(--bsl-ligne);
	color: var(--bsl-encre);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.4;
	text-align: left;
	cursor: pointer;
	box-shadow: none;
	transition: border-color .15s ease, background .15s ease;
}
.ces-bsl .ces-bsl-opt:hover { border-color: var(--bsl-bondi); }
.ces-bsl .ces-bsl-opt.est-choisi { background: rgba(0, 149, 165, .08); border: 2px solid var(--bsl-bondi); }
.ces-bsl .ces-bsl-opt:disabled { opacity: .45; cursor: not-allowed; }
.ces-bsl .ces-bsl-opt__marque {
	flex-shrink: 0;
	position: relative;
	width: 24px;
	height: 24px;
	border: 2px solid var(--bsl-gris);
	background: var(--bsl-blanc);
}
.ces-bsl .ces-bsl-opt__marque.est-rond { border-radius: 50%; }
.ces-bsl .ces-bsl-opt__marque.est-case { border-radius: 6px; }
.ces-bsl .ces-bsl-opt.est-choisi .ces-bsl-opt__marque.est-rond { border: 7px solid var(--bsl-bondi); }
.ces-bsl .ces-bsl-opt.est-choisi .ces-bsl-opt__marque.est-case { background: var(--bsl-bondi); border-color: var(--bsl-bondi); }
.ces-bsl .ces-bsl-opt.est-choisi .ces-bsl-opt__marque.est-case::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 1px;
	width: 7px;
	height: 13px;
	border: solid #fff;
	border-width: 0 3px 3px 0;
	transform: rotate(45deg);
}

.ces-bsl .ces-bsl-textarea {
	display: block;
	width: 100%;
	height: 220px;
	padding: 18px 20px;
	border: 1.5px solid var(--bsl-ligne);
	border-radius: 12px;
	background: var(--bsl-blanc);
	color: var(--bsl-encre);
	font-size: 18px;
	line-height: 1.6;
	resize: vertical;
	box-shadow: none;
}
.ces-bsl .ces-bsl-compteur-car { margin-top: 10px; font-size: 14px; color: var(--bsl-encre-douce); text-align: right; }
.ces-bsl .ces-bsl-q__actions { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }

/* --- Teaser -------------------------------------------------------------- */

.ces-bsl .ces-bsl-teaser {
	display: flex;
	flex-direction: column;
	gap: 40px;
	padding: 52px 56px 56px;
	border-radius: 28px;
	background: var(--bsl-creme);
}
.ces-bsl .ces-bsl-teaser__grille {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 52px;
	align-items: start;
}
.ces-bsl .ces-bsl-teaser__grille > div:first-child { display: flex; flex-direction: column; align-items: flex-start; }
.ces-bsl .ces-bsl-teaser__nom { margin: 16px 0 24px; font-size: clamp(32px, 4vw, 44px); }
.ces-bsl .ces-bsl-teaser__paras { display: flex; flex-direction: column; gap: 16px; font-size: 18px; line-height: 1.65; }
.ces-bsl .ces-bsl-teaser__note { margin-top: 28px; font-size: 15px; line-height: 1.5; color: var(--bsl-encre-douce); }

.ces-bsl .ces-bsl-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 34px;
	border-radius: 18px;
	background: var(--bsl-grad-deep);
	box-shadow: var(--bsl-ombre-haute);
}
.ces-bsl .ces-bsl-form h2 { font-size: 28px; color: #fff; }
.ces-bsl .ces-bsl-form__chapo { font-size: 16px; line-height: 1.6; color: var(--bsl-texte-sombre-doux); }
.ces-bsl .ces-bsl-form__connecte { padding: 10px 14px; border-radius: 10px; background: rgba(175, 210, 208, .12); font-size: 14px; line-height: 1.5; color: var(--bsl-bleu-clair); }
.ces-bsl .ces-bsl-champ { display: flex; flex-direction: column; gap: 8px; }
.ces-bsl .ces-bsl-champ label { font-size: 15px; font-weight: 600; color: var(--bsl-texte-sombre); }
.ces-bsl .ces-bsl-champ input {
	height: 54px;
	padding: 0 16px;
	border: none;
	border-radius: 12px;
	background: var(--bsl-blanc);
	color: var(--bsl-encre);
	font-size: 17px;
	box-shadow: none;
}
.ces-bsl .ces-bsl-piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ces-bsl .ces-bsl-consent { display: flex; gap: 12px; align-items: flex-start; }
.ces-bsl .ces-bsl-consent input {
	width: 22px;
	height: 22px;
	margin: 2px 0 0;
	flex-shrink: 0;
	accent-color: var(--bsl-jaune);
}
.ces-bsl .ces-bsl-consent label { font-size: 14px; line-height: 1.55; color: var(--bsl-texte-sombre-doux); }

/* --- Coulisses (administrateurs) ---------------------------------------- */

.ces-bsl .ces-bsl-coulisses {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px;
	border-radius: 18px;
	background: var(--bsl-blanc);
	border: 1px dashed var(--bsl-gris);
	font-size: 14px;
	color: var(--bsl-encre-douce);
}
.ces-bsl .ces-bsl-coulisses__tete { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: baseline; }
.ces-bsl .ces-bsl-coulisses h3 {
	font-family: var(--bsl-texte);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--bsl-encre-douce);
}
.ces-bsl .ces-bsl-coulisses__axes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.ces-bsl .ces-bsl-coulisses__lbl { display: flex; justify-content: space-between; color: var(--bsl-encre); font-weight: 600; }
.ces-bsl .ces-bsl-coulisses__barre { margin-top: 6px; height: 6px; border-radius: 999px; background: var(--bsl-ligne); overflow: hidden; }
.ces-bsl .ces-bsl-coulisses__barre > div { height: 100%; background: var(--bsl-bondi); }

/* --- Attente / erreur ---------------------------------------------------- */

.ces-bsl .ces-bsl-attente {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	max-width: 640px;
	margin: 0 auto;
	padding: 72px 0;
}
.ces-bsl .ces-bsl-attente__texte { font-family: var(--bsl-display); font-size: 30px; line-height: 1.2; color: var(--bsl-bleu-profond); }

/* --- Attente pendant la rédaction IA (v0.27.187) ----------------------- */

.ces-bsl .ces-bsl-attente--ia { gap: 14px; padding: 64px 0; }
.ces-bsl .ces-bsl-attente__titre { font-size: clamp(30px, 3.6vw, 38px); }
.ces-bsl .ces-bsl-attente__chapo { margin-bottom: 18px; font-size: 18px; line-height: 1.6; color: var(--bsl-encre-douce); }
.ces-bsl .ces-bsl-etapes { display: flex; flex-direction: column; gap: 18px; width: 100%; margin: 0; padding: 0; list-style: none; }
.ces-bsl .ces-bsl-etapes li { display: flex; align-items: center; gap: 16px; font-size: 18px; line-height: 1.4; color: var(--bsl-encre-douce); }
.ces-bsl .ces-bsl-etapes__marque {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 2px solid var(--bsl-ligne);
	background: var(--bsl-blanc);
	font-size: 15px;
	font-weight: 700;
}
.ces-bsl .ces-bsl-etapes li.est-fait { color: var(--bsl-encre); }
.ces-bsl .ces-bsl-etapes li.est-fait .ces-bsl-etapes__marque { border-color: var(--bsl-bondi); background: var(--bsl-bondi); color: #fff; }
.ces-bsl .ces-bsl-etapes li.est-en-cours { color: var(--bsl-bleu-profond); font-weight: 600; }
.ces-bsl .ces-bsl-etapes li.est-en-cours .ces-bsl-etapes__marque { border: 3px solid var(--bsl-bondi); animation: cesBslPouls 1.4s infinite; }
@keyframes cesBslPouls {
	0% { box-shadow: 0 0 0 0 rgba(0, 149, 165, .45); }
	70% { box-shadow: 0 0 0 10px rgba(0, 149, 165, 0); }
	100% { box-shadow: 0 0 0 0 rgba(0, 149, 165, 0); }
}
.ces-bsl .ces-bsl-encadre { width: 100%; margin-top: 26px; padding: 22px 24px; border-radius: 18px; background: var(--bsl-creme); border: 1px solid var(--bsl-ligne); }
.ces-bsl .ces-bsl-encadre span { font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--bsl-bleu); }
.ces-bsl .ces-bsl-encadre p { margin-top: 8px; font-size: 17px; line-height: 1.6; color: var(--bsl-encre); }

/* --- Rapport ------------------------------------------------------------- */

.ces-bsl .ces-bsl-rapport { padding: 24px 0 56px; }
.ces-bsl .ces-bsl-rapport__pile { display: flex; flex-direction: column; gap: 36px; }
.ces-bsl .ces-bsl-rapport__tete { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; max-width: 860px; }
.ces-bsl .ces-bsl-rapport__titre { font-size: clamp(30px, 4vw, 44px); }
.ces-bsl .ces-bsl-rapport__h { margin-bottom: 22px; font-size: clamp(26px, 3vw, 34px); }
.ces-bsl .ces-bsl-grille-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.ces-bsl .ces-bsl-grille-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ces-bsl .ces-bsl-etroit { max-width: 860px; }

.ces-bsl .ces-bsl-piste { gap: 14px; padding: 26px; }
.ces-bsl .ces-bsl-piste__n { font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--bsl-bleu); }
.ces-bsl .ces-bsl-piste h4 { font-size: 22px; line-height: 1.2; }
.ces-bsl .ces-bsl-piste strong { display: block; font-size: 14px; font-weight: 700; color: var(--bsl-encre); }
.ces-bsl .ces-bsl-piste p { margin-top: 4px; font-size: 15.5px; line-height: 1.6; color: var(--bsl-encre-douce); }
.ces-bsl .ces-bsl-piste__geste { margin-top: auto; padding: 16px 18px; border-radius: 12px; background: var(--bsl-creme); }
.ces-bsl .ces-bsl-piste__geste strong { color: var(--bsl-bleu-profond); }
.ces-bsl .ces-bsl-piste__geste p { color: var(--bsl-encre); }

.ces-bsl .ces-bsl-offre {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 44px;
	align-items: center;
	padding: 44px 52px;
	border-radius: 28px;
	background: var(--bsl-grad-deep);
}
.ces-bsl .ces-bsl-offre__texte { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.ces-bsl .ces-bsl-offre__texte h3 { font-size: clamp(28px, 3.2vw, 36px); color: #fff; }
.ces-bsl .ces-bsl-offre__texte p { font-size: 17px; line-height: 1.6; color: var(--bsl-texte-sombre-doux); }
.ces-bsl .ces-bsl-offre__texte .ces-bsl-offre__accroche { font-weight: 700; color: var(--bsl-jaune); }
.ces-bsl .ces-bsl-offre__texte .ces-bsl-offre__note { font-size: 15px; color: var(--bsl-bleu-clair); }
.ces-bsl .ces-bsl-offre__action { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
.ces-bsl .ces-bsl-offre__autre { font-size: 15px; line-height: 1.5; color: var(--bsl-bleu-clair); text-align: center; text-decoration: underline; }
.ces-bsl .ces-bsl-offre__autre:hover { color: #fff; }

.ces-bsl .ces-bsl-partenaire { max-width: 860px; }
.ces-bsl .ces-bsl-partenaire h3 { font-size: 24px; }
.ces-bsl .ces-bsl-partenaire .ces-bsl-partenaire__info { font-size: 15px; color: var(--bsl-encre-douce); }
.ces-bsl .ces-bsl-partenaire .ces-bsl-partenaire__commission { font-size: 13.5px; line-height: 1.5; color: var(--bsl-encre-douce); font-style: italic; }

/* --- Encarts d'accueil ([boussole_encart]) ------------------------------ */

.ces-bsl .ces-bsl-encart { display: flex; gap: 40px; border-radius: 28px; }
.ces-bsl .ces-bsl-encart__texte { display: flex; flex-direction: column; gap: 14px; }
.ces-bsl .ces-bsl-encart__titre { margin: 0; font-family: var(--bsl-display); font-weight: 400; line-height: 1.15; }
.ces-bsl .ces-bsl-encart__action { display: flex; flex-direction: column; gap: 12px; }

.ces-bsl .ces-bsl-encart--bandeau {
	align-items: center;
	justify-content: space-between;
	padding: 44px 56px;
	/* v0.27.195 — Fond bleu canard FND (#0095A5), demandé par Patrice. Sur
	   ce fond, seul le blanc reste lisible : les gris clairs de la carte
	   sombre tombaient à 2,3:1. */
	background: var(--bsl-bondi);
}
.ces-bsl .ces-bsl-encart--bandeau .ces-bsl-encart__texte { max-width: 640px; }
.ces-bsl .ces-bsl-encart--bandeau .ces-bsl-sur { background: rgba(255, 255, 255, .18); color: #fff; }
.ces-bsl .ces-bsl-encart--bandeau .ces-bsl-encart__titre { font-size: clamp(28px, 3vw, 38px); color: #fff; }
.ces-bsl .ces-bsl-encart--bandeau .ces-bsl-encart__corps { font-size: 18px; line-height: 1.6; color: #fff; }
.ces-bsl .ces-bsl-encart--bandeau .ces-bsl-encart__action { flex-shrink: 0; align-items: center; }
.ces-bsl .ces-bsl-encart--bandeau .ces-bsl-encart__mention { font-size: 14px; font-weight: 600; color: #fff; }

.ces-bsl .ces-bsl-encart--carte {
	flex-direction: column;
	/* v0.27.196 — Plus compacte : posée à côté d'une image dans une colonne
	   d'un tiers, la carte dépassait nettement l'image et laissait un grand
	   vide dessous sur un écran de 14 pouces. */
	gap: 10px;
	max-width: 420px;
	padding: 22px 24px;
	border-radius: 18px;
	background: var(--bsl-blanc);
	border: 1px solid var(--bsl-ligne);
	box-shadow: var(--bsl-ombre-carte);
}
.ces-bsl .ces-bsl-encart--carte .ces-bsl-encart__texte { gap: 10px; }
.ces-bsl .ces-bsl-encart--carte .ces-bsl-encart__titre { font-size: 23px; line-height: 1.2; color: var(--bsl-bleu-profond); }
.ces-bsl .ces-bsl-encart--carte .ces-bsl-encart__corps { font-size: 15px; line-height: 1.5; color: var(--bsl-encre-douce); }
.ces-bsl .ces-bsl-encart--carte .ces-bsl-encart__action { gap: 8px; }
.ces-bsl .ces-bsl-encart--carte .ces-bsl-cta { display: flex; width: 100%; min-height: 48px; padding: 12px 20px; font-size: 16px; }
.ces-bsl .ces-bsl-encart--carte .ces-bsl-encart__mention { font-size: 13px; line-height: 1.4; color: var(--bsl-encre-douce); text-align: center; }

/* v0.27.196 — Bandeau fin : une ligne, sur fond bleu canard. Titre et phrase
   à gauche, bouton à droite ; ni étiquette ni mention, pour tenir sous les
   cent pixels de haut. */
.ces-bsl .ces-bsl-encart--fin {
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 18px 28px;
	border-radius: 16px;
	background: var(--bsl-bondi);
}
.ces-bsl .ces-bsl-encart--fin .ces-bsl-sur,
.ces-bsl .ces-bsl-encart--fin .ces-bsl-encart__mention { display: none; }
.ces-bsl .ces-bsl-encart--fin .ces-bsl-encart__texte { gap: 2px; }
.ces-bsl .ces-bsl-encart--fin .ces-bsl-encart__titre { font-size: 22px; line-height: 1.25; color: #fff; }
.ces-bsl .ces-bsl-encart--fin .ces-bsl-encart__corps { margin: 0; font-size: 15px; line-height: 1.45; color: #fff; }
.ces-bsl .ces-bsl-encart--fin .ces-bsl-encart__action { flex-shrink: 0; }
.ces-bsl .ces-bsl-encart--fin .ces-bsl-cta { min-height: 46px; padding: 11px 22px; font-size: 16px; }
@media (max-width: 880px) {
	.ces-bsl.ces-bsl-encart-zone .ces-bsl-encart--fin { flex-direction: column; align-items: flex-start; gap: 14px; padding: 18px 20px; }
}

.ces-bsl-alerte { padding: 12px 16px; border-left: 4px solid #db4300; background: #fff5ef; }

/* --- Blocs étroits (tablette, téléphone, colonne avec barre latérale) ---- */

@container bsl (max-width: 999px) {
	.ces-bsl .ces-bsl-grille-3 { grid-template-columns: minmax(0, 1fr); }
}

@container bsl (max-width: 919px) {
	.ces-bsl .ces-bsl-accueil,
	.ces-bsl .ces-bsl-teaser__grille,
	.ces-bsl .ces-bsl-offre,
	.ces-bsl .ces-bsl-grille-2 { grid-template-columns: minmax(0, 1fr); }

	.ces-bsl .ces-bsl-accueil { gap: 36px; padding: 40px 22px; border-radius: 22px; }
	.ces-bsl .ces-bsl-accueil__carte { padding: 26px 22px; }
	.ces-bsl .ces-bsl-teaser { padding: 32px 18px 36px; border-radius: 22px; }
	.ces-bsl .ces-bsl-teaser__grille { gap: 32px; }
	.ces-bsl .ces-bsl-form { padding: 26px 20px; }
	.ces-bsl .ces-bsl-offre { gap: 26px; padding: 32px 22px; border-radius: 22px; }
	.ces-bsl .ces-bsl-carte { padding: 24px 20px; }
	.ces-bsl .ces-bsl-coulisses__axes { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.ces-bsl .ces-bsl-contenu { gap: 48px; margin-top: 44px; }
	.ces-bsl .ces-bsl-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ces-bsl .ces-bsl-profils { grid-template-columns: minmax(0, 1fr); }
	.ces-bsl .ces-bsl-bloc--auteurs { flex-direction: column; align-items: flex-start; padding: 24px 20px; }

	.ces-bsl .ces-bsl-encart--bandeau { padding: 36px 32px; gap: 28px; }
}

/* Le bandeau garde sa ligne tant que le texte a la place de respirer. */
@container bsl (max-width: 700px) {
	.ces-bsl .ces-bsl-encart--bandeau { flex-direction: column; align-items: flex-start; gap: 24px; padding: 32px 22px; border-radius: 22px; }
	.ces-bsl .ces-bsl-encart--bandeau .ces-bsl-encart__action { align-items: flex-start; }
}

/* v0.27.194 — L'encart n'est pas un conteneur de requêtes. Posé dans une
   colonne Divi (flex vertical avec retour à la ligne), un conteneur
   `inline-size` est mesuré à largeur nulle : Chrome calculait la hauteur du
   module sur cette largeur (1 520 px pour 291 px de contenu), d'où un grand
   vide sous le bandeau de l'accueil. Ses deux paliers passent en media
   queries, calés sur la largeur de contenu du thème (environ 80 % de
   l'écran). */
.ces-bsl.ces-bsl-encart-zone { container-type: normal; }
@media (max-width: 1150px) {
	.ces-bsl.ces-bsl-encart-zone .ces-bsl-encart--bandeau { padding: 36px 32px; gap: 28px; }
}
@media (max-width: 880px) {
	.ces-bsl.ces-bsl-encart-zone .ces-bsl-encart--bandeau { flex-direction: column; align-items: flex-start; gap: 24px; padding: 32px 22px; border-radius: 22px; }
	.ces-bsl.ces-bsl-encart-zone .ces-bsl-encart--bandeau .ces-bsl-encart__action { align-items: flex-start; }
}

@container bsl (max-width: 640px) {
	.ces-bsl .ces-bsl-q { padding: 16px 0 36px; }
	.ces-bsl .ces-bsl-q__barre { gap: 10px; }
	.ces-bsl .ces-bsl-retour { font-size: 0; gap: 0; padding: 0; width: 44px; justify-content: center; }
	.ces-bsl .ces-bsl-q__titre { margin-top: 20px; font-size: 27px; line-height: 1.18; }
	.ces-bsl .ces-bsl-q__sous { margin-bottom: 22px; font-size: 16px; }
	.ces-bsl .ces-bsl-opts { gap: 10px; }
	.ces-bsl .ces-bsl-opts--grille { grid-template-columns: minmax(0, 1fr); }
	.ces-bsl .ces-bsl-opt { gap: 14px; padding: 12px 16px; font-size: 17px; }
	.ces-bsl .ces-bsl-opt__marque { width: 22px; height: 22px; }
	.ces-bsl .ces-bsl-cta { width: 100%; padding: 14px 18px; font-size: 17px; }
	.ces-bsl .ces-bsl-accueil__intro { font-size: 17px; }
	.ces-bsl .ces-bsl-chiffre { padding: 18px 16px; }
	.ces-bsl .ces-bsl-chiffre__valeur { font-size: 32px; }
}

@media (prefers-reduced-motion: reduce) {
	.ces-bsl * { transition: none !important; animation: none !important; }
}

/* --- Mode plein écran : templates/boussole-page.php (v0.27.184) --------- */

body.ces-bsl-focus {
	margin: 0;
	background: #fbf8f2;
	color: #14283f;
	font-family: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}
body.ces-bsl-focus .ces-bsl-focus__tete {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	box-sizing: border-box;
	min-height: 76px;
	padding: 12px max(22px, calc((100% - 1180px) / 2));
	border-bottom: 1px solid #d8dfe4;
	background: #fbf8f2;
}
body.ces-bsl-focus .ces-bsl-focus__logo { display: inline-flex; align-items: center; text-decoration: none; color: #0e3554; }
body.ces-bsl-focus .ces-bsl-focus__logo img { display: block; width: auto; height: 44px; max-width: 220px; object-fit: contain; }
body.ces-bsl-focus .ces-bsl-focus__logo span { font-family: "Alice", Georgia, serif; font-size: 22px; }
body.ces-bsl-focus .ces-bsl-focus__etat { margin: 0; padding: 0; font-size: 15px; font-weight: 600; line-height: 1.3; color: #34465c; text-align: right; }
body.ces-bsl-focus .ces-bsl-focus__corps {
	box-sizing: border-box;
	max-width: 1180px;
	margin: 0 auto;
	padding: 32px 22px 56px;
}
body.ces-bsl-focus .ces-bsl-focus__pied {
	box-sizing: border-box;
	padding: 24px 22px 32px;
	border-top: 1px solid #d8dfe4;
	font-size: 14px;
	line-height: 1.6;
	color: #34465c;
	text-align: center;
}
body.ces-bsl-focus .ces-bsl-focus__pied p { margin: 0; padding: 0; }
body.ces-bsl-focus .ces-bsl-focus__pied a { color: #0e3554; text-decoration: underline; }
body.ces-bsl-focus .ces-bsl-focus__pied span { margin: 0 6px; }
/* Pas d'en-tête fixe ici : les écrans peuvent remonter tout en haut. */
body.ces-bsl-focus .ces-bsl .ces-bsl-q,
body.ces-bsl-focus .ces-bsl .ces-bsl-teaser,
body.ces-bsl-focus .ces-bsl .ces-bsl-rapport,
body.ces-bsl-focus .ces-bsl .ces-bsl-attente { scroll-margin-top: 16px; }

@media (max-width: 640px) {
	body.ces-bsl-focus .ces-bsl-focus__tete { min-height: 60px; padding: 8px 16px; }
	body.ces-bsl-focus .ces-bsl-focus__logo img { height: 36px; max-width: 160px; }
	body.ces-bsl-focus .ces-bsl-focus__etat { font-size: 14px; }
	body.ces-bsl-focus .ces-bsl-focus__corps { padding: 16px 16px 40px; }
}

/* ---------------------------------------------------------------------
   v0.27.188 — Bilan en PDF : « Enregistrer en PDF » ouvre l'impression du
   navigateur. Quand le rapport est affiché (classe posée sur <html> par le
   composant), tout ce qui n'est ni le rapport ni l'un de ses parents
   disparaît : menu du thème, pied de page, bandeau du mode plein écran.
   --------------------------------------------------------------------- */
.ces-bsl .ces-bsl-rapport__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.ces-bsl .ces-bsl-rapport__actions .ces-bsl-lien { display: inline-flex; align-items: center; gap: 6px; padding-left: 0; }
.ces-bsl .ces-bsl-imprime-seul { display: none; }

@media print {
	@page { margin: 16mm 14mm; }
	html.ces-bsl-imprimable body *:not(:has(.ces-bsl-rapport)):not(.ces-bsl-rapport):not(.ces-bsl-rapport *) { display: none !important; }
	html.ces-bsl-imprimable body,
	html.ces-bsl-imprimable body *:has(.ces-bsl-rapport) {
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		box-shadow: none !important;
		background: #fff !important;
		max-width: none !important;
		width: auto !important;
		position: static !important;
		min-height: 0 !important;
	}
	html.ces-bsl-imprimable .ces-bsl { container-type: normal; font-size: 11pt; color: #000; }
	.ces-bsl .ces-bsl-sans-impression,
	.ces-bsl .ces-bsl-cta,
	.ces-bsl .ces-bsl-offre__autre { display: none !important; }
	.ces-bsl .ces-bsl-imprime-seul { display: block !important; font-size: 9pt; word-break: break-all; }
	.ces-bsl .ces-bsl-carte,
	.ces-bsl .ces-bsl-offre,
	.ces-bsl .ces-bsl-partenaire { break-inside: avoid; box-shadow: none !important; border: 1px solid #ccc !important; background: #fff !important; }
	/* v0.27.191 — La carte de l'offre est sombre à l'écran (texte clair).
	   Son fond blanchi à l'impression, le texte doit repasser en foncé. */
	.ces-bsl .ces-bsl-offre { display: block !important; }
	.ces-bsl .ces-bsl-offre .ces-bsl-sur--sombre { background: #eef3f6 !important; color: var(--bsl-bleu-profond) !important; }
	.ces-bsl .ces-bsl-offre__texte h3 { color: var(--bsl-encre) !important; }
	.ces-bsl .ces-bsl-offre__texte p,
	.ces-bsl .ces-bsl-offre__texte .ces-bsl-offre__note { color: #333 !important; }
	.ces-bsl .ces-bsl-offre__texte .ces-bsl-offre__accroche { color: var(--bsl-encre) !important; }
	.ces-bsl .ces-bsl-grille-2,
	.ces-bsl .ces-bsl-grille-3 { display: block !important; }
	.ces-bsl .ces-bsl-grille-2 > *,
	.ces-bsl .ces-bsl-grille-3 > * { margin-bottom: 10pt; }
	.ces-bsl h2, .ces-bsl h3 { break-after: avoid; }
}
