/* =============================================================================
 * EXPAWORLD - Atlas des pays (extension expaworld-atlas)
 *
 * Page riche pour sa seule feuille (D-03, CLAUDE.md et DESIGN-TOKENS.md de la
 * racine) : ombres et degrades admis ici, jamais dans les gabarits PHP.
 * Modele : assets/css/actualites.css du theme (langage visuel de /finance/ :
 * hero sombre, carte blanche a cheval, sous-navigation soulignee, bandes
 * creme et sombre). Jetons recopies sous le prefixe --atlas-*, origine en
 * commentaire (expaworld-atlas/DESIGN-TOKENS.md).
 *
 * Aucune couleur ecrite en dur : variables de palette et color-mix(). Aucune
 * media query : grilles qui se replient, flex-wrap, clamp(). Les seuls etats
 * qui ne s'expriment pas en valeur fluide passent par des classes posees par
 * le script : est-etroit (699px, D-13), est-immobile (mouvement reduit),
 * est-lateral (sommaire a cote du contenu), est-impression (avant
 * impression). Aucune police declaree : Plus Jakarta Sans est heritee.
 * Graisses 400, 500 et 600 seulement.
 *
 * Contrastes introduits par cette feuille (WCAG, calcules le 2026-10-31 sur
 * les valeurs servies de la palette, color-mix en sRGB) :
 *   - texte courant (astglobalcolor3) sur creme : 11,1:1
 *   - --atlas-texte-doux sur blanc 6,5:1, sur creme 5,9:1 (Actualites : 6,58
 *     et 5,97)
 *   - --atlas-accent-texte sur blanc 5,3:1, sur creme 4,8:1
 *   - --atlas-clair-doux (blanc a 78 %) sur sombre : 11,8:1 ; texte d'attente
 *     du champ de recherche (blanc a 62 %) sur sombre : 7,7:1
 *   - bandeau d'apercu, sombre sur orange plein : 6,17:1
 *   - avertissement et retour d'envoi, texte courant sur orange a 8 % dans le
 *     blanc : 11,2:1
 *   - graduations des graphiques, texte doux 11px : 6,5:1 sur blanc, 5,9:1
 *     sur creme ; etiquettes de fin de courbe, couleur des titres : 18,9:1
 *   - traits de series (objets graphiques, seuil 3:1) : accent 3,15:1 sur
 *     blanc et 2,86:1 sur creme, distinct aussi par l'epaisseur, l'etiquette
 *     directe et la legende ecrite ; titres 18,9:1 ; texte doux 6,5:1 ;
 *     serie 4 (orange 55 % dans le sombre) 7,5:1 sur blanc, 6,8:1 sur creme
 *   - exceptions du site, inchangees : texte blanc sur bouton orange 3,15:1,
 *     surtitre orange sur photo
 * ========================================================================== */

/* =============================================================================
 * EN-TETE DU SITE ET CONTENEURS D'ASTRA (body.exw-atlas, classe du coeur)
 * L'en-tete transparent d'Astra est demande par le filtre
 * exw_atlas_hero_transparent : il passe sur le hero sombre ou photo.
 * ========================================================================== */

body.exw-atlas #content,
body.exw-atlas .site-content,
body.exw-atlas #primary,
body.exw-atlas .ast-container {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

body.exw-atlas .site-content > .ast-container {
	display: block;
}

/* =============================================================================
 * RACINE ET JETONS
 * ========================================================================== */

.exw-atlas__racine {
	/* Palette du site (style.css:164-174 du theme). */
	--atlas-accent: var(--e-global-color-astglobalcolor0);
	--atlas-titres: var(--e-global-color-astglobalcolor2);
	--atlas-texte: var(--e-global-color-astglobalcolor3);
	--atlas-blanc: var(--e-global-color-astglobalcolor5);
	--atlas-trait: var(--e-global-color-astglobalcolor6);
	--atlas-sombre: var(--e-global-color-astglobalcolor7);
	/*
	 * Echelle gauche-droite de l'encadre « Qui dirige le pays » (lot 2G,
	 * consigne de design de Samuel du 2026-11-01, CLAUDE.md et
	 * DESIGN-TOKENS.md) : rouge fonce a bleu fonce par un gris neutre. Seules
	 * couleurs hors palette de l'extension, admises par une exception nommee
	 * du garde. Chaque teinte tient au moins 4,8:1 sur le blanc et le creme ;
	 * le cran est toujours ecrit en toutes lettres, jamais porte par la
	 * couleur seule.
	 */
	--atlas-echelle-gauche: #8E1B2A;
	--atlas-echelle-centre-gauche: #B04A55;
	--atlas-echelle-centre: #6E6A66;
	--atlas-echelle-centre-droit: #46689C;
	--atlas-echelle-droite: #1F3B70;

	/* Derives, recopies d'actualites.css:31-41. */
	--atlas-creme: color-mix(in srgb, var(--atlas-trait) 30%, var(--atlas-blanc));
	--atlas-bordure: color-mix(in srgb, var(--atlas-trait) 75%, var(--atlas-blanc));
	--atlas-accent-texte: color-mix(in srgb, var(--atlas-accent) 72%, var(--atlas-sombre));
	--atlas-texte-doux: color-mix(in srgb, var(--atlas-texte) 80%, var(--atlas-blanc));
	/* Pays a venir de l'index : 3,3:1 sur creme, 3,6:1 sur blanc (contraste faible voulu, 2026-11-11). */
	--atlas-texte-pale: color-mix(in srgb, var(--atlas-texte) 60%, var(--atlas-blanc));
	--atlas-clair-doux: color-mix(in srgb, var(--atlas-blanc) 78%, transparent);
	--atlas-accent-voile: color-mix(in srgb, var(--atlas-accent) 8%, var(--atlas-blanc));

	/* Ombres, rayons, transition, gouttiere : actualites.css:52-58. */
	--atlas-ombre-contact: 0 1px 2px color-mix(in srgb, var(--atlas-sombre) 5%, transparent);
	--atlas-ombre-diffuse: 0 14px 34px color-mix(in srgb, var(--atlas-sombre) 7%, transparent);
	--atlas-ombre-relief: 0 3px 6px color-mix(in srgb, var(--atlas-sombre) 6%, transparent), 0 22px 48px color-mix(in srgb, var(--atlas-sombre) 13%, transparent);
	--atlas-rayon-carte: 14px;
	--atlas-rayon-controle: 9px;
	--atlas-rayon-pilule: 20px;
	--atlas-transition: 240ms cubic-bezier(0.22, 1, 0.36, 1);
	--atlas-gouttiere: clamp(20px, 2vw, 24px);

	/* Largeurs (D-14). */
	--atlas-largeur: 1280px;
	--atlas-mesure: 66ch;

	/* Carte. Terres en teinte de la bordure ; pays a dossier en orange ;
	   geometries sans fiche plus claires, sans lien. */
	--atlas-terre: color-mix(in srgb, var(--atlas-trait) 82%, var(--atlas-blanc));
	--atlas-terre-fond: color-mix(in srgb, var(--atlas-trait) 40%, var(--atlas-blanc));
	--atlas-terre-region: color-mix(in srgb, var(--atlas-accent) 24%, var(--atlas-blanc));
	--atlas-mer: color-mix(in srgb, var(--atlas-trait) 16%, var(--atlas-blanc));

	/* Series des graphiques : couleur, et aussi style de trait (plus bas). */
	--atlas-serie-1: var(--atlas-accent);
	--atlas-serie-2: var(--atlas-titres);
	--atlas-serie-3: var(--atlas-texte-doux);
	--atlas-serie-4: color-mix(in srgb, var(--atlas-accent) 55%, var(--atlas-sombre));
	--atlas-fond-graphique: var(--atlas-blanc);

	/* Pleine largeur : technique d'Actualites (actualites.css:60-69). */
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	position: relative;
	box-sizing: border-box;
	overflow-x: clip;

	background-color: var(--atlas-blanc);
	color: var(--atlas-texte);
	font-size: 17px;
	line-height: 1.75;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
}

.exw-atlas__racine *,
.exw-atlas__racine *::before,
.exw-atlas__racine *::after {
	box-sizing: border-box;
}

.exw-atlas__racine [hidden] {
	display: none !important;
}

/* Mouvement reduit, ou impression : aucune transition. */
.exw-atlas__racine.est-immobile,
.exw-atlas__racine.est-impression {
	--atlas-transition: 0s;
}

.exw-atlas__racine strong,
.exw-atlas__racine b {
	font-weight: 600;
}

.exw-atlas__invisible {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* Lien d'evitement : visible seulement au clavier. */
.exw-atlas__racine .exw-atlas__evitement {
	position: absolute;
	left: var(--atlas-gouttiere);
	z-index: 5;
	padding: 8px 14px;
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-sombre);
	color: var(--atlas-blanc);
	font-size: 14px;
	text-decoration: none;
	opacity: 0;
	pointer-events: none;
}

.exw-atlas__racine .exw-atlas__evitement:focus-visible {
	opacity: 1;
	pointer-events: auto;
}

/* Focus clavier : 2px d'accent, 3px de decalage (DESIGN-TOKENS.md section 7). */
.exw-atlas__racine a:focus-visible,
.exw-atlas__racine button:focus-visible,
.exw-atlas__racine input:focus-visible,
.exw-atlas__racine select:focus-visible,
.exw-atlas__racine summary:focus-visible,
.exw-atlas__racine [tabindex]:focus-visible {
	outline: 2px solid var(--atlas-accent);
	outline-offset: 3px;
}

.exw-atlas__racine button:focus:not(:focus-visible) {
	outline: none;
}

.exw-atlas__racine a {
	color: var(--atlas-accent-texte);
}

/* =============================================================================
 * LEXIQUE : sections, surtitres, titres, liens, boutons
 * ========================================================================== */

.exw-atlas__inner {
	max-width: var(--atlas-largeur);
	margin: 0 auto;
}

.exw-atlas__inner--lecture {
	max-width: 820px;
}

.exw-atlas__section {
	padding: clamp(60px, 6vw, 76px) var(--atlas-gouttiere);
}

.exw-atlas__section--serree {
	padding-top: clamp(40px, 5vw, 56px);
}

.exw-atlas__section--creme {
	--atlas-fond-graphique: var(--atlas-creme);
	background-color: var(--atlas-creme);
}

.exw-atlas__section--sombre {
	background-color: var(--atlas-sombre);
	color: var(--atlas-clair-doux);
}

.exw-atlas__kicker {
	margin: 0;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--atlas-accent-texte);
}

.exw-atlas__kicker--clair {
	color: var(--atlas-accent);
}

.exw-atlas__entete {
	margin-bottom: 40px;
}

.exw-atlas__entete .exw-atlas__kicker {
	margin-bottom: 16px;
	letter-spacing: 0.2em;
}

.exw-atlas__entete--fendue {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 40px;
}

.exw-atlas__entete-note {
	margin: 12px 0 0;
	max-width: 52ch;
	font-size: 15px;
	line-height: 1.6;
	color: var(--atlas-texte-doux);
}

.exw-atlas__racine .exw-atlas__h2 {
	margin: 0;
	max-width: 22ch;
	font-size: clamp(28px, 3.1vw, 44px);
	line-height: 1.18;
	font-weight: 500;
	letter-spacing: -0.03em;
	color: var(--atlas-titres);
}

.exw-atlas__racine .exw-atlas__h2--clair {
	color: var(--atlas-blanc);
}

.exw-atlas__racine .exw-atlas__lien {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--atlas-accent-texte);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color var(--atlas-transition);
}

.exw-atlas__racine .exw-atlas__lien::after {
	content: "\2192";
	font-weight: 400;
}

.exw-atlas__racine .exw-atlas__lien:hover,
.exw-atlas__racine .exw-atlas__lien:focus-visible {
	color: var(--atlas-accent-texte);
	border-bottom-color: currentColor;
}

.exw-atlas__sep {
	color: var(--atlas-texte-doux);
}

/* Boutons, modele /finance/ et Actualites (actualites.css:444-528). */
.exw-atlas__racine .exw-atlas__bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 0;
	padding: 14px 28px;
	border: 1px solid var(--atlas-accent);
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-accent);
	color: var(--atlas-blanc);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 8px 20px color-mix(in srgb, var(--atlas-accent) 30%, transparent);
	transition: box-shadow var(--atlas-transition), border-color var(--atlas-transition), background-color var(--atlas-transition);
}

.exw-atlas__racine .exw-atlas__bouton:hover,
.exw-atlas__racine .exw-atlas__bouton:focus-visible {
	color: var(--atlas-blanc);
	background-color: var(--atlas-accent);
	box-shadow: 0 14px 30px color-mix(in srgb, var(--atlas-accent) 38%, transparent);
}

.exw-atlas__racine .exw-atlas__bouton--clair {
	background-color: transparent;
	border-color: color-mix(in srgb, var(--atlas-blanc) 55%, transparent);
	color: var(--atlas-blanc);
	box-shadow: none;
}

.exw-atlas__racine .exw-atlas__bouton--clair:hover,
.exw-atlas__racine .exw-atlas__bouton--clair:focus-visible {
	background-color: var(--atlas-blanc);
	border-color: var(--atlas-blanc);
	color: var(--atlas-sombre);
	box-shadow: none;
}

