/* ==========================================================================
   Compagnie Logos — bandeau, pied de page, menu
   ========================================================================== */

:root { --page-marge: 40px; }

/* Garde-fous globaux : aucune page ne doit défiler horizontalement. */
img, svg, video { max-width: 100%; height: auto; }
* { min-width: 0; }   /* les enfants de grid/flex peuvent rétrécir */

body {
  margin: 0;
  overflow-x: clip;
  background: var(--logos-blanc);
  color: var(--logos-noir);
  font-family: var(--font-texte);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.75;
}

/* Le logo ne se pose jamais en blanc et n'a pas de cartouche : le fond de page
   reste clair, y compris derrière le bandeau. */

.logos-page,
.site-bandeau__interieur,
.site-pied__interieur {
  max-width: 1032px;
  margin: 0 auto;
  padding: 0 var(--page-marge);
}

/* Liens du texte courant : gras, jamais soulignés, aucun aplat au repos.
   Le survol suit la règle GLOBALE (voir le bloc « Survol global » en fin de
   fichier) : fond encre opaque, texte blanc, bascule nette. */
a { color: inherit; text-decoration: none; }

.logos-texte a,
.fiche-bloc a,
.agenda-ligne__lieu a {
  font-weight: 700;
  text-decoration: none;
}

/* --- Pictogrammes -------------------------------------------------------- */

.picto {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: currentColor;
}

.picto svg { width: 100%; height: 100%; display: block; }

.picto--facebook, .picto--instagram, .picto--vimeo, .picto--youtube { width: 16px; height: 16px; }
.picto--suivant, .picto--precedent { width: 13px; height: 28px; }
.picto--menu, .picto--fermer { width: 24px; height: 24px; }
.picto--lecture { width: 12px; height: 14px; }
.picto--spectacles, .picto--fabrique { width: 16px; height: 16px; }

/* --- Bandeau ------------------------------------------------------------- */

/* 2026-08-25 — OPTION PURISTE (décision compagnie) : le bandeau appartient
   au haut de page, comme une affiche — ni collant, ni compactage au
   défilement (l'essai de bandeau sticky du même jour est retiré). */
.site-bandeau { padding-top: 26px; }

.site-bandeau__interieur {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
}

.logos-logo { display: block; color: var(--logos-noir); }  /* bascule nette : aucune animation (règle de survol globale) */

a:hover > .logos-logo,
a:focus-visible > .logos-logo { color: var(--logos-encre); }

.logos-logo svg, .logos-logo svg * { fill: currentColor; }
.logos-logo svg { display: block; height: 64px; width: auto; }  /* réduit sous les 90 px de la charte, décision du 2026-08-08 pour que la navigation tienne */

.site-navigation ul {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
}

.site-navigation a {
  display: inline-block;
  padding: 8px 10px;
  font-family: var(--font-texte);
  font-weight: 500;
  font-size: 13px;
  text-transform: uppercase;
  text-decoration: none;
}

/* « Vous êtes ici » dans le MENU : aplat noir, texte blanc (décision
   compagnie 2026-08-09). Les onglets de sous-page sont en couleur d'accent,
   les filtres de l'agenda en fond noir. Le !important protège l'état actif
   du survol global : un lien de page actif ne réagit pas au survol. */
.site-navigation .current-menu-item > a,
.site-navigation .current_page_parent > a,
.site-navigation .current-menu-ancestor > a {
  background: var(--logos-noir) !important;
  color: var(--logos-blanc) !important;
}

.site-navigation .site-social--panneau { display: none; }

.site-social {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 6px;   /* cale les pictos sur la ligne des entrées de menu */
}

.site-social .picto { display: block; }

/* Même survol que les textes : picto blanc sur carré noir. Le padding
   constant évite tout décalage au survol. */
.site-social a { display: inline-flex; padding: 5px; }
.site-social { gap: 6px; }
.site-social a:hover,
.site-social a:focus-visible {
  background: var(--logos-noir);
  color: var(--logos-blanc);
}

/* Sous-menus. Desktop : panneau déroulant sous l'entrée parente, aplat blanc
   cerné du filet noir, ouvert au survol et au focus clavier. */
.site-navigation li { position: relative; }

/* Bloc blanc, sans liseré : le sous-menu prolonge la colonne blanche du site.
   Au survol, le texte passe couleur encre. */
.site-navigation .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 10;
  min-width: 220px;
  width: max-content;      /* assez large pour qu'aucune entrée ne se replie */
  max-width: 70vw;
  margin: 0;
  padding: 0;              /* pas de bord blanc au-delà du premier/dernier item */
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  background: var(--logos-blanc);
  list-style: none;
}
.site-navigation .sub-menu a { white-space: nowrap; }

.site-navigation .sub-menu a:hover,
.site-navigation .sub-menu a:focus-visible {
  background: var(--logos-encre, #001721);
  color: var(--logos-blanc, #fff);
}

.site-navigation li:hover > .sub-menu,
.site-navigation li:focus-within > .sub-menu {
  display: flex;
}

.site-navigation .sub-menu a {
  display: block;
  padding: 10px 16px;
  font-size: 13px;   /* jamais plus grand que les entrées du menu (13 px) */
}

.site-navigation .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 9px;
  margin-left: 8px;
  background: currentColor;
  /* triangle texturé, pointe en bas */
  -webkit-mask-image: url(../svg/picto/chevron-plein.svg);
          mask-image: url(../svg/picto/chevron-plein.svg);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  transform: rotate(90deg);
  vertical-align: 1px;
}

/* Filet fin sous la navigation : 4,66 px, couleur encre.
   Géométrie de la maquette (conteneur 1366, contenu à 167) : le filet part à
   341 px du bord, soit 174 px du début du contenu — 26 px après le bord droit
   du logo (148 px) — et s'arrête 15 px avant le bord droit du contenu. */
.site-bandeau__filet {
  height: var(--filet-fin);
  background: var(--logos-encre);
  /* 2026-08-25 : le filet PROLONGE le pied du logo (il démarre 26 px après
     son bord droit) — son pied s'aligne donc sur celui du logo et du menu
     (rangée en flex-end), au lieu de pendre 22 px plus bas. Le mobile garde
     son propre réglage (rangée centrée, filet séparateur pleine largeur). */
  margin-top: calc(-1 * var(--filet-fin));
  margin-left: 174px;
  margin-right: 15px;
}

.site-bascule-menu {
  display: none;
  background: none;
  border: 0;
  padding: 8px;
  cursor: pointer;
  color: var(--logos-noir);
}

/* --- Pied de page -------------------------------------------------------- */

.site-pied { margin-top: 80px; }

.site-pied__filet {
  height: var(--filet-epais);
  background: var(--logos-noir);
}


.site-pied__interieur {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
  padding-top: 18px;
  padding-bottom: 40px;
}

.site-pied p {
  font-family: var(--font-texte);
  font-weight: 300;
  font-style: italic;
  font-size: 12px;
  margin: 0;
}

.site-pied ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin: 0;
  padding: 0;
}

