/* ==========================================================================
   CitéAfrique — gabarit de lecture
   Feuille du thème enfant, écrite pour les articles de la revue.
   Chargée après la feuille dynamique d'Avada : aucun !important n'est
   nécessaire, les sélecteurs sont préfixés .ca et ne croisent rien du thème.
   ========================================================================== */

.ca {
	--encre: #1a1f1c;
	--encre-doux: #4e5a52;
	--encre-tiers: #35403a;
	--papier: #faf9f6;
	--papier-2: #f1efe9;
	--filet: #ddd8cd;
	--vert: #2d5a3d;
	--vert-fonce: #1e3f2a;
	--ocre: #8d6229;          /* 5,10:1 sur le papier — seul ocre admis sur du texte */
	--ocre-trait: #b5813f;    /* 3,23:1 — filets et bordures seulement */

	--serif-titre: "Newsreader", Georgia, "Times New Roman", serif;
	--serif-corps: "Spectral", Georgia, "Times New Roman", serif;
	--sans: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;

	background: var(--papier);
	color: var(--encre);
	font-family: var(--serif-corps);
	display: block;
}

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

.ca-article {
	max-width: 46rem;
	margin: 0 auto;
	padding-inline: 20px;
	padding-block: 40px 72px;
}

/* --- Fil d'Ariane ------------------------------------------------------- */

.ca-fil {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-family: var(--sans);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--encre-doux);
	margin-bottom: 26px;
}

.ca-fil a { color: var(--encre-doux); text-decoration: none; border-bottom: 1px solid var(--filet); }
.ca-fil a:hover { color: var(--vert); border-bottom-color: currentColor; }
.ca-fil-actuel { color: var(--ocre); }

/* --- En-tête de l'article ----------------------------------------------- */

.ca-titre {
	font-family: var(--serif-titre);
	font-size: clamp(1.85rem, 1.2rem + 2.4vw, 2.7rem);
	line-height: 1.16;
	font-weight: 500;
	letter-spacing: -0.012em;
	color: var(--encre);
	margin: 0 0 22px;
	text-wrap: balance;
}

.ca-auteurs {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--filet);
}

.ca-auteur { display: flex; flex-direction: column; gap: 4px; }

.ca-auteur-nom {
	font-family: var(--sans);
	font-size: 1rem;
	font-weight: 500;
	color: var(--encre);
}

.ca-auteur-affiliation {
	font-family: var(--sans);
	font-size: 0.85rem;
	line-height: 1.5;
	color: var(--encre-doux);
}

.ca-orcid {
	font-family: var(--sans);
	font-size: 0.78rem;
	color: var(--ocre);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	align-self: flex-start;
}

.ca-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 26px;
	font-family: var(--sans);
	font-size: 0.8rem;
	color: var(--encre-doux);
	margin: 16px 0 0;
}

.ca-meta a { color: var(--ocre); }

.ca-bouton-pdf {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 22px;
	padding: 13px 24px;
	min-height: 48px;
	background: var(--vert);
	color: var(--papier);
	font-family: var(--sans);
	font-size: 0.92rem;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.15s ease;
}

.ca-bouton-pdf:hover { background: var(--vert-fonce); color: var(--papier); }

/* --- Résumés ------------------------------------------------------------ */

.ca-resume {
	background: var(--papier-2);
	border-left: 3px solid var(--vert);
	padding: 22px 26px;
	margin: 30px 0 0;
}

.ca-resume--en { border-left-color: var(--ocre-trait); }

.ca-resume-titre {
	font-family: var(--sans);
	font-size: 0.72rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--vert);
	margin: 0 0 10px;
	font-weight: 600;
}

.ca-resume--en .ca-resume-titre { color: var(--ocre); }

.ca-resume p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.68;
	color: var(--encre-tiers);
}

/* --- Mots-clés ---------------------------------------------------------- */

.ca-mots-cles {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 22px 0 0;
	padding: 0;
}

.ca-mots-cles li {
	font-family: var(--sans);
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--encre-doux);
	border: 1px solid var(--filet);
	padding: 5px 11px;
}

/* --- Corps de l'article ------------------------------------------------- */

.ca-corps {
	margin-top: 44px;
	font-size: 1.0625rem;
	line-height: 1.72;
	color: var(--encre);
}

.ca-corps p {
	margin: 0 0 20px;
	text-align: justify;
	hyphens: auto;          /* la langue est déclarée par WordPress : lang="fr-FR" */
	-webkit-hyphens: auto;
}

.ca-corps h2,
.ca-corps h3 {
	font-family: var(--serif-titre);
	font-weight: 600;
	line-height: 1.3;
	color: var(--encre);
	margin: 38px 0 14px;
	text-wrap: balance;
}

.ca-corps h2 { font-size: 1.45rem; }
.ca-corps h3 { font-size: 1.2rem; }

/* Les intertitres des articles repris de Word sont des paragraphes en gras :
   on les redresse visuellement, faute de balisage. */
.ca-corps p > strong:only-child {
	display: block;
	font-family: var(--serif-titre);
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.3;
	margin: 30px 0 6px;
}

.ca-corps blockquote {
	margin: 26px 0;
	padding: 2px 0 2px 24px;
	border-left: 2px solid var(--ocre-trait);
	color: var(--encre-tiers);
}