.exw-atlas__racine .exw-atlas__bouton--contour {
	padding: 11px 20px;
	background-color: var(--atlas-blanc);
	border-color: var(--atlas-bordure);
	color: var(--atlas-titres);
	font-size: 15px;
	box-shadow: none;
}

.exw-atlas__racine .exw-atlas__bouton--contour:hover,
.exw-atlas__racine .exw-atlas__bouton--contour:focus-visible {
	background-color: var(--atlas-blanc);
	color: var(--atlas-titres);
	border-color: var(--atlas-accent);
	box-shadow: var(--atlas-ombre-contact), var(--atlas-ombre-diffuse);
}

/* =============================================================================
 * HERO
 * Sombre (repertoire, fiche sans photo), photo (fiche a dossier illustre),
 * court (comparateur, envoi de photo). Jetons --ew-hero-* de style.css.
 * ========================================================================== */

.exw-atlas__hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	padding: var(--ew-hero-pad-top, 182px) var(--atlas-gouttiere) var(--ew-hero-pad-bottom, 70px);
	background-color: var(--atlas-sombre);
	color: var(--atlas-blanc);
}

/* Lueur orange tres basse, a droite : celle du hero d'Actualites. */
.exw-atlas__hero--sombre::before,
.exw-atlas__hero--court::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: radial-gradient(60% 80% at 82% 70%, color-mix(in srgb, var(--atlas-accent) 12%, transparent) 0%, transparent 70%);
}

.exw-atlas__hero--photo {
	min-height: var(--ew-hero-min-height, 670px);
}

.exw-atlas__hero--court {
	padding-bottom: clamp(96px, 9vw, 120px);
}

/* Fiche : place pour la carte des chiffres, a cheval sur le bas du hero. */
.exw-atlas__racine--fiche .exw-atlas__hero {
	padding-bottom: calc(var(--ew-hero-pad-bottom, 70px) + 76px);
}

.exw-atlas__racine--fiche .exw-atlas__hero--sombre {
	min-height: min(var(--ew-hero-min-height, 670px), 600px);
}

.exw-atlas__hero-contenu {
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: var(--atlas-largeur);
	margin: 0 auto;
}

.exw-atlas__hero-photo,
.exw-atlas__hero-image {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.exw-atlas__hero-image {
	object-fit: cover;
	object-position: var(--atlas-cadrage-x, 50%) var(--atlas-cadrage-y, 50%);
}

/* Cadrage de photo.json, par paliers de 10 % (aucun style en ligne). */
.exw-atlas__cadrage-x-0 { --atlas-cadrage-x: 0%; }
.exw-atlas__cadrage-x-10 { --atlas-cadrage-x: 10%; }
.exw-atlas__cadrage-x-20 { --atlas-cadrage-x: 20%; }
.exw-atlas__cadrage-x-30 { --atlas-cadrage-x: 30%; }
.exw-atlas__cadrage-x-40 { --atlas-cadrage-x: 40%; }
.exw-atlas__cadrage-x-50 { --atlas-cadrage-x: 50%; }
.exw-atlas__cadrage-x-60 { --atlas-cadrage-x: 60%; }
.exw-atlas__cadrage-x-70 { --atlas-cadrage-x: 70%; }
.exw-atlas__cadrage-x-80 { --atlas-cadrage-x: 80%; }
.exw-atlas__cadrage-x-90 { --atlas-cadrage-x: 90%; }
.exw-atlas__cadrage-x-100 { --atlas-cadrage-x: 100%; }
.exw-atlas__cadrage-y-0 { --atlas-cadrage-y: 0%; }
.exw-atlas__cadrage-y-10 { --atlas-cadrage-y: 10%; }
.exw-atlas__cadrage-y-20 { --atlas-cadrage-y: 20%; }
.exw-atlas__cadrage-y-30 { --atlas-cadrage-y: 30%; }
.exw-atlas__cadrage-y-40 { --atlas-cadrage-y: 40%; }
.exw-atlas__cadrage-y-50 { --atlas-cadrage-y: 50%; }
.exw-atlas__cadrage-y-60 { --atlas-cadrage-y: 60%; }
.exw-atlas__cadrage-y-70 { --atlas-cadrage-y: 70%; }
.exw-atlas__cadrage-y-80 { --atlas-cadrage-y: 80%; }
.exw-atlas__cadrage-y-90 { --atlas-cadrage-y: 90%; }
.exw-atlas__cadrage-y-100 { --atlas-cadrage-y: 100%; }

/*
 * Voile uni, teinte sombre du site, sans degrade (CLAUDE.md, « Voiles des
 * heros »). L'opacite est mesuree photo par photo et inscrite dans
 * photo.json ; le gabarit l'arrondit au palier de 5 % superieur, jamais plus
 * clair que la mesure. Toute nouvelle photo se remesure de 390 a 2560px.
 */
.exw-atlas__hero-voile {
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: color-mix(in srgb, var(--atlas-sombre) var(--atlas-voile, 60%), transparent);
}

.exw-atlas__voile--30 { --atlas-voile: 30%; }
.exw-atlas__voile--35 { --atlas-voile: 35%; }
.exw-atlas__voile--40 { --atlas-voile: 40%; }
.exw-atlas__voile--45 { --atlas-voile: 45%; }
.exw-atlas__voile--50 { --atlas-voile: 50%; }
.exw-atlas__voile--55 { --atlas-voile: 55%; }
.exw-atlas__voile--60 { --atlas-voile: 60%; }
.exw-atlas__voile--65 { --atlas-voile: 65%; }
.exw-atlas__voile--70 { --atlas-voile: 70%; }
.exw-atlas__voile--75 { --atlas-voile: 75%; }
.exw-atlas__voile--80 { --atlas-voile: 80%; }

.exw-atlas__surtitre {
	margin: 0 0 var(--ew-hero-eyebrow-margin, 26px);
	font-size: var(--ew-hero-eyebrow-size, 11px);
	font-weight: var(--ew-hero-eyebrow-weight, 600);
	line-height: var(--ew-hero-eyebrow-line-height, 1.6);
	letter-spacing: var(--ew-hero-eyebrow-tracking, 0.18em);
	text-transform: uppercase;
	color: var(--ew-hero-eyebrow-color, var(--atlas-accent));
}

/*
 * Hero avec photo (lot 2E) : surtitre en creme. L'orange, accent de marque,
 * descendait a 2,04:1 sur la photo de l'Uruguay a 390px, voile compris ; le
 * creme du theme y tient 5,82:1 au pire pixel (390px) et jusqu'a 11,3:1, de
 * 390 a 2560px (verifications/RELECTURE-URUGUAY.md, lot 2E). Toute nouvelle
 * photo se remesure, surtitre compris (verifications/voile/). Hero sombre :
 * orange inchange, sur un fond uni ou il tient 6,17:1.
 */
.exw-atlas__hero--photo .exw-atlas__surtitre {
	color: var(--atlas-creme);
}

.exw-atlas__racine .exw-atlas__surtitre a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color var(--atlas-transition);
}

.exw-atlas__racine .exw-atlas__surtitre a:hover,
.exw-atlas__racine .exw-atlas__surtitre a:focus-visible {
	color: inherit;
	border-bottom-color: currentColor;
}

.exw-atlas__surtitre-sep {
	margin: 0 0.7em;
}

.exw-atlas__racine .exw-atlas__titre {
	margin: 0 0 var(--ew-hero-h1-margin, 24px);
	max-width: 18ch;
	font-size: var(--ew-hero-h1-size, clamp(38px, 4.4vw, 64px));
	font-weight: var(--ew-hero-h1-weight, 500);
	line-height: var(--ew-hero-h1-line-height, 1.3);
	letter-spacing: var(--ew-hero-h1-tracking, -0.013em);
	color: var(--ew-hero-h1-color, var(--atlas-blanc));
}

.exw-atlas__racine--comparateur .exw-atlas__titre {
	max-width: 26ch;
}

.exw-atlas__accroche {
	max-width: var(--ew-hero-subtitle-max, 64ch);
	margin: 0 0 var(--ew-hero-subtitle-margin, 34px);
	font-size: var(--ew-hero-subtitle-size, clamp(16px, 1.35vw, 19px));
	line-height: var(--ew-hero-subtitle-line-height, 1.65);
	color: var(--ew-hero-subtitle-color, var(--atlas-clair-doux));
}

.exw-atlas__accroche:last-child {
	margin-bottom: 0;
}

/* Ligne de meta, separateurs « · » de hero.css:120-140 du theme. */
.exw-atlas__meta {
	display: flex;
	flex-wrap: wrap;
	column-gap: calc(2 * var(--ew-hero-meta-separator-margin, 9px) + 0.286em);
	margin: 0;
	overflow: hidden;
	font-size: var(--ew-hero-meta-size, 15px);
	line-height: var(--ew-hero-meta-line-height, 1.6);
	color: var(--ew-hero-meta-color, var(--atlas-clair-doux));
	font-variant-numeric: tabular-nums;
}

.exw-atlas__meta > span {
	position: relative;
}

.exw-atlas__meta > span::before {
	content: "·";
	position: absolute;
	right: 100%;
	margin-right: var(--ew-hero-meta-separator-margin, 9px);
}

.exw-atlas__hero-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin: 28px 0 0;
}

.exw-atlas__hero-actions:empty {
	display: none;
}

/* Bandeau d'apercu d'un contenu non publie : sombre sur orange, 6,17:1. */
.exw-atlas__apercu {
	display: block;
	margin: 0 0 28px;
	max-width: 46em;
	padding: 14px 18px;
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-accent);
	color: var(--atlas-sombre);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.45;
}

.exw-atlas__apercu-detail {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	font-weight: 400;
}

/* Credit Unsplash : sous le contenu, a droite, sur le voile. */
.exw-atlas__credit {
	position: absolute;
	right: var(--atlas-gouttiere);
	bottom: 12px;
	z-index: 3;
	margin: 0;
	font-size: 12px;
	line-height: 1.4;
	color: var(--atlas-clair-doux);
}

.exw-atlas__racine--fiche .exw-atlas__credit {
	bottom: calc(76px + 12px);
}

.exw-atlas__racine .exw-atlas__credit a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--atlas-blanc) 40%, transparent);
	text-underline-offset: 2px;
}

/* Planisphere decoratif du hero sombre de la fiche (aria-hidden). */
.exw-atlas__hero-carte {
	position: absolute;
	z-index: 0;
	right: clamp(-40px, -2vw, 0px);
	bottom: clamp(70px, 9vw, 120px);
	width: clamp(360px, 52vw, 880px);
	pointer-events: none;
	opacity: 0.9;
}

.exw-atlas__hero-carte .exw-atlas__carte-svg {
	display: block;
	width: 100%;
	height: auto;
}

.exw-atlas__hero-carte .exw-atlas__carte-fond,
.exw-atlas__hero-carte .exw-atlas__carte-terres,
.exw-atlas__hero-carte .exw-atlas__carte-pays path,
.exw-atlas__hero-carte .exw-atlas__carte-pays circle {
	fill: color-mix(in srgb, var(--atlas-blanc) 9%, transparent);
	stroke: none;
}

.exw-atlas__hero-carte .exw-atlas__carte-terres--courant,
.exw-atlas__hero-carte .exw-atlas__carte-pays .exw-atlas__carte-entite--courant path,
.exw-atlas__hero-carte .exw-atlas__carte-pays .exw-atlas__carte-entite--courant circle {
	fill: var(--atlas-accent);
}

/*
 * Sous 699px, le planisphere passait sous le texte, et le pays en orange
 * tombait au hasard sous le surtitre ou le titre : il n'est pas affiche. La
 * carte de situation de la fiche reste plus bas.
 */
.exw-atlas__racine.est-etroit .exw-atlas__hero-carte {
	display: none;
}

/* Recherche du repertoire, dans le hero. */
.exw-atlas__recherche {
	margin: 34px 0 0;
	max-width: 560px;
}

.exw-atlas__recherche-libelle {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--atlas-clair-doux);
}

body .exw-atlas__racine input.exw-atlas__recherche-champ {
	width: 100%;
	margin: 0;
	padding: 15px 18px;
	border: 1px solid color-mix(in srgb, var(--atlas-blanc) 30%, transparent);
	border-radius: var(--atlas-rayon-controle);
	background-color: color-mix(in srgb, var(--atlas-blanc) 8%, transparent);
	color: var(--atlas-blanc);
	font-size: 17px;
	line-height: 1.4;
	box-shadow: none;
	transition: border-color var(--atlas-transition), background-color var(--atlas-transition);
}

body .exw-atlas__racine input.exw-atlas__recherche-champ::placeholder {
	color: color-mix(in srgb, var(--atlas-blanc) 62%, transparent);
	opacity: 1;
}

body .exw-atlas__racine input.exw-atlas__recherche-champ:focus {
	border-color: var(--atlas-accent);
	background-color: color-mix(in srgb, var(--atlas-blanc) 12%, transparent);
}