.site-pied ul a {
  font-family: var(--font-texte);
  font-weight: 400;
  font-size: 12px;
  text-transform: uppercase;
  text-decoration: none;
}

/* Lien newsletter (pied de page et page Contact) : BOUTON à cadre, comme les
   boutons à filet du site (Réserver, onglets). Picto + texte.
   N'existe dans le DOM que si l'URL est renseignée dans Réglages LOGOS. */
.lien-newsletter,
.logos-texte .lien-newsletter {   /* double sélecteur : sur la page Contact, la
   règle générique des liens de texte (padding: 0) écrasait celle du bouton */
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 35px;
  padding: 0 20px;
  box-shadow: inset 0 0 0 2px var(--logos-noir);
  font-family: var(--font-sous-titre);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
}
.lien-newsletter__picto { width: 16px; height: 16px; flex: none; }
.lien-newsletter__picto svg { width: 100%; height: 100%; display: block; }
/* Pied de page : le bouton se cale à droite. */
.lien-newsletter--pied { margin-left: auto; align-self: center; }
.lien-newsletter:hover, .lien-newsletter:focus-visible {
  background: var(--logos-encre);
  color: var(--logos-blanc);
  box-shadow: none;
}
.contact-newsletter { margin: 0; }

/* --- Titres du contenu des pages ------------------------------------------
   Les h2/h3 saisis dans l'éditeur (pages Compagnie, Équipe, Fabrique, Contact)
   suivent les niveaux de la charte : h2 en Oswald, h3 en Ubuntu Bold. */

.logos-texte h2 {
  font-family: var(--font-sous-titre);
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin: 40px 0 12px;
}

.logos-texte h2:first-child { margin-top: 0; }

.logos-texte h3 {
  font-family: var(--font-texte);
  font-weight: 700;
  font-size: 17px;
  text-transform: uppercase;
  margin: 28px 0 8px;
}

.page-titre { font-size: clamp(42px, 7vw, 72px); margin: 0 0 26px; }

/* Visuel de tête des pages internes : cadre déchiré (mask-border), filtre
   encre + ombre portée — hauteur maquette (469 px, ancrage 32 %).
   2026-08-19 : le masque est dérivé de l'anneau carré des photos d'équipe
   (carte-bandeaux.png) — bords déchirés fins et angles carrés adoucis, à la
   place de l'ancienne pilule lisse. Slice 362 = tout l'arc d'angle du
   fichier 1100×1100 ; width 62px = son épaisseur à l'écran. */
.page-visuel {
  /* 2026-08-25 : le bloc prend le RATIO du masque (2064 × 938) au lieu de la
     hauteur maquette figée (469 px) — les coins ne se déforment plus, quelle
     que soit la largeur (~433 px de haut à pleine largeur, et la hauteur
     suit aux largeurs intermédiaires). Sous 780 px, le masque mobile
     portrait prend le relais (logos-amendements.css). */
  aspect-ratio: 2064 / 938;
  height: auto;
  margin: 0;
  background-size: cover;
  background-position: center 32%;
  -webkit-mask-image: url(../svg/carte-bandeaux.png);
          mask-image: url(../svg/carte-bandeaux.png);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  filter: brightness(1.18) contrast(1.02) url(#w-encre) saturate(0.8) drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35));
}

/* Emplacement à visuel sans visuel : le masque rempli couleur encre. */
.page-visuel--encre { background: var(--logos-encre); filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35)); }

/* 2026-08-25 — L'entrée « Accueil » du menu n'existe QUE sur mobile
   (injectée par logos_menu_accueil_mobile) : masquée dès la largeur
   desktop, où le logo tient ce rôle. */
@media (min-width: 781px) {
  .site-navigation .menu-item--accueil-mobile { display: none; }
}

/* 2026-08-25 — la hauteur fixe mobile (220 px) est SUPPRIMÉE : elle écrasait
   le masque mobile portrait (carte-mobile.png, 900 × 1120) posé par
   logos-amendements.css, chargé AVANT cette feuille — les coins arrondis se
   déformaient. Le bloc prend le RATIO du masque (aspect-ratio 900/1120),
   comme le veut la règle « jamais d'étirement ». */

/* Sous-pages : fil de rubrique (surtitre) collé au titre, comme la maquette. */
.page-fil {
  font-family: var(--font-sous-titre);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--logos-encre);
  margin: 30px 0 10px;   /* 30 px sous le visuel de tête (maquette) */
}
.page-fil:first-child,
.page-titre:first-child { margin-top: 0; }   /* le padding de page suffit */

/* Respiration au-dessus du contenu : UNE SEULE règle pour toutes les pages
   (54 px sous le filet du bandeau), portée par le conteneur — plus aucune
   marge posée au cas par cas sur les premiers éléments. C'est ce qui rendait
   les hauts de pages inégaux : chaque gabarit avait sa propre valeur. */
.logos-page { padding-top: 54px; }

.page-onglets { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 34px; }

.page-onglets a {
  font-family: var(--font-sous-titre);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
  padding: 8px 14px;
  box-shadow: inset 0 0 0 2px var(--logos-noir);
}

/* Onglet de sous-page sélectionné : la COULEUR d'accent (décision compagnie
   2026-08-19), texte noir. */