.ca-corps blockquote p { font-size: 1rem; line-height: 1.66; }

.ca-corps a { color: var(--vert); text-decoration: underline; text-underline-offset: 2px; }
.ca-corps a:hover { color: var(--ocre); }

.ca-corps img { max-width: 100%; height: auto; }

.ca-corps table { width: 100%; border-collapse: collapse; }
.ca-corps > table { display: block; overflow-x: auto; }

/* --- Comment citer ------------------------------------------------------ */

.ca-citer {
	margin-top: 48px;
	padding: 22px 26px;
	border: 1px solid var(--filet);
	background: var(--papier-2);
}

.ca-citer-titre {
	font-family: var(--sans);
	font-size: 0.72rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--encre-doux);
	margin: 0 0 10px;
	font-weight: 600;
}

.ca-citer-ref {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--encre-tiers);
	overflow-wrap: anywhere;
}

/* --- Article précédent / suivant ---------------------------------------- */

.ca-suite {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 44px;
	padding-top: 26px;
	border-top: 1px solid var(--filet);
}

.ca-suite-lien {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px 18px;
	border: 1px solid var(--filet);
	text-decoration: none;
	min-height: 48px;
	transition: border-color 0.15s ease;
}

.ca-suite-lien:hover { border-color: var(--vert); }
.ca-suite-lien--droite { text-align: right; }

.ca-suite-sens {
	font-family: var(--sans);
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ocre);
}

.ca-suite-titre {
	font-family: var(--serif-titre);
	font-size: 1rem;
	line-height: 1.35;
	color: var(--encre);
}

/* --- Téléphone ---------------------------------------------------------- */

@media (max-width: 640px) {
	.ca-article { padding-block: 26px 48px; }
	.ca-corps { font-size: 1.0625rem; }
	.ca-corps p { text-align: left; }   /* une colonne de 40 signes ne se justifie pas */
	.ca-suite { grid-template-columns: 1fr; }
	.ca-suite-lien--droite { text-align: left; }
	.ca-resume { padding: 18px 20px; }
}

/* --- Impression : les chercheurs impriment et archivent ----------------- */

@media print {
	.ca { background: #fff; color: #000; }
	.ca-article { max-width: none; padding: 0; }
	.ca-fil, .ca-bouton-pdf, .ca-suite { display: none; }
	.ca-corps { font-size: 11.5pt; line-height: 1.5; }
	.ca-titre { font-size: 20pt; }
	.ca-corps h2, .ca-corps h3 { break-after: avoid; }
	.ca-corps p { orphans: 3; widows: 3; }
	.ca-corps a::after { content: " (" attr(href) ")"; font-size: 9pt; word-break: break-all; }
	.ca-resume, .ca-citer { border: 1px solid #999; background: none; }
}

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

/* --- Contenu hérité du Builder ------------------------------------------
   Le texte des articles est enveloppé dans des conteneurs Fusion conçus pour
   occuper toute la largeur de la page. Placés dans une colonne de lecture,
   ils débordent de l'écran — mesuré à 528px sur un téléphone de 375px.
   Leurs dimensions sont posées en style inline : les !important ci-dessous
   sont la seule façon de les ramener dans le flux, et restent circonscrits
   au corps de l'article. */

.ca-corps .fusion-fullwidth,
.ca-corps .fusion-builder-row,
.ca-corps .fusion-layout-column,
.ca-corps .fusion-column-wrapper,
.ca-corps .fusion-builder-row-inner {
	width: auto !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	min-height: 0 !important;
}

.ca-corps .fusion-text {
	width: auto !important;
	max-width: 100% !important;
}

/* Rien ne doit pouvoir pousser la page sur le côté. */
/* Le gabarit hérite d'une largeur calculée par Avada pour ses propres
   conteneurs (mesurée à 508px sur un écran de 375px). On la neutralise. */
.ca {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.ca-article { max-width: min(46rem, 100%); }
.ca-corps { overflow-wrap: break-word; }

/* --- Sommaire des articles ---------------------------------------------- */

.ca-sommaire {
	max-width: min(52rem, 100%);
	margin: 0 auto;
	padding-block: 8px 40px;
}

.ca-sommaire-compte {
	font-family: var(--sans);
	font-size: 0.9rem;
	color: var(--encre-doux);
	margin: 0 0 8px;
	padding-bottom: 14px;
	border-bottom: 2px solid var(--encre);
}

.ca-entree {
	display: grid;
	grid-template-columns: 54px 1fr;
	gap: 22px;
	padding: 26px 0;
	border-bottom: 1px solid var(--filet);
	align-items: start;
}

.ca-entree-num {
	font-family: var(--serif-titre);
	font-size: 1.6rem;
	line-height: 1;
	color: var(--ocre-trait);
	padding-top: 4px;
	font-variant-numeric: tabular-nums;
}

.ca-entree-titre {
	font-family: var(--serif-titre);
	font-size: 1.32rem;
	line-height: 1.32;
	font-weight: 500;
	margin: 0 0 7px;
	text-wrap: balance;
}

.ca-entree-titre a { color: var(--encre); text-decoration: none; }
.ca-entree-titre a:hover { color: var(--vert); }

.ca-entree-auteur {
	font-family: var(--sans);
	font-size: 0.82rem;
	color: var(--encre-doux);
	margin: 0 0 10px;
}

.ca-entree-resume {
	font-size: 0.98rem;
	line-height: 1.62;
	color: var(--encre-tiers);
	margin: 0 0 12px;
	max-width: 62ch;
}

.ca-entree .ca-mots-cles { margin-top: 0; }

@media (max-width: 640px) {
	.ca-entree { grid-template-columns: 38px 1fr; gap: 14px; padding: 20px 0; }
	.ca-entree-num { font-size: 1.2rem; }
	.ca-entree-titre { font-size: 1.15rem; }
}

/* --- Accueil : identité de la revue -------------------------------------- */

.ca-bref {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 1px;
	margin: 0;
	background: var(--filet);
	border: 1px solid var(--filet);
}

.ca-bref-ligne {
	background: var(--papier);
	padding: 16px 18px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.ca-bref dt {
	font-family: var(--sans);
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--encre-doux);
}

.ca-bref dd {
	margin: 0;
	font-family: var(--serif-corps);
	font-size: 1rem;
	color: var(--encre);
}

/* --- Accueil : derniers articles ----------------------------------------- */

.ca-derniers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 26px;
	align-items: start;
}

.ca-recent {
	display: flex;
	flex-direction: column;
	gap: 9px;
	padding-top: 16px;
	border-top: 2px solid var(--vert);
}

.ca-recent-date {
	font-family: var(--sans);
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ocre);
}

.ca-recent-titre {
	font-family: var(--serif-titre);
	font-size: 1.2rem;
	line-height: 1.32;
	font-weight: 500;
	margin: 0;
	text-wrap: balance;
}

.ca-recent-titre a { color: var(--encre); text-decoration: none; }
.ca-recent-titre a:hover { color: var(--vert); }

.ca-recent-auteur {
	font-family: var(--sans);
	font-size: 0.8rem;
	color: var(--encre-doux);
	margin: 0;
}

.ca-recent .ca-mots-cles { margin-top: 4px; }

.ca-derniers-tout {
	grid-column: 1 / -1;
	margin: 6px 0 0;
	font-family: var(--sans);
	font-size: 0.88rem;
}

.ca-derniers-tout a {
	color: var(--vert);
	text-decoration: none;
	border-bottom: 1px solid var(--filet);
	padding-bottom: 2px;
}

.ca-derniers-tout a:hover { border-bottom-color: var(--vert); }

/* Lien PDF dans les listes d'articles. */
.ca-pdf-lien {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 10px;
	padding: 7px 13px;
	border: 1px solid var(--filet);
	font-family: var(--sans);
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--vert);
	text-decoration: none;
	align-self: flex-start;
}

