/*
Theme Name:   Blocksy SOFIA
Theme URI:    https://sofia.medicalistes.fr/
Description:  Theme enfant de Blocksy reproduisant l apparence du squelette SPIP
              Escal 5.5.22 du site de la Societe Francaise des Infirmier(e)s
              Anesthesistes : bandeau bleu, menu horizontal en pastilles a coins
              arrondis, gabarit trois colonnes, cadres lateraux a sommet arrondi,
              breves en colonne de droite. Toute personnalisation d apparence se
              fait ICI, jamais dans le parent ni dans les reglages payants.
Author:       Medicalistes
Template:     blocksy
Version:      0.7.1
Text Domain:  blocksy-sofia
*/

/* =======================================================================
   1. LA PALETTE ET LES MESURES D ESCAL
   Relevees le 27/08/2026 dans couleurs.css, config.css, menu.css et
   layoutPMPfluide.css generes par SPIP. Escal pose html{font-size:75%},
   donc 1rem = 12px ; les valeurs sont converties en pixels ici.
   ==================================================================== */
:root {
	--sofia-noir:        #000000;
	--sofia-blanc:       #ffffff;
	--sofia-bleu:        #336699; /* bandeau, menu, titres */
	--sofia-bleu-fonce:  #224466; /* survol */
	--sofia-bleu-clair:  #82ADE2; /* titres des cadres lateraux */
	--sofia-gris-clair:  #EFEFEF;
	--sofia-bleu-pied:   #BBCCDD;
	--sofia-bleu-pale:   #DAE6F6; /* fond des cadres lateraux */
	--sofia-orange:      #EC7942;
	--sofia-gris:        #DFDFDF; /* bordure des pastilles et des cadres */
	--sofia-gris-fond:   #BFBFBF; /* marges laterales. Escal a #DFDFDF ; Cyril les
	                                 veut plus soutenues. Valeur arretee le
	                                 28/08/2026 apres essais : #CFCFCF trop pale,
	                                 #AFAFAF trop sombre. Ecart assume. */
	--sofia-lien:        #000099;
	--sofia-lien-survol: #FF8000;

	--sofia-largeur:     1200px;
	--sofia-police:      Verdana, Arial, Helvetica, sans-serif;

	/* Remappage de la palette de Blocksy : ses propres composants suivent. */
	--theme-palette-color-1: #336699;
	--theme-palette-color-2: #224466;
	--theme-palette-color-3: #000000;
	--theme-palette-color-4: #000000;
	--theme-palette-color-5: #DFDFDF;
	--theme-palette-color-6: #EFEFEF;
	--theme-palette-color-7: #DAE6F6;
	--theme-palette-color-8: #ffffff;

	--theme-text-color:         #000000;
	--theme-link-initial-color: #000099;
	--theme-link-hover-color:   #FF8000;
	--theme-font-family:        Verdana, Arial, Helvetica, sans-serif;
	--theme-font-size:          12px;
	--theme-line-height:        1.5;
	--theme-border-color:       #DFDFDF;
	--theme-content-spacing:    1em;
}

/* =======================================================================
   2. LE CADRE GENERAL
   ==================================================================== */
/* « html body » et non « body » : Blocksy imprime dans le <head>, APRES cette
   feuille, un « body{background-color:var(--theme-palette-color-7)} » avec sa
   propre palette. A specificite egale, le dernier declare gagne — nos marges
   grises n etaient donc jamais peintes par nous. Deux selecteurs suffisent a
   reprendre la main, sans recourir a !important. Trouve le 28/08/2026. */
html body {
	background-color: var(--sofia-gris-fond);
	color: var(--sofia-noir);
	font-family: var(--sofia-police);
	font-size: 12px;
	line-height: 1.5;
}

#sofia-acces,
/* Toutes les bandes sont bornees a la largeur du corps et centrees, pour que
   les marges grises courent SANS INTERRUPTION du haut au bas de la fenetre,
   comme dans Escal. Avant le 28/08/2026, le bandeau bleu du menu et celui du
   pied s etendaient d un bord a l autre et coupaient le gris.

   « width: 100% » n est pas redondant avec « max-width ». Le pied est un
   element de conteneur flexible : borne par le seul max-width, il se dimensionne
   sur son CONTENU et le bandeau bleu se retrecit a la largeur des liens, au lieu
   de venir buter sur les marges grises. Constate par Cyril le 28/08/2026,
   capture a l appui. « align-self: center » couvre le cas ou le parent centre
   ses elements ; sans effet ailleurs. */
#sofia-acces,
#sofia-entete,
#sofia-menu,
#sofia-service,
#main,
#sofia-pied {
	width: 100%;
	max-width: var(--sofia-largeur);
	margin-inline: auto;
	align-self: center;
	box-sizing: border-box;
}

#sofia-entete,
#sofia-menu,
#sofia-service,
#main {
	background-color: var(--sofia-blanc);
}

.sofia-largeur {
	max-width: var(--sofia-largeur);
	margin-inline: auto;
	padding-inline: 12px;
	box-sizing: border-box;
}

#content, .site-main {
	max-width: var(--sofia-largeur);
	margin-inline: auto;
	background-color: var(--sofia-blanc);
}

a { color: var(--sofia-lien); }
a:hover, a:focus { color: var(--sofia-lien-survol); }

h1, h2, h3, h4 { font-family: var(--sofia-police); }

/* En-tete et pied propres a Blocksy : masques, l enfant rend les siens. */
header#header.ct-header,
footer#footer.ct-footer { display: none !important; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* =======================================================================
   3. LA BARRE D ACCESSIBILITE
   ==================================================================== */
#sofia-acces { font-size: 11px; padding: 3px 0; }
#sofia-acces .sofia-largeur { display: flex; gap: 10px; flex-wrap: wrap; }
#sofia-acces .sofia-acces-titre { font-weight: 700; color: var(--sofia-noir); }
#sofia-acces a { color: var(--sofia-lien); }
#sofia-acces a::before { content: "| "; color: var(--sofia-noir); }

/* =======================================================================
   4. LE BANDEAU : logo sur blanc, titre sur bleu
   ==================================================================== */
#sofia-entete { padding: 0; }

.sofia-entete-corps {
	display: flex;
	align-items: stretch;
	gap: 0;
	padding-inline: 12px;
	background: linear-gradient(to right, var(--sofia-blanc) 0 330px, var(--sofia-bleu) 330px);
}

.sofia-logo {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 318px;
	background-color: var(--sofia-blanc);
	padding: 8px 6px;
	box-sizing: border-box;
}

.sofia-logo img { display: block; max-width: 100%; height: auto; }

.sofia-nom-site {
	flex: 1 1 auto;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--sofia-bleu);
	padding: 18px 20px;
	font-size: 40px;
	font-style: italic;
	font-weight: 700;
	line-height: 1.15;
	text-align: center;
}

.sofia-nom-site a,
.sofia-nom-site a:hover,
.sofia-nom-site a:focus {
	color: var(--sofia-blanc);
	text-decoration: none;
}

