/*
Theme Name: Université Libre de Psychologie
Theme URI: https://universitelibrepsychologie.cc/
Author: Armand Shneor
Author URI: https://armandshneor.info/
Description: Thème pour l'Université Libre de Psychologie — conférences et formations en psychologie, philosophie et neurosciences. Direction « Amphithéâtre » : bleu de nuit, or vieilli et grenat sur parchemin, titrage en Libre Caslon et texte en Literata. Page d'accueil composée en affiche de conférence, relevé de séances alimenté par les événements.
Version: 2.5.1
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ulp
Tags: education, blog, one-column, custom-menu, custom-logo, featured-images, translation-ready
*/

/* =========================================================================
   AMPHITHÉÂTRE
   Quatre matières : bleu de nuit (l'institution), or vieilli (le signal rare),
   grenat (l'appel), parchemin (le sol). Le texte n'est jamais noir : il est
   bleu de nuit, ce qui donne à la page une seule famille chromatique.
   ========================================================================= */

#ulp *,#ulp *::before,#ulp *::after{box-sizing:border-box}

#ulp{
  /* Amphithéâtre (défaut) */
  --nuit:#12233F;
  --nuit-clair:#24395C;
  --or:#C1913C;
  --or-sombre:#8E6A24;
  --grenat:#7E2231;
  --grenat-sombre:#5E1725;
  --parchemin:#F1EBDC;
  --parchemin-clair:#F8F4EA;

  --encre:var(--nuit);
  --encre-douce:#4A5876;
  --filet:rgba(18,35,63,.18);
  --filet-fin:rgba(18,35,63,.10);
  --filet-clair:rgba(241,235,220,.28);

  --titre:"Libre Caslon Display",Georgia,"Times New Roman",serif;
  --lecture:"Literata",Georgia,serif;

  --marge:clamp(20px,5vw,72px);
  --large:1180px;

  margin:0;background:var(--parchemin);color:var(--encre);
  font-family:var(--lecture);font-size:17px;line-height:1.68;
  font-weight:400;-webkit-font-smoothing:antialiased;
}

/* Chaire et pierre */
#ulp[data-palette="chaire"]{
  --nuit:#1E2A4A;
  --nuit-clair:#33406A;
  --or:#A8622C;
  --or-sombre:#7E4519;
  --grenat:#6B1F2B;
  --grenat-sombre:#4E1420;
  --parchemin:#E6E0D2;
  --parchemin-clair:#F0EBDF;
  --encre-douce:#525C79;
  --filet:rgba(30,42,74,.20);
  --filet-fin:rgba(30,42,74,.11);
  --filet-clair:rgba(230,224,210,.28);
}

/* Salle de lecture */
#ulp[data-palette="salle"]{
  --nuit:#173F31;
  --nuit-clair:#2A5A48;
  --or:#B08A3E;
  --or-sombre:#836223;
  --grenat:#B4531F;
  --grenat-sombre:#8A3D13;
  --parchemin:#EFE7D6;
  --parchemin-clair:#F7F1E4;
  --encre-douce:#42604F;
  --filet:rgba(23,63,49,.20);
  --filet-fin:rgba(23,63,49,.11);
  --filet-clair:rgba(239,231,214,.28);
}

#ulp img{max-width:100%;display:block}
:where(#ulp) a{color:inherit;text-decoration:none}
#ulp p{margin:0 0 1em}
#ulp ul{margin:0;padding:0;list-style:none}
#ulp h1,#ulp h2,#ulp h3,#ulp h4{margin:0;font-family:var(--titre);font-weight:400;
  line-height:1.12;letter-spacing:-.012em}
#ulp :focus-visible{outline:2px solid var(--or);outline-offset:3px}

.ulp-shell{max-width:var(--large);margin:0 auto;padding-inline:var(--marge)}

/* Mention : petite capitale espacée, en or. Le seul usage systématique de l'or. */
.ulp-mention{font-family:var(--lecture);font-size:.72rem;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;line-height:1;color:var(--or-sombre)}

/* Filet signature : grenat court, or long */
.ulp-encres{display:flex;height:2px;margin:clamp(1.2rem,2.4vw,2rem) 0;max-width:280px}
.ulp-encres i{display:block;height:100%}
.ulp-encres i:nth-child(1){flex:0 0 44px;background:var(--grenat)}
.ulp-encres i:nth-child(2){flex:0 0 10px;background:transparent}
.ulp-encres i:nth-child(3){flex:1;background:var(--or)}
.ulp-encres i:nth-child(4){flex:0 0 10px;background:transparent}
.ulp-encres i:nth-child(5){flex:0 0 18px;background:var(--filet)}