.exw-atlas__recherche-etat {
	min-height: 1.5em;
	margin: 10px 0 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--atlas-clair-doux);
	font-variant-numeric: tabular-nums;
}

/* =============================================================================
 * SOUS-NAVIGATION SOULIGNEE (actualites.css:1196-1271, finance.css:655-701)
 * ========================================================================== */

.exw-atlas__sousnav {
	position: sticky;
	top: 0;
	z-index: 30;
	background-color: var(--atlas-blanc);
	border-bottom: 1px solid var(--atlas-bordure);
}

.exw-atlas__sousnav-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px 20px;
	max-width: calc(var(--atlas-largeur) + 2 * var(--atlas-gouttiere));
	margin: 0 auto;
	padding: 0 var(--atlas-gouttiere);
}

.exw-atlas__sousnav-liste {
	display: flex;
	flex: 1 1 auto;
	gap: 2px;
	min-width: 0;
	margin: 0;
	padding: 0 28px 0 0;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, var(--atlas-sombre) calc(100% - 32px), transparent 100%);
	mask-image: linear-gradient(90deg, var(--atlas-sombre) calc(100% - 32px), transparent 100%);
}

.exw-atlas__sousnav-liste::-webkit-scrollbar {
	display: none;
}

/*
 * Avec le script (atlas.js mesure le defilement), le fondu suit la position :
 * a droite s'il reste des onglets, a gauche des qu'on a defile, aucun quand
 * tout tient. Plus large que le fondu fixe, pour etre vu sur ordinateur.
 */
.exw-atlas__sousnav-liste.avec-fondu-mesure {
	-webkit-mask-image: none;
	mask-image: none;
}

.exw-atlas__sousnav-liste.avec-fondu-mesure.a-suite-droite {
	-webkit-mask-image: linear-gradient(90deg, var(--atlas-sombre) calc(100% - 72px), transparent 100%);
	mask-image: linear-gradient(90deg, var(--atlas-sombre) calc(100% - 72px), transparent 100%);
}

.exw-atlas__sousnav-liste.avec-fondu-mesure.a-suite-gauche {
	-webkit-mask-image: linear-gradient(90deg, transparent 0, var(--atlas-sombre) 48px);
	mask-image: linear-gradient(90deg, transparent 0, var(--atlas-sombre) 48px);
}

.exw-atlas__sousnav-liste.avec-fondu-mesure.a-suite-gauche.a-suite-droite {
	-webkit-mask-image: linear-gradient(90deg, transparent 0, var(--atlas-sombre) 48px, var(--atlas-sombre) calc(100% - 72px), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, var(--atlas-sombre) 48px, var(--atlas-sombre) calc(100% - 72px), transparent 100%);
}

/*
 * Frise du dossier (atlas-dossier.css, feuille non riche, sans degrade) : le
 * fondu de droite, qui dit qu'il reste des evenements, vit ici, dans la
 * feuille riche. Pose par atlas-frise.js tant que la bande n'est pas au bout.
 */
.exw-atlas__racine .exw-atlas__frise.est-frise .exw-atlas__frise-liste.a-suite-droite {
	-webkit-mask-image: linear-gradient(90deg, var(--atlas-sombre) calc(100% - 72px), transparent 100%);
	mask-image: linear-gradient(90deg, var(--atlas-sombre) calc(100% - 72px), transparent 100%);
}

.exw-atlas__racine .exw-atlas__sousnav-lien {
	display: block;
	padding: 16px 12px 14px;
	border-bottom: 2px solid transparent;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	white-space: nowrap;
	text-decoration: none;
	color: var(--atlas-texte);
	transition: color var(--atlas-transition), border-color var(--atlas-transition);
}

.exw-atlas__racine .exw-atlas__sousnav-lien:hover {
	color: var(--atlas-accent-texte);
}

.exw-atlas__racine .exw-atlas__sousnav-lien.est-courante {
	color: var(--atlas-accent-texte);
	border-bottom-color: var(--atlas-accent);
}

/* Sans script, « Toutes les regions » n'est qu'un lien : pas d'etat. */
.exw-atlas__racine:not(.avec-script) .exw-atlas__sousnav-lien.est-courante {
	border-bottom-color: transparent;
	color: var(--atlas-texte);
}

.exw-atlas__bascule {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 8px;
	padding: 10px 0;
	font-size: 14px;
	line-height: 1.4;
	color: var(--atlas-texte);
	cursor: pointer;
	white-space: nowrap;
}

.exw-atlas__bascule input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--atlas-accent);
}

.exw-atlas__sousnav-sous {
	max-width: calc(var(--atlas-largeur) + 2 * var(--atlas-gouttiere));
	margin: 0 auto;
	padding: 2px var(--atlas-gouttiere) 12px;
}

.exw-atlas__sousnav-sousliste {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.exw-atlas__racine .exw-atlas__puce {
	margin: 0;
	padding: 6px 13px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-pilule);
	background: var(--atlas-blanc);
	box-shadow: none;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: normal;
	text-transform: none;
	color: var(--atlas-texte);
	cursor: pointer;
	transition: border-color var(--atlas-transition), color var(--atlas-transition);
}

.exw-atlas__racine .exw-atlas__puce:hover {
	background: var(--atlas-blanc);
	border-color: var(--atlas-accent);
	color: var(--atlas-texte);
}

.exw-atlas__racine .exw-atlas__puce.est-courante {
	border-color: var(--atlas-accent);
	color: var(--atlas-accent-texte);
	font-weight: 500;
}

/*
 * Le champ garde sa largeur (le texte d'aide n'est jamais coupe) : c'est la
 * liste des familles qui cede et defile. Sous 699px, il passe sur sa ligne.
 */
.exw-atlas__filtre-indicateur {
	flex: 0 0 clamp(220px, 22vw, 280px);
	padding: 8px 0;
}

body .exw-atlas__racine input.exw-atlas__filtre-champ {
	width: 100%;
	margin: 0;
	padding: 9px 12px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-blanc);
	color: var(--atlas-titres);
	font-size: 14px;
	line-height: 1.4;
}

.exw-atlas__racine.est-etroit .exw-atlas__sousnav-inner {
	flex-wrap: wrap;
}

.exw-atlas__racine.est-etroit .exw-atlas__filtre-indicateur {
	flex: 1 1 100%;
	padding-top: 0;
}

/* =============================================================================
 * CARTE
 * ========================================================================== */

.exw-atlas__carte-section {
	padding-bottom: clamp(40px, 5vw, 56px);
}

.exw-atlas__carte {
	position: relative;
}

.exw-atlas__carte .exw-atlas__carte-svg {
	display: block;
	width: 100%;
	height: auto;
}

/*
 * Entites de la carte : enfants directs de .exw-atlas__carte-pays (liens du
 * repertoire, groupes sans lien) ; la classe exw-atlas__carte-entite n'est
 * posee que pour un etat (--dossier, --region, --courant), pour alleger la
 * page. Le fond commun (planisphere du hero, carte de situation) arrive par
 * <use> : ses traces heritent fill et stroke de l'element <use>.
 */
.exw-atlas__carte-fond path,
use.exw-atlas__carte-fond {
	fill: var(--atlas-terre-fond);
	stroke: var(--atlas-blanc);
	stroke-width: 0.4;
}

.exw-atlas__carte-pays > * > path,
use.exw-atlas__carte-terres {
	fill: var(--atlas-terre);
	stroke: var(--atlas-blanc);
	stroke-width: 0.45;
	stroke-linejoin: round;
	transition: fill var(--atlas-transition);
}

.exw-atlas__carte-point,
use.exw-atlas__carte-terres--points {
	fill: var(--atlas-blanc);
	stroke: var(--atlas-texte-doux);
	stroke-width: 0.9;
	transition: fill var(--atlas-transition), stroke var(--atlas-transition);
}

.exw-atlas__carte-pays > .exw-atlas__carte-entite--dossier > path {
	fill: var(--atlas-accent);
}

.exw-atlas__carte-entite--dossier .exw-atlas__carte-point {
	fill: var(--atlas-accent);
	stroke: var(--atlas-accent-texte);
}

.exw-atlas__carte-pays > a:hover > path,
.exw-atlas__carte-pays > a:focus-visible > path {
	fill: var(--atlas-accent-texte);
}

.exw-atlas__carte-pays > a:hover .exw-atlas__carte-point,
.exw-atlas__carte-pays > a:focus-visible .exw-atlas__carte-point {
	fill: var(--atlas-accent-texte);
	stroke: var(--atlas-sombre);
}

.exw-atlas__racine .exw-atlas__carte-pays > a:focus-visible {
	outline: none;
}

.exw-atlas__racine .exw-atlas__carte-pays > a:focus-visible path,
.exw-atlas__racine .exw-atlas__carte-pays > a:focus-visible circle {
	stroke: var(--atlas-sombre);
	stroke-width: 1.2;
}

/* Filtres du repertoire : les pays retenus prennent la teinte claire de
   l'accent, les autres s'effacent ; les pays a dossier gardent l'orange. */
.exw-atlas__carte-pays > .est-dans-filtre:not(.exw-atlas__carte-entite--dossier) > path {
	fill: var(--atlas-terre-region);
}

.exw-atlas__carte-pays > .est-dans-filtre:not(.exw-atlas__carte-entite--dossier) .exw-atlas__carte-point {
	fill: var(--atlas-terre-region);
	stroke: var(--atlas-accent-texte);
}

.exw-atlas__carte-pays > .est-hors-filtre > path {
	fill: var(--atlas-terre-fond);
}

.exw-atlas__carte-pays > .est-hors-filtre .exw-atlas__carte-point {
	stroke: var(--atlas-bordure);
}

/* Etiquette de survol de la carte, posee par le script. */
.exw-atlas__carte-etiquette {
	position: absolute;
	z-index: 4;
	padding: 5px 10px;
	border-radius: 6px;
	background-color: var(--atlas-sombre);
	color: var(--atlas-blanc);
	font-size: 13px;
	line-height: 1.4;
	white-space: nowrap;
	pointer-events: none;
	transform: translate(-50%, calc(-100% - 10px));
}

.exw-atlas__legende-carte {
	margin: 18px 0 0;
	max-width: 72ch;
	font-size: 13px;
	line-height: 1.6;
	color: var(--atlas-texte-doux);
}

.exw-atlas__legende-dossier::before {
	content: "";
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-right: 6px;
	border-radius: 2px;
	background-color: var(--atlas-accent);
	vertical-align: -1px;
}

/* =============================================================================
 * REPERTOIRE : INDEX
 * ========================================================================== */

.exw-atlas__index-vide {
	margin: 0 0 32px;
	font-size: 17px;
	color: var(--atlas-texte);
}

.exw-atlas__region {
	margin-top: clamp(40px, 5vw, 64px);
}

.exw-atlas__region:first-of-type {
	margin-top: 0;
}

.exw-atlas__racine .exw-atlas__region-titre {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 4px 20px;
	margin: 0;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--atlas-trait);
	font-size: clamp(26px, 2.6vw, 36px);
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: -0.025em;
	color: var(--atlas-titres);
}

.exw-atlas__region-nombre {
	font-size: 13px;
	font-weight: 400;
	letter-spacing: normal;
	color: var(--atlas-texte-doux);
	font-variant-numeric: tabular-nums;
}

/* Colonnes d'un index d'atlas : les sous-regions coulent de colonne en colonne. */
.exw-atlas__region-colonnes {
	columns: 15rem;
	column-gap: clamp(28px, 3.2vw, 56px);
	margin-top: 26px;
}

.exw-atlas__sous-region {
	break-inside: avoid;
	margin: 0 0 30px;
}

/*
 * Hierarchie de l'index (consigne de design de Samuel du 2026-11-11) :
 * sous-region en petites capitales grises, nettement sous le nom des pays ;
 * pays disponible en texte principal, 600, capitale dessous ; pays a venir
 * en gris clair (--atlas-texte-pale, 3,3:1 sur creme, contraste faible
 * voulu), sans capitale ni etiquette, non cliquable.
 */
.exw-atlas__racine .exw-atlas__sous-region-titre {
	margin: 0 0 8px;
	font-size: 10px;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--atlas-texte-doux);
}

.exw-atlas__pays-liste {
	margin: 0;
	padding: 0;
	list-style: none;
}

.exw-atlas__pays {
	margin: 0;
	padding: 5px 0;
}

.exw-atlas__pays-nom {
	font-size: clamp(17px, 1.35vw, 19px);
	line-height: 1.3;
	letter-spacing: -0.005em;
	text-wrap: pretty;
}

/* Toute la ligne (nom et capitale) est le lien. */
.exw-atlas__racine .exw-atlas__pays-lien {
	display: block;
	color: var(--atlas-texte);
	text-decoration: none;
	border: 0;
}

.exw-atlas__racine .exw-atlas__pays--dossier .exw-atlas__pays-nom {
	font-weight: 600;
	color: var(--atlas-texte);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	text-decoration-color: transparent;
	transition: color var(--atlas-transition), text-decoration-color var(--atlas-transition);
}