.page-onglets a[aria-current] { background: var(--logos-jaune); color: var(--logos-noir); box-shadow: none; }
/* 2026-08-20 : :not([aria-current]) ici aussi — cette règle locale doublait
   le bloc « Survol global » et rendait le survol à l'onglet ACTIF. */
.page-onglets a:not([aria-current]):hover, .page-onglets a:not([aria-current]):focus-visible { background: var(--logos-encre); color: var(--logos-blanc); box-shadow: none; }

/* Liste en ligne (collaborateurs) : tout sur une composition continue,
   séparateurs losange — décision compagnie, remplace la ligne par personne
   du modèle v2. */
.liste-inline p { display: inline; font-size: 14px; line-height: 2; }
.liste-inline br { display: none; }
.liste-inline p strong { font-family: var(--font-sous-titre); letter-spacing: 0.5px; text-transform: uppercase; font-weight: 700; padding-right: 5px; }
.liste-inline p:not(:last-of-type)::after { content: "\25C6"; font-size: 9px; vertical-align: 2px; padding: 0 10px; }

/* --- Accessibilité ------------------------------------------------------- */

.lien-evitement {
  position: absolute;
  left: -9999px;
}

.lien-evitement:focus {
  position: static;
  display: inline-block;
  padding: 10px 16px;
  background: var(--logos-jaune);
  font-weight: 500;
}

:focus-visible {
  outline: 3px solid var(--logos-encre);
  outline-offset: 2px;
}

/* --- Mobile 390 ---------------------------------------------------------- */

/* --- Tablette ------------------------------------------------------------ */
@media (max-width: 1100px) {
  :root { --page-marge: 28px; }

  /* La navigation passe sous le logo, pleine largeur, plutôt que de se
     compresser à côté : c'est la zone 781-1100 qui débordait. */
  .site-bandeau__interieur { flex-wrap: wrap; row-gap: 10px; }
  .site-navigation { order: 3; width: 100%; }
  .site-navigation ul { gap: 2px; }
  .site-social { margin-left: auto; }
}

@media (max-width: 780px) {
  :root { --page-marge: 20px; }

  .site-bandeau { padding-top: 14px; }
  .site-bandeau__filet { margin-top: 8px; }
  .logos-logo svg { height: 44px; }

  .site-bandeau__interieur { align-items: center; }

  /* Le burger n'apparaît que si le script a tourné, et la navigation ne se
     replie que dans ce cas : sans JavaScript, le menu reste déplié et
     utilisable, plutôt qu'un bouton mort devant une navigation masquée. */
  .logos-js .site-bascule-menu {
    display: inline-flex;
    position: relative;
    z-index: 30;
    margin-left: auto;   /* calé au bord droit du bandeau */
    padding: 8px 0 8px 8px;
  }

  /* Les pictos sociaux quittent le bandeau : ils vivent dans le panneau. */
  .site-bandeau .site-social { display: none; }

  .site-navigation { order: 3; width: 100%; }

  .logos-js .site-navigation[data-ouvert="false"] { display: none; }

  /* Ouvert : panneau plein écran sur fond blanc, au-dessus de la page, avec
     le bouton de fermeture qui reste en haut à droite. Entrées en Ubuntu
     Medium 22 px, aplat jaune sur l'entrée active, sociaux en bas. */
  .logos-js .site-navigation[data-ouvert="true"] {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 20;
    background: var(--logos-blanc);
    padding: 72px var(--page-marge) 32px;
    overflow-y: auto;
  }

  .logos-js .site-navigation[data-ouvert="true"] ul { padding: 0; }

  .logos-js .site-navigation[data-ouvert="true"] a {
    font-size: 17px;
    padding: 9px 0;
  }

  .logos-js .site-navigation[data-ouvert="true"] .current-menu-item > a {
    display: inline-block;
    padding: 10px 16px;
  }

  .logos-js .site-navigation[data-ouvert="true"] .site-social--panneau {
    display: flex;
    gap: 22px;
    margin-top: 36px;
    padding-top: 24px;
    border-top: var(--filet-fin) solid var(--logos-encre);
  }
  .logos-js .site-navigation[data-ouvert="true"] .site-social .picto { width: 22px; height: 22px; }

  body.logos-menu-ouvert { overflow: hidden; }

  .site-navigation ul {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 12px 0;
  }

  .site-navigation a {
    display: block;
    padding: 9px 0;
    font-size: 17px;
  }

  /* En mobile, les sous-menus restent dépliés et indentés : un déroulant au
     survol n'existe pas au doigt. */
  .site-navigation .sub-menu {
    display: flex;
    position: static;
    box-shadow: none;
    padding: 0 0 0 20px;
    min-width: 0;
  }
  .site-navigation .menu-item-has-children > a::after { content: none; }

  .site-social { order: 2; }
}

/* Mobile : hiérarchie menu / sous-menu SANS ambiguïté — entrées de premier
   niveau en gras, sous-pages en retrait le long d'un filet encre, plus
   petites et en graisse normale. */
