/* Refonte UX du site (lots B et C, 08/10/2026), commune à tous les thèmes du moteur.
   Chargée après la feuille du thème (theme_css) : le thème garde la main sur ses couleurs par ses variables
   (--accent, --encre, --papier, --filet…) et peut définir --cta-fond / --cta-encre pour sa pastille d'appel.
   Marquage attendu (layout.php) : .burger, .cta-mobile, .header-actions (recherche, .cta-pill, langues, contraste),
   .nav#menu-principal, .cta-panneau ; (home.php) a.pilier > .pilier-tete > .pilier-nom + .pilier-nb, .pilier-hub ;
   (single.php) .meta-ligne, .adj > .adj-media + .adj-texte > .dim + .adj-titre. */

/* ----- Titres : deux lignes au plus (70 à 85 caractères sur une colonne de 790 px) ----- */
.article{max-width:790px}
.article-title{font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.2;letter-spacing:-.02em;margin:0 0 14px}
.page-title{font-size:clamp(1.5rem,2.6vw,2.05rem);line-height:1.2}
.home-titre{font-size:clamp(1.6rem,3vw,2.35rem);line-height:1.15;max-width:30ch;margin:0 auto}
.home-intro{font-size:.98rem;max-width:66ch;margin-top:12px}
.une-titre{font-size:clamp(1.35rem,2.3vw,1.85rem);line-height:1.2;margin:0 0 14px}
.duo-titre{font-size:1.1rem;line-height:1.3}
.ligne-titre{font-size:1.05rem;line-height:1.3}
@media (min-width:1180px){.article:has(.som-lateral){grid-template-columns:230px minmax(0,790px)}}
@media (max-width:640px){.home-titre{font-size:1.22rem;margin-left:0}.article-title{font-size:1.3rem;line-height:1.22}.page-title{font-size:1.4rem}.home-intro{font-size:.94rem;line-height:1.5}}

/* ----- Une seule ligne de métadonnées sous le titre ----- */
.article-meta{display:block;padding-bottom:14px;margin-bottom:26px}
.meta-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0}
.meta-ligne .sep{margin:0 2px}
.byline{display:inline-flex;align-items:center;gap:7px}
.byline-photo{width:28px;height:28px;border-radius:50%;object-fit:cover}