/* Boutons */
#ulp .ulp-bouton{display:inline-block;font-family:var(--lecture);font-size:.76rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;padding:1em 1.7em;
  background:var(--nuit);color:var(--parchemin-clair);border:1px solid var(--nuit);
  cursor:pointer;transition:background .2s,color .2s,border-color .2s}
#ulp .ulp-bouton:hover{background:var(--nuit-clair);border-color:var(--nuit-clair)}
#ulp .ulp-bouton-vide{background:transparent;color:var(--encre)}
#ulp .ulp-bouton-vide:hover{background:var(--nuit);color:var(--parchemin-clair)}
#ulp .ulp-bouton-corail{background:var(--grenat);border-color:var(--grenat);color:var(--parchemin-clair)}
#ulp .ulp-bouton-corail:hover{background:var(--grenat-sombre);border-color:var(--grenat-sombre)}
#ulp .ulp-bouton-blanc{background:var(--parchemin-clair);border-color:var(--parchemin-clair);
  color:var(--nuit)}
#ulp .ulp-bouton-blanc:hover{background:transparent;color:var(--parchemin-clair);
  border-color:var(--parchemin-clair)}

.ulp-skip{position:absolute;left:-9999px;background:var(--nuit);color:var(--parchemin-clair);
  padding:.8em 1.2em;z-index:99}
.ulp-skip:focus{left:0;top:0}

/* =========================================================================
   MANCHETTE
   ========================================================================= */
.ulp-manchette{background:var(--parchemin);border-bottom:1px solid var(--filet);
  position:relative;z-index:30}
.ulp-manchette-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding-block:1.4rem}
.ulp-logo{font-family:var(--titre);font-size:1.22rem;line-height:1.15;white-space:nowrap;
  letter-spacing:.01em}
.ulp-logo span{display:block;font-family:var(--lecture);font-size:.62rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:var(--or-sombre);margin-top:.4rem}
.ulp-logo img{max-height:56px;width:auto}
.ulp-menu{display:flex;align-items:center;gap:1.7rem}
.ulp-menu a{font-family:var(--lecture);font-size:.74rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;padding-bottom:.3rem;border-bottom:1px solid transparent;
  transition:border-color .2s,color .2s}
#ulp .ulp-menu a:hover{border-bottom-color:var(--or);color:var(--or-sombre)}
#ulp .ulp-menu .ulp-bouton{padding:.75em 1.2em;border-bottom-width:1px;color:var(--parchemin-clair)}
#ulp .ulp-menu .ulp-bouton:hover{color:var(--parchemin-clair);border-color:var(--nuit-clair);
  background:var(--nuit-clair)}
.ulp-declic{display:none;background:transparent;border:1px solid var(--filet);
  color:var(--encre);padding:.6em 1em;font-family:var(--lecture);font-size:.7rem;
  font-weight:600;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}