.ca-pdf-lien:hover { border-color: var(--vert); color: var(--vert-fonce); }

/* ==========================================================================
   Couverture de l'accueil
   Composition asymétrique : le titre tient la page à gauche, la une occupe
   la colonne de droite. Le motif du logo court en filigrane derrière, dessiné
   en SVG — aucune image à télécharger.
   ========================================================================== */

.ca-une {
	position: relative;
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: 64px;
	align-items: start;
	max-width: 76rem;
	margin: 0 auto;
	padding-inline: 20px;
	padding-block: 72px 80px;
	overflow: hidden;
}

.ca-une-fond {
	position: absolute;
	top: -18%;
	right: -14%;
	width: min(46rem, 78%);
	color: var(--vert);
	opacity: 0.055;
	pointer-events: none;
	z-index: 0;
}

.ca-une-fond svg { width: 100%; height: auto; display: block; }

.ca-une-tete,
.ca-une-corps { position: relative; z-index: 1; }

.ca-une-sur {
	font-family: var(--sans);
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ocre);
	margin: 0 0 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--filet);
}

.ca-une-titre {
	font-family: var(--serif-titre);
	font-size: clamp(3rem, 1.6rem + 5.4vw, 5.6rem);
	line-height: 0.94;
	font-weight: 600;
	letter-spacing: -0.03em;
	color: var(--encre);
	margin: 0 0 18px;
}

.ca-une-sous {
	font-family: var(--serif-titre);
	font-size: clamp(1.25rem, 0.9rem + 1.2vw, 1.75rem);
	line-height: 1.24;
	font-weight: 400;
	font-style: italic;
	color: var(--vert);
	margin: 0 0 26px;
}

.ca-une-texte {
	font-size: 1.02rem;
	line-height: 1.68;
	color: var(--encre-doux);
	max-width: 42ch;
	margin: 0 0 32px;
}

.ca-une-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }

.ca-btn {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 13px 26px;
	font-family: var(--sans);
	font-size: 0.92rem;
	font-weight: 500;
	text-decoration: none;
	border: 1px solid var(--vert);
	color: var(--vert);
	transition: background 0.16s ease, color 0.16s ease;
}

.ca-btn:hover { background: var(--vert); color: var(--papier); }
.ca-btn--plein { background: var(--vert); color: var(--papier); }
.ca-btn--plein:hover { background: var(--vert-fonce); color: var(--papier); }

/* --- La une ------------------------------------------------------------- */

.ca-une-corps {
	border-left: 1px solid var(--filet);
	padding-left: 44px;
}

.ca-une-etiquette {
	font-family: var(--sans);
	font-size: 0.66rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--papier);
	background: var(--vert);
	display: inline-block;
	padding: 5px 12px;
	margin: 0 0 20px;
}

