/* ==========================================================================
   ESPACE MEMBRE — feuille de style unique (refonte 21.07.2026)

   Source de vérité de TOUS les styles de l'espace membre, auparavant
   éparpillés en blocs <style> dans les fichiers PHP :
     §1  Liens texte (aspect unifié)          — nouveau (unification 21.07)
     §2  Connexion & demande de compte        — ex ascobroye_connexion_css()
                                                (inc/espace-membre/connexion.php)
     §3  Formulaires membres                  — ex attributs style="" de
                                                profil.php + soumettre-document.php
     §4  Pages protégées : layout, bande de
         titre, recherche, résultats, listes  — ex wp_head de menu-membre.php
     §5  Navigation membre, barre mobile,
         panneau latéral                      — ex wp_head de menu-membre.php
     §6  Cartes du tableau de bord            — ex ascobroye_composants_css()
                                                (plugin ascobroye-documents)

   Chargée par inc/enqueue.php UNIQUEMENT :
   - pour tout visiteur connecté (layout membre + barre mobile sur tout le site) ;
   - pour les anonymes sur /connexion/ et /demande-de-compte/.
   Les emails (magic-login.php) gardent leurs styles inline — obligatoire.
   ========================================================================== */


/* ==========================================================================
   §1 — LIENS TEXTE : aspect unique de l'espace membre
   Bleu text-link, pas de soulignement natif, filet fin 1px (currentColor),
   passage au noir au survol. La taille et la graisse héritent du contexte.
   ========================================================================== */