@media (max-width: 780px) {
  .site-navigation > ul > li > a,
  .logos-js .site-navigation[data-ouvert="true"] > ul > li > a {
    font-weight: 700;
  }

  /* La double déclaration est nécessaire : le panneau ouvert remet le
     padding des ul à zéro avec une spécificité supérieure. */
  .site-navigation .sub-menu,
  .logos-js .site-navigation[data-ouvert="true"] .sub-menu {
    width: auto;
    max-width: none;
    margin: 2px 0 12px 4px;
    padding: 0 0 0 26px;   /* respiration entre le filet et le texte */
    border-left: 3px solid var(--logos-encre);
  }

  .site-navigation .sub-menu a,
  .logos-js .site-navigation[data-ouvert="true"] .sub-menu a {
    font-size: 15px;
    font-weight: 400;
    white-space: normal;
    padding: 7px 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

@media (max-width: 780px) {
  .site-bandeau__filet { margin-left: 0; }
}

/* ============================================================
   Composants de mise en page des pages internes (maquette v2) :
   filets, pastilles, titres à chevron, colonnes, citations, blocs.
   Utilisés par le contenu des pages (donnees/pages/*.html).
   ============================================================ */

/* Filet fin de section, au-dessus des colonnes et des blocs. */
.logos-texte .filet,
.filet { height: var(--filet-fin, 4.66px); background: var(--logos-encre); border: 0; margin: 0; }

/* Deux colonnes égales, une seule en mobile. */
.deux-colonnes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
}
.deux-colonnes--serre { gap: 40px; }
.colonne { display: flex; flex-direction: column; gap: 22px; }
.colonne > p { margin: 0; }

/* Grille principale 2/3 – 1/3 (contenu + bloc d'appel à droite). */
.grille-2-1 {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 60px;
  align-items: start;
}

/* Grille visuel en anneau (254 px) + texte. */
.grille-anneau {
  display: grid;
  grid-template-columns: 254px 1fr;
  gap: 56px;
  align-items: start;
}
/* Variante espacée : respiration avant le bloc quand aucun titre à chevron
   ne le précède (ex. bloc « La compagnie » de la page Logos, les sens et la
   raison). */
.grille-anneau--espace { margin-top: 62px; }
.visuel-anneau {
  width: 254px;
  height: 430px;
  background-size: cover;
  background-position: center 40%;
  -webkit-mask-image: url(../svg/anneau.png);
          mask-image: url(../svg/anneau.png);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  filter: brightness(1.18) contrast(1.02) url(#w-encre) saturate(0.8);
}

/* Visuels HORS spectacle : le filtre se CHOISIT dans le contenu de la page
   (WYSIWYG) en ajoutant une classe — encre par défaut, mauve en option.
   Bichromie encre → mauve #D08AFF, même courbe que le filtre encre. */
.visuel-anneau--mauve,
.page-visuel--mauve,
.equipe-portrait--mauve,
.photo-mauve {
  filter: brightness(1.18) contrast(1.02) url(#w-mauve) saturate(0.8);
}

/* Titre spécial (Logos Sans 32) dans le flux des pages. */
.logos-texte .titre-special,
.logos-texte .is-style-intertitre {
  font-family: var(--font-special);
  font-weight: 400;   /* 2026-08-25 : JAMAIS de graisse sur la Logos Sans — 400 partout, repli Oswald compris */
  font-size: 32px;
  line-height: 1.15;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0;
}

/* Titre de section précédé du chevron plein (triangle CSS, sans SVG). */
.titre-chevron {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 54px 0 26px;
}
.titre-chevron::before {
  content: "";
  width: 16px;
  height: 19px;
  flex: none;
  background: var(--logos-noir);
  /* triangle TEXTURÉ (bords déchirés, même famille que la Batard) */
  -webkit-mask-image: url(../svg/picto/chevron-plein.svg);
          mask-image: url(../svg/picto/chevron-plein.svg);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}

/* Titre de section mis en valeur, sans chevron : le surlignage de la charte
   (12/26/8) posé sur un titre Logos Sans. Par défaut : aplat ENCRE, texte
   blanc. Dans l'éditeur, on peut choisir la mise en valeur à la couleur d'un
   cycle en AJOUTANT sa classe au titre : « titre-aplat cycle-revolution »
   (orange) ou « titre-aplat cycle-propriete » (jaune), texte noir. */
.titre-aplat,
.logos-texte .titre-aplat,
[class*="is-style-titre-aplat"] {
  display: inline-block;
  align-self: flex-start;
  background: var(--logos-encre);
  color: var(--logos-blanc);
  padding: 12px 26px 8px;
  margin: 0 0 26px;
}
/* 2026-09-01 : Transmission rejoint la règle (le sélecteur « Style LOGOS »
   d'Elementor décline le cartouche sur TOUS les cycles). */
.titre-aplat.cycle-revolution, .logos-texte .titre-aplat.cycle-revolution,
.titre-aplat.cycle-propriete, .logos-texte .titre-aplat.cycle-propriete,
.titre-aplat.cycle-transmission, .logos-texte .titre-aplat.cycle-transmission {
  background: var(--cycle-aplat);
  color: var(--logos-noir);
}

/* Pastilles : la couleur est AUTOMATISÉE — la pastille d'un contenu lié à un
   cycle porte la classe du cycle (cycle-revolution → orange, cycle-propriete
   → jaune) ; sans cycle, c'est le mauve général (--logos-jaune). Aucune
   couleur de pastille ne s'écrit à la main. */
.pastille,
[class*="is-style-pastille"] {
  display: inline-block;
  align-self: flex-start;
  background: var(--logos-jaune);
  padding: 9px 20px 6px;
  /* toute pastille est un aplat : la typo Logos Sans y est permise */
  font-family: var(--font-special);
  font-weight: 400;   /* graisse native, pas de faux gras */
  font-size: 18px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.pastille.cycle-revolution,
.pastille.cycle-propriete,
.pastille.cycle-transmission { background: var(--cycle-aplat); }
/* Pastille d'un spectacle PASSÉ : le grisé, comme partout ailleurs. */
.pastille.spectacle-passe { background: var(--passe-lumieres, #C9C9C9); }
.pastille--orange { background: var(--revolution-lumieres, #FF8C4A); }  /* alias historique */
.pastille--titre { font-size: 22px; }

/* Citation détachée par un gros trait vertical noir. */
.citation-barre { display: flex; gap: 16px; align-items: stretch; }
.citation-barre::before { content: ""; width: 6px; background: var(--logos-noir); flex: none; }
.citation-barre p { margin: 0; font-size: 14px; line-height: 1.8; max-width: 540px; }

/* Bloc d'appel sur aplat jaune (« Accueillir la fabrique »). */
.bloc-jaune,
.is-style-bloc-accent {
  background: var(--logos-jaune);
  padding: 26px 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.logos-texte .bloc-jaune .titre-special,
.logos-texte .is-style-bloc-accent .titre-special { font-size: 32px; line-height: 1.1; }
.bloc-jaune p,
.is-style-bloc-accent p { margin: 0; font-size: 13px; line-height: 1.7; }

/* Bouton d'action : aplat noir, texte blanc. */
.bouton-noir {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  background: var(--logos-noir);
  color: var(--logos-blanc);
  padding: 0 24px;
  height: 35px;
  font-family: var(--font-special);
  font-weight: 400;   /* 2026-08-25 : graisse native Logos Sans, jamais de gras */
  font-size: 15px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
}
/* Déjà sur fond noir : inversion au survol (règle globale). */
.bouton-noir:hover, .bouton-noir:focus-visible {
  background: var(--logos-blanc);
  color: var(--logos-encre);
  box-shadow: inset 0 0 0 2px var(--logos-encre);
}

/* Étapes de la fabrique : filet AU-DESSUS du titre, titre contenu. */
.fabrique-etapes {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  margin: 0;
  padding: 0;
}
.fabrique-etapes li { display: flex; flex-direction: column; gap: 10px; }
.fabrique-etapes .filet { order: -1; }
.fabrique-etape__num {
  font-family: var(--font-sous-titre);
  font-weight: 500;
  font-size: 18px;
  text-transform: uppercase;
}
.fabrique-etapes p { margin: 0; font-size: 13px; line-height: 1.7; }

/* Corps de texte des colonnes maquette. */
.texte-15 { font-size: 15px; line-height: 1.9; }
.texte-14 { font-size: 14px; line-height: 1.8; }
.texte-13 { font-size: 13px; line-height: 1.75; }

.logos-texte .deux-colonnes p,
.logos-texte .grille-anneau p { margin: 0; }

@media (max-width: 900px) {
  .grille-2-1 { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 780px) {
  .deux-colonnes { grid-template-columns: 1fr; gap: 34px; }
  .grille-anneau { grid-template-columns: 1fr; }
  .fabrique-etapes { grid-template-columns: 1fr; }
}

/* Variantes d'espacement des colonnes + priorité du titre à chevron. */
.colonne--24 { gap: 24px; }
.colonne--14 { gap: 14px; }
.logos-texte .titre-chevron { margin: 54px 0 26px; }
.deux-colonnes--34 { gap: 34px; }
.logos-texte .titre-special--espace { margin-top: 28px; }

/* ==========================================================================
   Survol GLOBAL (cahier des charges 2026-08-09).
   Remplace toutes les conventions précédentes (jaune menu, aplat 20 %,
   soulignements, effets animés). Tout lien texte, entrée de menu, onglet et
   bouton : fond encre OPAQUE derrière le texte, texte blanc, bascule nette —
   aucune animation. S'applique partout et uniformément.
   Les modules chargés après ce fichier (agenda, spectacle, accueil) ne
   définissent plus leurs propres survols : ils s'alignent sur cette règle.
   ========================================================================== */

/* Les liens de page ACTIFS (entrée de menu courante, onglet courant) ne
   réagissent pas au survol : leur état « vous êtes ici » prime. */
.site-navigation a:hover, .site-navigation a:focus-visible,
.site-pied a:hover, .site-pied a:focus-visible,
.page-onglets a:not([aria-current]):hover,
.page-onglets a:not([aria-current]):focus-visible,
.logos-texte a:hover, .logos-texte a:focus-visible,
.fiche-bloc a:hover, .fiche-bloc a:focus-visible,
.agenda-ligne__lieu a:hover, .agenda-ligne__lieu a:focus-visible,
.fiche-retour:hover, .fiche-retour:focus-visible,
.fiche-dates__lien:hover, .fiche-dates__lien:focus-visible,
.agenda-annees a:hover, .agenda-annees a:focus-visible,
.agenda-suite a:hover, .agenda-suite a:focus-visible,
.agenda-ligne__type-lien:hover, .agenda-ligne__type-lien:focus-visible,
.agenda-ligne__spectacle:hover, .agenda-ligne__spectacle:focus-visible,
.agenda-ligne__reserver:hover, .agenda-ligne__reserver:focus-visible,
.agenda-chip:hover, .agenda-chip:focus-visible,
.agenda-lien-filtre:hover, .agenda-lien-filtre:focus-visible,
.accueil-entree:hover, .accueil-entree:focus-visible,
.logos-bouton--vide:hover, .logos-bouton--vide:focus-visible,
.logos-bouton--jaune:hover, .logos-bouton--jaune:focus-visible,
.lien-evitement:focus {
  background: var(--logos-encre);
  color: var(--logos-blanc);
  box-shadow: none;
  text-decoration: none;
  transition: none;
}

/* 2026-09-01 — un lien qui porte une IMAGE (mosaïque cliquable, visuel lié
   dans une page) ne reçoit PAS l'aplat encre du survol : le fond noir
   débordait autour de la photo. Les photos gardent leurs propres règles de
   survol (portraits d'équipe, pastilles liées). */
.logos-texte a:has(img):hover, .logos-texte a:has(img):focus-visible,
.fiche-bloc a:has(img):hover, .fiche-bloc a:has(img):focus-visible {
  background: none;
}

/* ==========================================================================
   Visuels HORS spectacle (tête de page Fabrique, anneau de la page
   compagnie) : bichromie encre → COULEUR PRINCIPALE en continu, comme les
   portraits d'équipe — animation d'arrivée, éclairs, et survol inversé
   (la couleur se retire au survol). Deux couches ::before/::after, le masque
   du parent découpe l'ensemble ; l'ombre portée reste sur le parent.
   Le remplissage encre sans image (--encre) n'est pas concerné.
   ========================================================================== */

.page-visuel:not(.page-visuel--encre),
.visuel-anneau {
  position: relative;
}
.page-visuel:not(.page-visuel--encre) { filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35)); }
.visuel-anneau { filter: none; }

/* 2026-09-01 (rév. soir) — LE DÉFAUT de tous les visuels hors cycle est
   l'ENCRE DOUCE (la chaîne des portraits d'équipe et de la mosaïque). La
   bichromie PITAYA reste POSSIBLE, uniquement là où elle existait — bandeau
   de page (radio « Traitement du visuel » : classe .page-visuel--pitaya) et
   visuel anneau (style de bloc « Anneau pitaya ») — jamais par défaut. */
.page-visuel:not(.page-visuel--encre)::before,
.visuel-anneau::before {
  content: "";
  position: absolute;
  inset: 0;
  background: inherit;
  filter: brightness(1.06) contrast(1.03) url(#w-encre-doux);
}

/* Bandeau SANS filtre (« Aucun filtre » : image déjà traitée) : les couches
   s'effacent, l'image s'affiche telle quelle — masque et ombre conservés. */
.page-visuel--brut::before,
.page-visuel--brut::after {
  content: none;
}

/* PITAYA à la demande : les DEUX couches historiques (encre au repos +
   accent à 0.9 — réglages compagnie du 2026-09-01 : brightness 1.3 /
   contrast 2.2 / saturate 0.85, dupliqués dans le filtre composite
   #w-anneau-image de functions.php : modifier les DEUX ensemble). */
.page-visuel--pitaya::before,
.visuel-anneau--pitaya::before {
  filter: brightness(1.18) contrast(1.02) url(#w-encre) saturate(0.8);
}
.page-visuel--pitaya::after,
.visuel-anneau--pitaya::after {
  content: "";
  position: absolute;
  inset: 0;
  background: inherit;
  filter: brightness(1.3) contrast(2.2) url(#w-accent) saturate(0.85);
  /* 0.9 : la couche encre transparaît légèrement sous la couleur. */
  opacity: 0.9;
}

/* Cas des éléments DÉJÀ sur fond encre/noir (bouton principal, « Nous
   écrire », Envoyer, Teaser) : inversion — fond blanc, texte encre — pour que
   le changement d'état reste perceptible. Le filet 2 px garde la silhouette. */
.logos-bouton:not(.logos-bouton--vide):not(.logos-bouton--jaune):hover,
.logos-bouton:not(.logos-bouton--vide):not(.logos-bouton--jaune):focus-visible,
.contact-envoyer:hover, .contact-envoyer:focus-visible {
  background: var(--logos-blanc);
  color: var(--logos-encre);
  box-shadow: inset 0 0 0 2px var(--logos-encre);
  transition: none;
}

/* ==========================================================================
   Règle typographique LOGOS SANS (décision compagnie 2026-08-19) :
   la Logos Sans ne peut exister que SUR UN APLAT DE COULEUR (encre, cycle,
   accent, noir). Hors aplat, c'est Oswald qui la remplace.
   La Batard Sec n'est PAS concernée : elle reste sur les grands titres,
   y compris sur fond blanc.
   ========================================================================== */

/* Hors aplat : Oswald. */
.titre-special,
.logos-texte .titre-special,
.is-style-intertitre,
.logos-texte .is-style-intertitre {
  font-family: var(--font-sous-titre);
}
.logos-bouton--vide { font-family: var(--font-sous-titre); }   /* bouton à fond blanc */

/* Sur aplat : la Logos Sans reste. */
.titre-aplat,
.logos-texte .titre-aplat,
[class*="is-style-titre-aplat"],
.bloc-jaune .titre-special,
.logos-texte .bloc-jaune .titre-special,
.is-style-bloc-accent .titre-special {
  font-family: var(--font-special);
  font-weight: 400;   /* graisse native de la Logos Sans, pas de faux gras */
}

/* Titre de section sans chevron ni aplat (« Les collaborateurs ») : la même
   respiration sous le titre que les autres sections (26 px). */
.logos-texte .equipe-collaborateurs > .titre-special {
  margin-bottom: 26px;
}

/* --------------------------------------------------------------------------
   2026-08-20 — Pied de page : bande des logos de soutiens (Réglages LOGOS →
   Pied de page, identifiants d'images séparés par des virgules). Logos en
   nuances de gris pour rester sous la charte ; la liste complète et les
   catégories vivent sur la page Partenaires & soutiens.
   -------------------------------------------------------------------------- */
.site-pied__soutiens {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 32px;
  align-items: center;
  justify-content: center;
  margin: 34px 0 8px;
}
.site-pied__soutiens img {
  max-height: 44px;
  width: auto;
  /* dégradé encre : la même bichromie que les photos du site */
  filter: brightness(1.18) contrast(1.02) url(#w-encre) saturate(0.8);
}

/* 2026-08-20 — Grille de logos des partenaires ([logos_partenaires]) : même
   traitement que la bande du pied de page, en plus grand. Nuances de gris :
   la couleur reste réservée aux cycles et à l'accent. */
.grille-logos {
  display: flex;
  flex-wrap: wrap;
  /* 2026-09-01 — logos agrandis d'un tiers (décision compagnie), gouttières
     élargies en proportion. */
  gap: 28px 48px;
  align-items: center;
  margin: 18px 0 34px;
}
.grille-logos img {
  /* 2026-09-28 — logos NORMALISÉS (retour compagnie, 3e passe) : chaque
     logo reçoit SA taille en style en ligne, calculée en PHP pour une
     AIRE VISUELLE ÉQUIVALENTE (logos_logo_style — un carré ~120×120, un
     bandeau allongé ~240×60) : c'est ce qui rend les tailles perçues
     homogènes, un cadre fixe faisant paraître les carrés massifs et les
     allongés minuscules. Ci-dessous : repli si les dimensions du fichier
     sont inconnues. Un fichier < 220 px de haut sera flou — l'admin le
     signale à l'enregistrement de la fiche partenaire. */
  width: 180px;
  height: 90px;
  object-fit: contain;
  /* dégradé encre : la même bichromie que les photos du site */
  filter: brightness(1.18) contrast(1.02) url(#w-encre) saturate(0.8);
}

@media (max-width: 700px) {
  .grille-logos { gap: 20px 32px; }
  /* Téléphone : hauteur unique, les styles en ligne sont neutralisés. */
  .grille-logos img { width: auto !important; height: 72px !important; }
}

/* 2026-08-20 — Fabrique itinérante fusionnée en une page : les rubriques
   (Résidences-enquêtes, Créations partagées) sont des aplats espacés.
   Spécificité alignée sur .logos-texte .titre-aplat (margin: 0 0 26px),
   sinon la rubrique collait au bloc précédent. Le sous-titre qui suit
   colle à sa rubrique : l'espace appartient à l'aplat, pas au sous-titre. */
.titre-rubrique,
.logos-texte .titre-aplat.titre-rubrique {
  margin: 64px 0 16px;
}
.logos-texte .titre-rubrique + .titre-special,
.logos-texte .titre-rubrique + h3,
.logos-texte .titre-rubrique + p { margin-top: 0; }

/* 2026-08-20 — Pages de la Fabrique itinérante : le picto fabrique
   accompagne le fil de rubrique (le nom de la page mère). */
.page-fil__picto { width: 14px; height: 16px; margin-right: 10px; vertical-align: -3px; }

/* 2026-08-20 — Les noms de spectacles en pastille-titre sont des LIENS vers
   les fiches : même habillage que la pastille, survol selon la règle globale. */
.pastille a { color: inherit; text-decoration: none; font-weight: inherit; }

/* 2026-08-25 — Pastille-TITRE de spectacle cliquable (pages de la fabrique :
   Huellas, Compte à rebours…) : le BLOC complet prend le survol, comme les
   titres de spectacles dans l'agenda. Le lien remplit la pastille, et c'est
   elle qui s'inverse — le survol propre du lien est neutralisé. */
.logos-texte .pastille > a { display: block; }
.logos-texte .pastille:has(> a:hover),
.logos-texte .pastille:has(> a:focus-visible) {
  background: var(--logos-encre);
  color: var(--logos-blanc);
}
.logos-texte .pastille > a:hover,
.logos-texte .pastille > a:focus-visible {
  background: none;
  color: inherit;
}


/* --------------------------------------------------------------------------
   2026-08-20 — STYLES DE BLOCS de l'éditeur visuel (panneau « Styles »).
   Les alias is-style-* sont greffés sur les règles de la charte ci-dessus ;
   ici, seules les VARIANTES de couleur, qui ne peuvent pas hériter du
   contexte de cycle puisqu'elles tiennent en une seule classe.
   -------------------------------------------------------------------------- */
.is-style-titre-aplat-revolution   { background: var(--revolution-lumieres); color: var(--logos-noir); }
.is-style-titre-aplat-possessions  { background: var(--propriete-lumieres);  color: var(--logos-noir); }
.is-style-titre-aplat-transmission { background: var(--transmission-lumieres); color: var(--logos-noir); }
.is-style-pastille-revolution   { background: var(--revolution-lumieres); }
.is-style-pastille-possessions  { background: var(--propriete-lumieres); }
.is-style-pastille-transmission { background: var(--transmission-lumieres); }
.is-style-pastille-passe        { background: var(--passe-lumieres, #C9C9C9); }
/* Exergue à barre : la version « paragraphe seul » de .citation-barre. */
.is-style-exergue {
  border-left: 6px solid var(--logos-noir);
  padding-left: 16px;
  line-height: 1.8;
  max-width: 540px;
}

/* 2026-08-20 — BLOCS : sur les thèmes sans theme.json, WordPress insère un
   conteneur interne dans chaque groupe (.wp-block-group__inner-container),
   qui s'intercale entre nos grilles (grille-2-1, deux-colonnes…) et leurs
   colonnes. display:contents le rend transparent pour la mise en page :
   les enfants réels retrouvent leur parent de grille. */
.wp-block-group__inner-container { display: contents; }

/* 2026-08-20 — Fiches fabrique : la pastille de nature (résidence, recueil,
   création partagée) se cale entre le titre et le contenu. */
.fabrique-nature { margin: 8px 0 30px; }

/* --------------------------------------------------------------------------
   2026-08-24 — LE RESTE DE LA CHARTE AU CLIC : les derniers blocs « HTML
   personnalisé » des pages deviennent des blocs natifs stylés (panneau
   « Styles »). Alias greffés sur les règles de la charte ci-dessus.
   -------------------------------------------------------------------------- */

/* Filet fin : bloc séparateur natif, style « Filet fin (charte) ». */
hr.wp-block-separator.is-style-filet {
  height: var(--filet-fin, 4.66px);
  background: var(--logos-encre);
  border: 0;
  margin: 0;
  width: 100%;
  opacity: 1;
}

/* Titre de section à chevron : reprend .titre-chevron pour les titres posés
   au clic (le triangle texturé est le même masque SVG). */
.logos-texte .is-style-titre-chevron {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 54px 0 26px;
}
.logos-texte .is-style-titre-chevron::before {
  content: "";
  width: 16px;
  height: 19px;
  flex: none;
  background: var(--logos-noir);
  -webkit-mask-image: url(../svg/picto/chevron-plein.svg);
          mask-image: url(../svg/picto/chevron-plein.svg);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}

/* Tailles de texte de la maquette, en style de paragraphe. */
.is-style-texte-14 { font-size: 14px; line-height: 1.8; }
.is-style-texte-13 { font-size: 13px; line-height: 1.75; }

/* Visuel en anneau : bloc image natif. L'<img> n'a pas de pseudo-éléments,
   la superposition encre + couleur des .visuel-anneau est rejouée par le
   filtre composite #w-anneau-image (généré en PHP, voir
   logos_filtre_anneau_image) — composition mathématiquement identique. */
.wp-block-image.is-style-visuel-anneau,
.wp-block-image.is-style-visuel-anneau-pitaya,
.wp-block-image.is-style-visuel-anneau-mauve {
  margin: 0;
  width: 254px;
}
.wp-block-image.is-style-visuel-anneau img,
.wp-block-image.is-style-visuel-anneau-pitaya img,
.wp-block-image.is-style-visuel-anneau-mauve img {
  display: block;
  width: 254px;
  height: 430px;
  object-fit: cover;
  /* 2026-09-01 — le cadrage se règle dans la page (boîte « Cadrage des
     visuels », cadre « Anneau — visuel de la page ») ; défaut historique. */
  object-position: var(--focale-anneau-page, center 40%);
  -webkit-mask-image: url(../svg/anneau.png);
          mask-image: url(../svg/anneau.png);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}
/* 2026-09-01 (rév. soir) : le DÉFAUT de l'anneau est l'encre douce ; le
   pitaya (filtre composite deux couches) devient le style « Anneau
   pitaya », à choisir. */
.wp-block-image.is-style-visuel-anneau img {
  filter: brightness(1.06) contrast(1.03) url(#w-encre-doux);
}
.wp-block-image.is-style-visuel-anneau-pitaya img {
  filter: url(#w-anneau-image);
}
.wp-block-image.is-style-visuel-anneau-mauve img {
  filter: brightness(1.18) contrast(1.02) url(#w-mauve) saturate(0.8);
}

/* Boutons de la charte sur le bloc Bouton natif (mêmes règles que
   .logos-bouton et ses variantes, y compris l'inversion au survol). */
.wp-block-button.is-style-logos-noir .wp-block-button__link,
.wp-block-button.is-style-logos-jaune .wp-block-button__link,
.wp-block-button.is-style-logos-vide .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  height: 35px;
  padding: 0 24px;
  border-radius: 0;
  font-family: var(--font-special);
  font-weight: 400;   /* 2026-08-25 : graisse native Logos Sans, jamais de gras */
  font-size: 15px;
  letter-spacing: 1px;
  text-decoration: none;
}
.wp-block-button.is-style-logos-noir .wp-block-button__link {
  background: var(--logos-noir);
  color: var(--logos-blanc);
  box-shadow: inset 0 0 0 1px #707070;
}
.wp-block-button.is-style-logos-jaune .wp-block-button__link {
  background: var(--logos-jaune);
  color: var(--logos-noir);
  box-shadow: none;
}
.wp-block-button.is-style-logos-vide .wp-block-button__link {
  background: var(--logos-blanc);
  color: var(--logos-noir);
  box-shadow: inset 0 0 0 2px var(--logos-noir);
  font-family: var(--font-sous-titre);
}
.wp-block-button.is-style-logos-noir .wp-block-button__link:hover,
.wp-block-button.is-style-logos-noir .wp-block-button__link:focus-visible {
  background: var(--logos-blanc);
  color: var(--logos-noir);
  box-shadow: inset 0 0 0 2px var(--logos-noir);
  transition: none;
}
.wp-block-button.is-style-logos-jaune .wp-block-button__link:hover,
.wp-block-button.is-style-logos-jaune .wp-block-button__link:focus-visible,
.wp-block-button.is-style-logos-vide .wp-block-button__link:hover,
.wp-block-button.is-style-logos-vide .wp-block-button__link:focus-visible {
  background: var(--logos-encre);
  color: var(--logos-blanc);
  box-shadow: none;
  transition: none;
}

/* Étapes de la fabrique en BLOCS NATIFS (groupe .fabrique-etapes > groupes
   .fabrique-etape) : mêmes règles que l'ancien <ol> — la grille .fabrique-etapes
   ci-dessus s'applique déjà (sélecteur de classe), reste l'équivalent du li. */
.fabrique-etapes .fabrique-etape {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
/* Le numéro garde sa taille face à « .fabrique-etapes p » (spécificité). */
.fabrique-etapes .fabrique-etape__num { font-size: 18px; }

/* 2026-08-25 — Titres de pages PLUS GROS sur mobile (décision compagnie) :
   une seule échelle pour tous les h1 (pages de rubrique, fiches, agenda,
   spectacles) — 54 px minimum au lieu de 47/42. Sélecteur h1.logos-titre-1 :
   la spécificité (0,1,1) bat les clamp propres des MODULES chargés après
   cette feuille (.fiche-titre, .agenda-titre, .archive-spectacles__titre). */
@media (max-width: 780px) {
  h1.logos-titre-1 {
    font-size: clamp(54px, 14vw, 68px);
  }
}

/* 2026-08-25 — LA RÈGLE DU FILET (dégagée avec la compagnie) : le filet fin
   apparaît AU-DESSUS de toute unité de contenu posée SUR FOND BLANC —
   colonne, section, intertitre de premier niveau, titre sur aplat ouvrant
   une section en cours de colonne. JAMAIS en dessous. JAMAIS sur une unité
   qui porte son propre fond (bloc jaune : l'aplat se délimite lui-même).
   Jamais de doublon : filet manuel en tête d'unité, colonne ouvrant sur un
   bloc à aplat, ou bloc suivant un intertitre → pas de second trait. Les
   CONTENEURS (groupes, grilles) n'en portent pas : leurs colonnes s'en
   chargent. */
/* La garde couvre les deux générations de balisage : enfant direct, ou
   à travers l'enveloppe interne des groupes (wp-block-group__inner-container,
   neutralisée par display:contents mais présente dans le HTML). */
/* Une colonne qui COMMENCE par un filet manuel ou par un bloc jaune (qui
   porte son propre trait) n'en reçoit pas de second. */
.logos-texte :is(.colonne, .wp-block-column):not(.colonne--sans-trait):not(
  :has(> :is(.wp-block-separator, .bloc-jaune, .is-style-bloc-accent, .pastille, [class*="is-style-pastille"]):first-child),
  :has(> .wp-block-group__inner-container > :is(.wp-block-separator, .bloc-jaune, .is-style-bloc-accent, .pastille, [class*="is-style-pastille"]):first-child)
) {
  border-top: var(--filet-fin, 4.66px) solid var(--logos-encre);
  padding-top: 20px;
}
/* Seuls les titres de premier niveau À CHEVRON ouvrent une section à trait
   (« Les cycles »…) — les pages à sections plates (mentions légales,
   partenaires) n'ont pas de filet entre leurs sections (décision 2026-08-25). */
.logos-texte > h2.titre-chevron,
.logos-texte > h3.titre-chevron {
  border-top: var(--filet-fin, 4.66px) solid var(--logos-encre);
  padding-top: 20px;
}

/* 2026-08-25 (complément) — Trait au-dessus du bloc « Le noyau dur » de
   l'Équipe (section pleine largeur sur fond blanc). L'essai de trait
   au-dessus des titres sur aplat EN COURS de colonne (« Résidences-
   enquêtes », « Créations partagées ») est ANNULÉ le même jour : le titre
   sur aplat se délimite par son fond, comme le bloc jaune. */
.logos-texte .equipe-noyau {
  border-top: var(--filet-fin, 4.66px) solid var(--logos-encre);
  padding-top: 24px;
}
/* Colonne explicitement SANS trait automatique (posé par les gabarits qui
   dessinent leur propre filet, ex. fiche fabrique). */
.logos-texte .colonne--sans-trait {
  border-top: 0;
  padding-top: 0;
}