.ca-une-article h2 {
	font-family: var(--serif-titre);
	font-size: clamp(1.4rem, 1rem + 1.4vw, 2rem);
	line-height: 1.22;
	font-weight: 500;
	margin: 0 0 12px;
	text-wrap: balance;
}

.ca-une-article h2 a { color: var(--encre); text-decoration: none; }
.ca-une-article h2 a:hover { color: var(--vert); }

.ca-une-signature {
	font-family: var(--sans);
	font-size: 0.82rem;
	color: var(--encre-doux);
	margin: 0 0 16px;
}

.ca-une-chapo {
	font-size: 1rem;
	line-height: 1.66;
	color: var(--encre-tiers);
	margin: 0 0 18px;
}

.ca-une-lire {
	font-family: var(--sans);
	font-size: 0.86rem;
	color: var(--vert);
	text-decoration: none;
	border-bottom: 1px solid var(--ocre-trait);
	padding-bottom: 2px;
}

.ca-une-lire:hover { border-bottom-color: var(--vert); }

.ca-une-liste {
	list-style: none;
	margin: 36px 0 0;
	padding: 24px 0 0;
	border-top: 1px solid var(--filet);
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.ca-une-liste li { display: flex; flex-direction: column; gap: 4px; }

.ca-une-liste a {
	font-family: var(--serif-titre);
	font-size: 1rem;
	line-height: 1.32;
	color: var(--encre);
	text-decoration: none;
}

.ca-une-liste a:hover { color: var(--vert); }

.ca-une-liste span {
	font-family: var(--sans);
	font-size: 0.74rem;
	color: var(--encre-doux);
}

/* --- Tablette et téléphone ---------------------------------------------- */

@media (max-width: 1024px) {
	.ca-une { grid-template-columns: 1fr; gap: 44px; padding-block: 52px 56px; }
	.ca-une-corps { border-left: 0; border-top: 2px solid var(--encre); padding-left: 0; padding-top: 28px; }
	.ca-une-fond { top: auto; bottom: -10%; right: -30%; width: 34rem; }
}

@media (max-width: 640px) {
	.ca-une { padding-block: 36px 44px; }
	.ca-une-actions .ca-btn { flex: 1 1 100%; justify-content: center; }
}

/* --- En-tête des pages institutionnelles --------------------------------- */

.ca-entete-page {
	max-width: 76rem;
	margin: 0 auto;
	padding-inline: 20px;
	padding-block: 56px 32px;
	border-bottom: 2px solid var(--encre);
}

.ca-entete-fil {
	font-family: var(--sans);
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--encre-doux);
	margin: 0 0 16px;
}

.ca-entete-fil a { color: var(--ocre); text-decoration: none; }
.ca-entete-fil a:hover { color: var(--vert); }

.ca-entete-titre {
	font-family: var(--serif-titre);
	font-size: clamp(2.1rem, 1.4rem + 2.6vw, 3.4rem);
	line-height: 1.08;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--encre);
	margin: 0;
	text-wrap: balance;
}

.ca-entete-chapo {
	font-family: var(--serif-corps);
	font-size: 1.08rem;
	line-height: 1.6;
	color: var(--encre-doux);
	margin: 14px 0 0;
	max-width: 52ch;
}

/* Filet de sécurité : si un bandeau de titre subsiste, il ne s'affiche pas. */
body:not(.home) .fusion-page-title-bar { display: none; }

@media (max-width: 640px) {
	.ca-entete-page { padding-block: 32px 22px; }
}

/* ==========================================================================
   En-tête de la revue
   Le bandeau blanc d'Avada est masqué : il appartenait au site vitrine.
   Ici, une ligne de statut, puis la marque et la navigation sur le papier,
   fermées par le filet noir qui structure toutes les pages.
   ========================================================================== */

.fusion-tb-header,
.fusion-header-wrapper { display: none !important; }

.ca-site {
	background: #faf9f6;
	font-family: "Archivo", system-ui, sans-serif;
	position: relative;
	z-index: 20;
}

.ca-site-dedans {
	max-width: 76rem;
	margin: 0 auto;
	padding-inline: 20px;
}