/*
 * Survol et focus : seul le nom passe en orange et se souligne en orange,
 * sans fleche (consigne de Samuel du 2026-11-11). Orange de texte
 * (--atlas-accent-texte, 5,26:1 sur blanc) : l'orange pur plafonne a 2,9:1.
 * Le dernier mot reste insecable. Jamais de position absolue dans l'index en
 * colonnes : WebKit place un element absolu dans la colonne deroulee et
 * allonge la page sous le pied (Safari, 2026-11-11, D-41).
 */
.exw-atlas__pays-fin {
	white-space: nowrap;
}

.exw-atlas__racine .exw-atlas__pays-lien:hover .exw-atlas__pays-nom,
.exw-atlas__racine .exw-atlas__pays-lien:focus-visible .exw-atlas__pays-nom {
	color: var(--atlas-accent-texte);
	text-decoration-color: var(--atlas-accent-texte);
}

.exw-atlas__pays--bientot .exw-atlas__pays-nom {
	font-weight: 400;
	color: var(--atlas-texte-pale);
	cursor: default;
}

.exw-atlas__pays-capitale {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	line-height: 1.4;
	font-weight: 400;
	color: var(--atlas-texte-doux);
}

/* Legende unique de l'index, a la place des etiquettes par ligne. */
.exw-atlas__index-legende {
	margin: -12px 0 clamp(32px, 4vw, 48px);
	font-size: 14px;
	line-height: 1.6;
	color: var(--atlas-texte);
}

.exw-atlas__index-legende-sep,
.exw-atlas__index-legende-gris {
	color: var(--atlas-texte-doux);
}

/* Bande sombre du comparateur (modele presse.css:220-244). */
.exw-atlas__bandeau-grille {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 48px;
}

/* Surtitre du bandeau : meme ecart au titre que les en-tetes de section (16px). */
.exw-atlas__bandeau .exw-atlas__kicker {
	margin-bottom: 16px;
	letter-spacing: 0.2em;
}

.exw-atlas__bandeau-texte {
	max-width: 54ch;
	margin: 18px 0 0;
	font-size: 16px;
	line-height: 1.7;
	color: var(--atlas-clair-doux);
}

.exw-atlas__bandeau-action {
	margin: 0;
}

/* =============================================================================
 * FICHE : CHIFFRES CLES, a cheval sur le hero
 * Une seule carte, une ligne de chiffres composee comme dans un magazine ;
 * filets entre les valeurs (le premier filet de chaque ligne est coupe par
 * le debordement masque de la liste, sans media query).
 * ========================================================================== */

.exw-atlas__cles-bande {
	position: relative;
	z-index: 4;
	max-width: calc(var(--atlas-largeur) + 2 * var(--atlas-gouttiere));
	margin: -76px auto 0;
	padding: 0 var(--atlas-gouttiere);
}

.exw-atlas__cles {
	padding: clamp(20px, 2.2vw, 28px) clamp(16px, 2.2vw, 30px) clamp(16px, 1.6vw, 20px);
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-carte);
	background-color: var(--atlas-blanc);
	box-shadow: var(--atlas-ombre-contact), var(--atlas-ombre-diffuse);
}

/*
 * Six chiffres, repartis sans media query en 6, 3, 2 ou 1 colonne(s), jamais
 * en 4 + 2 : la largeur minimale d'une colonne vaut 1/6 de la liste quand six
 * colonnes de 152px tiennent (912px), 1/3 de 456 a 912px, 1/2 de 304 a 456px,
 * la liste entiere en dessous ; chaque (seuil - 100%) * 999 vaut 0 ou un
 * grand nombre, borne par clamp(). Le pixel retire absorbe les arrondis.
 */
.exw-atlas__cles-liste {
	--atlas-cle-colonne: max(
		clamp(100% / 6, (912px - 100%) * 999, 100% / 3),
		clamp(0px, (456px - 100%) * 999, 100% / 2),
		clamp(0px, (304px - 100%) * 999, 100%)
	);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(calc(var(--atlas-cle-colonne) - 1px), 1fr));
	grid-auto-rows: auto;
	margin: 0;
	overflow: hidden;
}

/*
 * Chaque carte s'etend sur quatre rangees partagees (libelle, nombre, unite,
 * annee) et une cinquieme pour la vignette : les memes elements sont alignes
 * d'une colonne a l'autre, meme quand un libelle passe sur deux lignes.
 */
.exw-atlas__cle {
	display: grid;
	grid-row: span 5;
	grid-template-rows: subgrid;
	row-gap: 3px;
	align-content: start;
	min-width: 0;
	margin: -1px 0 0 -1px;
	padding: 12px clamp(14px, 1.6vw, 22px) 14px;
	border-left: 1px solid var(--atlas-bordure);
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__cle dd {
	margin: 0;
}

.exw-atlas__cle-libelle {
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.45;
	text-transform: uppercase;
	color: var(--atlas-texte-doux);
}

.exw-atlas__cle-valeur {
	margin-top: 6px !important;
	white-space: nowrap;
}

/*
 * Valeur absente : « Donnée indisponible » et son motif se replient dans la
 * colonne. Sans cela, le nowrap du chiffre faisait deborder le motif sur la
 * carte voisine (Venezuela, Monaco, 2026-11-03).
 */
.exw-atlas__cle-valeur--absente {
	min-width: 0;
	white-space: normal;
	overflow-wrap: break-word;
	hyphens: auto;
}

.exw-atlas__cle-unite {
	font-size: 13px;
	line-height: 1.4;
	color: var(--atlas-texte-doux);
}

.exw-atlas__chiffre {
	color: var(--atlas-titres);
	font-variant-numeric: tabular-nums;
}

.exw-atlas__chiffre-nombre {
	font-size: clamp(26px, 2.5vw, 34px);
	line-height: 1.08;
	font-weight: 500;
	letter-spacing: -0.025em;
}

.exw-atlas__chiffre-unite {
	font-size: 13px;
	line-height: 1.4;
	font-weight: 400;
	letter-spacing: normal;
	color: var(--atlas-texte-doux);
}

.exw-atlas__cle-annee {
	font-size: 12.5px;
	line-height: 1.4;
	color: var(--atlas-texte-doux);
	font-variant-numeric: tabular-nums;
}

.exw-atlas__cle-vignette {
	align-self: end;
	padding-top: 10px;
}

.exw-atlas__vignette {
	display: block;
	overflow: visible;
}

.exw-atlas__vignette-trace {
	fill: none;
	stroke: var(--atlas-accent);
	stroke-width: 1.6;
	stroke-linejoin: round;
	stroke-linecap: round;
}

.exw-atlas__vignette-point {
	fill: var(--atlas-accent);
	stroke: var(--atlas-blanc);
	stroke-width: 1.5;
}

.exw-atlas__cles-pied {
	margin: 14px 0 0;
	padding-top: 14px;
	border-top: 1px solid var(--atlas-bordure);
	font-size: 13px;
	line-height: 1.55;
	color: var(--atlas-texte-doux);
}

/* =============================================================================
 * DONNEE INDISPONIBLE (une seule fonction de rendu, format.php)
 * ========================================================================== */

.exw-atlas__indisponible {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 8px 0 4px;
}

.exw-atlas__indisponible-tete {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--atlas-titres);
}

.exw-atlas__indisponible-motif {
	max-width: 46ch;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--atlas-texte-doux);
}

.exw-atlas__indisponible--court {
	margin: 0;
}

.exw-atlas__indisponible--court .exw-atlas__indisponible-tete {
	font-size: 15px;
}

.exw-atlas__indisponible--court .exw-atlas__indisponible-motif {
	font-size: 12.5px;
}

.exw-atlas__indisponible--cellule {
	margin: 0;
}

.exw-atlas__indisponible--cellule .exw-atlas__indisponible-tete {
	font-size: 15px;
	font-weight: 400;
}

/* =============================================================================
 * FICHE : CORPS EN DEUX COLONNES
 * Sommaire et contenu se replient l'un sous l'autre par flex-wrap ; le
 * sommaire n'est collant que s'il est a cote du contenu (est-lateral, pose
 * par le script apres mesure) ou, sous 699px, en barre compacte.
 * ========================================================================== */

.exw-atlas__corps {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: clamp(28px, 4vw, 64px);
	max-width: calc(var(--atlas-largeur) + 2 * var(--atlas-gouttiere));
	margin: 0 auto;
	padding: clamp(48px, 6vw, 76px) var(--atlas-gouttiere) clamp(60px, 6vw, 76px);
}

.exw-atlas__sommaire {
	flex: 1 1 210px;
	max-width: 100%;
	min-width: 0;
}

.exw-atlas__contenu {
	flex: 999 1 min(100%, 640px);
	min-width: 0;
}

.exw-atlas__sommaire.est-lateral {
	position: sticky;
	top: 24px;
	max-width: 260px;
}

.exw-atlas__sommaire.est-lateral .exw-atlas__sommaire-cadre {
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	scrollbar-width: thin;
}

.exw-atlas__sommaire-titre {
	margin: 0 0 14px;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--atlas-texte-doux);
}

.exw-atlas__sommaire-liste,
.exw-atlas__sommaire-sous {
	margin: 0;
	padding: 0;
	list-style: none;
}

.exw-atlas__sommaire-liste {
	border-left: 1px solid var(--atlas-bordure);
}

.exw-atlas__racine .exw-atlas__sommaire-lien {
	display: block;
	margin-left: -1px;
	padding: 6px 0 6px 14px;
	border-left: 2px solid transparent;
	font-size: 14px;
	line-height: 1.4;
	color: var(--atlas-texte);
	text-decoration: none;
	transition: color var(--atlas-transition), border-color var(--atlas-transition);
}

.exw-atlas__racine .exw-atlas__sommaire-lien:hover {
	color: var(--atlas-accent-texte);
}

.exw-atlas__racine .exw-atlas__sommaire-lien--donnees {
	padding-left: 28px;
	font-size: 13px;
	color: var(--atlas-texte-doux);
}

.exw-atlas__racine .exw-atlas__sommaire-lien.est-courante {
	border-left-color: var(--atlas-accent);
	color: var(--atlas-titres);
	font-weight: 500;
}

/* Sommaire replie au-dessus du contenu (largeurs moyennes) : en colonnes,
   pour ne pas repousser le contenu d'un ecran. */
.exw-atlas__racine:not(.est-etroit) .exw-atlas__sommaire:not(.est-lateral) .exw-atlas__sommaire-liste {
	columns: 15rem;
	column-gap: 32px;
}

.exw-atlas__racine:not(.est-etroit) .exw-atlas__sommaire:not(.est-lateral) .exw-atlas__sommaire-liste > li {
	break-inside: avoid;
}

/* Sous 699px : barre compacte collante, premier niveau seul. */
.exw-atlas__racine.est-etroit .exw-atlas__sommaire {
	position: sticky;
	top: 0;
	z-index: 20;
	flex: 1 1 100%;
	max-width: none;
	margin: 0 calc(-1 * var(--atlas-gouttiere));
	padding: 0 var(--atlas-gouttiere);
	background-color: var(--atlas-blanc);
	border-bottom: 1px solid var(--atlas-bordure);
}

.exw-atlas__racine.est-etroit .exw-atlas__sommaire-titre,
.exw-atlas__racine.est-etroit .exw-atlas__sommaire-sous {
	display: none;
}

.exw-atlas__racine.est-etroit .exw-atlas__sommaire-liste {
	display: flex;
	gap: 2px;
	padding-right: 28px;
	border-left: 0;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, var(--atlas-sombre) calc(100% - 32px), transparent 100%);
	mask-image: linear-gradient(90deg, var(--atlas-sombre) calc(100% - 32px), transparent 100%);
}

.exw-atlas__racine.est-etroit .exw-atlas__sommaire-liste::-webkit-scrollbar {
	display: none;
}

.exw-atlas__racine.est-etroit .exw-atlas__sommaire-lien {
	margin: 0;
	padding: 14px 10px 12px;
	border-left: 0;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
}

.exw-atlas__racine.est-etroit .exw-atlas__sommaire-lien.est-courante {
	border-bottom-color: var(--atlas-accent);
	color: var(--atlas-accent-texte);
}

.exw-atlas__racine.est-etroit .exw-atlas__corps {
	padding-top: 28px;
}

/* Avertissement « Dossier en preparation » : sobre, en tete du contenu. */
.exw-atlas__preparation {
	margin: 0 0 clamp(36px, 4vw, 52px);
	padding: 22px 26px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-carte);
	background-color: var(--atlas-creme);
}

.exw-atlas__preparation .exw-atlas__kicker {
	margin-bottom: 8px;
	color: var(--atlas-titres);
}

.exw-atlas__preparation-texte {
	margin: 0;
	max-width: var(--atlas-mesure);
	font-size: 16px;
	line-height: 1.7;
}

/* Ouverture du dossier : chapo et signature. */
.exw-atlas__ouverture {
	margin: 0 0 clamp(40px, 5vw, 60px);
}

.exw-atlas__chapo {
	margin: 0;
	max-width: 36em;
	font-size: clamp(19px, 1.6vw, 22px);
	line-height: 1.6;
	color: var(--atlas-titres);
}

.exw-atlas__signature {
	margin: 18px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--atlas-texte-doux);
}