.acb-lien,
.acb-connexion-bascule a,
.acb-connexion-demande a,
.acb-connexion-erreur a,
.acb-connexion-renvoyer a,
.acb-connexion .message a,
.acb-soumettre a,
.acb-membre-contenu p a:not(.acb-resultat-type):not(.acb-badge):not(.btn-rollup):not(.acb-resultats-fermer):not(.text-link),
.acb-liste-ressources a,
.ascobroye-fichiers a,
.acb-liste-newsletters a,
.acb-membre-contenu a:not([class]) {
	font-family: 'Koblenz Pro', sans-serif;
	color: var(--e-global-color-v4-text-link, #0077A3);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 1px;
	background: none;
	-webkit-text-fill-color: currentColor;
	transition: color .2s ease;
}
.acb-lien:hover,
.acb-connexion-bascule a:hover,
.acb-connexion-demande a:hover,
.acb-connexion-erreur a:hover,
.acb-connexion-renvoyer a:hover,
.acb-connexion .message a:hover,
.acb-soumettre a:hover,
.acb-membre-contenu p a:not(.acb-resultat-type):not(.acb-badge):not(.btn-rollup):not(.acb-resultats-fermer):not(.text-link):hover,
.acb-liste-ressources a:hover,
.ascobroye-fichiers a:hover,
.acb-liste-newsletters a:hover,
.acb-membre-contenu a:not([class]):hover {
	color: #1A1A1A;
}

/* CTA tertiaires (« Voir tout… » des cartes) : la classe KIT .text-link est
   posée telle quelle dans le markup — noir, gras, souligné, bleu au survol.
   Aucun style ici : le « socle des classes lien » (section 8 du plugin
   ascobroye-documents, wp_head) garantit déjà .text-link sur toutes les
   pages, même sans le CSS Elementor du document. Seule règle nous concernant :
   l'exclusion :not(.text-link) dans les sélecteurs ci-dessus. */

.acb-centre { text-align: center; }


/* ==========================================================================
   §2 — CONNEXION & DEMANDE DE COMPTE
   (carte, panneaux, champs, messages, boutons — mêmes classes pour les deux)
   ========================================================================== */

.acb-connexion { max-width: 520px; margin: 40px auto 80px; }
/* La carte de demande de compte est plus large (formulaire à deux colonnes) */
.acb-connexion.acb-demande { max-width: 640px; }
/* Panneaux de connexion : tout est centré (titre, intro, champ, bouton, liens) */
.acb-connexion-panneau { text-align: center; }
.acb-connexion-panneau label { text-align: center; }
/* Prénom + nom côte à côte sur la demande de compte */
.acb-demande-ligne { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
/* Le titre de page du thème ne s'affiche pas au-dessus des cartes (connexion,
   demande) ni sur les pages membres (remplacé par la bande de titre sombre).
   Scopé par classes body (protection.php) : la feuille charge sur TOUT le
   site pour un visiteur connecté — sans scope, les titres du site public
   disparaissaient (vécu 21.07). */
.acb-page-connexion .page-header,
.acb-page-membre .page-header { display: none; }
.acb-connexion-carte {
	/* fond bleu clair (retour Janine 22.07) — les encarts .message passent
	   en blanc pour garder le contraste (voir plus bas) */
	background: var(--e-global-color-v4-surface-blue-light-, #F0F2F7);
	border: 1px solid #EFEFED;
	/* même langage que les boxes du tableau de bord : 2px deco-blue, radius-ml */
	border-top: 2px solid var(--deco-blue, #009BD0);
	border-radius: var(--radius-ml, 3px);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
	padding: 36px 32px 28px;
}
.acb-connexion-titre {
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	color: #1A1A1A;
	margin: 0 0 12px;
}
.acb-connexion-intro {
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 15px;
	line-height: 1.55;
	color: #4A4A4A;
	margin: 0 0 20px;
	text-wrap: balance;
}
/* Lien "renvoyer" proposé quelques secondes après l'envoi du lien magique */
.acb-connexion-renvoyer {
	text-align: center;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 14px;
	color: #4A4A4A;
	margin: 16px 0 0;
	animation: acb-renvoyer-apparition .6s ease-out;
}
@keyframes acb-renvoyer-apparition { from { opacity: 0; } }
/* Champs et labels : mêmes styles que le formulaire de contact du site public
   (labels Koblenz capitales, champs blancs bordure discrète radius 2px) */
.acb-connexion label {
	display: inline-block;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4em;
	text-transform: uppercase;
	color: #4A4A4A;
	margin: 0;
	padding: 0 0 12px;
}
.acb-connexion input[type="text"],
.acb-connexion input[type="email"],
.acb-connexion input[type="password"],
.acb-connexion select,
.acb-connexion textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	min-height: 40px;
	padding: .5rem 1rem;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5em;
	color: #4A4A4A;
	background: #FFFFFF;
	/* langage champ unifié du site (retour Janine 22.07) : bordure 2px #4A4A4A,
	   radius-sm — identique aux formulaires membres (.acb-form) et au contact */
	border: 2px solid #4A4A4A;
	border-radius: var(--radius-sm, 2px);
	transition: all 300ms;
	margin: 0 0 16px;
}
.acb-connexion ::placeholder { color: inherit; opacity: .6; font-family: inherit; }
.acb-connexion textarea { min-height: 120px; resize: vertical; }
/* Flèche custom décollée du bord (la native reste toujours collée) */
.acb-connexion select {
	cursor: pointer; padding-inline-end: 36px;
	appearance: none; -webkit-appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%231A1A1A'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 10px 6px;
}
.acb-connexion input[type="text"]:focus,
.acb-connexion input[type="email"]:focus,
.acb-connexion input[type="password"]:focus,
.acb-connexion select:focus,
.acb-connexion textarea:focus {
	outline: 0;
	border-color: var(--deco-blue, #009BD0);
}
/* Le plugin Magic Login impose ses écarts via l'ID : on réaligne */
.acb-connexion #magic-login-shortcode { width: auto; }
.acb-connexion #magic-login-shortcode label { margin: 0; }
.acb-connexion #magic-login-shortcode .magic-login-submit { margin: 16px 0 0; }
/* Confirmation / info Magic Login — carte blanche sur le fond bleu clair
   de .acb-connexion-carte (retour Janine 22.07), filet deco-blue, radius 3 */
.acb-connexion #magic-login-shortcode .message,
.acb-connexion .magic-login-form-header .message {
	display: block;
	background: #FFFFFF;
	border: 0;
	border-left: 2px solid var(--e-global-color-v4-deco-blue, #009BD0);
	border-radius: 3px; /* = radius-ml */
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, .05);
	padding: 20px 16px;
	margin: 0 0 16px;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 15px;
	line-height: 1.55;
	color: #4A4A4A;
}
/* Déclinaison erreur : mêmes codes de carte, accents état erreur (guide §13) */
.acb-connexion #magic-login-shortcode #login_error,
.acb-connexion #login_error {
	display: block;
	background: #FDF3F2;
	border: 0;
	border-top: 2px solid #C0392B;
	border-radius: 3px;
	box-shadow: 0 0 10px 0 #FDF3F2;
	padding: 20px 16px;
	margin: 0 0 16px;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 15px;
	line-height: 1.55;
	color: #C0392B;
}
.acb-connexion .login-remember {
	margin: 0 0 16px;
}
.acb-connexion .login-remember label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 400;
	text-transform: none;
	margin: 0;
	padding: 0;
}
/* Bouton — même langage que les boutons du site (sombre, capitales).
   Les submit sont des <button> (rolling text .btn-rollup) ; on garde le
   sélecteur input en secours si un formulaire n'est pas converti. */
.acb-connexion input[type="submit"],
.acb-connexion button[type="submit"] {
	display: block;
	width: 100%;
	min-height: 40px;
	padding: 12px 24px;
	background: #4A4A4A;
	color: #FFFFFF;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	border: 0;
	border-radius: 2px;
	cursor: pointer;
	transition: all .3s;
}
.acb-connexion input[type="submit"]:hover,
.acb-connexion input[type="submit"]:focus,
.acb-connexion input[type="submit"]:active,
.acb-connexion button[type="submit"]:hover,
.acb-connexion button[type="submit"]:focus,
.acb-connexion button[type="submit"]:active {
	background: #1A1A1A !important;
	color: #FFFFFF !important;
	box-shadow: 0 0 0 4px #F0F2F7;
}
/* Le rolling text est en flex : on centre le libellé dans le bouton pleine largeur */
.acb-connexion button[type="submit"].btn-rollup .btn-roll { width: 100%; justify-content: center; }
/* Neutralise la mise en forme embarquée du plugin Magic Login */
.acb-connexion #magic-login-shortcode { max-width: none; margin: 0 auto; padding: 0; background: none; border: 0; box-shadow: none; }
.acb-connexion #magic-login-shortcode form { margin: 0; }
.acb-connexion .magic-login-form-header { margin: 0; }
.acb-connexion .magic-login-form-header .message {
	text-align: left;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 15px;
	line-height: 1.55;
	color: #1A1A1A;
	background: #FFFFFF; /* blanc sur la carte bleu clair (retour Janine 22.07) */
	border-left: 3px solid var(--e-global-color-v4-text-link, #0077A3);
	padding: 14px 16px;
	margin: 0 0 20px;
}
.acb-connexion #login_error,
.acb-connexion-erreur {
	text-align: left;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 15px;
	line-height: 1.55;
	color: #1A1A1A;
	background: #FDF3F2;
	border-left: 3px solid #C0392B;
	border-radius: 0 4px 4px 0;
	padding: 14px 16px;
	margin: 0 0 20px;
}
/* Liens de bascule et lien de demande de compte (l'aspect des <a> vient du §1) */
.acb-connexion-bascule {
	text-align: center;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 14px;
	margin: 20px 0 0;
}
.acb-connexion-demande {
	text-align: center;
	text-wrap: balance;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 14px;
	color: #4A4A4A;
	margin: 20px 0 0;
}
/* Honeypot de la demande de compte : invisible pour les humains */
.acb-piege {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px; overflow: hidden;
}
@media (max-width: 480px) {
	.acb-connexion-carte { padding: 28px 20px 24px; }
	.acb-demande-ligne { grid-template-columns: 1fr; }
}


/* ==========================================================================
   §3 — FORMULAIRES MEMBRES (profil, soumission de document)
   Mêmes langages de champs que la connexion, en colonne gauche.
   ========================================================================== */

.acb-form { }
.acb-form.acb-profil { max-width: 480px; }
.acb-form.acb-form-soumettre { max-width: 560px; }
/* langage champ du site (retour Charlotte 17.07) : bordure 2px, halo noir, radius-sm */
.acb-form label {
	display: inline-block;
	margin: 16px 0 0;
	padding: 0 0 12px;
	font-family: 'Koblenz Pro', sans-serif;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.4em;
	text-transform: uppercase;
	color: #4A4A4A;
}
.acb-form input[type="text"],
.acb-form input[type="email"],
.acb-form input[type="password"],
.acb-form select,
.acb-form textarea {
	display: block;
	width: 100%;
	min-height: 40px;
	padding: .5rem 1rem;
	border: 2px solid #4A4A4A;
	border-radius: var(--radius-sm, 2px);
	box-sizing: border-box;
	background: #FFFFFF;
	color: #4A4A4A;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 16px;
	line-height: 1.5em;
	transition: all 300ms;
}
/* select : de la place à droite pour la flèche (chevron custom : §4) */
.acb-form select { padding: .5rem 36px .5rem 1rem; cursor: pointer; }
.acb-form input:focus,
.acb-form select:focus,
.acb-form textarea:focus { outline: 0; border-color: var(--deco-blue, #009BD0) !important; }
/* Champs en lecture seule (identifiant, commune) */
.acb-form input:disabled {
	border-color: #B0B0B0;
	background: #F7F7F5;
	color: #6E6E6E;
}
/* Notes grises sous les champs */
.acb-note { margin: 4px 0 0; font-size: 13px; color: #6E6E6E; line-height: 1.5; }
.acb-note-haut { margin-top: 8px; }
/* Bloc « changer de mot de passe » du profil */
.acb-form fieldset {
	margin: 24px 0 0;
	padding: 16px;
	border: 1px solid #EFEFED;
	border-radius: 2px;
}
.acb-form legend {
	padding: 0 8px;
	font-family: 'Koblenz Pro', sans-serif;
	font-weight: 700;
	font-size: 14px;
	text-transform: uppercase;
	color: #4A4A4A;
}
.acb-form legend .acb-facultatif { font-weight: 400; color: #6E6E6E; text-transform: none; }
/* Envoi : même bouton sombre que la connexion (rolling text .btn-rollup) */
.acb-form button[type="submit"] {
	margin-top: 24px;
	min-height: 40px;
	padding: 12px 24px;
	background: #4A4A4A;
	color: #FFFFFF;
	border: 0;
	border-radius: 2px;
	cursor: pointer;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	transition: all .3s;
}
.acb-form button[type="submit"]:hover,
.acb-form button[type="submit"]:focus,
.acb-form button[type="submit"]:active {
	background: #1A1A1A;
	color: #FFFFFF;
	box-shadow: 0 0 0 4px #F0F2F7;
}
/* Messages d'état (patron PRG) — états canon du guide §13 */
.acb-message-ok {
	padding: 12px 16px;
	background: #E9F4DE;
	border-left: 3px solid #78BB42;
	border-radius: var(--radius-sm, 2px);
}
.acb-message-erreur {
	padding: 12px 16px;
	background: #FDF3F2;
	border-left: 3px solid #C0392B;
	border-radius: var(--radius-sm, 2px);
}
/* Dépôt de fichiers (soumettre un document) */
.acb-form input[type="file"] {
	display: block;
	width: 100%;
	padding: .5rem;
	border: 2px dashed #4A4A4A; /* même gris que les autres champs (22.07) */
	border-radius: var(--radius-sm, 2px);
	box-sizing: border-box;
	background: #FFFFFF;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 14px;
	transition: all 300ms;
}
.acb-fichiers-choisis { list-style: none; margin: 8px 0 0; padding: 0; }
.acb-fichier-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 6px 12px;
	margin-top: 4px;
	border: 1px solid #EFEFED;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 14px;
	color: #4A4A4A;
}
.acb-fichier-retirer {
	background: none;
	border: 0;
	cursor: pointer;
	color: #C0392B;
	font-size: 14px;
	padding: 2px 6px;
	line-height: 1;
}
/* Astuce « fichier trop lourd » (compresseur / SwissTransfer) */
.acb-astuce-poids {
	margin: 10px 0 0;
	padding: 12px 16px;
	background: #FDF4E7;
	border-left: 3px solid #E67E22;
	font-family: 'Koblenz Pro', sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #1A1A1A;
}


/* ==========================================================================
   §4 — PAGES PROTÉGÉES : layout, bande de titre, recherche, résultats,
        sections, listes de ressources
   (émis uniquement pour un membre connecté sur une page protégée — le
   sélecteur .acb-membre-layout n'existe que là, aucune fuite possible)
   ========================================================================== */

/* Cadre uniforme de l'espace membre : pleine largeur, aligné sur le
   header/footer, identique quel que soit le gabarit (thème ou Elementor).
   Même technique de débord que la carte des communes du site public. */
:root { --acb-marge: clamp(20px, 6vw, 150px); }

.acb-membre-layout {
	display:flex; gap:48px; align-items:stretch;
	position:relative; left:50%; margin-left:-50vw; width:100vw;
	padding:28px var(--acb-marge);
	box-sizing:border-box;
	/* respiration avant le footer — desktop uniquement, remis à 0 ≤1024px */
}
.acb-membre-contenu { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; padding-bottom: 72px; }
.acb-membre-contenu > * { width:100%; }
.acb-membre-contenu > :first-child { margin-top:0; }
/* L'encart "soumettre / avis" reste collé au bas de la colonne,
   même quand le contenu de la page est court */
.acb-soumettre-pied { margin-top:auto !important; padding-top:2em; }
/* Encart en taille body (= preset text-body — retour Charlotte 17.07),
   liens : aspect unifié du §1 */
.acb-membre-contenu p.acb-soumettre { font-size:var(--e-global-typography-v4-text-body-font-size, 16px) !important; line-height:1.5em !important; color:#6E6E6E !important; }
.acb-soumettre { font-size:var(--e-global-typography-v4-text-body-font-size, 16px) !important; line-height:1.5em !important; }
/* Grille "masonry" du tableau de bord : les cartes s'empilent sans trous,
   chaque colonne enchaîne ses cartes avec un espacement constant */
.acb-membre-contenu .wp-block-columns { gap:24px; align-items:flex-start; margin:0 0 24px; }
.acb-membre-contenu .wp-block-column > * + * { margin-top:24px; }
.acb-membre-sidebar { flex:0 0 250px; border-right:1px solid var(--color-border-default, #EFEFED); }
.acb-membre-sidebar .acb-menu-membre { position:sticky; top:calc(var(--acb-header-h, 0px) + 24px); padding-right:0; }
/* Aucun espace entre le header du site et la bande de titre — UNIQUEMENT sur
   les pages membres (classe body posée par protection.php) : sans scope, le
   contenu du site public glissait sous le header fixe (vécu 21.07) */
.acb-page-membre main.site-main,
.acb-page-membre .site-main .page-content,
.acb-page-membre .site-main .entry-content { margin-top:0 !important; padding-top:0 !important; }
.acb-page-membre main.site-main { margin-block-start:0 !important; }
/* Titres de l'espace membre en Koblenz Pro */
.acb-page-membre .page-header .entry-title,
.acb-membre-contenu h1, .acb-membre-contenu h2, .acb-membre-contenu h3 {
	font-family:'Koblenz Pro', sans-serif;
}
/* Défilement doux pour les ancres de catégories — pages membres uniquement */
html:has(.acb-membre-layout) { scroll-behavior:smooth; }

/* ── Bande de titre sombre (comme les pages du site public) ── */
.acb-bande-titre {
	position:relative; left:50%; margin-left:-50vw; width:100vw;
	box-sizing:border-box; background:#2E2E2E;
	padding:48px var(--acb-marge);
}
.acb-bande-titre .acb-fil { margin:0 0 .9rem; font-family:'Koblenz Pro',sans-serif; font-size:16px; font-weight:400; line-height:1.5em; color:#FFFFFF; }
.acb-bande-titre .acb-fil a { color:#FFFFFF; text-decoration:none; transition:color .3s; }
.acb-bande-titre .acb-fil a:hover { color:var(--e-global-color-v4-text-link, #0077A3); }
.acb-bande-titre h1 { margin:.5rem 0 0; color:#FFFFFF; font-family:'Koblenz Pro',sans-serif; font-size:40px; font-weight:700; line-height:1.2em; }
/* Titre à gauche, recherche compacte à droite (passe dessous en mobile) */
.acb-bande-int { display:flex; align-items:flex-end; justify-content:space-between; gap:24px 48px; flex-wrap:wrap; }
.acb-bande-texte { min-width:0; }
.acb-recherche-zone { display:contents; }
.acb-recherche { display:flex; flex-direction:column; gap:10px; width:400px; max-width:100%; margin:0 0 4px; }
/* Champs en contour léger sur le fond sombre (pas de fond blanc) */
.acb-recherche input[type="search"] {
	width:100%; box-sizing:border-box; padding:10px 14px;
	font-family:'Koblenz Pro',sans-serif; font-size:15px;
	color:#FFFFFF; background:transparent;
	/* même bordure et même halo noir que le bouton « Se connecter » du header
	   (btn-2-light) : 2px blanc plein, radius-sm, ombre 3px — retour Charlotte 17.07 */
	border:2px solid var(--surface-primary, #FFFFFF);
	border-radius:var(--radius-sm, 2px);
	transition:all 300ms;
}
.acb-recherche input[type="search"]::placeholder { color:rgba(255,255,255,.55); }
/* Type · Mois · Année sur une seule ligne, boîtes courtes */
.acb-recherche-filtres { display:flex; gap:10px; }
.acb-recherche select {
	flex:1 1 0; width:auto; min-width:0; box-sizing:border-box; padding:9px 28px 9px 12px;
	font-family:'Koblenz Pro',sans-serif; font-size:14px;
	color:#FFFFFF; background:transparent;
	border:2px solid var(--surface-primary, #FFFFFF);
	border-radius:var(--radius-sm, 2px); cursor:pointer;
	transition:all 300ms;
	appearance:none; -webkit-appearance:none;
	background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23FFFFFF'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 10px center; background-size:10px 6px;
}
.acb-recherche select option { color:#1A1A1A; background:#FFFFFF; }
/* Actif : cadre bleu (variable deco-blue) */
.acb-recherche input[type="search"]:focus, .acb-recherche select:focus {
	outline:none; border-color:var(--deco-blue, #009BD0);
}
/* Bouton Rechercher — même langage que le bouton blanc « Découvrir l'association »
   de l'accueil (retour Charlotte 17.07) : fond blanc, radius 2, ombre, rollup */
.acb-recherche button {
	align-self:flex-end; padding:12px 24px;
	text-align:center;
	color:#1A1A1A; cursor:pointer;
	background:#FFFFFF; border:2px solid #FFFFFF; border-radius:2px;
	box-shadow:0 0 3px 0 #2E2E2E;
	overflow:hidden;
	transition:all 300ms;
}
.acb-recherche button:hover,
.acb-recherche button:focus-visible { background:#F0F2F7; box-shadow:0 0 10px 0 #2E2E2E; }
@media (max-width:1024px) { .acb-bande-titre { padding-top:32px; padding-bottom:32px; } .acb-bande-titre h1 { font-size:32px; } 
.acb-menu-membre { padding-left: 10px;}
                          }
@media (max-width:767px)  {
	.acb-bande-titre { padding-top:20px; padding-bottom:20px; }
	.acb-bande-titre h1 { font-size:22px; }
	.acb-bande-titre .acb-fil { font-size:14px; margin-bottom:.4rem; }
	.acb-bande-int { gap:14px; }
}
@media (max-width:1024px) {
	/* La recherche de la bande disparaît : la barre fixe en bas d'écran
	   ouvre le panneau qui contient le même formulaire */
	.acb-bande-int .acb-recherche-zone { display:none; }
}

/* ── Résultats de la recherche transversale ── */
/* En-tête hiérarchisé sur 2 colonnes : titre + critères à gauche,
   « Effacer la recherche » aligné à droite sur la ligne du titre */
.acb-resultats-tete {
	display:flex; flex-wrap:wrap; align-items:baseline; column-gap:24px;
	margin:0 0 32px; padding:0 0 20px; border-bottom:2px solid #2E2E2E;
}
.acb-resultats-tete .acb-resultats-titre { order:1; flex:1 1 auto; margin:0 0 6px; }
.acb-resultats-action { order:2; margin:0 !important; }
.acb-resultats-criteres { order:3; flex-basis:100%; font-size:15px !important; color:#4A4A4A !important; margin:0 !important; }
/* « Effacer la recherche » : gris, un seul trait, rouge au survol */
.acb-resultats-fermer {
	font-family:'Koblenz Pro',sans-serif; font-size:14px !important; font-weight:600 !important;
	color:#4A4A4A !important; background:none !important;
	-webkit-text-fill-color:currentColor !important;
	text-decoration:none !important;
	border-bottom:1px solid currentColor; padding-bottom:1px;
	transition:color .2s ease;
}
.acb-resultats-fermer:hover { color:#C0392B !important; }
.acb-resultats-vide { color:#C0392B !important; }
.acb-resultats-liste { list-style:none; margin:0; padding:0; }
.acb-resultat { padding:20px 0; border-bottom:1px solid #EFEFED; }
/* Dates et métas : la typo vient de la classe kit text-stat-label posée
   dans le HTML — ici couleur uniquement */
.acb-resultat-meta, .acb-doc-meta {
	color:var(--color-text-secondary, #6E6E6E) !important;
}
.acb-resultat-meta { margin:0 0 6px !important; }
/* Badge de type : simple étiquette visuelle, en light, non cliquable
   (retour Charlotte 17.07) */
.acb-resultat-type {
	display:inline-block; margin-right:10px; padding:2px 8px;
	border-radius:var(--radius-sm, 2px);
	font-family:'Koblenz Pro',sans-serif; font-size:11px; font-weight:400;
	text-transform:uppercase; letter-spacing:.02em;
	background:var(--color-surface-secondary, #EFEFED); color:#1A1A1A;
}
.acb-resultat-titre { margin:0 !important; font-size:18px !important; font-weight:600 !important; }
.acb-resultat mark { background:#F8E07F; color:#000000; padding:0 4px; font-weight:500; }

/* Selects du contenu membre : la flèche NATIVE reste toujours collée au bord
   (le padding ne la déplace pas) → chevron custom décollé, comme la recherche */
.acb-membre-contenu select {
	appearance:none; -webkit-appearance:none;
	background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%231A1A1A'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 14px center; background-size:10px 6px;
}

/* ── Typographie du contenu membre : presets du kit via leurs variables (une
   seule source de vérité ; les tailles responsive suivent seules, le sync
   redéfinit les variables par breakpoint). Valeurs figées depuis le helper
   ascobroye_typo_preset() du plugin. ── */
.acb-membre-contenu p {
	font-family:var(--e-global-typography-v4-text-body-font-family, 'Koblenz Pro'), sans-serif;
	font-weight:var(--e-global-typography-v4-text-body-font-weight, 400);
	font-size:var(--e-global-typography-v4-text-body-font-size, 16px);
	line-height:var(--e-global-typography-v4-text-body-line-height, 1.5em);
	color:var(--e-global-color-v4-text-body, #4A4A4A);
	margin:0;
}
.acb-membre-contenu h2 {
	font-family:var(--e-global-typography-v4-text-h2-font-family, 'Koblenz Pro'), sans-serif;
	font-weight:var(--e-global-typography-v4-text-h2-font-weight, 700);
	font-size:var(--e-global-typography-v4-text-h2-font-size, 28px);
	line-height:var(--e-global-typography-v4-text-h2-line-height, 1.2em);
	margin:.5rem 0 1rem;
	color:var(--color-text-primary,#1A1A1A);
}

/* (Les liens texte du contenu membre sont unifiés au §1.) */

/* Sections de catégories : TOUTES partagent la même structure — débord
   pleine largeur + padding interne identique — et seule la couleur de fond
   alterne (retour Charlotte : « juste un fond en alternance »). Les bandes
   se suivent bord à bord, comme les sections alternées du site public. */
.acb-sections section {
	margin:0;
	margin-left:-48px;                            /* jusqu'au séparateur de la sidebar */
	margin-right:calc(-1 * var(--acb-marge));      /* jusqu'au bord droit de la fenêtre */
	padding:var(--space-4, 32px) var(--acb-marge) var(--space-4, 32px) 48px; /* le texte reste aligné */
	border-radius:0;
}
.acb-sections section:nth-child(even) {
	background-color:var(--surface-tertiary, var(--color-surface-tertiary, #F7F7F5));
}
@media (max-width:1024px) {
	.acb-sections section {
		margin-left:calc(-1 * var(--acb-marge));
		padding-left:var(--acb-marge);
	}
}

/* Listes de ressources : puces rondes + séparateurs (style icon-list du site) */
.acb-liste-ressources { list-style:none; margin:0; padding:0; }
.acb-liste-ressources > li {
	position:relative; margin:0 0 0 18px; padding:.75em 10px;
	border-bottom:1px solid #DDDDDD;
	font-family:'Koblenz Pro',sans-serif; color:#4A4A4A; font-size:16px; line-height:1.5em;
}
.acb-liste-ressources > li:last-child { border-bottom:0; }
/* la puce vit à gauche, HORS du fond de survol de la ligne */
.acb-liste-ressources > li::before {
	content:""; position:absolute; left:-18px; top:1.35em;
	width:6px; height:6px; border-radius:50%; background:#4A4A4A;
}
.ascobroye-fichiers { list-style:none; margin:6px 0 0; padding:0 0 0 20px; }
.ascobroye-fichiers li { position:relative; margin:4px 0 4px 14px; padding:2px 8px; font-family:'Koblenz Pro',sans-serif; font-size:15px; }
.ascobroye-fichiers li::before {
	content:""; position:absolute; left:-14px; top:.65em;
	width:5px; height:5px; border-radius:50%; background:#B0B0B0;
}
/* Boîtes entièrement cliquables : le lien du titre s'étend sur toute la
   ligne (les ressources à un seul fichier ont un lien direct « > a » ;
   celles à plusieurs fichiers gardent leurs sous-liens individuels) */
.acb-liste-ressources > li { transition:background-color .15s; }
/* Fond de survol uniquement quand la ligne est réellement cliquable (lien
   direct « > a ») : une ligne-titre dont les liens vivent dans la sous-liste
   reste neutre — le survol se joue alors fichier par fichier (21.07) */
.acb-liste-ressources > li:has(> a):hover { background:#F0F2F7; }
/* la zone cliquable inclut la puce, restée hors du fond */
.acb-liste-ressources > li > a::after { content:""; position:absolute; top:0; right:0; bottom:0; left:-18px; }
/* Sous-fichiers : glissement vers la gauche au survol (sans passage en gras — 21.07) */
.ascobroye-fichiers li { transition:background-color .15s, transform .2s ease; }
.ascobroye-fichiers li:hover { background:#F0F2F7; transform:translateX(-4px); }
.ascobroye-fichiers li a::after { content:""; position:absolute; top:0; right:0; bottom:0; left:-14px; }
.acb-resultat { position:relative; transition:background-color .15s; padding:20px 12px !important; margin:0 -12px; }
.acb-resultat:hover { background:#F0F2F7; }
.acb-resultat .acb-resultat-titre a::after { content:""; position:absolute; inset:0; }
.acb-resultat a.acb-resultat-type, .acb-resultat .ascobroye-fichiers { position:relative; z-index:1; }
.acb-liste-newsletters article, .acb-liste-docs article {
	position:relative; transition:background-color .15s;
	padding:16px 12px; margin:0 -12px; border-bottom:1px solid #EFEFED;
}
.acb-liste-newsletters article:hover, .acb-liste-docs article:hover { background:#F0F2F7; }
.acb-liste-newsletters article h3 a::after, .acb-liste-docs article h3 a::after { content:""; position:absolute; inset:0; }
/* (Le flash vert de repérage des catégories a été retiré — retour Charlotte
   17.07. Le JS de défilement vers l'ancre reste, sans effet visuel.) */
@media (max-width:1024px) {
	.acb-membre-layout { flex-direction:column; gap:20px;/* 28px haut/bas suffisent dès tablette */ }
  .acb-membre-contenu {
    padding-bottom: 28px;
  }
	/* La sidebar n'existe plus en mobile : la barre fixe en bas prend le relais */
	.acb-membre-sidebar { display:none; }
}


/* ==========================================================================
   §5 — NAVIGATION MEMBRE (sidebar desktop, panneau mobile, barre fixe)
   (utile pour tout visiteur connecté, y compris sur les pages publiques :
   la barre mobile et le panneau existent sur tout le site)
   ========================================================================== */

/* ── Navigation de l'espace membre (sidebar desktop et panneau mobile) ── */
.acb-menu-membre ul { list-style:none; margin:0; padding:0; }
.acb-menu-membre li + li { margin-top:2px; }
.acb-menu-membre a {
	display:block; padding:9px 12px; text-decoration:none;
	font-family:var(--e-global-typography-v4-text-navi-font-family, 'Koblenz Pro'), sans-serif;
	font-weight:var(--e-global-typography-v4-text-navi-font-weight, 300);
	font-size:16px; line-height:var(--e-global-typography-v4-text-navi-line-height, 1.5em);
	color:var(--color-text-primary, #1A1A1A);
	/* indicateur actif : 2px deco-blue + coins gauches arrondis (retour Charlotte) */
	border-left:2px solid transparent;
	border-radius:var(--radius-sm, 2px) 0 0 var(--radius-sm, 2px);
	transition:background .15s, color .15s, border-color .15s;
}
.acb-menu-membre a:hover {
	color:var(--color-text-primary, #1A1A1A);
	background:#F0F2F7;
	border-left-color:var(--deco-blue, #009BD0);
}
.acb-menu-membre li.actif > a {
	background:#F0F2F7;
	color:var(--color-text-primary, #1A1A1A);
	border-left-color:var(--deco-blue, #009BD0);
	font-weight:600;
}
.acb-menu-membre-bas { margin-top:0 !important; padding-top:0 !important; border-top:1px solid var(--color-border-default, #EFEFED); }
.acb-menu-membre-bas li.acb-deconnexion { border-top:1px solid var(--color-border-default, #EFEFED); }
.acb-menu-membre li.acb-deconnexion a:hover { color:#C0392B; background:#FDF3F2; border-left-color:#C0392B; }
/* Sous-catégories : un cran plus grandes et aérées (gap space-1 — retour Charlotte) */
.acb-sous-menu { margin:2px 0 4px !important; }
.acb-sous-menu li + li { margin-top:var(--space-1, 8px) !important; }
.acb-sous-menu a {
	padding:6px 12px 6px 26px !important; font-size:15px !important;
	color:var(--color-text-secondary, #6E6E6E) !important;
	border-left:2px solid var(--color-border-default, #EFEFED) !important;
	background:none !important; border-radius:0 !important;
}
.acb-sous-menu a:hover {
	color:var(--e-global-color-v4-text-link, #0077A3) !important;
	border-left-color:var(--deco-blue, #009BD0) !important;
}
/* ── Barre fixe et panneau : mobile uniquement ── */
.acb-barre-mobile, .acb-drawer, .acb-drawer-fond { display:none; }
@media (max-width:1024px) {
	body.acb-drawer-ouvert { overflow:hidden; }
	body { padding-bottom:56px; } /* la barre ne recouvre pas le pied de page */
	.acb-barre-mobile {
		display:flex; position:fixed; left:0; right:0; bottom:0; z-index:99998;
		background:#2E2E2E; box-shadow:0 -2px 12px rgba(0, 0, 0, .18);
	}
	.acb-barre-mobile button {
		flex:1 1 50%; display:flex; align-items:center; justify-content:center; gap:10px;
		min-height:52px; padding:8px 12px; cursor:pointer;
		background:#2E2E2E !important; color:#FFFFFF !important;
		border:0 !important; border-radius:0 !important; box-shadow:none !important;
		font-family:'Koblenz Pro',sans-serif !important; font-size:14px !important;
		font-weight:600 !important; text-transform:uppercase; letter-spacing:.04em;
	}
	.acb-barre-mobile button + button { border-left:1px solid rgba(255,255,255,.18) !important; }
	.acb-barre-mobile button:hover, .acb-barre-mobile button:focus, .acb-barre-mobile button:active {
		background:#1A1A1A !important; color:#FFFFFF !important; outline:none;
	}
	.acb-barre-icone-menu {
		display:block; width:16px; height:2px; background:currentColor;
		box-shadow:0 -5px 0 currentColor, 0 5px 0 currentColor;
	}
	.acb-barre-icone-loupe { display:block; width:16px; height:16px; }
	.acb-drawer {
		display:block; position:fixed; top:0; right:0; bottom:0; z-index:100000;
		width:min(340px, 88vw); box-sizing:border-box;
		background:#FFFFFF; box-shadow:-8px 0 24px rgba(0, 0, 0, .18);
		padding:0; overflow-y:auto;
		transform:translateX(105%); transition:transform .3s ease;
	}
	.acb-drawer.ouvert { transform:translateX(0); }
	/* Le ✕ vit sur le bandeau sombre du titre : blanc */
	.acb-drawer-fermer {
		display:block; position:absolute; top:14px; right:10px;
		padding:8px 10px; cursor:pointer; font-size:20px; line-height:1;
		background:none !important; border:0 !important; box-shadow:none !important;
		color:#FFFFFF !important;
	}
	.acb-drawer-fermer:hover, .acb-drawer-fermer:focus, .acb-drawer-fermer:active { color:#B0B0B0 !important; background:none !important; }
	.acb-drawer-fond { position:fixed; inset:0; z-index:99999; background:rgba(26, 26, 26, .45); }
	.acb-drawer-fond:not([hidden]) { display:block; }
	/* Le formulaire de recherche, version fond blanc du panneau — il vit
	   SOUS le menu (retour Janine 22.07) : filet séparateur au-dessus */
	.acb-drawer .acb-recherche {
		display:flex; flex-direction:column; gap:10px; width:100%; box-sizing:border-box;
		padding:20px 10px; margin:16px 0 0;
		border-top:1px solid var(--color-border-default, #EFEFED);
	}
	/* champs : même langage que le reste des formulaires (retour Janine 22.07)
	   — bordure 2px #4A4A4A, radius-sm, focus deco-blue */
	.acb-drawer .acb-recherche input[type="search"] {
		width:100%; box-sizing:border-box; padding:10px 14px;
		font-family:'Koblenz Pro',sans-serif; font-size:16px;
		color:#4A4A4A !important; background:#FFFFFF !important;
		border:2px solid #4A4A4A !important; border-radius:var(--radius-sm, 2px) !important;
		transition:all 300ms;
	}
	.acb-drawer .acb-recherche input[type="search"]::placeholder { color:#6E6E6E; opacity:1; }
	.acb-drawer .acb-recherche input[type="search"]:focus,
	.acb-drawer .acb-recherche select:focus { outline:0; border-color:var(--deco-blue, #009BD0) !important; }
	.acb-drawer .acb-recherche-filtres { display:flex; gap:10px; flex-wrap:wrap; }
	/* Type sur sa ligne, Mois + Année côte à côte, bouton pleine largeur */
	.acb-drawer .acb-recherche select[name="acb_type"] { flex:1 1 100%; }
	.acb-drawer .acb-recherche select {
		flex:1 1 40%; min-width:0; box-sizing:border-box; padding:9px 28px 9px 12px;
		font-family:'Koblenz Pro',sans-serif; font-size:14px;
		color:#4A4A4A !important; background-color:#FFFFFF !important;
		border:2px solid #4A4A4A !important; border-radius:var(--radius-sm, 2px) !important; cursor:pointer;
		transition:all 300ms;
		appearance:none; -webkit-appearance:none;
		background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%231A1A1A'/%3E%3C/svg%3E") !important;
		background-repeat:no-repeat !important; background-position:right 10px center !important; background-size:10px 6px !important;
	}
	/* Bouton « Rechercher » : même bouton sombre que les formulaires membres
	   (.acb-form button[type=submit] — retour Janine 22.07) */
	.acb-drawer .acb-recherche button[type="submit"] {
		align-self:stretch; width:100%; min-height:40px; padding:12px 24px; cursor:pointer;
		background:#4A4A4A !important; color:#FFFFFF !important;
		border:0 !important;
		border-radius:2px !important;
		box-shadow:none !important;
		font-family:'Koblenz Pro',sans-serif !important; font-size:15px !important; font-weight:700 !important;
		line-height:1.4em; text-transform:uppercase; transition:all .3s;
	}
	.acb-drawer .acb-recherche button[type="submit"]:hover,
	.acb-drawer .acb-recherche button[type="submit"]:focus,
	.acb-drawer .acb-recherche button[type="submit"]:active { background:#1A1A1A !important; color:#FFFFFF !important; box-shadow:0 0 0 4px #F0F2F7 !important; }
	/* Bandeau sombre en tête du panneau */
	.acb-drawer-titre {
		margin:0 0 16px !important; padding:20px 10px;
		background:#2E2E2E !important; color:#FFFFFF !important;
		font-family:'Koblenz Pro',sans-serif;
		font-size:12px !important; font-weight:700 !important; letter-spacing:.08em;
		text-transform:uppercase;
	}
}
/* Le bouton « Rechercher » de la bande (desktop) : fond blanc, texte noir,
   comme « Découvrir l'association » (btn-1-light) — forcé en !important pour
   que ni le rose Elementor ni un autre reset ne l'écrase (retour Charlotte) */
.acb-recherche button[type="submit"] {
	background:#FFFFFF !important; color:#1A1A1A !important;
	border:2px solid #FFFFFF !important; border-radius:var(--radius-sm, 2px) !important;
	box-shadow:0 0 3px 0 #2E2E2E !important;
}
.acb-recherche button[type="submit"]:hover,
.acb-recherche button[type="submit"]:focus,
.acb-recherche button[type="submit"]:active {
	background:#F0F2F7 !important; color:#1A1A1A !important;
	box-shadow:0 0 10px 0 #2E2E2E !important; outline:none;
}


/* ==========================================================================
   §5bis — MENU CONTEXTUEL DU BOUTON « ESPACE MEMBRE » (header)
   Construit au runtime par inc/espace-membre/bouton-login.php (connecté
   uniquement) : panneau au survol en desktop, liste statique sous le clone
   du bouton dans le menu mobile off-canvas.
   ========================================================================== */

.acb-ctx-wrap { position:relative; display:inline-flex; }
.acb-ctx-liste {
	list-style:none; margin:0; padding:6px 0 6px 6px;
	position:absolute; top:100%; right:0; z-index:100000;
	min-width:210px;
	background:#FFFFFF;
	border:1px solid var(--color-border-default, #EFEFED);
	border-radius:var(--radius-ml, 3px);
	box-shadow:0 8px 24px rgba(0, 0, 0, .12);
	opacity:0; visibility:hidden; transform:translateY(6px);
	transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
.acb-ctx-wrap:hover .acb-ctx-liste,
.acb-ctx-wrap:focus-within .acb-ctx-liste { opacity:1; visibility:visible; transform:translateY(0); }
.acb-ctx-liste li { margin:0; }
/* même langage que la navigation membre (§5) : filet gauche deco-blue au survol */
.acb-ctx-liste a {
	display:block; padding:9px 16px; text-decoration:none;
	font-family:var(--e-global-typography-v4-text-navi-font-family, 'Koblenz Pro'), sans-serif;
	font-weight:var(--e-global-typography-v4-text-navi-font-weight, 300);
	font-size:15px; line-height:1.5em;
	color:var(--color-text-primary, #1A1A1A);
	border-left:2px solid transparent;
	transition:background .15s, color .15s, border-color .15s;
}
.acb-ctx-liste a:hover { background:#F0F2F7; border-left-color:var(--deco-blue, #009BD0); }
.acb-ctx-liste li.acb-ctx-deconnexion { border-top:1px solid var(--color-border-default, #EFEFED); margin-top:4px; padding-top:4px; }
.acb-ctx-liste li.acb-ctx-deconnexion a:hover { color:#C0392B; background:#FDF3F2; border-left-color:#C0392B; }
/* Version statique (menu mobile off-canvas) : posée telle quelle sous le
   clone du bouton — le bouton pleine largeur fait office de séparation,
   donc pas de filet ici ; la liste retrouve le retrait du panneau que la
   barre bord à bord a annulé (retour Janine 22.07) */
.acb-ctx-liste.acb-ctx-statique {
	position:static; opacity:1; visibility:visible; transform:none;
	min-width:0; margin:8px 0 0; padding:0 var(--space-3, 24px);
	background:none; border:0;
	border-radius:0; box-shadow:none;
}
.acb-ctx-liste.acb-ctx-statique a { padding:10px 4px; font-size:16px; }


/* ==========================================================================
   §6 — CARTES DU TABLEAU DE BORD (plugin ascobroye-documents)
   Retours Charlotte 17.07 : radius-ml, bordure haute 2px deco-blue (comme
   les .border-box-y du kit), typo Koblenz partout dans la carte.
   ========================================================================== */

.acb-carte { background:var(--color-surface-primary,#FFFFFF); border:1px solid var(--color-border-default,#EFEFED); border-top:2px solid var(--deco-blue,#009BD0); border-radius:var(--radius-ml,3px); padding:0; padding-bottom: 1em; font-family:'Koblenz Pro',sans-serif; }
/* Le padding est porté par les enfants : les fonds de survol et les filets
   peuvent ainsi courir jusqu'au bord de la carte */
.acb-carte > * { padding-left:28px; padding-right:28px; align-items:center; }
.acb-carte > :last-child { padding-bottom:1em; }
/* Label de carte : text-supertitle du kit, figé en dur (le CSS du kit n'est
   pas garanti sur ces pages — même cas que text-stat-label) */
.acb-carte p.acb-carte-label { margin:0; padding-top:2em; padding-bottom:11px; border-bottom:1px solid var(--color-border-default,#EFEFED); color:var(--color-text-primary,#1A1A1A); font-family:'Koblenz Pro',sans-serif; font-weight:700; font-size:16px; line-height:1.5em; text-transform:uppercase; }
.acb-carte p.acb-carte-label + *:not(.acb-ligne) { margin-top:11px; }
.acb-carte-titre { margin:0 0 4px; font-size:19px; line-height:1.3; font-family:'Koblenz Pro',sans-serif; }
.acb-carte-titre a { color:var(--color-text-primary,#1A1A1A); text-decoration:none; }
.acb-carte-titre a:hover { color:var(--color-text-link,#0077A3); }
.acb-carte-date { margin:0 0 12px; color:var(--color-text-secondary,#6E6E6E); }
.acb-doc-meta { color:var(--color-text-secondary,#6E6E6E); }
.acb-carte-extrait { margin:0 0 20px; color:var(--color-text-body,#4A4A4A); font-size:15px; line-height:1.6; }

.acb-carte .acb-carte-toutlien { margin:2em 0 0; text-align:right; padding-bottom: 0;text-decoration:underline;}
.acb-agenda-date { display:flex; align-items:flex-start; gap:16px; margin:0 0 12px; line-height:1.1em; }
.acb-agenda-jour { flex-shrink:0; width:56px; height:56px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--color-surface-tertiary,#F7F7F5); border:1px solid var(--color-border-default,#EFEFED); border-radius:6px; font-family:'Koblenz Pro',sans-serif; }
.acb-agenda-jour strong { font-size:20px; line-height:1; color:var(--color-text-primary,#1A1A1A); }
.acb-agenda-jour span { font-size:11px; text-transform:uppercase; color:var(--color-text-secondary,#6E6E6E); }
.acb-agenda-aujourdhui .acb-agenda-jour { background:var(--e-global-color-v4-text-link,#0077A3); border-color:var(--e-global-color-v4-text-link,#0077A3); }
.acb-agenda-aujourdhui .acb-agenda-jour strong, .acb-agenda-aujourdhui .acb-agenda-jour span { color:#FFFFFF; }
.acb-badge-aujourdhui { display:table; margin:0 0 3px; padding:1px 7px; border-radius:3px; background:var(--e-global-color-v4-text-link,#0077A3); color:#FFFFFF; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; text-align:left; font-family:'Koblenz Pro',sans-serif; }
/* Événement récurrent : ↻ devant la date, libellé (« Tous les lundis ») au survol */
.acb-agenda-recurrence { font-weight:700; cursor:help;     cursor: help;
    font-size: 20px; line-height: 0em;}
/* Agenda : titre sur sa ligne ; en desktop, date et horaire·lieu se suivent
   sur la ligne TANT QU'IL Y A LA PLACE — chaque segment est atomique
   (inline-block) : s'il ne tient plus, il descend ENTIER à la ligne, jamais
   coupé en plein milieu. Séparateur « · » injecté en fin de 1er segment
   (il n'est plus dans le markup). Dès la tablette : une ligne chacun.
   (retours Janine 21.07) */
.acb-agenda-texte { min-width:0; }
.acb-agenda-titre { display:block; font-family:'Koblenz Pro',sans-serif; font-size:16px; }
.acb-agenda-infos { display:inline-block; font-size:13.5px; color:var(--color-text-secondary,#6E6E6E); line-height:1.5; }
.acb-agenda-infos:has(+ .acb-agenda-infos)::after { content:" · "; }
.acb-ligne { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:11px 28px; margin:0; position:relative; transition:background-color .15s; }
.acb-ligne:hover { background:#F0F2F7; }
/* filet aligné sur le texte (le fond de survol court, lui, bord à bord) */
.acb-ligne::before { content:""; position:absolute; top:0; left:28px; right:28px; border-top:1px solid var(--color-border-default,#EFEFED); }
/* pas de filet sous le label (il a déjà le sien) */
.acb-carte p.acb-carte-label + .acb-ligne::before { display:none; }
/* Toute la ligne clique le document */
.acb-ligne .acb-ligne-titre > a:first-child::after { content:""; position:absolute; inset:0; }
.acb-ligne:last-child { border-bottom:0; padding-bottom:0; }
.acb-ligne-titre { font-size:15px; min-width:0; }
.acb-ligne-titre a { color:var(--color-text-primary,#1A1A1A); text-decoration:none; margin-right: 8px;margin-bottom:3px;}
.acb-ligne-titre a:hover { color:var(--color-text-link,#0077A3); }
.acb-ligne-meta { flex-shrink:0; color:var(--color-text-secondary,#6E6E6E); white-space:nowrap; }

.acb-badge { display:inline-block; padding:2px 8px; margin-top: 5px;border-radius:var(--radius-sm,2px); font-family:'Koblenz Pro',sans-serif; font-size:11px; font-weight:400; text-transform:uppercase; letter-spacing:.02em; background:var(--color-surface-secondary,#EFEFED); color:var(--color-text-secondary-on-gray,#5E5E5E); }
.acb-raccourcis { display:flex; flex-wrap:wrap; gap:10px; margin:0; padding: 0 28px; list-style:none; align-items:start; }

/* Libellés libres (gérés par le client dans Apparence > Menus) : les boutons
   rétrécissent et replient le texte au lieu de déborder de la carte,
   quel que soit le contenu (retour Janine 21.07) */
.acb-raccourcis li { min-width:0; max-width:100%; }
.acb-raccourcis a { display:inline-block; box-sizing:border-box; max-width:100%; padding:12px 24px; border:2px solid #4A4A4A; border-radius:var(--radius-sm,2px); text-decoration:none; text-align:center; white-space:normal; overflow-wrap:anywhere; overflow:hidden; color:var(--color-text-body,#4A4A4A); background:transparent; transition:all 300ms; }

/* Dès la taille tablette (retours Janine 21.07) */
@media (max-width:1024px) {
	.acb-agenda-infos { display:block; }
	.acb-agenda-infos:has(+ .acb-agenda-infos)::after { content:none; }
	.acb-raccourcis { flex-direction:column; }
	.acb-raccourcis a { display:block; }
}


/* ==========================================================================
   §7 — MESSAGES D'ÉTAT DES LISTES & AIDES DE MONTAGE
   (émis par les shortcodes du plugin sur les pages membres)
   ========================================================================== */

/* Catégorie sans contenu (visible des membres) */
.acb-liste-vide { color:#6E6E6E; }
/* Aide de configuration, visible des admins uniquement pendant le montage :
   avertissement (orange) et information (bleu) */
.acb-admin-avertissement {
	padding:12px 16px;
	background:#FDF4E7;
	border-left:3px solid #E67E22;
}
.acb-admin-info {
	padding:12px 16px;
	background:#F0F6FB;
	border-left:3px solid #0077A3;
}


/* ==========================================================================
   §8 — CLASSES TYPO DU KIT : filet de secours hors Elementor
   (déplacé depuis custom.css le 21.07 — ne sert que les pages membres :
   custom.css reste aligné sur la base Charlotte)
   Elementor V4 ne compile les classes .text-* QUE dans le CSS des pages qui
   les utilisent dans l'éditeur — sur les pages Gutenberg (espace membre),
   elles n'existeraient pas. Notre HTML les porte partout : ce filet les y
   fait vivre en consommant les variables du Variables Manager
   (design-system-sync, chargé partout) — même source de vérité, responsive
   compris. Spécificité d'une classe : dès que le CSS du kit est présent
   (.elementor .text-*), c'est LUI qui fait foi.
   ========================================================================== */

.text-body {
	font-family: var(--e-global-typography-v4-text-body-font-family, 'Koblenz Pro'), sans-serif;
	font-weight: var(--e-global-typography-v4-text-body-font-weight, 400);
	font-size: var(--e-global-typography-v4-text-body-font-size, 16px);
	line-height: var(--e-global-typography-v4-text-body-line-height, 1.5em);
}
.text-h2 {
	font-family: var(--e-global-typography-v4-text-h2-font-family, 'Koblenz Pro'), sans-serif;
	font-weight: var(--e-global-typography-v4-text-h2-font-weight, 700);
	font-size: var(--e-global-typography-v4-text-h2-font-size, 28px);
	line-height: var(--e-global-typography-v4-text-h2-line-height, 1.2em);
}
.text-supertitle {
	font-family: var(--e-global-typography-v4-text-supertitle-font-family, 'Koblenz Pro'), sans-serif;
	font-weight: var(--e-global-typography-v4-text-supertitle-font-weight, 700);
	font-size: var(--e-global-typography-v4-text-supertitle-font-size, 16px);
	line-height: var(--e-global-typography-v4-text-supertitle-line-height, 1.5em);
	text-transform: var(--e-global-typography-v4-text-supertitle-text-transform, uppercase);
}
.text-button {
	font-family: var(--e-global-typography-v4-text-button-font-family, 'Koblenz Pro'), sans-serif;
	font-weight: var(--e-global-typography-v4-text-button-font-weight, 700);
	font-size: var(--e-global-typography-v4-text-button-font-size, 16px);
	line-height: var(--e-global-typography-v4-text-button-line-height, 1.4em);
	text-transform: var(--e-global-typography-v4-text-button-text-transform, uppercase);
}
/* Pas (encore) de preset dans le Variables Manager : valeurs du kit en dur.
   Si Charlotte le crée, remplacer par les variables comme ci-dessus. */
.text-stat-label {
	font-family: 'Koblenz Pro', sans-serif;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5em;
	text-transform: uppercase;
}