.ca-site-statut {
	background: #1e3f2a;
	color: #b9c7bb;
	font-size: 0.66rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.ca-site-statut .ca-site-dedans {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	padding-block: 9px;
}

.ca-site-barre .ca-site-dedans {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	padding-block: 22px 0;
	border-bottom: 2px solid #1a1f1c;
}

.ca-site-marque {
	display: inline-flex;
	align-items: center;
	gap: 13px;
	text-decoration: none;
	color: #1a1f1c;
	padding-bottom: 16px;
}

.ca-site-marque svg { width: 34px; height: 34px; color: #2d5a3d; flex: none; }

.ca-site-marque span {
	font-family: "Newsreader", Georgia, serif;
	font-size: 1.55rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1;
}

/* La navigation s'appuie sur le filet : les liens le touchent, et l'onglet
   actif le prolonge en vert. */
.ca-site-nav > summary { display: none; }

.ca-site-nav nav ul {
	display: flex;
	gap: 30px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ca-site-nav a {
	display: block;
	padding: 0 2px 14px;
	font-size: 0.82rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #4e5a52;
	text-decoration: none;
	border-bottom: 3px solid transparent;
	margin-bottom: -2px;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.ca-site-nav a:hover { color: #1a1f1c; border-bottom-color: #ddd8cd; }
.ca-site-nav a[aria-current="page"] { color: #1a1f1c; border-bottom-color: #2d5a3d; }

/* --- Menu dépliant sous 900px, sans JavaScript --------------------------- */

@media (max-width: 900px) {
	.ca-site-barre .ca-site-dedans { align-items: center; padding-block: 14px; }
	.ca-site-marque { padding-bottom: 0; }
	.ca-site-marque span { font-size: 1.3rem; }

	.ca-site-nav > summary {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		cursor: pointer;
		list-style: none;
		padding: 10px;
	}

	.ca-site-nav > summary::-webkit-details-marker { display: none; }
	.ca-site-trait { display: block; height: 2px; background: #1a1f1c; }
	.ca-site-nav[open] > summary .ca-site-trait:nth-child(2) { opacity: 0; }

	.ca-site-nav nav {
		position: absolute;
		left: 0;
		right: 0;
		background: #faf9f6;
		border-bottom: 2px solid #1a1f1c;
		padding: 8px 20px 16px;
	}

	.ca-site-nav nav ul { flex-direction: column; gap: 0; max-width: 76rem; margin: 0 auto; }

	.ca-site-nav a {
		padding: 15px 0;
		border-bottom: 1px solid #ddd8cd;
		margin-bottom: 0;
		min-height: 48px;
		display: flex;
		align-items: center;
	}

	.ca-site-nav a[aria-current="page"] { border-bottom-color: #2d5a3d; }
	.ca-site-statut .ca-site-dedans { font-size: 0.6rem; gap: 6px 16px; }
}

/* ==========================================================================
   Pages institutionnelles
   ========================================================================== */

.ca-page {
	max-width: 46rem;
	margin: 0 auto;
	padding-inline: 20px;
	font-size: 1.0625rem;
	line-height: 1.72;
	color: var(--encre);
}

.ca-page p { margin: 0 0 18px; }
.ca-page a { color: var(--vert); text-decoration: underline; text-underline-offset: 2px; }
.ca-page a:hover { color: var(--ocre); }

.ca-exergue {
	font-family: var(--serif-titre);
	font-size: clamp(1.2rem, 0.95rem + 0.9vw, 1.5rem);
	line-height: 1.42;
	font-style: italic;
	color: var(--vert);
	margin: 0 0 8px;
	padding-block: 26px 6px;
}

.ca-h2 {
	font-family: var(--serif-titre);
	font-size: 1.5rem;
	line-height: 1.24;
	font-weight: 600;
	color: var(--encre);
	margin: 34px 0 14px;
	padding-top: 22px;
	border-top: 1px solid var(--filet);
}

.ca-page--normes h2,
.ca-page--normes h3,
.ca-page--normes h4 {
	font-family: var(--serif-titre);
	font-size: 1.18rem;
	line-height: 1.3;
	margin: 28px 0 10px;
	color: var(--encre);
}

.ca-contact {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1px;
	margin: 24px 0 0;
	background: var(--filet);
	border: 1px solid var(--filet);
}

.ca-contact > div {
	background: var(--papier);
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ca-contact dt {
	font-family: var(--sans);
	font-size: 0.66rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--encre-doux);
}

.ca-contact dd { margin: 0; font-size: 0.98rem; line-height: 1.55; }

.ca-etapes {
	counter-reset: etape;
	list-style: none;
	margin: 20px 0 22px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ca-etapes li {
	counter-increment: etape;
	padding-left: 48px;
	position: relative;
}

.ca-etapes li::before {
	content: counter(etape, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: -2px;
	font-family: var(--serif-titre);
	font-size: 1.3rem;
	color: var(--ocre-trait);
	font-variant-numeric: tabular-nums;
}

.ca-note {
	border-left: 3px solid var(--vert);
	background: var(--papier);
	padding: 16px 20px;
	font-size: 0.98rem;
	margin: 0;
}


/* Le déclencheur du panneau latéral d'Avada, hérité de la démo. */
.awb-off-canvas-wrap,
.fb-icon-element.university-school,
a[href^="#awb-open-oc"] { display: none !important; }

/* Dans la barre flex, le <details> doit prendre sa largeur naturelle : sans
   cela il est compressé à zéro et les liens sortent de l'écran. */
.ca-site-nav { flex: none; }
.ca-site-nav nav ul { flex-wrap: wrap; justify-content: flex-end; }

/* Le bandeau de statut porte déjà ces mentions : inutile de les répéter
   en surtitre de la couverture. */
.ca-une-sur { display: none; }



/* ==========================================================================
   Navigation : deux structures distinctes plutôt qu'un <details> qui doit
   se comporter différemment selon la largeur — un <details> placé dans une
   barre flex se dimensionne à zéro et rejette ses liens hors écran.
   ========================================================================== */

.ca-site-menu ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 30px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ca-site-menu a,
.ca-site-repli a {
	display: block;
	padding: 0 2px 14px;
	font-size: 0.82rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #4e5a52;
	text-decoration: none;
	border-bottom: 3px solid transparent;
	margin-bottom: -2px;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.ca-site-menu a:hover { color: #1a1f1c; border-bottom-color: #ddd8cd; }
.ca-site-menu a[aria-current="page"],
.ca-site-repli a[aria-current="page"] { color: #1a1f1c; border-bottom-color: #2d5a3d; }

.ca-site-repli { display: none; }

@media (max-width: 900px) {
	.ca-site-menu { display: none; }
	.ca-site-repli { display: block; flex: none; }

	.ca-site-repli > summary {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		cursor: pointer;
		list-style: none;
		padding: 10px;
	}

	.ca-site-repli > summary::-webkit-details-marker { display: none; }
	.ca-site-trait { display: block; height: 2px; background: #1a1f1c; }
	.ca-site-repli[open] > summary .ca-site-trait:nth-child(2) { opacity: 0; }

	.ca-site-repli nav {
		position: absolute;
		left: 0;
		right: 0;
		background: #faf9f6;
		border-bottom: 2px solid #1a1f1c;
		padding: 8px 20px 16px;
		z-index: 30;
	}

	.ca-site-repli nav ul {
		list-style: none;
		margin: 0 auto;
		padding: 0;
		max-width: 76rem;
		display: flex;
		flex-direction: column;
	}

	.ca-site-repli a {
		padding: 15px 0;
		border-bottom: 1px solid #ddd8cd;
		margin-bottom: 0;
		min-height: 48px;
		display: flex;
		align-items: center;
	}
}

/* ==========================================================================
   Accueil : sections institutionnelles
   ========================================================================== */

.ca-section {
	max-width: 76rem;
	margin: 0 auto;
	padding-inline: 20px;
	padding-block: 52px;
}

.ca-section + .ca-section { padding-top: 0; }

.ca-section-tete {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	border-bottom: 2px solid var(--encre);
	padding-bottom: 12px;
	margin-bottom: 28px;
}

.ca-section-titre {
	font-family: var(--serif-titre);
	font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem);
	font-weight: 600;
	margin: 0;
	color: var(--encre);
}

.ca-section-lien {
	font-family: var(--sans);
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--vert);
	text-decoration: none;
	white-space: nowrap;
}

.ca-section-lien:hover { color: var(--ocre); }

/* Le texte de ligne éditoriale sur deux colonnes, comme une revue imprimée. */
.ca-colonnes {
	columns: 2;
	column-gap: 48px;
	font-size: 1.02rem;
	line-height: 1.7;
	color: var(--encre-tiers);
	text-align: justify;
	hyphens: auto;
}

.ca-colonnes p { margin: 0 0 16px; break-inside: avoid-column; }

/* Un texte d'un seul paragraphe doit au contraire couler d'une colonne à
   l'autre, sinon la seconde reste vide. */
.ca-colonnes p:only-child { break-inside: auto; }

/* La lettrine est une ouverture, pas un motif : elle ne sert qu'au premier
   texte de la page, sinon deux sections voisines se disputent l'entrée. */
.ca-colonnes--lettrine p:first-child::first-letter {
	font-family: var(--serif-titre);
	font-size: 3.1em;
	float: left;
	line-height: 0.82;
	padding: 6px 10px 0 0;
	color: var(--vert);
}

/* Signature de fin de texte, à la place d'un alignement posé à la main. */
.ca-colonnes-signature {
	margin: 4px 0 0;
	font-family: var(--sans);
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: right;
	color: var(--encre-doux);
	break-inside: avoid-column;
}

/* Chapô d'une section : une seule colonne, mais jamais sur toute la largeur. */
.ca-section-chapo {
	max-width: 40rem;
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--encre-tiers);
	margin: 0 0 30px;
}

/* --- Instances ----------------------------------------------------------- */

.ca-instances {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: 48px;
	align-items: start;
}

.ca-instances-direction { display: flex; flex-direction: column; gap: 22px; }

.ca-personne { border-left: 2px solid var(--vert); padding-left: 16px; }

.ca-personne-role {
	font-family: var(--sans);
	font-size: 0.64rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ocre);
	margin: 0 0 5px;
}

.ca-personne-nom {
	font-family: var(--serif-titre);
	font-size: 1.12rem;
	font-weight: 600;
	margin: 0 0 3px;
	color: var(--encre);
}

.ca-personne-titre {
	font-family: var(--sans);
	font-size: 0.82rem;
	line-height: 1.5;
	color: var(--encre-doux);
	margin: 0;
}

.ca-instances-compte {
	font-size: 1rem;
	line-height: 1.6;
	color: var(--encre-tiers);
	margin: 0 0 18px;
}

.ca-instances-liste {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 12px 28px;
	border-top: 1px solid var(--filet);
	padding-top: 18px;
}

.ca-instances-liste li { display: flex; flex-direction: column; gap: 2px; }

.ca-instances-liste span {
	font-family: var(--sans);
	font-size: 0.86rem;
	color: var(--encre);
}

.ca-instances-liste em {
	font-family: var(--sans);
	font-size: 0.74rem;
	font-style: normal;
	color: var(--encre-doux);
}

.ca-instances-tout {
	margin: 22px 0 0;
	font-family: var(--sans);
	font-size: 0.82rem;
}

.ca-instances-tout a { color: var(--vert); text-decoration: none; border-bottom: 1px solid var(--ocre-trait); padding-bottom: 2px; }

@media (max-width: 640px) {
	/* Sous 40 signes, la justification creuse des lézardes : on l'abandonne. */
	.ca-colonnes { text-align: left; }
}

@media (max-width: 900px) {
	.ca-colonnes { columns: 1; max-width: 40rem; margin-inline: auto; }
	.ca-instances { grid-template-columns: 1fr; gap: 34px; }
	.ca-section { padding-block: 36px; }
}

/* Avada impose une largeur aux SVG du contenu : mesuré à 1280px sur le logo de
   l'en-tête, ce qui déformait toute la page. Ces trois tailles sont fixes. */
.ca-site-marque svg {
	width: 34px !important;
	height: 34px !important;
	max-width: 34px !important;
	flex: none;
}

.ca-une-fond svg { width: 100% !important; height: auto !important; max-width: none !important; }
.ca-bouton-pdf svg, .ca-pdf-lien svg, .ca-orcid svg { width: 1em !important; height: 1em !important; }

@media (max-width: 900px) {
	.ca-site-marque svg { width: 28px !important; height: 28px !important; max-width: 28px !important; }
}

/* ==========================================================================
   Blocs dépliables
   <details>/<summary> natifs : aucun JavaScript, accessibles au clavier et
   aux lecteurs d'écran, et le contenu reste trouvable par les moteurs.
   ========================================================================== */

.ca-plis { border-top: 1px solid var(--filet); margin: 24px 0 0; }

.ca-pli { border-bottom: 1px solid var(--filet); }

.ca-pli > summary {
	display: flex;
	align-items: baseline;
	gap: 16px;
	cursor: pointer;
	list-style: none;
	padding: 20px 0;
	font-family: var(--serif-titre);
	font-size: 1.16rem;
	font-weight: 600;
	color: var(--encre);
	transition: color 0.15s ease;
}

.ca-pli > summary::-webkit-details-marker { display: none; }
.ca-pli > summary:hover { color: var(--vert); }

.ca-pli > summary:focus-visible {
	outline: 2px solid var(--vert);
	outline-offset: 3px;
}

/* Le chevron est dessiné en CSS : deux traits qui pivotent à l'ouverture. */
.ca-pli > summary::after {
	content: "";
	margin-left: auto;
	width: 11px;
	height: 11px;
	border-right: 2px solid var(--ocre);
	border-bottom: 2px solid var(--ocre);
	transform: rotate(45deg) translateY(-3px);
	transition: transform 0.22s ease;
	flex: none;
	align-self: center;
}

.ca-pli[open] > summary::after { transform: rotate(225deg) translateY(-3px); }
.ca-pli[open] > summary { color: var(--vert); }

.ca-pli-numero {
	font-family: var(--sans);
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	color: var(--ocre);
	font-variant-numeric: tabular-nums;
	flex: none;
	padding-top: 3px;
}

.ca-pli-corps {
	padding: 0 0 26px;
	font-size: 1.0125rem;
	line-height: 1.7;
	color: var(--encre-tiers);
	animation: ca-deplie 0.2s ease;
}

@keyframes ca-deplie {
	from { opacity: 0; transform: translateY(-4px); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.ca-pli-corps { animation: none; }
	.ca-pli > summary::after { transition: none; }
}

.ca-pli-corps p { margin: 0 0 14px; }
.ca-pli-corps p:last-child { margin-bottom: 0; }

.ca-pli-corps ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 10px 32px;
}

.ca-pli-corps li {
	padding-left: 14px;
	position: relative;
	font-size: 0.96rem;
	line-height: 1.55;
}

.ca-pli-corps li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 5px;
	height: 1px;
	background: var(--ocre-trait);
}

.ca-pli-corps strong { color: var(--encre); }

@media (max-width: 640px) {
	.ca-pli > summary { font-size: 1.05rem; padding: 16px 0; gap: 10px; }
	.ca-pli-corps ul { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Harmonisation des fonds
   Les conteneurs d'Avada peignent du blanc pur (--awb-color1) tandis que les
   blocs de la revue sont sur papier (#faf9f6) : d'où des bandes claires en
   décalage. On redéfinit les deux variables dans le contenu, ce qui aligne
   tous les conteneurs sans toucher au reste du site.
   ========================================================================== */

.post-content,
.post-content .fusion-fullwidth {
	--awb-color1: #faf9f6;   /* papier */
	--awb-color2: #f1efe9;   /* papier secondaire */
}

/* Les blocs de la revue n'ont plus besoin de peindre leur propre fond :
   ils héritent de celui du conteneur, ce qui supprime tout raccord visible. */
.ca { background: transparent; }

/* Le corps de la page porte le papier, pour que rien ne transparaisse
   entre les sections. */
body.page,
body.single-post,
body.home { background-color: #faf9f6; }

/* ==========================================================================
   Gouttières d'Avada
   Ses rangées sont posées à width:104% avec des marges négatives, que le
   padding des colonnes est censé compenser. Les conteneurs de la revue ont un
   padding nul : la compensation ne se fait pas et chaque bloc dépassait de
   20px à droite (mesuré sur un écran de 1024px). On remet le flux d'aplomb.
   Ces largeurs sont posées en style inline par le Builder, d'où les !important.
   ========================================================================== */

.post-content > .fusion-fullwidth > .fusion-builder-row,
.post-content .fusion-builder-row.fusion-row {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.post-content > .fusion-fullwidth > .fusion-builder-row > .fusion-layout-column {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* déploiement 144701 */

/* ==========================================================================
   Harmonisation des listes de membres
   Le contenu d'origine alterne rôles en gras, listes à un seul élément et
   listes longues : d'où un rendu haché. On donne la même forme à tous.
   ========================================================================== */

/* Un rôle seul dans son paragraphe devient un intitulé. */
.ca-pli-corps p > strong:only-child {
	display: block;
	font-family: var(--sans);
	font-weight: 600;
	font-size: 0.68rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--ocre);
	margin: 22px 0 8px;
}

.ca-pli-corps > p:first-child > strong:only-child { margin-top: 0; }

/* Deux colonnes au plus : au-delà, les noms se disloquent. */
.ca-pli-corps ul {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 12px 40px;
	margin: 0 0 4px;
}

/* Une liste d'un seul nom ne doit pas occuper une grille. */
.ca-pli-corps ul:has(li:only-child) { display: block; }

.ca-pli-corps li {
	padding-left: 0;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--encre-tiers);
}

.ca-pli-corps li::before { display: none; }

.ca-pli-corps li strong {
	font-weight: 600;
	color: var(--encre);
	font-family: var(--serif-corps);
}

/* Le premier bloc dépliable garde son contenu au même rythme que les autres. */
.ca-pli-corps > p { margin: 0 0 12px; }

/* --- La revue en bref ---------------------------------------------------- */

.ca-bref {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 0;
	margin: 0;
	background: var(--filet);
	border: 1px solid var(--filet);
	padding: 0;
	column-gap: 1px;
	row-gap: 1px;
}

.ca-bref-bloc {
	background: var(--papier);
	padding: 22px 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.ca-bref-titre {
	font-family: var(--sans);
	font-size: 0.64rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ocre);
	margin: 0;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--filet);
	font-weight: 600;
}

.ca-bref dl { margin: 0; display: flex; flex-direction: column; gap: 13px; }
.ca-bref dl > div { display: flex; flex-direction: column; gap: 3px; }

.ca-bref dt {
	font-family: var(--sans);
	font-size: 0.7rem;
	color: var(--encre-doux);
	letter-spacing: 0.02em;
}

.ca-bref dd {
	margin: 0;
	font-family: var(--serif-corps);
	font-size: 1rem;
	line-height: 1.4;
	color: var(--encre);
}

/* ==========================================================================
   Cibles tactiles
   Mesuré sur téléphone : lien de marque 28px, « Lire l'article » 18px, titres
   de la liste 42px. La règle d'usage est 44px minimum sous le doigt.
   ========================================================================== */

@media (max-width: 900px) {
	.ca-site-marque {
		min-height: 44px;
		align-items: center;
	}

	.ca-une-lire {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding-block: 4px;
	}

	.ca-une-liste li { padding-block: 3px; }

	.ca-une-liste a,
	.ca-entree-titre a,
	.ca-recent-titre a,
	.ca-instances-tout a,
	.ca-section-lien {
		display: block;
		min-height: 44px;
		padding-block: 6px;
	}

	/* Les intitulés des blocs dépliables sont déjà à 44px grâce à leur padding,
	   mais on le garantit si la taille de police change. */
	.ca-pli > summary { min-height: 48px; }
}

/* Les liens du pied de page sont posés dans des lignes de texte : on leur donne
   la hauteur du doigt sans casser le rythme du paragraphe. */
@media (max-width: 900px) {
	.fusion-tb-footer a {
		display: inline-block;
		min-height: 44px;
		line-height: 44px;
	}
}

/* ==========================================================================
   Page introuvable
   Une 404 utile : elle dit ce qui s'est passé et propose les quatre chemins
   qu'un lecteur de revue peut chercher.
   ========================================================================== */

.ca-404 {
	max-width: 46rem;
	margin: 0 auto;
	padding-inline: 20px;
	padding-block: 64px 80px;
}

.ca-404-code {
	font-family: var(--sans);
	font-size: 0.68rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ocre);
	margin: 0 0 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--filet);
}

.ca-404-titre {
	font-family: var(--serif-titre);
	font-size: clamp(1.9rem, 1.3rem + 2.4vw, 2.9rem);
	line-height: 1.12;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--encre);
	margin: 0 0 18px;
	text-wrap: balance;
}

.ca-404-texte {
	font-size: 1.05rem;
	line-height: 1.68;
	color: var(--encre-doux);
	margin: 0 0 36px;
	max-width: 48ch;
}

.ca-404-liens {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1px;
	background: var(--filet);
	border: 1px solid var(--filet);
}

.ca-404-liens a {
	display: flex;
	flex-direction: column;
	gap: 5px;
	background: var(--papier);
	padding: 20px 22px;
	text-decoration: none;
	min-height: 48px;
	transition: background 0.15s ease;
}

.ca-404-liens a:hover { background: var(--papier-2); }

.ca-404-liens span {
	font-family: var(--serif-titre);
	font-size: 1.08rem;
	font-weight: 600;
	color: var(--vert);
}

.ca-404-liens em {
	font-family: var(--sans);
	font-size: 0.82rem;
	font-style: normal;
	line-height: 1.5;
	color: var(--encre-doux);
}

@media (max-width: 640px) {
	.ca-404 { padding-block: 36px 52px; }
}