/* Bandeau */
.ulp-dateline{background:var(--nuit);color:var(--parchemin);font-family:var(--lecture);
  font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.ulp-dateline-in{display:flex;flex-wrap:wrap;gap:.6rem 2rem;padding-block:.8rem}

@media(max-width:960px){
  .ulp-declic{display:block}
  .ulp-menu{position:absolute;top:100%;left:0;right:0;background:var(--parchemin);
    border-bottom:1px solid var(--filet);flex-direction:column;align-items:stretch;gap:0;
    padding:0 var(--marge) 1.4rem;display:none}
  .ulp-menu[data-ouvert]{display:flex}
  .ulp-menu a{padding-block:1rem;border-bottom:1px solid var(--filet-fin)}
  .ulp-menu .ulp-bouton{margin-top:1.2rem;text-align:center;border:1px solid var(--nuit)}
}

/* =========================================================================
   AFFICHE D'OUVERTURE
   Motif de fond : un orateur en toge sur son estrade, bras levé, les gradins
   de l'amphithéâtre en arcs derrière lui. Posé en masque : il prend la
   couleur --or de la palette active.

   DEUX AUTRES MOTIFS SONT LIVRÉS dans assets/img/ — il suffit de changer les
   deux url() et les valeurs de position :
     amphitheatre.svg (plan elliptique du Colisée, vu de dessus)
       right:-200px; top:50%; transform:translateY(-50%);
       width:min(720px,66vw); height:min(576px,53vw);
     arcades.svg (façade à trois étages d'arches, en frise)
       right:0; left:0; top:auto; bottom:0; transform:none;
       width:100%; height:min(300px,32vw); mask-position:right bottom;

   Pour n'avoir aucun motif : supprimer le bloc @supports.
   ========================================================================= */
.ulp-affiche{padding-block:clamp(3rem,7vw,5.5rem) 0;position:relative;overflow:hidden}
.ulp-affiche>.ulp-shell{position:relative;z-index:2}

@supports ((-webkit-mask-image:url("assets/img/orateur.svg")) or (mask-image:url("assets/img/orateur.svg"))){
  .ulp-affiche::before{content:"";position:absolute;z-index:1;pointer-events:none;
    right:-20px;bottom:0;
    width:min(320px,28vw);height:min(468px,41vw);
    background:var(--or);opacity:.3;
    -webkit-mask:url("assets/img/orateur.svg") no-repeat right bottom/contain;
    mask:url("assets/img/orateur.svg") no-repeat right bottom/contain}
}

.ulp-affiche-grille{display:grid;grid-template-columns:1fr 310px;gap:clamp(2rem,5vw,4.5rem)}
.ulp-titre-geant{font-size:clamp(2.6rem,7.4vw,5.4rem);line-height:1.02;letter-spacing:-.022em}
.ulp-titre-geant em{font-style:italic;color:var(--grenat)}
.ulp-devise{font-family:var(--lecture);font-size:clamp(1.06rem,1.9vw,1.28rem);line-height:1.6;
  max-width:36ch;margin:0;color:var(--encre-douce)}
.ulp-colonne-note{border-top:2px solid var(--nuit);padding-top:1.3rem;font-size:.97rem;
  color:var(--encre-douce)}
.ulp-colonne-note .ulp-mention{display:block;margin-bottom:1rem}
@media(max-width:880px){
  .ulp-affiche-grille{grid-template-columns:1fr}
  .ulp-affiche::before{width:180px;height:264px;right:-14px;opacity:.22}
}

/* =========================================================================
   LA PROCHAINE SÉANCE
   ========================================================================= */
.ulp-prochaine{background:var(--nuit);color:var(--parchemin);
  margin-top:clamp(3rem,6vw,4.5rem)}
.ulp-prochaine-in{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(1.6rem,4vw,3.2rem);
  align-items:center;padding-block:clamp(2.2rem,4.5vw,3.2rem)}
.ulp-jour{font-family:var(--titre);line-height:.86;text-align:center;color:var(--or);
  border-right:1px solid var(--filet-clair);padding-right:clamp(1.4rem,3vw,2.6rem);margin:0}
.ulp-jour .n{display:block;font-size:clamp(3.6rem,8vw,5.6rem)}
.ulp-jour .m{display:block;font-family:var(--lecture);font-size:.7rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;margin-top:.7rem;color:var(--parchemin)}
.ulp-prochaine .ulp-mention{display:block;margin-bottom:1rem;color:var(--or)}
.ulp-prochaine h2{font-size:clamp(1.6rem,3.4vw,2.5rem);margin-bottom:.9rem}
.ulp-prochaine p{margin:0;max-width:62ch;color:rgba(241,235,220,.82)}
.ulp-horaire{font-family:var(--lecture);font-size:.72rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;margin-top:1.2rem;color:rgba(241,235,220,.7)}
@media(max-width:880px){
  .ulp-prochaine-in{grid-template-columns:1fr;gap:1.6rem}
  .ulp-jour{display:flex;align-items:baseline;gap:.8rem;border-right:0;padding-right:0;
    border-bottom:1px solid var(--filet-clair);padding-bottom:1.2rem;text-align:left}
  .ulp-jour .n{font-size:3.2rem}
}

/* =========================================================================
   SECTIONS
   ========================================================================= */
.ulp-bloc{padding-block:clamp(3.5rem,7vw,5.5rem)}
.ulp-tete-bloc{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;
  border-bottom:1px solid var(--filet);padding-bottom:1.1rem;margin-bottom:2.4rem}
.ulp-tete-bloc h2{font-size:clamp(1.7rem,3.6vw,2.6rem)}
.ulp-tete-bloc .ulp-mention{white-space:nowrap;padding-bottom:.5rem}
.ulp-chapo{max-width:62ch;font-size:1.08rem;color:var(--encre-douce);margin-bottom:2.8rem}

/* Trois voies : colonnes séparées par des filets */
.ulp-voies{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.ulp-voie{padding:0 2.2rem 0 0;border-right:1px solid var(--filet-fin)}
.ulp-voie+.ulp-voie{padding-left:2.2rem}
.ulp-voie:last-child{border-right:0;padding-right:0}
.ulp-voie h3{font-size:1.4rem;margin-bottom:.8rem}
.ulp-voie p{color:var(--encre-douce);font-size:1rem}
#ulp .ulp-voie a{font-family:var(--lecture);font-size:.72rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--or-sombre);border-bottom:1px solid var(--or);
  padding-bottom:3px}
#ulp .ulp-voie a:hover{color:var(--grenat);border-bottom-color:var(--grenat)}
@media(max-width:820px){
  .ulp-voies{grid-template-columns:1fr}
  .ulp-voie,.ulp-voie+.ulp-voie{padding:1.8rem 0;border-right:0;
    border-bottom:1px solid var(--filet-fin)}
  .ulp-voie:last-child{border-bottom:0;padding-bottom:0}
}

/* =========================================================================
   LE RELEVÉ DE SÉANCES
   ========================================================================= */
.ulp-releve{border-top:1px solid var(--filet)}
.ulp-ligne{display:grid;grid-template-columns:54px 110px 1fr 140px;align-items:baseline;
  gap:1.6rem;padding:1.5rem .6rem;border-bottom:1px solid var(--filet-fin);
  transition:background .2s}
.ulp-ligne:hover{background:var(--parchemin-clair)}
.ulp-num{font-family:var(--titre);font-size:1.7rem;color:var(--or);line-height:1}
.ulp-quand{font-family:var(--lecture);font-size:.74rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--encre-douce)}
.ulp-quoi h3{font-size:1.34rem;line-height:1.3;margin-bottom:.35rem}
.ulp-quoi p{margin:0;font-size:.98rem;color:var(--encre-douce);max-width:64ch}
.ulp-etat{font-family:var(--lecture);font-size:.7rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;text-align:right;margin:0}
#ulp .ulp-etat a{color:var(--grenat);border-bottom:1px solid var(--grenat);padding-bottom:3px}
#ulp .ulp-etat a:hover{color:var(--nuit);border-bottom-color:var(--nuit)}
.ulp-etat .clos{color:var(--encre-douce);opacity:.7}
.ulp-ligne-passee .ulp-num{color:var(--filet)}
.ulp-ligne-passee .ulp-quoi h3{color:var(--encre-douce)}
#ulp .ulp-ligne-passee .ulp-etat a{color:var(--encre-douce);border-bottom-color:var(--filet)}
.ulp-releve-pied{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;
  gap:1rem;padding-top:1.8rem;font-size:.98rem;color:var(--encre-douce)}