/* En bref : carte de situation et fiche d'identite. */
.exw-atlas__identite {
	margin: 0 0 clamp(48px, 5vw, 64px);
}

.exw-atlas__racine .exw-atlas__identite-titre,
.exw-atlas__racine .exw-atlas__chapitre-titre {
	margin: 0 0 24px;
	padding-top: 22px;
	border-top: 1px solid var(--atlas-trait);
	font-size: clamp(26px, 2.6vw, 34px);
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: -0.025em;
	color: var(--atlas-titres);
}

.exw-atlas__identite-grille {
	display: flex;
	flex-wrap: wrap;
	gap: 28px clamp(28px, 3.2vw, 48px);
	align-items: flex-start;
}

.exw-atlas__situation-carte {
	flex: 1.2 1 300px;
	min-width: 0;
	margin: 0;
}

.exw-atlas__situation-carte .exw-atlas__carte-svg {
	display: block;
	width: 100%;
	height: auto;
	max-height: 340px;
	border-radius: var(--atlas-rayon-carte);
	background-color: var(--atlas-mer);
}

.exw-atlas__carte-svg--situation .exw-atlas__carte-pays > * > path,
.exw-atlas__carte-svg--situation use.exw-atlas__carte-terres {
	stroke-width: 0.25;
}

.exw-atlas__carte-svg--situation use.exw-atlas__carte-fond {
	stroke-width: 0.2;
}

use.exw-atlas__carte-terres--region,
.exw-atlas__carte-pays > .exw-atlas__carte-entite--region > path {
	fill: var(--atlas-terre-region);
}

use.exw-atlas__carte-terres--courant,
.exw-atlas__carte-pays > .exw-atlas__carte-entite--courant > path,
.exw-atlas__carte-pays > .exw-atlas__carte-entite--courant .exw-atlas__carte-point {
	fill: var(--atlas-accent);
}

.exw-atlas__identite-liste {
	flex: 1 1 280px;
	min-width: 0;
	margin: 0;
}

.exw-atlas__identite-liste > div {
	display: grid;
	grid-template-columns: minmax(7.5em, 0.42fr) 1fr;
	gap: 0 16px;
	padding: 11px 0;
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__identite-liste > div:first-child {
	border-top: 0;
	padding-top: 0;
}

.exw-atlas__identite-liste dt {
	padding-top: 3px;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--atlas-texte-doux);
}

.exw-atlas__identite-liste dd {
	margin: 0;
	font-size: 15.5px;
	line-height: 1.55;
	color: var(--atlas-titres);
}

.exw-atlas__identite-actions {
	margin: 22px 0 0;
}

.exw-atlas__legende-carte--situation,
.exw-atlas__situation-carte .exw-atlas__legende-carte {
	margin-top: 10px;
	font-size: 12.5px;
}

/* Chapitres du dossier : colonne de lecture de 66ch (D-14). */
.exw-atlas__chapitre {
	margin: 0 0 clamp(48px, 5vw, 64px);
}

.exw-atlas__texte {
	max-width: var(--atlas-mesure);
	font-size: 17px;
	line-height: 1.7;
	color: var(--atlas-texte);
}

.exw-atlas__texte > :first-child {
	margin-top: 0;
}

.exw-atlas__texte p,
.exw-atlas__texte ul,
.exw-atlas__texte ol,
.exw-atlas__texte blockquote {
	margin: 0 0 1.1em;
}

.exw-atlas__racine .exw-atlas__texte h3 {
	margin: 1.9em 0 0.6em;
	font-size: 21px;
	line-height: 1.35;
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--atlas-titres);
}

.exw-atlas__racine .exw-atlas__texte h4 {
	margin: 1.6em 0 0.5em;
	font-size: 17px;
	line-height: 1.4;
	font-weight: 600;
	color: var(--atlas-titres);
}

.exw-atlas__texte ul,
.exw-atlas__texte ol {
	padding-left: 1.3em;
}

.exw-atlas__texte li {
	margin: 0 0 0.4em;
}

.exw-atlas__texte li::marker {
	color: var(--atlas-accent-texte);
}

.exw-atlas__texte blockquote {
	padding: 4px 0 4px 22px;
	border-left: 2px solid var(--atlas-accent);
	font-size: 18.5px;
	line-height: 1.65;
	color: var(--atlas-titres);
}

.exw-atlas__racine .exw-atlas__texte a {
	color: var(--atlas-accent-texte);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--atlas-accent) 45%, transparent);
	text-underline-offset: 3px;
}

.exw-atlas__appel {
	font-size: 0.7em;
	line-height: 0;
	font-variant-numeric: tabular-nums;
}

.exw-atlas__racine .exw-atlas__appel a {
	margin-left: 1px;
	padding: 0 2px;
	text-decoration: none;
	font-weight: 600;
}

.exw-atlas__tableau-cadre,
.exw-atlas__texte .exw-atlas__tableau {
	max-width: 100%;
	overflow-x: auto;
}

/* =============================================================================
 * FAMILLES DE DONNEES ET INDICATEURS
 * ========================================================================== */

.exw-atlas__famille {
	--atlas-fond-graphique: var(--atlas-creme);
	margin: clamp(28px, 3vw, 40px) 0 0;
	padding: clamp(22px, 2.6vw, 34px) clamp(18px, 2.6vw, 34px) clamp(8px, 1vw, 12px);
	border-radius: var(--atlas-rayon-carte);
	background-color: var(--atlas-creme);
}

/* Une famille seule (sans chapitre) suit la precedente a distance de section. */
.exw-atlas__contenu > .exw-atlas__famille + .exw-atlas__famille {
	margin-top: clamp(32px, 4vw, 48px);
}

.exw-atlas__famille-entete {
	margin-bottom: 8px;
}

.exw-atlas__famille-entete .exw-atlas__kicker {
	margin-bottom: 8px;
}

.exw-atlas__racine .exw-atlas__famille-titre {
	margin: 0;
	font-size: clamp(22px, 2.1vw, 28px);
	line-height: 1.25;
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--atlas-titres);
}

.exw-atlas__indicateur {
	display: flex;
	flex-wrap: wrap;
	gap: 18px clamp(24px, 3vw, 48px);
	padding: 26px 0 22px;
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__famille-entete + .exw-atlas__indicateur {
	margin-top: 16px;
}

/* Données d'un chapitre sans texte : pas d'en-tête, pas de filet au-dessus du premier indicateur. */
.exw-atlas__famille > .exw-atlas__indicateur:first-child {
	padding-top: 4px;
	border-top: 0;
}

.exw-atlas__indicateur-texte {
	flex: 1 1 250px;
	min-width: 0;
}

.exw-atlas__indicateur-graphique {
	flex: 1.7 1 330px;
	min-width: 0;
}

.exw-atlas__indicateur--absent .exw-atlas__indicateur-texte {
	flex-basis: 100%;
}

.exw-atlas__racine .exw-atlas__indicateur-titre {
	margin: 0 0 10px;
	font-size: 17px;
	line-height: 1.4;
	font-weight: 500;
	letter-spacing: -0.005em;
	color: var(--atlas-titres);
}

.exw-atlas__indicateur-valeur {
	margin: 0;
	line-height: 1.1;
}

.exw-atlas__indicateur-meta {
	display: flex;
	flex-wrap: wrap;
	column-gap: calc(18px + 0.286em);
	margin: 6px 0 0;
	overflow: hidden;
	font-size: 13px;
	line-height: 1.5;
	color: var(--atlas-texte-doux);
	font-variant-numeric: tabular-nums;
}

.exw-atlas__indicateur-meta > span {
	position: relative;
}

.exw-atlas__indicateur-meta > span::before {
	content: "·";
	position: absolute;
	right: 100%;
	margin-right: 9px;
}

.exw-atlas__indicateur-definition {
	margin: 14px 0 0;
	max-width: 52ch;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--atlas-texte);
}

.exw-atlas__indicateur-note {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--atlas-texte-doux);
}

.exw-atlas__source {
	flex: 1 1 100%;
	margin: 2px 0 0;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--atlas-texte-doux);
}

/* Parties de la note de source séparées par « · », posé par la feuille. */
.exw-atlas__source > span + span::before {
	content: "\00A0\00B7\00A0";
	content: "\00A0\00B7\00A0" / "";
}

.exw-atlas__racine .exw-atlas__source a {
	color: var(--atlas-accent-texte);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--atlas-accent) 45%, transparent);
	text-underline-offset: 2px;
}

/* Situation par rapport aux medianes : repere neutre, sans couleur de jugement. */
.exw-atlas__situation {
	margin: 18px 0 0;
	padding-top: 14px;
	border-top: 1px dashed var(--atlas-bordure);
}

.exw-atlas__echelle {
	display: block;
	width: 100%;
	height: 22px;
	overflow: visible;
}

.exw-atlas__echelle line:first-child {
	stroke: var(--atlas-trait);
	stroke-width: 2;
	stroke-linecap: round;
}

/* Bornes de l'echelle commune (etendue des valeurs de tous les pays), sous la ligne. */
.exw-atlas__echelle-bornes {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 2px 0 0;
	padding: 0 1%;
	font-size: 11.5px;
	line-height: 1.4;
	color: var(--atlas-texte-doux);
	font-variant-numeric: tabular-nums;
}

.exw-atlas__echelle-bornes span:last-child {
	text-align: right;
}

.exw-atlas__echelle .exw-atlas__e-monde {
	fill: var(--atlas-fond-graphique);
	stroke: var(--atlas-texte-doux);
	stroke-width: 1.5;
}

.exw-atlas__echelle .exw-atlas__e-region {
	stroke: var(--atlas-titres);
	stroke-width: 2;
}

.exw-atlas__echelle .exw-atlas__e-pays {
	fill: var(--atlas-accent);
	stroke: var(--atlas-fond-graphique);
	stroke-width: 2;
}

.exw-atlas__situation-legende {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	margin: 6px 0 0;
	padding: 0;
	list-style: none;
	font-size: 12px;
	line-height: 1.5;
	color: var(--atlas-texte-doux);
}

.exw-atlas__situation-legende li::before {
	content: "";
	display: inline-block;
	margin-right: 6px;
	vertical-align: -1px;
}

.exw-atlas__situation-legende .exw-atlas__cle-pays::before {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: var(--atlas-accent);
}

.exw-atlas__situation-legende .exw-atlas__cle-region::before {
	width: 2px;
	height: 12px;
	background-color: var(--atlas-titres);
	vertical-align: -2px;
}

.exw-atlas__situation-legende .exw-atlas__cle-bornes::before {
	width: 8px;
	height: 8px;
	border-right: 1.5px solid var(--atlas-texte-doux);
	border-left: 1.5px solid var(--atlas-texte-doux);
	vertical-align: 0;
}

.exw-atlas__situation-legende .exw-atlas__cle-monde::before {
	width: 9px;
	height: 9px;
	border: 1.5px solid var(--atlas-texte-doux);
	border-radius: 50%;
}

.exw-atlas__situation-texte {
	margin: 8px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--atlas-texte);
}

/* =============================================================================
 * GRAPHIQUES (graphiques.php)
 * ========================================================================== */

.exw-atlas__graphique {
	position: relative;
	margin: 0;
}

.exw-atlas__graphique-svg {
	display: block;
	overflow: visible;
	touch-action: pan-y;
}

.exw-atlas__grille {
	stroke: var(--atlas-bordure);
	stroke-width: 1;
	shape-rendering: crispEdges;
}

.exw-atlas__grille--base {
	stroke: var(--atlas-trait);
}

.exw-atlas__graduation {
	font-size: 11px;
	fill: var(--atlas-texte-doux);
	font-variant-numeric: tabular-nums;
	paint-order: stroke;
	stroke: var(--atlas-fond-graphique);
	stroke-width: 3px;
	stroke-linejoin: round;
}

.exw-atlas__rupture {
	stroke: var(--atlas-texte-doux);
	stroke-width: 1;
	stroke-dasharray: 2 3;
}

.exw-atlas__serie--1 { color: var(--atlas-serie-1); }
.exw-atlas__serie--2 { color: var(--atlas-serie-2); }
.exw-atlas__serie--3 { color: var(--atlas-serie-3); }
.exw-atlas__serie--4 { color: var(--atlas-serie-4); }

.exw-atlas__trace {
	fill: none;
	stroke: currentColor;
	stroke-width: 2.25;
	stroke-linejoin: round;
	stroke-linecap: round;
}

/* Style de trait par serie : lisible sans la couleur. */
.exw-atlas__serie--2 .exw-atlas__trace { stroke-width: 1.75; stroke-dasharray: 7 4; stroke-linecap: butt; }
.exw-atlas__serie--3 .exw-atlas__trace { stroke-width: 2; stroke-dasharray: 1 4; }
.exw-atlas__serie--4 .exw-atlas__trace { stroke-width: 1.75; stroke-dasharray: 10 3 2 3; stroke-linecap: butt; }

.exw-atlas__point-final,
.exw-atlas__point-isole {
	fill: currentColor;
	stroke: var(--atlas-fond-graphique);
	stroke-width: 2;
}

/* Valeur nationale qui prolonge la série (D-43, 2026-11-13) : trait pointillé et point creux. */
.exw-atlas__trace--nationale {
	stroke-dasharray: 3 4;
	stroke-linecap: butt;
}