/* =======================================================================
   5. LE MENU HORIZONTAL
   Escal : ul#menu { font-size:1.2rem (14.4px); font-weight:bold;
   text-align:center; padding:10px 0 0 } ; li a { padding:4px 10px;
   margin:0 1px; border:1px solid #DFDFDF }. Les coins arrondis viennent
   de la personnalisation du site : elles etaient dans cssdyn-config, pas dans
   menu.css — ul#menu li a { border-radius: 10px }. Valeur EXACTE, plus
   d approximation. Si la pastille paraissait moins ronde que dans le SPIP,
   c est que la mienne etait plus GRANDE : Escal met padding 4px 10px, j avais
   mis 5px 14px. Un meme rayon sur une plus grande boite parait plus carre.
   ==================================================================== */
#sofia-menu {
	background-color: var(--sofia-bleu);
	padding-bottom: 8px;
}

.sofia-menu-liste,
.sofia-menu-liste ul { list-style: none; margin: 0; padding: 0; }

.sofia-menu-liste {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 2px;     /* l ecart vertical est porte par le padding du li */
	padding-top: 10px;
	font-size: 14.4px;
	font-weight: 700;
	text-align: center;
}

/* Le padding-bas fait partie de la zone de survol du <li> : il sert de pont
   vers le sous-menu, qui vient s y coller. Sans lui, le menu se referme des
   qu on quitte le texte. Escal fait pareil (ul#menu li{padding:0 0 5px 0}). */
.sofia-menu-liste > li { position: relative; padding-bottom: 5px; }

.sofia-menu-liste > li > a {
	display: block;
	padding: 4px 10px;   /* Escal, a la lettre */
	border: 1px solid var(--sofia-gris);
	border-radius: 10px; /* Escal, a la lettre */
	color: var(--sofia-blanc);
	text-decoration: none;
	white-space: nowrap;
	line-height: 1.35;
}

.sofia-menu-liste > li:hover > a,
.sofia-menu-liste > li:focus-within > a,
.sofia-menu-liste > li > a:hover,
.sofia-menu-liste > li > a:focus {
	background-color: var(--sofia-bleu-fonce);
	color: var(--sofia-blanc);
}

.sofia-chevron { font-size: 9px; margin-left: 3px; vertical-align: 2px; }

/* Chevron vers le bas au 1er niveau (le sous-menu tombe dessous), vers la
   droite ensuite (le niveau suivant s ouvre sur le cote). Comme dans le SPIP. */
.sofia-menu-liste ul a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.sofia-chevron-droite { flex: 0 0 auto; margin-left: 0; vertical-align: 0; }

/* Les niveaux deroulants : 1rem (12px), normal, aligne a gauche. */
.sofia-menu-liste ul {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 100;
	min-width: 240px;
	max-width: 430px;
	margin-top: 0;  /* colle au parent : aucun trou a franchir */
	background-color: var(--sofia-bleu);
	border: 1px solid var(--sofia-gris);
	border-radius: 0 0 8px 8px;
	box-shadow: 0 6px 14px rgba(0, 0, 0, .3);
	font-size: 12px;
	font-weight: 400;
	text-align: left;
	display: none;
}

.sofia-menu-liste li:hover > ul,
.sofia-menu-liste li:focus-within > ul { display: block; }

.sofia-menu-liste ul a {
	display: block;
	padding: 6px 12px;
	color: var(--sofia-blanc);
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, .2);
	line-height: 1.4;
}

.sofia-menu-liste ul li:last-child > a { border-bottom: 0; }

.sofia-menu-liste ul a:hover,
.sofia-menu-liste ul a:focus { background-color: var(--sofia-bleu-fonce); }

.sofia-menu-liste ul ul { top: 0; left: 100%; margin-top: 0; border-radius: 0 8px 8px 0; }

/* =======================================================================
   6. LA BARRE DE SERVICE : connexion a gauche, recherche a droite
   ==================================================================== */
#sofia-service { padding: 6px 0; }

.sofia-service-corps {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

/* Pictos repris tels quels d Escal (images/connexion.svg, images/loupe.svg),
   plutot que des caracteres approchants. Escal : fond a gauche, cadre 5px. */
.sofia-connexion {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px 4px 30px;
	border: 2px solid var(--sofia-bleu);
	border-radius: 5px;
	color: var(--sofia-bleu);
	font-weight: 700;
	text-decoration: none;
	background: url("images/connexion.svg") left 6px center no-repeat;
	background-size: 16px;
	min-height: 22px;
}

.sofia-connexion:hover, .sofia-connexion:focus {
	background-color: var(--sofia-bleu); color: var(--sofia-blanc);
}

.sofia-connexion-icone { display: none; }

.sofia-recherche { display: flex; align-items: center; gap: 4px; }

.sofia-recherche .sofia-loupe { display: none; }

.sofia-recherche input[type="search"] {
	border: 2px solid var(--sofia-bleu);
	border-radius: 5px;
	padding: 3px 8px 3px 28px;
	background: url("images/loupe.svg") left 5px center no-repeat;
	background-size: 18px;
	font-family: var(--sofia-police);
	font-size: 12px;
	color: var(--sofia-bleu);
	min-width: 210px;
}

.sofia-recherche button {
	border: 2px solid var(--sofia-bleu);
	border-radius: 5px;
	background: var(--sofia-gris-clair);
	color: var(--sofia-bleu);
	font-weight: 700;
	padding: 3px 9px;
	cursor: pointer;
	min-height: 0;
}

/* =======================================================================
   7. LES ONGLETS EN TETE DE COLONNE CENTRALE
   Escal : border-radius 5px 5px 0 0, actif en blanc, inactif en bleu clair.
   ==================================================================== */
.sofia-onglets-bandeau {
	max-width: var(--sofia-largeur);
	margin: 14px auto 0;
	padding-inline: 12px;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: 23% minmax(0, 1fr) 23%;
	gap: 0 1.5%;
}

.sofia-onglets {
	grid-column: 2;
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 4px;
	font-size: 13px;
	font-weight: 700;
}

.sofia-onglets a {
	display: block;
	padding: 7px 16px;
	border: 1px solid var(--sofia-bleu-clair);
	border-bottom: 0;
	border-radius: 8px 8px 0 0;
	background-color: var(--sofia-bleu-clair);
	color: var(--sofia-noir);
	text-decoration: none;
}

.sofia-onglets li.actif a {
	background-color: var(--sofia-blanc);
	border-color: var(--sofia-bleu);
	color: var(--sofia-bleu);
}

.sofia-onglets a:hover, .sofia-onglets a:focus { color: var(--sofia-lien-survol); }

/* =======================================================================
   8. LE GABARIT A TROIS COLONNES  (Escal : 23 % / 50 % / 23 %)
   ==================================================================== */
#main > div[class*="ct-container"],
.ct-container:has(> .sofia-colonne) {
	display: grid;
	grid-template-columns: 23% minmax(0, 1fr) 23%;
	gap: 0 1.5%;
	align-items: start;
	max-width: var(--sofia-largeur);
	margin-inline: auto;
	padding-inline: 12px;
	box-sizing: border-box;
}

#main > div[class*="ct-container"] > section,
#main > div[class*="ct-container"] > article,
.ct-container:has(> .sofia-colonne) > section { order: 2; min-width: 0; }

.sofia-colonne-gauche { order: 1; }
.sofia-colonne-droite { order: 3; }
.sofia-colonne { min-width: 0; }

/* =======================================================================
   9. LES CADRES LATERAUX
   Titre centre, gras, sur #82ADE2, sommet arrondi ; corps sur #DAE6F6.
   ==================================================================== */
/* Escal n arrondit PAS ces cadres uniformement : le titre n a que son coin
   haut-droit arrondi (20px) et le corps que son coin bas-gauche, en ellipse
   (10px de rayon horizontal pour 100px de vertical). Releve dans cssdyn-config
   le 27/08/2026 — impossible a deviner a l oeil.

   ECART VOULU depuis le 29/08/2026 (point 6 des reponses d Arnaud, 28/08) :
   « arrondi en haut a gauche comme a droite, angles droits en bas ». On quitte
   donc la dissymetrie d Escal, sur sa demande expresse. Meme rayon de 20px que
   l original, pour ne pas changer l allure du cadre en meme temps que sa forme. */
.sofia-colonne .cadre-couleur {
	margin-bottom: 18px;
}

.sofia-colonne h2.cadre {
	margin: 0;
	padding: 8px 10px;
	background-color: var(--sofia-bleu-clair);
	color: var(--sofia-noir);
	font-size: 13.2px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	border-radius: 20px 20px 0 0;   /* Arnaud, 28/08/2026 : symetrique en haut */
}

.sofia-colonne .texte {
	background-color: var(--sofia-bleu-pale);
	color: var(--sofia-noir);
	font-size: 13.2px;
	padding: 5px 5px 10px;       /* Escal, a la lettre */
	border-width: 0 1px 1px 1px; /* pas de bordure haute : le titre est au-dessus */
	border-style: solid;
	border-color: var(--sofia-bleu-clair);
	border-radius: 0;               /* Arnaud, 28/08/2026 : angles droits en bas */
}

.sofia-colonne .texte > :first-child { margin-top: 0; }
.sofia-colonne .texte > :last-child  { margin-bottom: 0; }

.sofia-colonne a { color: var(--sofia-lien); }
.sofia-colonne a:hover, .sofia-colonne a:focus { color: var(--sofia-lien-survol); }

/* Suivez-nous : intitule puis pastille centree dessous, comme le SPIP.
   Difference assumee avec le SPIP : chez lui seule l image est cliquable ;
   ici l intitule ET la pastille le sont. */
.sofia-reseaux { list-style: disc; margin: 0 0 4px; padding-left: 18px; }
.sofia-reseaux li { margin-bottom: 11px; }

.sofia-marque-nom { text-decoration: none; }
.sofia-marque-nom:hover, .sofia-marque-nom:focus { text-decoration: underline; }

.sofia-marque-icone {
	display: block;
	text-align: center;
	margin: 5px 0 0;
	line-height: 0;
}

.sofia-icone {
	display: inline-block;
	transition: transform .12s ease, filter .12s ease;
}

.sofia-marque-icone:hover .sofia-icone,
.sofia-marque-icone:focus .sofia-icone {
	transform: scale(1.09);
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .35));
}