@media(max-width:900px){
  .ulp-ligne{grid-template-columns:auto 1fr;gap:.6rem 1.3rem;padding:1.4rem 0}
  .ulp-quoi{grid-column:1/-1}
  .ulp-etat{grid-column:1/-1;text-align:left;margin-top:.7rem}
}

/* =========================================================================
   FORMATIONS — bloc bleu de nuit
   ========================================================================= */
.ulp-nuit{background:var(--nuit);color:var(--parchemin)}
.ulp-nuit .ulp-tete-bloc{border-bottom-color:var(--filet-clair)}
.ulp-nuit .ulp-mention{color:var(--or)}
.ulp-nuit .ulp-chapo{color:rgba(241,235,220,.78)}
.ulp-cycles{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--filet-clair)}
.ulp-cycle{padding:2.4rem 2.6rem 2.4rem 0;border-right:1px solid var(--filet-clair)}
.ulp-cycle:last-child{padding:2.4rem 0 2.4rem 2.6rem;border-right:0}
.ulp-cycle .ulp-mention{display:block;margin-bottom:1rem}
.ulp-cycle h3{font-size:1.6rem;margin-bottom:1.1rem}
.ulp-cycle p{color:rgba(241,235,220,.78)}
.ulp-cycle ul{margin-bottom:2rem}
.ulp-cycle li{font-size:.97rem;color:rgba(241,235,220,.78);padding:.7rem 0 .7rem 1.4rem;
  border-bottom:1px solid var(--filet-clair);position:relative}