/* ----- Cartes des rubriques : nom, nombre, article pilier ----- */
.piliers{margin-top:14px}
.piliers-grille{grid-template-columns:repeat(5,1fr);gap:10px}
.pilier{display:flex;flex-direction:column;gap:6px;padding:14px 14px 12px;text-decoration:none;color:var(--encre);border-top-width:3px}
.pilier:hover{border-color:var(--accent);border-top-color:var(--accent)}
.pilier-tete{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.pilier-nom{font-size:1rem;line-height:1.2}
.pilier-nb{margin:0;font:600 .7rem/1 var(--meta);color:var(--encre3);background:var(--papier);border:1px solid var(--filet);border-radius:999px;padding:4px 7px;flex:0 0 auto}
.pilier-hub{font-size:.8rem;line-height:1.35;font-weight:500;color:var(--encre2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pilier:hover .pilier-hub{color:var(--accent)}
.piliers-grille:has(> .pilier:nth-child(6):last-child){grid-template-columns:repeat(6,1fr)}
.piliers-grille:has(> .pilier:nth-child(7):last-child),.piliers-grille:has(> .pilier:nth-child(8):last-child){grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.piliers-grille,.piliers-grille:has(> .pilier:nth-child(6):last-child),.piliers-grille:has(> .pilier:nth-child(7):last-child),.piliers-grille:has(> .pilier:nth-child(8):last-child){grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.piliers-grille{grid-template-columns:repeat(2,1fr);gap:8px}.pilier{padding:11px 12px 10px}.pilier-hub{display:none}.pilier-nom{font-size:.92rem}}

/* ----- Précédent / suivant : deux cartes avec vignette ----- */
.adjacent{gap:14px;border-top:0;margin-top:40px;padding-top:0}
.adj,.adj.next{display:flex;flex-direction:row;align-items:center;gap:14px;padding:12px;border:1px solid var(--filet);border-radius:12px;background:var(--papier2);font-size:.95rem;line-height:1.3;text-align:left}
.adj.next{flex-direction:row;justify-content:flex-end;text-align:right}
.adj:hover{border-color:var(--accent);color:var(--encre)}
.adj:hover .adj-titre{color:var(--accent)}
.adj-media{flex:0 0 96px;width:96px;height:64px;border-radius:8px;overflow:hidden;background:var(--filet)}
.adj-media img{width:100%;height:100%;object-fit:cover;display:block}
.adj-texte{display:flex;flex-direction:column;gap:5px;min-width:0}
.adj .dim{font-size:.66rem}
.adj-titre{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:620px){.adjacent{grid-template-columns:1fr}.adj.next{justify-content:flex-start;text-align:left;flex-direction:row-reverse}}

/* ----- À lire ensuite : hauteur réservée aux images (pas de saut au chargement) ----- */
.card-media img{aspect-ratio:16/9;width:100%;height:auto;object-fit:cover;background:var(--papier2)}

/* ----- Pastille d'appel (lien du menu signalé par le thème) ----- */
.cta-pill,.cta-mobile,.cta-panneau{background:var(--cta-fond,var(--accent));color:var(--cta-encre,#fff);text-decoration:none;white-space:nowrap;border-radius:999px}
.cta-pill:hover,.cta-mobile:hover,.cta-panneau:hover{filter:brightness(1.08);color:var(--cta-encre,#fff)}

/* ----- En-tête desktop sur deux bandes : [logo + devise | recherche, pastille, langue, contraste] puis la navigation sur une ligne ----- */
.burger,.cta-mobile{display:none}
@media (min-width:901px){
  .header-inner{grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;align-items:center;row-gap:0}
  .brand{grid-row:1;grid-column:1;align-self:end}
  .devise{grid-row:2;grid-column:1;max-width:none;margin-top:4px;white-space:nowrap;font-size:.68rem;letter-spacing:.11em}
  .header-actions{grid-row:1/3;grid-column:2;display:flex;align-items:center;justify-content:flex-end;gap:10px;align-self:center;flex-wrap:wrap}
  .header-actions .search{grid-row:auto;grid-column:auto;align-self:auto}
  .header-actions .search input{width:96px}
  .cta-pill{font:650 .64rem/1 var(--meta);letter-spacing:.07em;text-transform:uppercase;padding:9px 13px}
  .cta-panneau{display:none}
  .header-actions details.langues{margin-left:0}
  .header-actions .bascule-theme{margin-left:0;position:relative;z-index:2;order:0}
  .nav{grid-row:3;grid-column:1/-1;flex-wrap:nowrap;gap:12px;overflow:visible;margin-top:12px;padding:10px 0 2px}
  .nav a{font-size:.66rem;letter-spacing:.05em;white-space:nowrap}
  .site-header:has(.header-deco) .header-inner{padding-right:calc(26px + 300px)}
  .site-header:has(.header-deco) .brand,.site-header:has(.header-deco) .devise,.site-header:has(.header-deco) .nav{padding-right:0}
}
@media (min-width:901px) and (max-width:1500px){.site-header:has(.header-deco) .header-inner{padding-right:calc(26px + 240px)}}
@media (min-width:901px) and (max-width:1240px){.site-header:has(.header-deco) .header-inner{padding-right:calc(26px + 220px)}.nav{gap:10px}.nav a{font-size:.62rem}.devise{display:none}}

/* ----- Mobile (≤ 900 px) : burger, pastille visible, panneau plein écran, actions en barre basse ----- */
@media (max-width:900px){
  .header-inner{grid-template-columns:1fr auto auto;align-items:center;gap:0 10px}
  .brand-img img{max-width:calc(100vw - 215px)!important;height:auto!important}
  .burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:10px;background:transparent;cursor:pointer;grid-row:1;grid-column:3;align-self:center;justify-self:end;color:#fff}
  .burger span{display:block;width:20px;height:2px;margin:0 auto;background:currentColor;transition:transform .2s,opacity .2s}
  .site-header:not(.bandeau) .burger,.site-header.bandeau.bandeau-clair .burger,.site-header.bandeau.clair .burger{color:var(--encre);border-color:var(--filet)}
  .menu-ouvert .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-ouvert .burger span:nth-child(2){opacity:0}
  .menu-ouvert .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .cta-mobile{display:inline-block;grid-row:1;grid-column:2;align-self:center;font:650 .64rem/1 var(--meta);letter-spacing:.05em;text-transform:uppercase;padding:9px 10px}
  .header-inner:not(:has(.cta-mobile)) .burger{grid-column:2}
  .search{display:none}
  .header-actions{display:none}
  .nav{display:none}
  .header-deco{display:none}
  .site-header:has(.header-deco) .header-inner{padding-right:26px}
  body.menu-ouvert{overflow:hidden}
  body.menu-ouvert .site-header .header-inner>.nav{display:flex;flex-direction:column;gap:0;position:fixed;inset:0;z-index:50;background:var(--papier);padding:70px 24px 90px;overflow-y:auto;margin:0;border:0}
  body.menu-ouvert .nav a,body.menu-ouvert .site-header.bandeau .nav a,body.menu-ouvert .site-header.bandeau.clair .nav a{font-size:1rem;letter-spacing:.03em;padding:14px 0;border-bottom:1px solid var(--filet);color:var(--encre);white-space:normal;min-height:0;opacity:1}
  body.menu-ouvert .nav .cta-panneau{display:block;margin:14px 0 4px;text-align:center;padding:13px 16px;border-bottom:0;font-weight:650;letter-spacing:.05em}
  body.menu-ouvert .site-header .header-inner>.burger{position:fixed;top:18px;right:20px;z-index:60;color:var(--encre);border-color:var(--filet)}
  body.menu-ouvert .site-header .header-inner>.header-actions{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:55;gap:12px;align-items:center;justify-content:space-between;flex-wrap:nowrap;padding:12px 24px calc(12px + env(safe-area-inset-bottom));background:var(--papier);border-top:1px solid var(--filet);color:var(--encre)}
  body.menu-ouvert .header-actions .search{display:flex;flex:1 1 0;min-width:0;max-width:220px;background:var(--papier2);border:1px solid var(--filet);padding-left:34px}
  body.menu-ouvert .header-actions .search::before{display:block;background:var(--encre3)}
  body.menu-ouvert .header-actions .search input{display:block;width:100%;opacity:1;padding-left:4px;color:var(--encre)}
  body.menu-ouvert .header-actions .search input::placeholder{color:var(--encre3)}
  body.menu-ouvert .header-actions .cta-pill{display:none}
  body.menu-ouvert .header-actions details.langues,body.menu-ouvert .header-actions details.langues summary{color:var(--encre)}
  body.menu-ouvert .header-actions .langues-menu{top:auto;bottom:calc(100% + 8px)}
  body.menu-ouvert .header-actions .bascule-theme{border-color:var(--filet);color:var(--encre)}
}
@media (max-width:360px){.cta-mobile span{display:none}.cta-mobile::before{content:attr(data-court)}}
/* Accessibilité (moteur 1.2.1, audit axe du 08/10/2026) : cibles de 24 px au moins (WCAG 2.2, 2.5.8) ;
   le menu bureau et les listes de zones faisaient 18 px de haut. Au clavier, un contour visible sur le
   bouton d'un annuaire ou un lien de carte, quel que soit le thème. */
@media (min-width:901px){.nav a:not(.cta-panneau){display:inline-flex;align-items:center;min-height:24px}}
.zones-liste a,.liste-liens a{display:inline-block;min-height:24px;line-height:1.5;padding:2px 0}
.ann-voir-tout{color:var(--papier,#fff)}
.ann-carte-svg a:focus-visible{outline:2px solid var(--accent,#1d4ed8);outline-offset:2px}
@media (prefers-color-scheme:dark){:root:not([data-mode="clair"]) .ann-etat-on{color:#6ad492}}
:root[data-mode="sombre"] .ann-etat-on{color:#6ad492}
h2.plan-rubrique{font-size:1.2rem;margin:1.8em 0 .5em}h2.plan-rubrique a{text-decoration:none}