.sofia-smiley { margin: 14px 0 10px; text-align: center; }
.sofia-smiley img { max-width: 100%; height: auto; }

.sofia-guide { margin: 12px 0; line-height: 1.45; }

/* Statistiques : intitule puis valeur en gras, indentee. */
.sofia-stats { list-style: none; margin: 0; padding: 0; }
.sofia-stats li { margin-bottom: 9px; line-height: 1.4; }
.sofia-stats strong { display: block; margin-left: 12px; }

/* Les breves */
.sofia-liste-breves { list-style: none; margin: 0; padding: 0; }
.sofia-liste-breves li {
	margin-bottom: 8px; padding-bottom: 8px;
	border-bottom: 1px dotted var(--sofia-bleu-clair); line-height: 1.4;
}
.sofia-liste-breves li:last-child { margin: 0; padding: 0; border: 0; }
.sofia-breve-date { display: block; font-size: 10px; color: #4a5a6a; }

/* Le cadre « Identification » a ete retire le 28/08/2026 : voir sidebar.php.
   Ses regles CSS sont parties avec lui plutot que de rester en dechet. */

/* =======================================================================
   10. LA COLONNE CENTRALE
   ==================================================================== */
#main .entries[data-layout="grid"] { grid-template-columns: minmax(0, 1fr) !important; gap: 12px; }

#main .entries .entry-card {
	background-color: var(--sofia-blanc);
	border: 1px solid var(--sofia-gris);
	border-radius: 0; box-shadow: none;
}

#main .entry-card .entry-title { font-size: 15px; line-height: 1.3; margin-bottom: 4px; }
#main .entry-card .entry-title a { color: var(--sofia-bleu); text-decoration: none; }
#main .entry-card .entry-title a:hover,
#main .entry-card .entry-title a:focus { color: var(--sofia-lien-survol); }
#main .entry-card .entry-meta { font-size: 11px; }

/* Sur l accueil seulement : Escal n y affiche pas de titre de page.
   Ailleurs (article, rubrique, page) le titre DOIT rester : Blocksy y loge le
   titre, la date et la rubrique de l article. */
body.home #main .page-title,
body.home #main .hero-section[data-type="type-1"] { display: none; }

#main .hero-section .page-title,
#main .hero-section .entry-title { color: var(--sofia-bleu); font-size: 22px; line-height: 1.25; }
#main .hero-section .entry-meta { font-size: 11px; }

/* =======================================================================
   10 bis. LES SOUS-RUBRIQUES, sur une page de rubrique
   Sans elles, une rubrique qui ne porte que des sous-rubriques est une
   impasse — et en affichage etroit, c est le seul chemin disponible.
   ==================================================================== */
.sofia-sous-rubriques {
	background-color: var(--sofia-blanc);
	border: 1px solid var(--sofia-gris);
	border-radius: 6px;
	padding: 10px 12px 12px;
	margin: 0 0 16px;
}

.sofia-sous-rubriques-titre {
	margin: 0 0 10px;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--sofia-gris);
	font-size: 14px;
	font-weight: 700;
	color: var(--sofia-bleu);
	text-align: left;
}

.sofia-sous-rubriques > ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 8px;
}

.sofia-sous-rubriques > ul > li {
	background-color: var(--sofia-bleu-pale);
	border: 1px solid var(--sofia-bleu-clair);
	border-radius: 5px;
	padding: 7px 9px;
	line-height: 1.35;
}

.sofia-sous-rubriques > ul > li > a {
	font-weight: 700;
	text-decoration: none;
	color: var(--sofia-lien);
}

.sofia-sous-rubriques > ul > li > a:hover,
.sofia-sous-rubriques > ul > li > a:focus { color: var(--sofia-lien-survol); }

.sofia-sous-sous {
	list-style: none;
	margin: 6px 0 0;
	padding: 0 0 0 10px;
	border-left: 2px solid var(--sofia-bleu-clair);
}