.ulp-cycle li::before{content:"—";position:absolute;left:0;color:var(--or)}
#ulp .ulp-cycle .ulp-bouton-vide{color:var(--parchemin);border-color:var(--filet-clair)}
#ulp .ulp-cycle .ulp-bouton-vide:hover{background:var(--parchemin);color:var(--nuit);
  border-color:var(--parchemin)}
@media(max-width:820px){
  .ulp-cycles{grid-template-columns:1fr}
  .ulp-cycle,.ulp-cycle:last-child{padding:2.2rem 0;border-right:0;
    border-bottom:1px solid var(--filet-clair)}
  .ulp-cycle:last-child{border-bottom:0}
}

/* =========================================================================
   INTERVENANT
   ========================================================================= */
.ulp-intervenant{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:start}
.ulp-portrait{margin:0}
.ulp-portrait img{aspect-ratio:4/5;object-fit:cover;width:100%}
.ulp-portrait figcaption{border-top:1px solid var(--nuit);padding-top:.7rem;margin-top:.7rem;
  font-family:var(--lecture);font-size:.7rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--encre-douce)}
.ulp-exergue{font-family:var(--titre);font-style:italic;font-size:clamp(1.35rem,2.8vw,1.9rem);
  line-height:1.36;margin:0 0 1.8rem;color:var(--grenat);border-left:2px solid var(--or);
  padding-left:1.6rem}
@media(max-width:760px){.ulp-intervenant{grid-template-columns:1fr}}

/* =========================================================================
   APPEL + OURS
   ========================================================================= */
.ulp-appel{background:var(--grenat);color:var(--parchemin);
  padding-block:clamp(3rem,6vw,4.2rem)}
.ulp-appel-in{display:grid;grid-template-columns:1fr auto;gap:2.4rem;align-items:center}
.ulp-appel h2{font-size:clamp(1.7rem,3.6vw,2.5rem);max-width:20ch;margin-bottom:.8rem}
.ulp-appel p{margin:0;max-width:52ch;color:rgba(241,235,220,.82)}
#ulp .ulp-appel .ulp-bouton{background:var(--parchemin);border-color:var(--parchemin);
  color:var(--grenat)}
#ulp .ulp-appel .ulp-bouton:hover{background:transparent;color:var(--parchemin);
  border-color:var(--parchemin)}
@media(max-width:760px){.ulp-appel-in{grid-template-columns:1fr}}

.ulp-ours{background:var(--nuit);color:rgba(241,235,220,.7);padding-block:3.5rem 1.8rem;
  font-size:.94rem}
.ulp-ours-grille{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2.8rem;
  padding-bottom:2.6rem;border-bottom:1px solid var(--filet-clair)}
.ulp-ours h4{font-family:var(--lecture);font-size:.68rem;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--or);margin-bottom:1.2rem}
.ulp-ours li{padding:.35rem 0}
#ulp .ulp-ours a:hover{color:var(--parchemin)}
.ulp-ours .ulp-logo{color:var(--parchemin);display:block;margin-bottom:1.2rem}
.ulp-ours .ulp-logo span{color:var(--or)}
.ulp-ours-bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;
  padding-top:1.6rem;font-family:var(--lecture);font-size:.66rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase}
@media(max-width:760px){.ulp-ours-grille{grid-template-columns:1fr;gap:2.2rem}}

/* =========================================================================
   CONTENU ÉDITORIAL — pages et articles
   ========================================================================= */
.ulp-page-tete{padding-block:clamp(2.8rem,6vw,4.5rem) 0}
.ulp-page-tete h1{font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.06;max-width:22ch}
.ulp-meta{font-family:var(--lecture);font-size:.72rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--encre-douce);margin-top:1rem}