.exw-atlas__point-national {
	fill: var(--atlas-fond-graphique);
	stroke: currentColor;
	stroke-width: 2;
}

.exw-atlas__etiquette {
	font-size: 12px;
	font-variant-numeric: tabular-nums;
	paint-order: stroke;
	stroke: var(--atlas-fond-graphique);
	stroke-width: 4px;
	stroke-linejoin: round;
}

.exw-atlas__etiquette-valeur {
	fill: var(--atlas-titres);
	font-weight: 500;
}

.exw-atlas__etiquette-annee {
	fill: var(--atlas-texte-doux);
	font-size: 11px;
}

.exw-atlas__curseur {
	stroke: var(--atlas-texte-doux);
	stroke-width: 1;
	opacity: 0;
	transition: opacity var(--atlas-transition);
}

.exw-atlas__graphique.est-survole .exw-atlas__curseur {
	opacity: 1;
}

.exw-atlas__graphique.est-survole .exw-atlas__etiquettes {
	opacity: 0.25;
}

.exw-atlas__etiquettes {
	transition: opacity var(--atlas-transition);
}

/* Texte recouvert par l'infobulle (atlas.js, masquerSous) : retire tant qu'elle est affichee. */
.exw-atlas__graphique.est-survole .est-masque {
	opacity: 0;
}

.exw-atlas__marque {
	fill: currentColor;
	stroke: var(--atlas-fond-graphique);
	stroke-width: 2;
	pointer-events: none;
}

/* Infobulle du survol, posee par le script dans la figure. */
.exw-atlas__infobulle {
	position: absolute;
	top: 0;
	z-index: 5;
	min-width: 120px;
	max-width: 240px;
	padding: 8px 12px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-blanc);
	box-shadow: var(--atlas-ombre-contact), var(--atlas-ombre-diffuse);
	font-size: 13px;
	line-height: 1.45;
	color: var(--atlas-texte);
	pointer-events: none;
	font-variant-numeric: tabular-nums;
}

.exw-atlas__infobulle-annee {
	display: block;
	margin-bottom: 2px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--atlas-texte-doux);
}

.exw-atlas__infobulle-ligne {
	display: block;
	color: var(--atlas-titres);
}

.exw-atlas__graphique-note {
	margin: 10px 0 0;
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--atlas-texte-doux);
}

/* Legende ecrite des traits (plusieurs series). */
.exw-atlas__legende {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
	line-height: 1.5;
}

.exw-atlas__legende li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--atlas-titres);
}

.exw-atlas__legende-trait,
.exw-atlas__pastille-trait {
	flex: 0 0 auto;
	overflow: visible;
}

.exw-atlas__legende-trait line,
.exw-atlas__pastille-trait line {
	stroke: currentColor;
	stroke-width: 2.25;
	stroke-linecap: round;
}

.exw-atlas__serie--2.exw-atlas__legende-trait line,
.exw-atlas__serie--2.exw-atlas__pastille-trait line { stroke-dasharray: 7 4; stroke-linecap: butt; stroke-width: 1.75; }
.exw-atlas__serie--3.exw-atlas__legende-trait line,
.exw-atlas__serie--3.exw-atlas__pastille-trait line { stroke-dasharray: 1 4; }
.exw-atlas__serie--4.exw-atlas__legende-trait line,
.exw-atlas__serie--4.exw-atlas__pastille-trait line { stroke-dasharray: 10 3 2 3; stroke-linecap: butt; stroke-width: 1.75; }

/* Tableau accessible (finance.css:1021-1110), trois colonnes au plus. */
.exw-atlas__tableau-cadre {
	max-height: 340px;
	margin-top: 8px;
	overflow-y: auto;
}

.exw-atlas__racine .exw-atlas__tableau {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.45;
}

.exw-atlas__tableau th,
.exw-atlas__tableau td {
	padding: 9px 6px;
	border: 0;
	border-bottom: 1px solid var(--atlas-bordure);
	text-align: left;
	vertical-align: baseline;
	background: none;
}

.exw-atlas__tableau thead th {
	padding-top: 10px;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--atlas-texte-doux);
}

.exw-atlas__tableau tbody th {
	font-weight: 400;
	color: var(--atlas-titres);
	font-variant-numeric: tabular-nums;
}

.exw-atlas__tableau td {
	font-variant-numeric: tabular-nums;
}

.exw-atlas__tableau td:nth-child(2) {
	color: var(--atlas-titres);
}

/* Troisieme colonne (note, annee) ; un tableau court sans note n'a que deux colonnes. */
.exw-atlas__tableau td:nth-child(3) {
	color: var(--atlas-texte-doux);
}

.exw-atlas__tableau tbody tr:last-child th,
.exw-atlas__tableau tbody tr:last-child td {
	border-bottom: 0;
}

/*
 * Tableau court des cinq dernieres valeurs, nombre de valeurs publiees, et
 * bouton d'ouverture de la courbe (CONTRAT.md 9.5). Sans script, le bouton
 * reste masque (attribut hidden) : le tableau et la phrase suffisent.
 */
.exw-atlas__tableau--court {
	font-size: 13.5px;
}

.exw-atlas__tableau--court th,
.exw-atlas__tableau--court td {
	padding-top: 7px;
	padding-bottom: 7px;
}

/* Ligne de la valeur nationale (D-43) : fond teinté, année précédée d'un rond creux, comme le point de la courbe. */
.exw-atlas__ligne-nationale > th,
.exw-atlas__ligne-nationale > td {
	background: color-mix(in srgb, var(--atlas-accent) 7%, transparent);
}

.exw-atlas__ligne-nationale > th::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 7px;
	border: 2px solid var(--atlas-accent);
	border-radius: 50%;
	vertical-align: 0.05em;
}

.exw-atlas__serie-compte {
	margin: 8px 0 0;
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--atlas-texte-doux);
}

.exw-atlas__racine .exw-atlas__evolution-bouton {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 10px 0 0;
	padding: 4px 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	color: var(--atlas-accent-texte);
	cursor: pointer;
}

.exw-atlas__racine .exw-atlas__evolution-bouton:hover,
.exw-atlas__racine .exw-atlas__evolution-bouton:focus {
	background: none;
	color: var(--atlas-titres);
}

.exw-atlas__racine .exw-atlas__evolution-bouton[hidden] {
	display: none;
}

.exw-atlas__evolution-bouton::before {
	content: "+";
	display: inline-block;
	width: 1em;
	font-weight: 400;
	text-align: center;
}

.exw-atlas__evolution-bouton[aria-expanded="true"]::before {
	content: "\2212";
}

.exw-atlas__evolution {
	margin: 12px 0 0;
	min-height: 40px;
}

.exw-atlas__evolution-etat {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--atlas-texte-doux);
}

/* Trait de rappel d'une etiquette deplacee vers son point final. */
.exw-atlas__rappel {
	fill: none;
	stroke: currentColor;
	stroke-width: 1;
	stroke-linecap: round;
}

/* =============================================================================
 * COMPARATEUR
 * ========================================================================== */

.exw-atlas__selection-bande {
	position: relative;
	z-index: 4;
	max-width: calc(var(--atlas-largeur) + 2 * var(--atlas-gouttiere));
	margin: -64px auto 0;
	padding: 0 var(--atlas-gouttiere);
}

.exw-atlas__selection-bande:focus-within {
	/* Suggestions ouvertes : au-dessus de la barre collante des familles. */
	z-index: 40;
}

.exw-atlas__selection {
	padding: clamp(20px, 2.4vw, 30px);
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-carte);
	background-color: var(--atlas-blanc);
	box-shadow: var(--atlas-ombre-contact), var(--atlas-ombre-diffuse);
}

.exw-atlas__racine .exw-atlas__selection-titre {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 0 0 16px;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--atlas-texte-doux);
}

.exw-atlas__selection-nombre {
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	font-variant-numeric: tabular-nums;
}

.exw-atlas__pastilles {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
}

.exw-atlas__pastille {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 6px 6px 6px 14px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-pilule);
	background-color: var(--atlas-blanc);
	font-size: 15px;
	line-height: 1.4;
}

.exw-atlas__racine .exw-atlas__pastille-nom {
	color: var(--atlas-titres);
	font-weight: 500;
	text-decoration: none;
}

.exw-atlas__racine .exw-atlas__pastille-nom:hover {
	color: var(--atlas-accent-texte);
}

.exw-atlas__racine .exw-atlas__pastille-retrait {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: var(--atlas-rayon-pilule);
	color: var(--atlas-texte-doux);
	font-size: 18px;
	line-height: 1;
	text-decoration: none;
	transition: background-color var(--atlas-transition), color var(--atlas-transition);
}

.exw-atlas__racine .exw-atlas__pastille-retrait:hover,
.exw-atlas__racine .exw-atlas__pastille-retrait:focus-visible {
	background-color: var(--atlas-creme);
	color: var(--atlas-titres);
}

.exw-atlas__ajout {
	max-width: 420px;
}

.exw-atlas__ajout-libelle,
.exw-atlas__champ-libelle {
	display: block;
	margin: 0 0 8px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--atlas-titres);
}

.exw-atlas__ajout-cadre {
	position: relative;
}

body .exw-atlas__racine input.exw-atlas__ajout-champ,
body .exw-atlas__racine .exw-atlas__champ-saisie,
body .exw-atlas__racine select.exw-atlas__choix-liste {
	width: 100%;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-blanc);
	color: var(--atlas-titres);
	font-size: 16px;
	line-height: 1.4;
	box-shadow: none;
	transition: border-color var(--atlas-transition);
}

body .exw-atlas__racine input.exw-atlas__ajout-champ:focus,
body .exw-atlas__racine .exw-atlas__champ-saisie:focus,
body .exw-atlas__racine select.exw-atlas__choix-liste:focus {
	border-color: var(--atlas-accent);
}

.exw-atlas__suggestions {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 40;
	max-height: 300px;
	margin: 0;
	padding: 6px;
	overflow-y: auto;
	list-style: none;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-blanc);
	box-shadow: var(--atlas-ombre-relief);
}

.exw-atlas__suggestion {
	padding: 9px 12px;
	border-radius: 6px;
	font-size: 15px;
	line-height: 1.4;
	color: var(--atlas-titres);
	cursor: pointer;
}

.exw-atlas__suggestion[aria-selected="true"],
.exw-atlas__suggestion:hover {
	background-color: var(--atlas-creme);
}

.exw-atlas__suggestion.est-vide {
	color: var(--atlas-texte-doux);
	cursor: default;
}

/* Formulaire sans script : quatre listes. */
.exw-atlas__choix {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 16px;
}

.exw-atlas__choix-champs {
	display: grid;
	flex: 1 1 520px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
	gap: 12px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.exw-atlas__choix-legende {
	grid-column: 1 / -1;
	padding: 0;
	margin-bottom: 4px;
	font-size: 14px;
	color: var(--atlas-texte);
}

.exw-atlas__choix-numero {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	color: var(--atlas-texte-doux);
}

.exw-atlas__comparaisons .exw-atlas__section {
	padding-top: clamp(48px, 5vw, 64px);
	padding-bottom: clamp(24px, 3vw, 32px);
}

.exw-atlas__comparaisons .exw-atlas__entete {
	margin-bottom: 8px;
}

.exw-atlas__comparaison {
	display: flex;
	flex-wrap: wrap;
	gap: 20px clamp(28px, 3.6vw, 56px);
	padding: 32px 0 26px;
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__comparaison-texte {
	flex: 1 1 300px;
	min-width: 0;
}

.exw-atlas__comparaison-graphique {
	flex: 1.5 1 380px;
	min-width: 0;
}

.exw-atlas__tableau--comparaison {
	margin-top: 16px;
}

.exw-atlas__tableau--comparaison tbody th::before {
	content: "";
	display: inline-block;
	width: 16px;
	margin-right: 10px;
	border-top: 2.5px solid var(--atlas-serie-1);
	vertical-align: 4px;
}

.exw-atlas__tableau--comparaison tbody tr:nth-child(2) th::before { border-top: 2px dashed var(--atlas-serie-2); }
.exw-atlas__tableau--comparaison tbody tr:nth-child(3) th::before { border-top: 2.5px dotted var(--atlas-serie-3); }
.exw-atlas__tableau--comparaison tbody tr:nth-child(4) th::before { border-top: 4px double var(--atlas-serie-4); }

.exw-atlas__avertissement {
	margin: 16px 0 0;
	padding: 10px 14px;
	border-left: 3px solid var(--atlas-accent);
	border-radius: 0 var(--atlas-rayon-controle) var(--atlas-rayon-controle) 0;
	background-color: var(--atlas-accent-voile);
	font-size: 14px;
	line-height: 1.55;
	color: var(--atlas-texte);
}

.exw-atlas__comparaison-phrase {
	margin: 14px 0 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--atlas-texte);
}

.exw-atlas__comparaison-sens {
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--atlas-texte-doux);
}

/* =============================================================================
 * GUIDE (bande sombre), COMMUNAUTE, QUIZ, SOURCES
 * ========================================================================== */