.sofia-sous-sous li { margin-top: 3px; font-size: 11px; }

.sofia-sous-compte {
	display: block;
	margin-top: 4px;
	font-size: 10px;
	color: #4a5a6a;
}

/* Quand on a liste les sous-rubriques, le « aucun resultat » de Blocksy (un
   message + un champ de recherche) fait doublon et donne l impression d une
   impasse. On le masque — mais seulement dans ce cas : sur une rubrique
   reellement vide, il reste utile.
   Repli : si :has() n est pas gere, le bloc reste affiche. Sans gravite. */
section.ct-no-results:has(.sofia-sous-rubriques) > .entry-header,
section.ct-no-results:has(.sofia-sous-rubriques) > .entry-content { display: none; }

/* =======================================================================
   11. LE PLAN DU SITE
   ==================================================================== */
.sofia-plan-rubrique {
	border: 1px solid var(--sofia-gris);
	border-radius: 6px;
	margin-bottom: 14px;
	padding: 10px 12px;
	background-color: var(--sofia-blanc);
}
.sofia-plan-rubrique h2 {
	margin: 0 0 8px; font-size: 15px; color: var(--sofia-bleu);
	border-bottom: 1px solid var(--sofia-gris); padding-bottom: 5px;
}
.sofia-plan-rubrique h2 a { color: var(--sofia-bleu); text-decoration: none; }
.sofia-plan-rubrique h2 a:hover { color: var(--sofia-lien-survol); }
.sofia-plan-compte { font-size: 11px; font-weight: 400; color: #5a6b7c; }
.sofia-plan-sous {
	list-style: none; margin: 0 0 8px; padding: 0;
	display: flex; flex-wrap: wrap; gap: 4px 6px;
}
.sofia-plan-sous li {
	background-color: var(--sofia-bleu-pale);
	border: 1px solid var(--sofia-bleu-clair);
	border-radius: 10px; padding: 2px 9px; font-size: 11px;
}
.sofia-plan-articles { list-style: none; margin: 0; padding: 0; }
.sofia-plan-articles li { padding: 3px 0; border-bottom: 1px dotted var(--sofia-gris); }
.sofia-plan-articles li:last-child { border: 0; }
.sofia-plan-date { font-size: 10px; color: #5a6b7c; margin-left: 6px; }

/* Le renvoi vers la rubrique, quand le plafond SOFIA_PLAN_MAX a mordu.
   Il ne porte ni date ni filet : c est un lien de navigation, pas un article,
   et il ne doit pas se lire comme le 101e titre de la liste. */
/* « Sur le Web » : le lien hypertexte de l article, sous le contenu. Escal le
   pose sous un titre de meme niveau que « Documents joints ». */
.sofia-sur-le-web { margin: 18px 0 0; }
.sofia-sur-le-web h3 {
	font-size: 14px; font-weight: 700; color: var(--sofia-bleu);
	margin: 0 0 4px; padding: 0;
}

.sofia-plan-reste { border: 0 !important; padding-top: 6px !important; }
.sofia-plan-reste a { font-style: italic; font-size: 11px; }

/* =======================================================================
   12. LE PIED DE PAGE
   ==================================================================== */
#sofia-pied {
	background-color: var(--sofia-bleu-pied);
	color: var(--sofia-noir);
	/* Aucune marge haute : sous Escal le bandeau du pied touche la zone de
	   texte. Le blanc et le bleu sont jointifs. */
	margin-top: 0;
}

#sofia-pied .sofia-largeur { padding-block: 16px; text-align: center; }
#sofia-pied p { margin: 0 0 6px; }
#sofia-pied .sofia-pied-liens { font-weight: 700; }
#sofia-pied a { color: var(--sofia-lien); text-decoration: none; }
#sofia-pied a:hover, #sofia-pied a:focus { color: var(--sofia-lien-survol); }

.sofia-rss {
	display: inline-block; margin-left: 10px; padding: 1px 7px;
	background-color: var(--sofia-orange); color: var(--sofia-blanc) !important;
	border-radius: 4px; font-size: 10px; vertical-align: 1px;
}

.sofia-pied-mention { font-size: 10px; color: #33475c; font-weight: 400; }

/* =======================================================================
   13. AFFICHAGE ETROIT
   ==================================================================== */
@media (max-width: 980px) {
	#main > div[class*="ct-container"],
	.ct-container:has(> .sofia-colonne),
	.sofia-onglets-bandeau { grid-template-columns: minmax(0, 1fr); }

	.sofia-onglets { grid-column: 1; }
	#main > div[class*="ct-container"] > section,
	#main > div[class*="ct-container"] > article { order: 1; }
	.sofia-colonne-gauche { order: 2; }
	.sofia-colonne-droite { order: 3; }

	.sofia-entete-corps { background: var(--sofia-bleu); flex-direction: column; }
	.sofia-logo { width: 100%; }
	.sofia-nom-site { font-size: 26px; padding: 14px 10px; }

	.sofia-menu-liste { font-size: 13px; }
	.sofia-menu-liste ul { display: none !important; }
	.sofia-menu-liste .sofia-chevron { display: none; }
	.sofia-menu-liste > li > a { white-space: normal; }
	.sofia-service-corps { justify-content: center; }
	.sofia-recherche input[type="search"] { min-width: 0; width: 160px; }
}

/* Titre de cadre lateral rendu cliquable : il doit rester un titre a l oeil. */
.sofia-colonne h2.cadre a {
	color: inherit;
	text-decoration: none;
}
.sofia-colonne h2.cadre a:hover,
.sofia-colonne h2.cadre a:focus {
	text-decoration: underline;
}

/* =====================================================================
   PHASE P3 — rendu des raccourcis SPIP convertis.
   Le convertisseur n emet que du HTML semantique ; tout l aspect est ici.
   ===================================================================== */

.spip-intertitre {
	color: var(--sofia-bleu);
	font-size: 15px;
	font-weight: 700;
	margin: 1.4em 0 .5em;
}

/* --- documents joints, images et videos ------------------------------ */
.spip-doc { margin: 1.2em auto; text-align: center; }
.spip-doc-center { clear: both; }
.spip-doc-left   { float: left;  margin: .3em 1.4em .8em 0; }
.spip-doc-right  { float: right; margin: .3em 0 .8em 1.4em; }
.spip-doc img,
.spip-doc video { max-width: 100%; height: auto; }
.spip-doc figcaption {
	font-size: 11px;
	font-style: italic;
	color: #444;
	margin-top: .35em;
	line-height: 1.35;
}

.spip-fichier .spip-lien-doc {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: .35em;
	text-decoration: none;
	max-width: 32em;
}
.spip-doc-titre { font-weight: 700; line-height: 1.35; }
.spip-doc-info  { display: block; font-size: 11px; color: #555; margin-top: .2em; }

/* Pictos repris tels quels du SPIP (plugin medias + Escal), apres controle
   qu aucun ne porte de script ni de gestionnaire d evenement. Cyril, 28/08 :
   « celle du SPIP est vraiment sympa » — la mienne, dessinee en masque CSS,
   etait moins bonne. On reprend l originale. */
.spip-icone {
	display: block;
	width: 64px;
	height: 64px;
	background: center/contain no-repeat url("images/vignettes/defaut.svg");
}
.spip-fichier-pdf  .spip-icone { background-image: url("images/vignettes/pdf.svg"); }
.spip-fichier-doc  .spip-icone { background-image: url("images/vignettes/doc.svg"); }
.spip-fichier-docx .spip-icone { background-image: url("images/vignettes/docx.svg"); }
.spip-fichier-rtf  .spip-icone { background-image: url("images/vignettes/rtf.svg"); }
.spip-fichier-xls  .spip-icone { background-image: url("images/vignettes/xls.svg"); }
.spip-fichier-xlsx .spip-icone { background-image: url("images/vignettes/xlsx.svg"); }
.spip-fichier-csv  .spip-icone { background-image: url("images/vignettes/csv.svg"); }
.spip-fichier-ppt  .spip-icone { background-image: url("images/vignettes/ppt.svg"); }
.spip-fichier-pptx .spip-icone { background-image: url("images/vignettes/pptx.svg"); }
.spip-fichier-zip  .spip-icone { background-image: url("images/vignettes/zip.svg"); }
.spip-fichier-rar  .spip-icone { background-image: url("images/vignettes/rar.svg"); }
.spip-fichier-mp3  .spip-icone { background-image: url("images/vignettes/mp3.svg"); }
.spip-fichier-mp4  .spip-icone { background-image: url("images/vignettes/mp4.svg"); }
.spip-fichier-mov  .spip-icone { background-image: url("images/vignettes/mov.svg"); }
.spip-fichier-avi  .spip-icone { background-image: url("images/vignettes/avi.svg"); }
.spip-fichier-flv  .spip-icone { background-image: url("images/vignettes/flv.svg"); }
.spip-fichier-wmv  .spip-icone { background-image: url("images/vignettes/wmv.svg"); }
.spip-fichier-html .spip-icone { background-image: url("images/vignettes/html.svg"); }
.spip-fichier-txt  .spip-icone { background-image: url("images/vignettes/txt.svg"); }

/* --- blocs ------------------------------------------------------------ */
.spip-quote {
	border-left: 4px solid var(--sofia-bleu-clair);
	background: #F4F8FD;
	margin: 1.2em 0;
	padding: .7em 1em;
	font-style: italic;
}
/* Encadres <info> et <aide>. Valeurs relevees dans Escal le 28/08/2026 :
   general.css pour la geometrie et les couleurs de fond, cssdyn-config pour les
   pictos. Le vert #cfc de <info> est la couleur du site, pas une invention. */
.spip-info,
.spip-aide,
.spip-important,
.spip-avertissement {
	display: block;
	border: none;
	border-radius: 20px;
	margin: 0 auto 2em;
	min-height: 40px;
	padding: 15px 20px 15px 60px;
	text-align: left;
	width: 70%;
	box-shadow: 10px 10px 5px #888888;
	color: #000;
	background-size: auto 32px;
	background-position: center left 20px;
	background-repeat: no-repeat;
}
.spip-info          { background-color: #cfc; background-image: url("images/info.svg"); }
.spip-aide          { background-color: #9cf; background-image: url("images/aide.svg"); }
.spip-important     { background-color: #fdd; background-image: url("images/important.svg"); }
.spip-avertissement { background-color: #ffc; background-image: url("images/avertissement.svg"); }

/* En colonne etroite, le 70 % d Escal devient illisible. */
@media (max-width: 900px) {
	.spip-info,
	.spip-aide,
	.spip-important,
	.spip-avertissement { width: auto; box-shadow: 5px 5px 4px #999; }
}

.spip-trait {
	border: 0;
	border-top: 1px solid var(--sofia-bleu-clair);
	margin: 1.6em 0;
}

.spip-liste { margin: .6em 0 .6em 1.4em; }
.spip-liste li { margin: .2em 0; }

/* Tableaux — valeurs d Escal, relevees le 28/08/2026 dans general.css et dans
   cssdyn-couleurs. Les trois couleurs de ligne ne sont PAS dans la feuille du
   squelette : elles sont generees, comme les arrondis du menu.

     en-tete  row_first  #82ADE2, texte noir, centre
     impaire  row_odd    #BBCCDD   (1re ligne de donnees, puis une sur deux)
     paire    row_even   #EFEFEF
     bordures            #ffffff — d ou l aspect « blocs separes » du SPIP

   Sans elles nos tableaux sortaient entierement blancs (Cyril, tableau 2 de
   l article 686). */
.spip-tableau {
	border-collapse: collapse;
	border: 1px solid #ffffff;
	margin: 5px auto 20px;      /* centre, comme Escal */
	width: 90%;
	font-size: 14.4px;          /* 1.2rem chez Escal */
}
.spip-tableau th,
.spip-tableau td {
	border: 1px solid #ffffff;
	padding: 5px;
	text-align: left;
	vertical-align: middle;
}
.spip-tableau .spip-row-first { background: var(--sofia-bleu-clair); color: var(--sofia-noir); text-align: center; }
.spip-tableau .spip-row-odd   { background: var(--sofia-bleu-pied);  color: var(--sofia-noir); }
.spip-tableau .spip-row-even  { background: var(--sofia-gris-clair); color: var(--sofia-noir); }
.spip-tableau th { font-weight: 700; }

/* Un tableau large ne doit pas pousser la page : il defile dans sa propre
   boite. Escal ne le fait pas — il n a pas de colonne centrale a 600 px. */
@media (max-width: 700px) {
	.spip-tableau { width: 100%; display: block; overflow-x: auto; }
}

/* --- notes de bas de page --------------------------------------------- */
.spip-note a { text-decoration: none; }
.spip-notes {
	border-top: 1px solid var(--sofia-bleu-clair);
	margin-top: 2em;
	padding-top: .6em;
	font-size: 11px;
}
.spip-notes h3 { font-size: 12px; margin: 0 0 .4em; }
.spip-retour { text-decoration: none; }

.spip-doc-absent { color: #a00; font-style: italic; }

/* =======================================================================
   14. LE BLOC « A LA UNE » DE LA PAGE D ACCUEIL

   Reproduit `styles/alaune.css` d Escal 5.5.22 et les valeurs generees dans
   `local/cache-css/cssdyn-*.css`, relevees le 28/08/2026. Deux d entre elles
   ne sont PAS dans la feuille du squelette et ne se devinent pas :

     .laune ul.anchors li { width: 40% }        -> cssdyn-config
     .laune ul.anchors li { border-radius: 5px } -> cssdyn-config

   C est la premiere qui produit la mise en DEUX COLONNES que Cyril demandait.

   Rappel de conversion : Escal pose html{font-size:75%}, donc 1 rem = 12 px.
   On ecrit ici les valeurs en pixels, comme partout ailleurs dans ce fichier.
   ======================================================================= */

.sofia-une {
	display: block;
	background-color: var(--sofia-bleu);
	color: var(--sofia-blanc);
	padding: 10px;
	overflow: hidden;             /* Escal : le cadre englobe les logos flottants */
	text-align: left;
}

.sofia-une a { color: var(--sofia-blanc); }
.sofia-une a:hover, .sofia-une a:focus { color: var(--sofia-lien-survol); }

/* --- l article en grand ------------------------------------------------ */
.sofia-une-bloc {
	margin-top: 10px;
	padding: 10px;
}
.sofia-une-bloc[hidden] { display: none; }

.sofia-une-logo { float: left; margin: 5px; line-height: 0; }
.sofia-une-logo-img { display: block; }

.sofia-une-titre {
	font-size: 24px;              /* 2rem chez Escal */
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 4px 60px;         /* la marge gauche degage le logo flottant */
}
.sofia-une-titre a { text-decoration: none; }
.sofia-une-titre a:hover, .sofia-une-titre a:focus { text-decoration: underline; }

.sofia-une-surtitre {
	font-size: 12px;
	text-transform: uppercase;
	opacity: .8;
}
.sofia-une-soustitre { font-size: 12px; opacity: .8; }

.sofia-une-auteur,
.sofia-une-date { font-size: 12px; margin-left: 60px; }

.sofia-majuscules { text-transform: uppercase; }

.sofia-une-descriptif {
	font-size: 16.8px;            /* 1.4rem */
	margin: 6px 5px 0 10px;
}

.sofia-une-texte {
	font-size: 14.4px;            /* 1.2rem */
	margin: 20px 20px 0 5px;
	text-align: justify;
	line-height: 1.5;
}

.sofia-une-suite {
	clear: both;
	font-size: 13.2px;            /* 1.1rem */
	text-align: right;
	padding: 5px;
}

/* --- la pastille de rubrique ------------------------------------------ */
.sofia-une-rubrique { float: right; }
.sofia-une-rubrique + * { clear: both; }

.sofia-une-rubrique a {
	display: inline-block;
	background-color: var(--sofia-bleu-clair);
	color: var(--sofia-noir);
	font-size: 12px;
	margin: 0 3px;
	padding: 1px 3px;
	border-radius: 3px;
	line-height: 1.6;
	text-decoration: none;
}
.sofia-une-rubrique a:hover,
.sofia-une-rubrique a:focus {
	background-color: var(--sofia-bleu-fonce);
	color: var(--sofia-blanc);
}

.sofia-flecherub { font-size: 11px; }

/* --- les dix vignettes, DEUX PAR RANGEE -------------------------------- */
.sofia-une-liste {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
	clear: both;
}

.sofia-une-vignette {
	width: 40%;                   /* la valeur d Escal : deux par rangee */
	flex-grow: 1;
	margin: 5px;
	padding: 10px;
	box-sizing: border-box;
	background-color: var(--sofia-bleu-pale);
	color: var(--sofia-noir);
	border-radius: 5px;
	overflow: hidden;
}
.sofia-une-vignette[hidden] { display: none; }

.sofia-une-vignette > a {
	display: block;
	color: var(--sofia-noir);
	text-decoration: none;
}

.sofia-une-vignette:hover,
.sofia-une-vignette:focus-within {
	background-color: var(--sofia-bleu-fonce);
}
.sofia-une-vignette:hover > a,
.sofia-une-vignette:focus-within > a { color: var(--sofia-blanc); }

.sofia-une-vignette .sofia-une-logo-img { float: left; margin-right: 10px; }

.sofia-une-vignette-titre {
	display: block;
	font-size: 13.2px;            /* 1.1rem */
	font-weight: 700;
	margin-left: 5px;
}
.sofia-une-vignette-date,
.sofia-une-vignette-auteur {
	display: block;
	font-size: 12px;
	margin-left: 10px;
}

/* Sous 700 px de large la rangee de deux devient une colonne : a 40 % de
   276 px une vignette n a plus la place d afficher son titre a cote du logo. */
@media screen and (max-width: 700px) {
	.sofia-une-vignette { width: 100%; margin: 5px 0; }
	.sofia-une-titre    { margin-left: 0; }
	.sofia-une-auteur,
	.sofia-une-date     { margin-left: 0; }
}

/* =======================================================================
   15. LES CADRES LATERAUX QUI SUIVENT LE GABARIT

   « Dans la meme rubrique » sur un article, « Les derniers articles » sur une
   page de rubrique : Escal change le contenu de la colonne de droite selon la
   page. Meme forme d entree que lui — titre lie, puis date et auteurs.
   ======================================================================= */

.sofia-titre-article-cadre {
	margin-top: 10px;
	font-weight: 700;
	line-height: 1.35;
}
.sofia-titre-article-cadre:first-child { margin-top: 0; }

.sofia-date-auteur-cadre {
	font-size: 10px;
	color: #4a5a6a;
	line-height: 1.4;
	margin-bottom: 8px;
	padding-bottom: 8px;
	border-bottom: 1px dotted var(--sofia-bleu-clair);
}
.sofia-colonne .texte > .sofia-date-auteur-cadre:last-child {
	margin-bottom: 0; padding-bottom: 0; border-bottom: 0;
}

/* Le cadre « Suivez-nous » est desormais monte depuis l article 644 : son
   contenu arrive avec le balisage de la conversion P3 (figures `spip-doc`,
   paragraphes) et non plus avec nos classes. On les habille ici pour que le
   rendu ne bouge pas d un pixel. */
.sofia-colonne .texte figure.spip-doc {
	margin: 14px 0 10px;
	text-align: center;
}
.sofia-colonne .texte figure.spip-doc img {
	max-width: 100%;
	height: auto;
}
.sofia-colonne .texte > p { margin: 12px 0; line-height: 1.45; }

/* =======================================================================
   16. TROIS FINITIONS DU CONTENU IMPORTE

   Trouvees en P4 le 28/08/2026 en comparant les classes que produit le
   convertisseur a celles que cette feuille couvrait : `spip-video`,
   `spip-audio` et `spip-lien-externe` n avaient aucune regle.
   ======================================================================= */

/* Une <video> sans regle prend 300x150 px et deborde de la colonne centrale.
   Escal pose exactement ces deux lignes (general.css, noisette inc-video).
   60 videos sont concernees. */
.spip-video video,
.spip-audio audio {
	max-width: 100%;
	height: auto;
}
.spip-video, .spip-audio { text-align: center; }

/* Lien sortant : Escal lui accole une fleche, `a.spip_out { padding-right:14px }`
   plus l image de fond posee dans cssdyn-config. Le picto est repris tel quel
   d Escal — c est une donnee, pas du code. */
.spip-lien-externe {
	background: transparent url('images/spip_out.svg') no-repeat right center;
	background-size: 10px;
	padding-right: 14px;
}

/* Sauf quand le lien ne porte qu une image : la fleche se collerait au bord de
   la vignette. Escal neutralise le fond sur `a.spip_out img` ; `:has()` permet
   de le faire sur le lien lui-meme, donc de reprendre aussi le padding. */
.spip-lien-externe:has(> figure),
.spip-lien-externe:has(> img) {
	background: none;
	padding-right: 0;
}

/* Le menu, le pied et les cadres portent leurs propres liens : la fleche n y a
   pas sa place, elle ne vaut que dans le corps d un article. */
#sofia-menu .spip-lien-externe,
#sofia-pied .spip-lien-externe,
.sofia-colonne .spip-lien-externe {
	background: none;
	padding-right: 0;
}

/* =======================================================================
   17. LE MOBILIER DE LA PAGE D ARTICLE

   Date de dernière modification et barre d outils, relevées sur le SPIP le
   28/08/2026 : imprimante à gauche, deux « A » à droite, pictos en 32 px
   (`tailleoutilsarticle` d Escal). Marges reprises de son `#outils-article`.
   ======================================================================= */

/* Blocksy pose 40 px sous le bloc de titre :
   `.hero-section[data-type=type-1] { margin-bottom: var(--margin-bottom, 40px) }`.
   Sur un article, la date de modification et la barre d outils se retrouvaient
   donc separees du titre par deux interlignes (Cyril, 28/08/2026). On agit sur
   la variable de Blocksy plutot qu avec une marge negative : c est sa propre
   commande, et rien ne casse si la valeur par defaut change un jour. Escal,
   lui, colle la barre au cadre de titre. */
body.single .hero-section[data-type="type-1"] { --margin-bottom: 8px; }

.sofia-date-modif {
	margin: 0 0 10px;
	font-size: 11px;
	color: #4a5a6a;
}

.sofia-outils-article {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 0 20px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--sofia-gris);
}

.sofia-tailles { display: flex; }

.sofia-outil {
	background: none;
	border: 0;
	padding: 0;
	margin: 0 8px 5px 8px;
	line-height: 0;
	cursor: pointer;
	border-radius: 5px;
}
.sofia-outil:first-child { margin-left: 0; }
.sofia-tailles .sofia-outil:last-child { margin-right: 0; }

.sofia-outil img { display: block; width: 32px; height: auto; }

.sofia-outil:hover img,
.sofia-outil:focus-visible img { filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .4)); }

/* En butée, le bouton s éteint. Escal ouvre une boîte « Stop ! Ceci est la
   taille maximum » — on préfère ne pas pouvoir cliquer. */
.sofia-outil[disabled] { cursor: default; opacity: .3; }
.sofia-outil[disabled]:hover img { filter: none; }

/* --- impression -------------------------------------------------------
   Escal n a qu une règle d impression (masquer les vignettes de l accueil) et
   imprime donc le bandeau, le menu et les deux colonnes avec l article. Écart
   assumé : on n imprime que le texte. */
@media print {
	#sofia-acces, #sofia-entete, #sofia-menu, #sofia-service, #sofia-pied,
	.sofia-onglets-bandeau, .sofia-colonne, .sofia-outils-article,
	.ct-breadcrumbs, #scroll-top {
		display: none !important;
	}
	html body { background: #fff; }
	#main > div[class*="ct-container"] { display: block; max-width: 100%; }
	.entry-content a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 10px; }
}

/* =======================================================================
   22. LE TEXTE DE RUBRIQUE, ET SA VIGNETTE

   Escal rend `#TEXTE` de la rubrique dans `#texte-rubrique`, juste sous le
   titre, et c est la que se trouvent les vignettes qu Arnaud reclamait
   (point 15). La figure y flotte a droite : le bloc doit donc se refermer sur
   son flottant, sinon la liste « Dans cette rubrique » remonte a cote.
   ==================================================================== */
.sofia-texte-rubrique {
	margin: 0 0 18px;
	font-size: 12px;
	line-height: 1.5;
	overflow: hidden;   /* referme le bloc sur la figure flottante */
}

.sofia-texte-rubrique > :first-child { margin-top: 0; }
.sofia-texte-rubrique > :last-child  { margin-bottom: 0; }

/* La vignette de rubrique est petite (24 a 400 px) et souvent decorative :
   elle ne prend pas de legende, et elle ne doit pas ecraser le texte. */
.sofia-texte-rubrique figure.spip-doc {
	margin: 0 0 8px 14px;
	max-width: 45%;
}
.sofia-texte-rubrique figure.spip-doc img { max-width: 100%; height: auto; }

/* =======================================================================
   23. LE FORMULAIRE « ECRIRE / REAGIR »

   Champs bordes 2px, rayon 5px : ce sont les valeurs d Escal pour son champ
   de recherche et son bouton de connexion, relevees dans cssdyn-config le
   27/08/2026. Le formulaire ne detonne donc pas dans la page.
   ==================================================================== */
.sofia-contact {
	margin: 0 0 22px;
	padding: 14px 16px 6px;
	background-color: var(--sofia-bleu-pale);
	border: 1px solid var(--sofia-bleu-clair);
	border-radius: 20px 20px 0 0;   /* meme forme que les cadres lateraux */
}

.sofia-contact-titre {
	margin: 0 0 10px;
	font-size: 15px;
	font-weight: 700;
	color: var(--sofia-bleu);
}

.sofia-contact-champ { margin: 0 0 12px; }

.sofia-contact-champ label {
	display: block;
	font-weight: 700;
	font-size: 12px;
	margin-bottom: 3px;
}

.sofia-contact-champ input,
.sofia-contact-champ textarea {
	width: 100%;
	box-sizing: border-box;
	font-family: inherit;
	font-size: 12px;
	padding: 5px 7px;
	border: 2px solid var(--sofia-bleu-clair);
	border-radius: 5px;
	background-color: #fff;
	color: var(--sofia-noir);
}

.sofia-contact-champ input:focus,
.sofia-contact-champ textarea:focus {
	outline: 2px solid var(--sofia-bleu);
	outline-offset: 1px;
	border-color: var(--sofia-bleu);
}

.sofia-contact-champ.en-erreur input,
.sofia-contact-champ.en-erreur textarea { border-color: #C0392B; }

.sofia-contact-requis { color: #C0392B; }

.sofia-contact-aide {
	display: block;
	font-size: 11px;
	font-style: italic;
	color: #444;
	margin-top: 2px;
}

.sofia-contact-erreur {
	display: block;
	font-size: 11.5px;
	font-weight: 700;
	color: #C0392B;
	margin-top: 3px;
}

.sofia-contact-erreur-generale {
	margin: 0 0 12px;
	padding: 8px 10px;
	background-color: #FDEDEC;
	border-left: 4px solid #C0392B;
	font-size: 12px;
}

.sofia-contact-envoi { margin: 0 0 10px; }

.sofia-contact-envoi button {
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	color: #fff;
	background-color: var(--sofia-bleu);
	border: 2px solid var(--sofia-bleu-fonce);
	border-radius: 5px;
	padding: 6px 20px;
	cursor: pointer;
}

.sofia-contact-envoi button:hover,
.sofia-contact-envoi button:focus { background-color: var(--sofia-bleu-fonce); }

.sofia-contact-mention {
	display: block;
	font-size: 11px;
	color: #444;
	margin-top: 6px;
	line-height: 1.4;
}

/* Le piege a miel. Sorti de l ecran plutot que `display:none` : certains
   robots ignorent les champs explicitement masques, aucun ne calcule une
   position. Il reste hors du parcours clavier par son `tabindex="-1"`. */
.sofia-contact-miel {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.sofia-contact-envoye {
	margin: 0 0 22px;
	padding: 12px 16px;
	background-color: #E8F5E9;
	border-left: 4px solid #2E7D32;
	font-size: 12.5px;
}

.sofia-contact-envoye p { margin: 0 0 6px; }
.sofia-contact-envoye p:last-child { margin-bottom: 0; }

/* =======================================================================
   24. LE PORTFOLIO D UN ARTICLE

   Escal sort en bas d article un `<aside id="documents_portfolio">` intitule
   « Fichiers à télécharger : », qui liste les documents attaches mais jamais
   cites dans le texte. 232 contenus publies en portent, pour 968 documents.

   Deux ecarts assumes avec Escal, tous deux au benefice du lecteur : sa
   vignette vient du CACHE de SPIP (`local/cache-vignettes/`), la notre du
   fichier reel dans `IMG/` ; et sa liste est une suite de `<div>` separes par
   des `<hr>`, la notre une vraie liste, qui s annonce aux lecteurs d ecran.
   ==================================================================== */
.sofia-portfolio {
	clear: both;
	margin: 26px 0 10px;
	padding: 12px 14px 6px;
	background-color: var(--sofia-bleu-pale);
	border: 1px solid var(--sofia-bleu-clair);
	border-radius: 20px 20px 0 0;
}

.sofia-portfolio-titre {
	margin: 0 0 10px;
	font-size: 13.2px;
	font-weight: 700;
	color: var(--sofia-bleu);
}

.sofia-portfolio-liste {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 14px;
}

.sofia-doc {
	display: flex;
	align-items: center;
	gap: 8px;
	background-color: #fff;
	border: 1px solid var(--sofia-gris);
	border-radius: 5px;
	padding: 6px 9px;
	max-width: 100%;
	box-sizing: border-box;
}

.sofia-doc-lien { flex: 0 0 auto; display: block; line-height: 0; }
.sofia-doc-lien img { display: block; max-width: 100%; height: auto; border-radius: 3px; }

.sofia-doc-texte { min-width: 0; }

.sofia-doc-titre {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: var(--sofia-lien);
	overflow-wrap: anywhere;
}
.sofia-doc-titre:hover, .sofia-doc-titre:focus { color: var(--sofia-lien-survol); }

.sofia-doc-info { display: block; font-size: 11px; color: #555; margin-top: 2px; }

/* Un document non-image montre la vignette de son type de fichier, celle
   d Escal, deja reprise dans images/vignettes/. */
.sofia-doc .spip-icone { width: 34px; height: 34px; display: block; }

@media (max-width: 900px) {
	.sofia-portfolio-liste { gap: 8px; }
	.sofia-doc { width: 100%; }
}

/* =======================================================================
   25. LE DESCRIPTIF D UN DOCUMENT

   SPIP affiche sous le titre d un document son `descriptif`, dans un
   `<div class='spip_doc_descriptif'>`. Nous ne le rendions pas : **743
   documents en portent un**, 294 signes en moyenne, et c est le harnais P5 qui
   l a trouve en comparant le vocabulaire de nos pages a celui de la production.
   ==================================================================== */
.spip-doc figcaption .spip-doc-titre {
	font-weight: 700;
	font-style: normal;
	color: var(--sofia-noir);
}

.spip-doc-descriptif {
	font-size: 11.5px;
	font-style: normal;
	line-height: 1.45;
	color: #333;
	margin-top: .35em;
	/* `inherit` et non `left` : dans une figure, la legende doit suivre
	   l alignement de la figure — centre, comme chez Escal. Signale par Cyril
	   le 29/08/2026 sous l image du poing gante (« Pense pas bete »), alignee
	   a gauche chez nous et centree sur le site actuel. La cause etait cette
	   regle-ci, ecrite pour le portfolio et qui debordait sur les figures. */
	text-align: inherit;
}

.spip-doc-descriptif ul.spip-liste { margin: .3em 0 .3em 1.1em; padding: 0; }
.spip-doc-descriptif li { margin: 0; }

/* Dans le portfolio, en revanche, le descriptif reste aligne a gauche : c est
   une fiche de fichier, pas une legende d image. */
.sofia-doc .spip-doc-descriptif { margin-top: .3em; max-width: 46ch; text-align: left; }

/* Le menu du destinataire : même habillage que les autres champs. */
.sofia-contact-champ select {
	width: 100%;
	box-sizing: border-box;
	font-family: inherit;
	font-size: 12px;
	padding: 5px 7px;
	border: 2px solid var(--sofia-bleu-clair);
	border-radius: 5px;
	background-color: #fff;
	color: var(--sofia-noir);
}
.sofia-contact-champ select:focus {
	outline: 2px solid var(--sofia-bleu);
	outline-offset: 1px;
	border-color: var(--sofia-bleu);
}
.sofia-contact-champ.en-erreur select { border-color: #C0392B; }

/* Pastille de marque glissée dans un lien du texte (bas de la page Contact). */
.sofia-lien-marque { display: inline-flex; align-items: center; gap: .4em; }
.sofia-lien-marque-picto { display: inline-flex; flex: 0 0 auto; line-height: 0; vertical-align: middle; }
.sofia-lien-marque-picto svg { display: block; }

/* =======================================================================
   26. LA FLECHE « RETOUR EN HAUT »

   Escal la pose en bas a droite des pages longues : `#scrollHaut`, un cercle
   #369 de 40 px avec un chevron blanc, `position: fixed`, `opacity: .6`.
   Signale par Arnaud le 29/08/2026 — elle manquait, et pas seulement sur
   l article 684 : sur toutes les pages longues du site.

   Trois ecarts assumes, tous en faveur du lecteur :
   - Escal la garde hors de l ecran (`right: -100px`) et l y ramene en jQuery ;
     ici c est une transition CSS, sans dependance ;
   - elle n apparait qu apres 400 px de defilement, plutot que d occuper le coin
     en permanence ;
   - c est un vrai lien d ancre : il fonctionne sans JavaScript.
   ==================================================================== */
.sofia-haut-de-page {
	position: fixed;
	right: 22px;
	bottom: 50px;
	z-index: 100;
	display: block;
	width: 40px;
	height: 40px;
	line-height: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .22s ease, transform .22s ease, visibility .22s;
}

.sofia-haut-de-page.visible { opacity: .6; visibility: visible; transform: none; }
.sofia-haut-de-page:hover, .sofia-haut-de-page:focus-visible { opacity: 1; }
.sofia-haut-de-page:focus-visible { outline: 3px solid var(--sofia-bleu); outline-offset: 3px; border-radius: 50%; }
.sofia-haut-de-page svg { display: block; width: 40px; height: 40px; }

@media (prefers-reduced-motion: reduce) {
	.sofia-haut-de-page { transition: none; transform: none; }
}

/* Sans JavaScript, le lien reste utile : on le montre en permanence. */
.no-js .sofia-haut-de-page { opacity: .6; visibility: visible; transform: none; }

@media (max-width: 900px) {
	.sofia-haut-de-page { right: 12px; bottom: 18px; }
}

@media print { .sofia-haut-de-page { display: none; } }