.ulp-article{padding-block:clamp(2rem,5vw,3.5rem)}
.ulp-prose{max-width:68ch;font-size:1.08rem;line-height:1.75}
.ulp-prose h2{font-size:clamp(1.5rem,3vw,2rem);margin:2.6rem 0 1rem}
.ulp-prose h3{font-size:1.3rem;margin:2.1rem 0 .8rem}
.ulp-prose h4{font-family:var(--lecture);font-size:.8rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--or-sombre);margin:1.8rem 0 .6rem}
.ulp-prose p{margin:0 0 1.15em}
#ulp .ulp-prose a{color:var(--grenat);border-bottom:1px solid var(--filet)}
.ulp-prose a:hover{border-bottom-color:var(--grenat)}
.ulp-prose ul,.ulp-prose ol{margin:0 0 1.4em;padding:0}
.ulp-prose ul li{position:relative;padding:.3rem 0 .3rem 1.5rem}
.ulp-prose ul li::before{content:"—";position:absolute;left:0;color:var(--or)}
.ulp-prose ol{list-style:decimal;margin-left:1.4em}
.ulp-prose ol li{padding:.3rem 0}
.ulp-prose blockquote{margin:2rem 0;padding-left:1.8rem;border-left:2px solid var(--or);
  font-family:var(--titre);font-style:italic;font-size:1.25rem;line-height:1.45;
  color:var(--grenat)}
.ulp-prose blockquote p:last-child{margin:0}
.ulp-prose figure{margin:2rem 0}
.ulp-prose figcaption{font-family:var(--lecture);font-size:.74rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--encre-douce);margin-top:.7rem}
.ulp-prose hr{border:0;border-top:1px solid var(--filet);margin:2.8rem 0}
.ulp-prose table{width:100%;border-collapse:collapse;margin:2rem 0;font-size:.97rem}
.ulp-prose th,.ulp-prose td{padding:.75rem .8rem;border-bottom:1px solid var(--filet-fin);
  text-align:left}
.ulp-prose th{font-family:var(--lecture);font-size:.72rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;border-bottom:1px solid var(--nuit)}
.ulp-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;
  background:var(--parchemin-clair);border:1px solid var(--filet-fin);padding:.12em .38em}
.ulp-prose pre{background:var(--nuit);color:var(--parchemin);padding:1.3rem;overflow-x:auto;
  margin:2rem 0}
.ulp-prose pre code{background:none;border:0;color:inherit}

/* Liste d'articles */
.ulp-liste{border-top:1px solid var(--filet)}
.ulp-item{display:grid;grid-template-columns:130px 1fr;gap:1.6rem;padding:1.7rem 0;
  border-bottom:1px solid var(--filet-fin);align-items:baseline}
.ulp-item:hover{background:var(--parchemin-clair)}
.ulp-item h2{font-size:1.42rem;line-height:1.28;margin-bottom:.4rem}
#ulp .ulp-item h2 a:hover{color:var(--grenat)}
.ulp-item p{margin:0;color:var(--encre-douce);font-size:.98rem;max-width:66ch}
@media(max-width:700px){.ulp-item{grid-template-columns:1fr;gap:.5rem}}

/* Pagination */
.ulp-pagination{display:flex;flex-wrap:wrap;gap:.4rem;padding-block:2.8rem}
.ulp-pagination .page-numbers{font-family:var(--lecture);font-size:.78rem;font-weight:600;
  letter-spacing:.1em;padding:.7em 1.05em;border:1px solid var(--filet)}
.ulp-pagination .page-numbers.current,.ulp-pagination .page-numbers:hover{
  background:var(--nuit);border-color:var(--nuit);color:var(--parchemin)}

/* 404 et recherche vide */
.ulp-vide{padding-block:clamp(3.5rem,8vw,6rem);text-align:center}
.ulp-vide h1{font-size:clamp(3.5rem,12vw,8rem);color:var(--or)}
.ulp-vide p{max-width:48ch;margin:1.6rem auto 2.2rem;color:var(--encre-douce);font-size:1.1rem}

/* Recherche */
.ulp-recherche{display:flex;gap:0;max-width:440px;margin-top:1.6rem}
.ulp-recherche input[type=search]{flex:1;border:1px solid var(--nuit);border-right:0;
  padding:.85rem 1rem;font-family:var(--lecture);font-size:1rem;background:var(--parchemin-clair);
  color:var(--encre);min-width:0}
.ulp-recherche button{border:1px solid var(--nuit);background:var(--nuit);
  color:var(--parchemin);font-family:var(--lecture);font-weight:600;font-size:.74rem;
  letter-spacing:.16em;text-transform:uppercase;padding:.85rem 1.3rem;cursor:pointer}
.ulp-recherche button:hover{background:var(--grenat);border-color:var(--grenat)}

/* =========================================================================
   LA PAGE DE SÉANCE
   ========================================================================= */