.exw-atlas__guide-grille {
	display: flex;
	flex-wrap: wrap;
	gap: 32px clamp(32px, 5vw, 80px);
	align-items: flex-start;
}

.exw-atlas__guide-tete {
	flex: 1 1 340px;
}

.exw-atlas__guide-tete .exw-atlas__kicker {
	margin-bottom: 16px;
}

.exw-atlas__guide-texte {
	max-width: 46ch;
	margin: 18px 0 0;
	font-size: 16px;
	line-height: 1.7;
	color: var(--atlas-clair-doux);
}

.exw-atlas__guide-action {
	margin: 28px 0 0;
}

.exw-atlas__guide-pieces {
	flex: 1.2 1 360px;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid color-mix(in srgb, var(--atlas-blanc) 14%, transparent);
}

.exw-atlas__guide-piece {
	display: flex;
	align-items: baseline;
	gap: 18px;
	padding: 14px 0;
	border-bottom: 1px solid color-mix(in srgb, var(--atlas-blanc) 14%, transparent);
}

.exw-atlas__guide-numero {
	flex: 0 0 auto;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--atlas-accent);
	font-variant-numeric: tabular-nums;
}

.exw-atlas__racine .exw-atlas__guide-piece a {
	font-size: 16px;
	line-height: 1.45;
	color: var(--atlas-blanc);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color var(--atlas-transition);
}

.exw-atlas__racine .exw-atlas__guide-piece a:hover,
.exw-atlas__racine .exw-atlas__guide-piece a:focus-visible {
	color: var(--atlas-blanc);
	border-bottom-color: var(--atlas-accent);
}

/* Etat vide (actualites.css:355-359), encart sobre (presse.css:935-954). */
.exw-atlas__vide {
	max-width: 640px;
	padding: clamp(22px, 2.6vw, 32px);
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-carte);
	background-color: var(--atlas-blanc);
}

.exw-atlas__vide-texte {
	margin: 0;
	font-size: 17px;
	line-height: 1.65;
	color: var(--atlas-titres);
}

.exw-atlas__vide-action {
	margin: 18px 0 0;
}

.exw-atlas__vide--comparateur {
	max-width: 720px;
}

.exw-atlas__galerie {
	columns: 18rem;
	column-gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.exw-atlas__galerie-element {
	break-inside: avoid;
	margin: 0 0 18px;
}

.exw-atlas__photo {
	position: relative;
	margin: 0;
}

.exw-atlas__photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--atlas-rayon-controle);
}

.exw-atlas__photo-legende {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 12px;
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.5;
}

.exw-atlas__photo-texte {
	flex: 1 1 100%;
	color: var(--atlas-titres);
}

.exw-atlas__photo-credit {
	color: var(--atlas-texte-doux);
}

.exw-atlas__racine .exw-atlas__signaler {
	margin: 0 0 0 auto;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	color: var(--atlas-texte-doux);
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

.exw-atlas__racine .exw-atlas__signaler:hover {
	background: none;
	color: var(--atlas-titres);
}

.exw-atlas__signalement {
	flex: 1 1 100%;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 8px;
}

body .exw-atlas__racine .exw-atlas__signalement input[type="text"] {
	flex: 1 1 180px;
	margin: 0;
	padding: 8px 10px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-controle);
	font-size: 14px;
}

.exw-atlas__racine .exw-atlas__signalement button {
	margin: 0;
	padding: 8px 14px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-controle);
	background: var(--atlas-blanc);
	box-shadow: none;
	color: var(--atlas-titres);
	font-size: 14px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
}

.exw-atlas__communaute-action {
	margin: 8px 0 0;
}

/* Adresse ecrite sous le bouton « Proposer une photo » (D-42), pour qui n'a pas de logiciel de messagerie. */
.exw-atlas__communaute-adresse {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--atlas-texte-doux);
	overflow-wrap: anywhere;
}

/* Quiz. */
.exw-atlas__quiz-liste {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: quiz;
}

.exw-atlas__quiz-question {
	counter-increment: quiz;
	margin: 0;
	padding: 26px 0;
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__quiz-champs {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.exw-atlas__quiz-enonce {
	display: block;
	margin: 0 0 14px;
	padding: 0;
	font-size: 18px;
	line-height: 1.5;
	font-weight: 500;
	color: var(--atlas-titres);
}

.exw-atlas__quiz-enonce::before {
	content: counter(quiz, decimal-leading-zero);
	display: block;
	margin-bottom: 6px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--atlas-accent-texte);
}

.exw-atlas__quiz-choix {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0 0 8px;
	padding: 11px 14px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-blanc);
	font-size: 16px;
	line-height: 1.5;
	cursor: pointer;
	transition: border-color var(--atlas-transition);
}

.exw-atlas__quiz-choix:hover {
	border-color: var(--atlas-accent);
}

.exw-atlas__quiz-choix input {
	flex: 0 0 auto;
	margin: 4px 0 0;
	accent-color: var(--atlas-accent);
}

.exw-atlas__quiz-choix.est-bonne {
	border-color: var(--atlas-titres);
	box-shadow: inset 3px 0 0 var(--atlas-titres);
}

.exw-atlas__quiz-choix.est-fausse {
	border-style: dashed;
	border-color: var(--atlas-texte-doux);
}

.exw-atlas__quiz-reponse {
	margin: 12px 0 0;
	font-size: 15px;
	line-height: 1.65;
}

.exw-atlas__quiz-reponse > summary {
	font-size: 14px;
	font-weight: 500;
	color: var(--atlas-accent-texte);
	cursor: pointer;
}

.exw-atlas__racine.avec-script .exw-atlas__quiz-reponse {
	display: none;
}

.exw-atlas__racine.avec-script .exw-atlas__quiz.est-corrige .exw-atlas__quiz-reponse {
	display: block;
}

.exw-atlas__racine.avec-script .exw-atlas__quiz.est-corrige .exw-atlas__quiz-reponse > summary {
	display: none;
}

.exw-atlas__quiz-correction,
.exw-atlas__quiz-explication,
.exw-atlas__quiz-renvois {
	margin: 8px 0 0;
}

.exw-atlas__quiz-correction {
	color: var(--atlas-titres);
}

.exw-atlas__quiz-verdict {
	font-weight: 600;
}

.exw-atlas__quiz-verdict:not(:empty)::after {
	content: " ";
}

.exw-atlas__quiz-renvois {
	font-size: 14px;
}

.exw-atlas__quiz-pied {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 22px;
	padding-top: 26px;
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__quiz-score {
	margin: 0;
	font-size: 19px;
	font-weight: 500;
	color: var(--atlas-titres);
	font-variant-numeric: tabular-nums;
}

/*
 * Sources et methodologie (2026-11-10) : une seule carte blanche, quatre
 * volets <details> fermes au chargement (modele de la FAQ de finance.css,
 * DESIGN-TOKENS.md section 5). Le titre de chaque volet porte un compteur ;
 * la croix tourne a l'ouverture (etat, pas survol).
 */
.exw-atlas__methodo {
	padding: 0 clamp(20px, 2.4vw, 32px);
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-carte);
	background-color: var(--atlas-blanc);
	box-shadow: var(--atlas-ombre-contact), var(--atlas-ombre-diffuse);
}

.exw-atlas__volet + .exw-atlas__volet {
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__racine .exw-atlas__volet-entete {
	display: flex;
	align-items: center;
	gap: 10px 16px;
	padding: clamp(18px, 1.8vw, 22px) 0;
	list-style: none;
	cursor: pointer;
}

.exw-atlas__racine .exw-atlas__volet-entete::-webkit-details-marker {
	display: none;
}

.exw-atlas__racine .exw-atlas__volet-entete::marker {
	content: "";
}

.exw-atlas__racine .exw-atlas__volet-titre {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	font-size: clamp(16px, 1.25vw, 18px);
	line-height: 1.4;
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--atlas-titres);
	transition: color var(--atlas-transition);
}

.exw-atlas__volet-compte {
	flex: none;
	padding: 3px 10px;
	border-radius: var(--atlas-rayon-pilule);
	background-color: var(--atlas-creme);
	font-size: 12.5px;
	line-height: 1.5;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: var(--atlas-texte-doux);
}

.exw-atlas__volet-signe {
	position: relative;
	flex: none;
	width: 30px;
	height: 30px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-pilule);
	transition: transform var(--atlas-transition), border-color var(--atlas-transition);
}

.exw-atlas__volet-signe::before,
.exw-atlas__volet-signe::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 11px;
	height: 1.5px;
	margin: -0.75px 0 0 -5.5px;
	background-color: var(--atlas-accent-texte);
}

.exw-atlas__volet-signe::after {
	transform: rotate(90deg);
}

.exw-atlas__racine .exw-atlas__volet-entete:hover .exw-atlas__volet-titre {
	color: var(--atlas-accent-texte);
}

.exw-atlas__racine .exw-atlas__volet-entete:hover .exw-atlas__volet-signe {
	border-color: var(--atlas-accent);
}

.exw-atlas__volet[open] > .exw-atlas__volet-entete .exw-atlas__volet-signe {
	border-color: var(--atlas-accent);
	transform: rotate(45deg);
}

.exw-atlas__volet-corps {
	max-width: 92ch;
	padding: 0 0 clamp(22px, 2.4vw, 30px);
}

.exw-atlas__racine .exw-atlas__sources-titre {
	margin: 0 0 16px;
	font-size: 18px;
	line-height: 1.4;
	font-weight: 500;
	color: var(--atlas-titres);
}

.exw-atlas__sources-liste {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
}

.exw-atlas__sources-liste > div {
	padding: 12px 0;
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__sources-liste > div:first-child {
	padding-top: 0;
	border-top: 0;
}

.exw-atlas__sources-liste dt {
	font-weight: 500;
	color: var(--atlas-titres);
}

.exw-atlas__sources-liste dd {
	margin: 4px 0 0;
	color: var(--atlas-texte-doux);
}

.exw-atlas__racine .exw-atlas__sources-liste a,
.exw-atlas__racine .exw-atlas__bibliographie a {
	color: var(--atlas-accent-texte);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--atlas-accent) 45%, transparent);
	text-underline-offset: 2px;
}

.exw-atlas__racine .exw-atlas__sources-liste dt a {
	color: var(--atlas-titres);
}

.exw-atlas__sources-note {
	margin: 16px 0 0;
	font-size: 13px;
	line-height: 1.6;
	color: var(--atlas-texte-doux);
}

.exw-atlas__regles-liste {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14.5px;
	line-height: 1.65;
}

.exw-atlas__regles-liste li {
	margin: 0;
	padding: 12px 0;
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__regles-liste li:first-child {
	padding-top: 0;
	border-top: 0;
}

.exw-atlas__regles-liste strong {
	color: var(--atlas-titres);
	font-weight: 500;
}

.exw-atlas__bibliographie-liste {
	margin: 0;
	padding-left: 1.6em;
	font-size: 14.5px;
	line-height: 1.65;
	font-variant-numeric: tabular-nums;
}

.exw-atlas__bibliographie-liste li {
	margin: 0 0 10px;
	padding-left: 4px;
	scroll-margin-top: 80px;
}

.exw-atlas__bibliographie-liste li::marker {
	color: var(--atlas-accent-texte);
	font-weight: 600;
}

.exw-atlas__bibliographie-liste li:target {
	background-color: var(--atlas-accent-voile);
}

.exw-atlas__bibliographie-date {
	color: var(--atlas-texte-doux);
}

/* Lot 2C : note de méthode d'une source (chiffre arrondi, calcul). */
.exw-atlas__bibliographie-note {
	display: block;
	margin-top: 2px;
	font-size: 0.92em;
	color: var(--atlas-texte-doux);
}

.exw-atlas__revision {
	margin: 24px 0 0;
	font-size: 13px;
	line-height: 1.6;
	color: var(--atlas-texte-doux);
}

/* Les ancres ne passent pas sous les barres collantes. */
.exw-atlas__racine [data-section],
.exw-atlas__racine .exw-atlas__indicateur,
.exw-atlas__racine .exw-atlas__comparaison,
.exw-atlas__racine .exw-atlas__region {
	scroll-margin-top: 72px;
}

/* =============================================================================
 * PROPOSER UNE PHOTO
 * ========================================================================== */

.exw-atlas__envoi-bande {
	position: relative;
	z-index: 4;
	max-width: calc(820px + 2 * var(--atlas-gouttiere));
	margin: -64px auto 0;
	padding: 0 var(--atlas-gouttiere) clamp(60px, 6vw, 76px);
}

.exw-atlas__envoi {
	padding: clamp(22px, 3vw, 40px);
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-carte);
	background-color: var(--atlas-blanc);
	box-shadow: var(--atlas-ombre-contact), var(--atlas-ombre-diffuse);
}

.exw-atlas__envoi-texte {
	margin: 0;
	font-size: 17px;
	line-height: 1.65;
	color: var(--atlas-titres);
}

.exw-atlas__envoi-actions,
.exw-atlas__formulaire-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 24px;
	margin: 24px 0 0;
}

.exw-atlas__retour {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 16px;
	margin: 0 0 24px;
	padding: 14px 16px;
	border-left: 3px solid var(--atlas-accent);
	border-radius: 0 var(--atlas-rayon-controle) var(--atlas-rayon-controle) 0;
	background-color: var(--atlas-accent-voile);
	font-size: 15px;
	line-height: 1.55;
	color: var(--atlas-titres);
}

.exw-atlas__retour--succes {
	border-left-color: var(--atlas-titres);
	background-color: var(--atlas-creme);
}

.exw-atlas__champ {
	margin: 0 0 22px;
}

.exw-atlas__champ-facultatif {
	font-weight: 400;
	color: var(--atlas-texte-doux);
}

/*
 * Champ de fichier : marges et corps fluides, pour que le texte du navigateur
 * (« Aucun fichier choisi », nom du fichier) tienne entier a cote du bouton
 * a 390px, sans troncature au milieu.
 */
body .exw-atlas__racine input.exw-atlas__champ-fichier {
	display: block;
	width: 100%;
	padding: clamp(8px, 2vw, 12px);
	border: 1px dashed var(--atlas-trait);
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-creme);
	font-size: clamp(13.5px, 3.5vw, 15px);
	color: var(--atlas-titres);
}

/* Bouton du champ de fichier : sobre, sur le modele des boutons secondaires (bordure, pas d'aplat). */
body .exw-atlas__racine input.exw-atlas__champ-fichier::file-selector-button {
	margin: 0 clamp(8px, 2vw, 12px) 0 0;
	padding: 8px clamp(10px, 2.4vw, 14px);
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-blanc);
	color: var(--atlas-titres);
	font: inherit;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: border-color var(--atlas-transition), color var(--atlas-transition);
}

body .exw-atlas__racine input.exw-atlas__champ-fichier::file-selector-button:hover {
	border-color: var(--atlas-accent);
	color: var(--atlas-accent-texte);
}

body .exw-atlas__racine input.exw-atlas__champ-fichier:focus-visible {
	outline: 2px solid var(--atlas-accent);
	outline-offset: 2px;
}

.exw-atlas__champ-aide,
.exw-atlas__champ-etat {
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--atlas-texte-doux);
}

.exw-atlas__champ-etat:empty {
	display: none;
}

.exw-atlas__champ-etat.est-erreur {
	color: var(--atlas-titres);
	font-weight: 500;
}

.exw-atlas__conditions {
	margin: 4px 0 0;
	padding: 18px 20px;
	border: 0;
	border-radius: var(--atlas-rayon-controle);
	background-color: var(--atlas-creme);
}

.exw-atlas__conditions .exw-atlas__champ-libelle {
	float: left;
	width: 100%;
	padding: 0;
}

.exw-atlas__conditions-texte {
	clear: left;
	margin: 0 0 8px;
	font-size: 14px;
	line-height: 1.6;
}

.exw-atlas__case {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-top: 14px;
	font-size: 15px;
	line-height: 1.5;
	font-weight: 500;
	color: var(--atlas-titres);
	cursor: pointer;
}

.exw-atlas__case input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--atlas-accent);
}

/* =============================================================================
 * IMPRESSION (classe est-impression posee par le script avant impression :
 * aucune media query). Fonds sombres retires, barres collantes figees.
 * ========================================================================== */

.exw-atlas__racine.est-impression .exw-atlas__hero,
.exw-atlas__racine.est-impression .exw-atlas__section--sombre {
	background: none;
	color: var(--atlas-titres);
	min-height: 0;
	padding-top: 24px;
	padding-bottom: 24px;
}

.exw-atlas__racine.est-impression .exw-atlas__hero::before,
.exw-atlas__racine.est-impression .exw-atlas__hero-photo,
.exw-atlas__racine.est-impression .exw-atlas__hero-voile,
.exw-atlas__racine.est-impression .exw-atlas__hero-carte,
.exw-atlas__racine.est-impression .exw-atlas__sommaire,
.exw-atlas__racine.est-impression .exw-atlas__sousnav,
.exw-atlas__racine.est-impression .exw-atlas__communaute,
.exw-atlas__racine.est-impression .exw-atlas__quiz-section,
.exw-atlas__racine.est-impression .exw-atlas__infobulle {
	display: none !important;
}

.exw-atlas__racine.est-impression .exw-atlas__titre,
.exw-atlas__racine.est-impression .exw-atlas__h2--clair,
.exw-atlas__racine.est-impression .exw-atlas__accroche,
.exw-atlas__racine.est-impression .exw-atlas__meta,
.exw-atlas__racine.est-impression .exw-atlas__guide-texte,
.exw-atlas__racine.est-impression .exw-atlas__guide-piece a {
	color: var(--atlas-titres);
}

.exw-atlas__racine.est-impression .exw-atlas__cles-bande,
.exw-atlas__racine.est-impression .exw-atlas__selection-bande {
	margin-top: 0;
}

.exw-atlas__racine.est-impression .exw-atlas__cles,
.exw-atlas__racine.est-impression .exw-atlas__methodo,
.exw-atlas__racine.est-impression .exw-atlas__selection {
	box-shadow: none;
}

.exw-atlas__racine.est-impression .exw-atlas__famille,
.exw-atlas__racine.est-impression .exw-atlas__indicateur,
.exw-atlas__racine.est-impression .exw-atlas__comparaison {
	break-inside: avoid;
}

/*
 * « Vos photos » (page d'envoi, connecté) : sous 699px (est-etroit, posée
 * avant le premier rendu), chaque ligne du tableau devient un bloc qui se
 * replie : la photo (pays, légende, date) sur toute la largeur, puis le
 * statut et le bouton de retrait côte à côte, ou l'un sous l'autre s'ils ne
 * tiennent pas. Les en-têtes de colonnes restent pour les lecteurs d'écran.
 * Sans script, le cadre défile à l'horizontale.
 */
.exw-atlas__mes-photos {
	margin-top: clamp(40px, 5vw, 56px);
	padding-top: clamp(28px, 3vw, 36px);
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__racine .exw-atlas__mes-photos .exw-atlas__h2 {
	margin-bottom: clamp(14px, 1.8vw, 20px);
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos,
.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos tbody {
	display: block;
	width: 100%;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos tr {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	padding: 14px 0;
	border-bottom: 1px solid var(--atlas-bordure);
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos tbody tr:last-child {
	border-bottom: 0;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos th,
.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos td {
	display: block;
	padding: 0;
	border: 0;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos th {
	flex: 1 1 100%;
	min-width: 0;
	overflow-wrap: anywhere;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos td {
	flex: 0 1 auto;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos .exw-atlas__champ-aide {
	display: block;
	margin-top: 4px;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--photos .exw-atlas__bouton {
	white-space: normal;
}

/*
 * Tableaux du texte d'un dossier (exw_atlas_tableaux_texte()) : cadre qui
 * defile a l'horizontale sans script ; sous 699px (est-etroit), chaque ligne
 * devient un bloc, chaque cellule precedee du titre de sa colonne.
 */
.exw-atlas__tableau-texte {
	max-width: 100%;
	margin: 1.4em 0;
	overflow-x: auto;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte,
.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte tbody,
.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte tr,
.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte td {
	display: block;
	width: 100%;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte tr {
	padding: 12px 0;
	border-bottom: 1px solid var(--atlas-bordure);
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte tbody tr:last-child {
	border-bottom: 0;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte td {
	padding: 2px 0;
	border: 0;
	color: var(--atlas-texte);
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte td:first-child {
	color: var(--atlas-titres);
	font-weight: 500;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte td[data-titre]::before {
	content: attr(data-titre) " : ";
	color: var(--atlas-texte-doux);
	font-weight: 400;
}

.exw-atlas__racine.est-etroit .exw-atlas__tableau--texte td:first-child::before {
	content: none;
}

.exw-atlas__racine.est-etroit .exw-atlas__mes-photos .exw-atlas__tableau-cadre {
	max-height: none;
	overflow: visible;
}


/* =============================================================================
 * QUI DIRIGE LE PAYS (lot 2G)
 * En tete du chapitre 3 d'une fiche avec dossier, en tete du contenu sinon.
 * Un encadre par fonction : cote a cote sur ordinateur, empiles sur
 * telephone, par la seule grille fluide (aucune media query).
 * ========================================================================== */

.exw-atlas__dirigeants {
	margin: 0 0 clamp(36px, 4vw, 52px);
}

.exw-atlas__dirigeants .exw-atlas__kicker {
	margin: 0 0 14px;
}

.exw-atlas__dirigeants-situation {
	margin: 0 0 16px;
	max-width: var(--atlas-mesure);
	font-size: 15px;
	line-height: 1.65;
	color: var(--atlas-texte);
}

.exw-atlas__dirigeants-grille {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 16px;
}

.exw-atlas__dirigeant {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 22px 24px;
	border: 1px solid var(--atlas-bordure);
	border-radius: var(--atlas-rayon-carte);
	background-color: var(--atlas-blanc);
	box-shadow: var(--atlas-ombre-contact);
}

.exw-atlas__dirigeant-role {
	margin: 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--atlas-accent-texte);
}

.exw-atlas__dirigeant-tete {
	display: flex;
	align-items: center;
	gap: 16px;
}

.exw-atlas__dirigeant-portrait,
.exw-atlas__dirigeant-initiales {
	flex: 0 0 auto;
	width: 72px;
	height: 72px;
	border-radius: var(--atlas-rayon-controle);
}

.exw-atlas__dirigeant-portrait img {
	display: block;
	width: 72px;
	height: 72px;
	border-radius: var(--atlas-rayon-controle);
	object-fit: cover;
}

.exw-atlas__dirigeant-initiales {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--atlas-titres);
	background-color: var(--atlas-creme);
	border: 1px solid var(--atlas-bordure);
}

.exw-atlas__dirigeant-fonction {
	margin: 0 0 2px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--atlas-texte);
}

.exw-atlas__racine .exw-atlas__dirigeant-nom {
	margin: 0;
	font-size: clamp(20px, 1.6vw, 23px);
	font-weight: 500;
	line-height: 1.25;
	color: var(--atlas-titres);
}

.exw-atlas__dirigeant-faits {
	display: grid;
	gap: 8px;
	margin: 0;
}

.exw-atlas__dirigeant-faits div {
	display: grid;
	grid-template-columns: minmax(0, 9.5em) minmax(0, 1fr);
	gap: 12px;
	padding-top: 8px;
	border-top: 1px solid var(--atlas-bordure);
}

.exw-atlas__dirigeant-faits dt {
	font-size: 13px;
	line-height: 1.5;
	color: var(--atlas-texte-doux);
}

.exw-atlas__dirigeant-faits dd {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--atlas-titres);
	overflow-wrap: anywhere;
}

/* Echelle a cinq crans : segments colores, repere sur le cran du parti,
 * libelle ecrit en toutes lettres a cote (jamais la couleur seule). */
.exw-atlas__orientation {
	margin: 0;
}

.exw-atlas__orientation-libelle {
	margin: 0 0 8px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--atlas-titres);
}

.exw-atlas__orientation-libelle strong {
	font-weight: 600;
}

.exw-atlas__orientation-crans {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 3px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.exw-atlas__orientation-cran {
	position: relative;
	height: 8px;
	border-radius: 2px;
	background-color: var(--atlas-echelle-centre);
}

.exw-atlas__orientation-cran--gauche { background-color: var(--atlas-echelle-gauche); }
.exw-atlas__orientation-cran--centre-gauche { background-color: var(--atlas-echelle-centre-gauche); }
.exw-atlas__orientation-cran--centre { background-color: var(--atlas-echelle-centre); }
.exw-atlas__orientation-cran--centre-droit { background-color: var(--atlas-echelle-centre-droit); }
.exw-atlas__orientation-cran--droite { background-color: var(--atlas-echelle-droite); }

/* Cran du parti : plus haut, cerne de sombre, avec un repere en dessous. */
.exw-atlas__orientation-cran.est-actif {
	height: 14px;
	margin-top: -3px;
	box-shadow: 0 0 0 2px var(--atlas-blanc), 0 0 0 4px var(--atlas-sombre);
}

.exw-atlas__orientation-cran.est-actif::after {
	content: "";
	position: absolute;
	left: 50%;
	top: calc(100% + 6px);
	width: 0;
	height: 0;
	margin-left: -5px;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-bottom: 6px solid var(--atlas-sombre);
}

.exw-atlas__orientation-bornes {
	display: flex;
	justify-content: space-between;
	margin: 14px 0 0;
	font-size: 12px;
	color: var(--atlas-texte-doux);
}

.exw-atlas__orientation-source {
	margin: 6px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--atlas-texte-doux);
}

.exw-atlas__dirigeants-pied {
	margin: 14px 0 0;
	font-size: 12px;
	line-height: 1.6;
	color: var(--atlas-texte-doux);
}

.exw-atlas__racine .exw-atlas__dirigeants-pied a,
.exw-atlas__racine .exw-atlas__orientation-source a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.exw-atlas__racine .exw-atlas__dirigeants-pied a:focus-visible,
.exw-atlas__racine .exw-atlas__orientation-source a:focus-visible {
	outline: 2px solid var(--atlas-accent);
	outline-offset: 2px;
	border-radius: 2px;
}