.ulp-fil{font-family:var(--lecture);font-size:.7rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--encre-douce);margin:0 0 2rem}
.ulp-fil a:hover{color:var(--or-sombre)}
.ulp-fil span{margin-inline:.6em;color:var(--or)}

.ulp-seance-tete{padding-block:clamp(2.4rem,5vw,3.6rem) clamp(2.4rem,5vw,3.4rem);
  border-bottom:1px solid var(--filet)}
.ulp-seance-grille{display:grid;grid-template-columns:1fr 340px;gap:clamp(2rem,5vw,4rem);
  align-items:start}
.ulp-seance-tete h1{font-size:clamp(2rem,4.8vw,3.5rem);line-height:1.05;max-width:20ch}
.ulp-seance-tete .ulp-mention{display:block;margin-bottom:1.2rem}
.ulp-seance-chapo{font-size:1.14rem;line-height:1.62;color:var(--encre-douce);max-width:56ch;
  margin:0}

/* La fiche pratique */
.ulp-fiche{border-top:2px solid var(--nuit);padding-top:1.4rem}
.ulp-fiche dl{margin:0 0 1.6rem}
.ulp-fiche dl>div{display:grid;grid-template-columns:88px 1fr;gap:1rem;padding:.75rem 0;
  border-bottom:1px solid var(--filet-fin)}
.ulp-fiche dt{font-family:var(--lecture);font-size:.68rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--or-sombre);padding-top:.22rem}
.ulp-fiche dd{margin:0;font-family:var(--titre);font-size:1.14rem;line-height:1.3}
.ulp-fiche .ulp-bouton{display:block;text-align:center}
.ulp-fiche-note{margin:.9rem 0 0;font-size:.88rem;color:var(--encre-douce);text-align:center}

.ulp-seance-image{margin:0;padding-block:clamp(2rem,4vw,3rem) 0}
.ulp-seance-image img{width:100%;max-height:520px;object-fit:cover}

/* Corps : le propos, et l'intervenant en colonne */
.ulp-seance-corps{display:grid;grid-template-columns:1fr 300px;gap:clamp(2.5rem,6vw,5rem);
  align-items:start}
.ulp-orateur{border-top:2px solid var(--nuit);padding-top:1.4rem;position:sticky;top:2rem}
.ulp-orateur .ulp-mention{display:block;margin-bottom:1.2rem}
.ulp-orateur img{width:100%;aspect-ratio:4/5;object-fit:cover;margin-bottom:1.1rem}
.ulp-orateur h2{font-size:1.28rem;margin-bottom:.7rem}
.ulp-orateur p{font-size:.95rem;color:var(--encre-douce)}
.ulp-lien-or{font-family:var(--lecture);font-size:.72rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;border-bottom:1px solid var(--or);padding-bottom:3px}
#ulp .ulp-lien-or{color:var(--or-sombre)}
#ulp .ulp-lien-or:hover{color:var(--grenat);border-bottom-color:var(--grenat)}

#ulp .ulp-quoi h3 a:hover{color:var(--grenat)}

@media(max-width:900px){
  .ulp-seance-grille,.ulp-seance-corps{grid-template-columns:1fr}
  .ulp-orateur{position:static;max-width:420px}
}

/* =========================================================================
   SÉLECTEUR DE PALETTE — administrateur, ?ulp_apercu=1
   ========================================================================= */
.ulp-palettes{position:fixed;right:16px;bottom:16px;z-index:80;display:flex;align-items:center;
  gap:.3rem;background:var(--nuit);padding:.5rem .6rem;border:1px solid var(--nuit)}
.ulp-palettes-titre{font-family:var(--lecture);font-size:.6rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--or);padding-inline:.4rem}
.ulp-palettes button{font-family:var(--lecture);font-size:.66rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;padding:.55em .8em;border:0;cursor:pointer;
  background:transparent;color:var(--parchemin)}
.ulp-palettes button:hover{background:rgba(255,255,255,.12)}
.ulp-palettes button[aria-pressed="true"]{background:var(--or);color:var(--nuit)}
@media(max-width:620px){
  .ulp-palettes{left:12px;right:12px;bottom:12px;justify-content:center;flex-wrap:wrap}
}

body.admin-bar .ulp-palettes{bottom:48px}

@media(prefers-reduced-motion:reduce){#ulp *{transition:none!important;animation:none!important}}
