/*
 Theme Name: Ensemble Regards Child
 Theme URI: https://ensembleregards.com/
 Description: Thème enfant sobre et léger pour Ensemble Regards, basé sur GeneratePress.
 Author: e-nuksuk
 Template: generatepress
 Version: 1.2.4
 Text Domain: ensemble-regards-child
*/

/* ==========================================================
   Ensemble Regards — direction artistique
   Parent : GeneratePress
   Principe v1.2.4 : conteneur GeneratePress + heroes compatibles Media Focus Point.
   Les textes restent lisibles, les blocs se calent dedans.
   ========================================================== */

:root {
  --er-bg: #f7f5f1;
  --er-white: #ffffff;
  --er-black: #0b0b0b;
  --er-text: #1e1e1e;
  --er-muted: #77716a;
  --er-border: rgba(0, 0, 0, 0.13);
  --er-soft-border: rgba(0, 0, 0, 0.075);
  --er-gold: #b9853b;
  --er-gold-dark: #8f642b;
  --er-serif: Georgia, "Times New Roman", serif;
  --er-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* ----------------------------------------------------------
   Socle anti-débordement, sans élargir la page
   ---------------------------------------------------------- */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  overflow-x: clip;
}

body {
  background: var(--er-bg);
  color: var(--er-text);
  font-family: var(--er-sans);
  font-size: 17px;
  line-height: 1.7;
}

.site {
  background: var(--er-white);
}

img,
svg,
video,
iframe {
  max-width: 100%;
}

/* On ne force pas la largeur du conteneur : GeneratePress la gère.
   On évite seulement qu'un enfant déborde horizontalement. */
.inside-article,
.entry-content,
.site-main,
.content-area {
  overflow-x: clip;
}

.entry-content > *,
.entry-content .wp-block-group,
.entry-content .wp-block-columns,
.entry-content .wp-block-column,
.entry-content .wp-block-shortcode,
.entry-content .wp-block-gallery {
  max-width: 100%;
}

.entry-content .alignwide,
.entry-content .alignfull {
  max-width: 100%;
}

/* ----------------------------------------------------------
   Typographie
   ---------------------------------------------------------- */

.entry-content p,
.entry-content li {
  line-height: 1.72;
}

/* Le contenu texte occupe toute la largeur du conteneur GeneratePress.
   La lisibilité reste gérée par la largeur du conteneur, pas par une limite interne. */
.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > blockquote {
  margin-left: 0;
  margin-right: 0;
}

p,
.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > blockquote {
  max-width: none;
}

a {
  color: var(--er-gold-dark);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--er-black);
}

h1,
h2,
h3,
h4,
.entry-title,
.wp-block-heading {
  font-family: var(--er-serif);
  font-weight: 400;
  color: var(--er-black);
  line-height: 1.15;
}

h1,
.entry-title {
  font-size: clamp(2.6rem, 5vw, 5.1rem);
  letter-spacing: -0.045em;
}

h2 {
  font-size: clamp(2rem, 3.3vw, 3.8rem);
  letter-spacing: -0.035em;
}

h3 {
  font-size: clamp(1.4rem, 2vw, 2rem);
}

/* ----------------------------------------------------------
   Header / navigation GeneratePress
   ---------------------------------------------------------- */

.site-header {
  background: var(--er-white);
  border-bottom: 1px solid var(--er-soft-border);
}

.inside-header {
  padding: 26px 48px;
}

.site-branding .main-title {
  font-family: var(--er-serif);
  font-size: clamp(2rem, 3vw, 3.4rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1;
}

.site-branding .main-title a {
  color: var(--er-black);
  text-decoration: none;
}

.site-branding .main-title::after {
  content: "";
  display: inline-block;
  width: 34px;
  height: 1px;
  margin-left: 18px;
  margin-bottom: 10px;
  background: var(--er-gold);
  transform: rotate(-45deg);
  transform-origin: center;
}

.site-description {
  display: none;
}

.main-navigation {
  background: var(--er-white);
}

.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
  font-family: var(--er-sans);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--er-text);
}

.main-navigation .main-nav ul li a {
  padding-left: 18px;
  padding-right: 18px;
}

.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.sfHover > a,
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li.current-menu-ancestor > a {
  color: var(--er-gold-dark);
  background: transparent;
}

/* Trait actif uniquement sur les entrées de premier niveau.
   Les sous-menus ne doivent pas hériter de ce pseudo-élément. */
.main-navigation .main-nav > ul > li.current-menu-item > a::after,
.main-navigation .main-nav > ul > li.current-menu-ancestor > a::after {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  margin: 0 auto;
  background: var(--er-gold);
}

.main-navigation .main-nav ul ul li.current-menu-item > a::after,
.main-navigation .main-nav ul ul li.current-menu-ancestor > a::after,
.main-navigation .main-nav ul ul li a::after {
  content: none !important;
  display: none !important;
}

.main-navigation .main-nav ul ul {
  background: var(--er-white);
  border: 1px solid var(--er-soft-border);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.08);
}

.main-navigation .main-nav ul ul li a {
  padding-top: 13px;
  padding-bottom: 13px;
  background: var(--er-white);
  color: var(--er-text);
}

.main-navigation .main-nav ul ul li:hover > a,
.main-navigation .main-nav ul ul li.sfHover > a,
.main-navigation .main-nav ul ul li.current-menu-item > a,
.main-navigation .main-nav ul ul li.current-menu-ancestor > a {
  background: var(--er-bg);
  color: var(--er-gold-dark);
}

.lang-item a,
.main-navigation .main-nav ul li.lang-item a {
  text-transform: uppercase;
  color: var(--er-muted);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
}

.lang-item-current a,
.main-navigation .main-nav ul li.lang-item.current-lang a {
  color: var(--er-gold-dark);
}

/* ----------------------------------------------------------
   Hero optionnel : bloc Couverture avec classe er-hero
   Le hero peut être large si le bloc le demande, mais le contenu interne reste cadré.
   ---------------------------------------------------------- */

.er-hero {
  min-height: clamp(520px, 72vh, 780px);
  display: flex;
  align-items: center;
  color: var(--er-white);
  background-color: #111;
  position: relative;
  overflow: hidden;
}

.er-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.65) 34%, rgba(0, 0, 0, 0.2) 68%, rgba(0, 0, 0, 0.42) 100%);
  z-index: 1;
  pointer-events: none;
}

.er-hero .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(48px, 8vw, 100px) clamp(24px, 4vw, 48px);
}

.er-hero h1,
.er-hero h2 {
  max-width: 650px;
  color: var(--er-white);
  font-family: var(--er-serif);
  font-size: clamp(3.2rem, 7vw, 7.5rem);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.er-hero h1::after,
.er-hero h2::after {
  content: "";
  display: block;
  width: 72px;
  height: 2px;
  margin-top: 28px;
  background: var(--er-gold);
}

.er-hero p {
  max-width: 430px;
  margin-top: 28px;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  line-height: 1.45;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* ----------------------------------------------------------
   Boutons
   ---------------------------------------------------------- */

.wp-block-button__link,
.button,
button,
input[type="submit"] {
  border-radius: 0;
  background: transparent;
  border: 1px solid var(--er-gold);
  color: var(--er-gold-dark);
  font-family: var(--er-sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 13px 24px;
}

.er-hero .wp-block-button__link {
  color: var(--er-gold);
  border-color: var(--er-gold);
  background: rgba(0, 0, 0, 0.12);
}

.wp-block-button__link:hover,
.button:hover,
button:hover,
input[type="submit"]:hover {
  background: var(--er-gold);
  color: var(--er-black);
  border-color: var(--er-gold);
}

/* ----------------------------------------------------------
   Sections Gutenberg utiles — contenues, jamais viewport-width
   ---------------------------------------------------------- */

.er-section {
  padding-top: clamp(56px, 8vw, 110px);
  padding-bottom: clamp(56px, 8vw, 110px);
}

.er-section-light {
  background: var(--er-bg);
}

.er-section-title,
.entry-content .er-section-title {
  font-family: var(--er-sans);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--er-black);
}

.er-intro {
  max-width: 760px;
  font-size: clamp(1.1rem, 1.4vw, 1.3rem);
  line-height: 1.65;
  color: var(--er-muted);
}

.er-muted {
  color: var(--er-muted);
}

/* ----------------------------------------------------------
   Galeries
   - Galeries Gutenberg natives : comportement générique
   - Galerie partenaires Meow : 5 colonnes fixes, logos non recadrés
   ---------------------------------------------------------- */

/* Galeries Gutenberg natives uniquement.
   IMPORTANT : on exclut explicitement Meow et la galerie partenaires. */
.entry-content .wp-block-gallery:not(.meow-gallery):not(.partners-logos) {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)) !important;
  gap: clamp(28px, 4.5vw, 64px) clamp(28px, 5vw, 72px) !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  align-items: center !important;
  justify-items: center !important;
}

.entry-content .wp-block-gallery:not(.meow-gallery):not(.partners-logos) figure.wp-block-image,
.entry-content .wp-block-gallery:not(.meow-gallery):not(.partners-logos) .blocks-gallery-item {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 170px;
  margin: 0 !important;
  padding: clamp(12px, 2vw, 24px);
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent;
  overflow: hidden;
}

.entry-content .wp-block-gallery:not(.meow-gallery):not(.partners-logos) figure.wp-block-image a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}

.entry-content .wp-block-gallery:not(.meow-gallery):not(.partners-logos) figure.wp-block-image img {
  display: block !important;
  width: 100% !important;
  height: clamp(105px, 9vw, 150px) !important;
  max-width: 320px !important;
  object-fit: contain !important;
  filter: grayscale(100%);
  opacity: 0.9;
  transition: opacity 0.2s ease, filter 0.2s ease, transform 0.2s ease;
}

.entry-content .wp-block-gallery:not(.meow-gallery):not(.partners-logos) figure.wp-block-image a:hover img,
.entry-content .wp-block-gallery:not(.meow-gallery):not(.partners-logos) figure.wp-block-image img:hover {
  filter: grayscale(0%);
  opacity: 1;
  transform: translateY(-2px);
}

.entry-content .wp-block-gallery:not(.meow-gallery):not(.partners-logos) figcaption {
  display: none !important;
}


/* ==========================================================
   Galerie partenaires / Meow
   Classes à mettre sur la galerie :
   partners-logos partners-logos-large

   Compatible front + éditeur Gutenberg + composition synchronisée.
   Si les classes sont portées par le bloc Composition/Groupe parent,
   la galerie imbriquée est également ciblée.
   ========================================================== */

.wp-block-gallery.partners-logos,
.meow-gallery.partners-logos,
.mgl-gallery.partners-logos,
.partners-logos > .wp-block-gallery,
.partners-logos .wp-block-gallery,
.partners-logos > .meow-gallery,
.partners-logos .meow-gallery,
.partners-logos > .mgl-gallery,
.partners-logos .mgl-gallery {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 10px 14px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  align-items: stretch !important;
  justify-items: stretch !important;
}

/* Gutenberg peut injecter display:flex sur les galeries imbriquées. */
.editor-styles-wrapper .wp-block-gallery.partners-logos,
.editor-styles-wrapper .partners-logos > .wp-block-gallery,
.editor-styles-wrapper .partners-logos .wp-block-gallery {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

/* Cellule : presque aucune marge interne ; le logo utilise tout le carré. */
.partners-logos figure,
.partners-logos .wp-block-image,
.partners-logos .mgl-item,
.wp-block-gallery.partners-logos figure,
.wp-block-gallery.partners-logos .wp-block-image {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex: none !important;
  flex-basis: auto !important;
  height: 150px !important;
  min-height: 150px !important;
  margin: 0 !important;
  padding: 2px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* Variante large de l'accueil. */
.partners-logos-large figure,
.partners-logos-large .wp-block-image,
.partners-logos-large .mgl-item,
.wp-block-gallery.partners-logos-large figure,
.wp-block-gallery.partners-logos-large .wp-block-image {
  height: 170px !important;
  min-height: 170px !important;
}

/* Neutralise les wrappers Gutenberg / Meow qui peuvent réduire l'image. */
.partners-logos .mgl-img-container,
.partners-logos .mgl-item > div,
.partners-logos figure > a,
.partners-logos .wp-block-image > a,
.partners-logos .mgl-item > a,
.wp-block-gallery.partners-logos figure > a,
.wp-block-gallery.partners-logos .wp-block-image > a {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
}

/* Logo : surface maximale sans recadrage. N&B au repos. */
.partners-logos img,
.wp-block-gallery.partners-logos img,
.wp-block-gallery.partners-logos.has-nested-images figure.wp-block-image img,
.meow-gallery.partners-logos img,
.mgl-gallery.partners-logos img {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  filter: grayscale(100%) !important;
  -webkit-filter: grayscale(100%) !important;
  opacity: 0.90 !important;
  transform: none !important;
  transition: filter .22s ease, -webkit-filter .22s ease, opacity .22s ease, transform .22s ease !important;
}

/* Couleur au survol, quelle que soit la structure Gutenberg/Meow. */
.partners-logos img:hover,
.partners-logos a:hover img,
.partners-logos figure:hover img,
.partners-logos .wp-block-image:hover img,
.partners-logos .mgl-item:hover img,
.partners-logos .mgl-img-container:hover img,
.wp-block-gallery.partners-logos img:hover,
.wp-block-gallery.partners-logos a:hover img,
.wp-block-gallery.partners-logos figure:hover img {
  filter: grayscale(0%) !important;
  -webkit-filter: grayscale(0%) !important;
  opacity: 1 !important;
  transform: scale(1.02) !important;
}

.partners-logos figcaption,
.partners-logos .mgl-caption,
.wp-block-gallery.partners-logos figcaption {
  display: none !important;
}

@media (max-width: 1024px) {
  .wp-block-gallery.partners-logos,
  .meow-gallery.partners-logos,
  .mgl-gallery.partners-logos,
  .partners-logos > .wp-block-gallery,
  .partners-logos .wp-block-gallery,
  .editor-styles-wrapper .wp-block-gallery.partners-logos,
  .editor-styles-wrapper .partners-logos .wp-block-gallery {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  .wp-block-gallery.partners-logos,
  .meow-gallery.partners-logos,
  .mgl-gallery.partners-logos,
  .partners-logos > .wp-block-gallery,
  .partners-logos .wp-block-gallery,
  .editor-styles-wrapper .wp-block-gallery.partners-logos,
  .editor-styles-wrapper .partners-logos .wp-block-gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px 12px !important;
  }

  .partners-logos figure,
  .partners-logos .wp-block-image,
  .partners-logos .mgl-item,
  .wp-block-gallery.partners-logos figure,
  .wp-block-gallery.partners-logos .wp-block-image {
    height: 125px !important;
    min-height: 125px !important;
  }

  .partners-logos-large figure,
  .partners-logos-large .wp-block-image,
  .partners-logos-large .mgl-item,
  .wp-block-gallery.partners-logos-large figure,
  .wp-block-gallery.partners-logos-large .wp-block-image {
    height: 140px !important;
    min-height: 140px !important;
  }
}

@media (max-width: 560px) {
  .wp-block-gallery.partners-logos,
  .meow-gallery.partners-logos,
  .mgl-gallery.partners-logos,
  .partners-logos > .wp-block-gallery,
  .partners-logos .wp-block-gallery,
  .editor-styles-wrapper .wp-block-gallery.partners-logos,
  .editor-styles-wrapper .partners-logos .wp-block-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* Classe optionnelle si une galerie native doit redevenir une galerie photo classique. */
.entry-content .wp-block-gallery.er-photo-gallery {
  display: flex !important;
}

.entry-content .wp-block-gallery.er-photo-gallery figure.wp-block-image {
  min-height: 0;
  padding: 0;
}

.entry-content .wp-block-gallery.er-photo-gallery figure.wp-block-image img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
  filter: none;
  opacity: 1;
}


/* ----------------------------------------------------------
   Agenda : shortcode maison [er_events]
   Contenu dans la largeur de la page, inspiration agenda EIC.
   ---------------------------------------------------------- */

.er-events-cards {
  width: 100%;
  max-width: 100%;
  margin: 2rem 0 0;
  border-top: 1px solid var(--er-border);
}

.er-event-card {
  margin: 0;
  width: 100%;
  max-width: 100%;
  border-bottom: 1px solid var(--er-border);
  background: var(--er-white);
  overflow: hidden;
}

.er-event-card__link {
  display: grid;
  grid-template-columns: clamp(76px, 11vw, 122px) minmax(0, 1fr) clamp(24px, 4vw, 42px);
  gap: clamp(18px, 3.2vw, 44px);
  align-items: stretch;
  min-height: 170px;
  width: 100%;
  max-width: 100%;
  padding: clamp(24px, 3.2vw, 42px) 0;
  color: inherit;
  text-decoration: none;
}

.er-event-card__date {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-width: 0;
  color: var(--er-gold-dark);
  text-transform: uppercase;
}

.er-event-card__dow,
.er-event-card__month,
.er-event-card__year {
  font-family: var(--er-sans);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.12em;
}

.er-event-card__day {
  display: block;
  margin: 0.08em 0;
  font-family: var(--er-serif);
  font-size: clamp(3.2rem, 6vw, 5.6rem);
  line-height: 0.9;
  letter-spacing: -0.06em;
}

.er-event-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  max-width: 100%;
}

.er-event-card__title,
.er-event-card__venue,
.er-event-card__details,
.er-event-card__excerpt,
.er-event-card__meta {
  overflow-wrap: break-word;
}

.er-event-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.7rem;
  color: var(--er-muted);
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.er-event-card__meta span:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 1px;
  height: 0.9em;
  margin-left: 0.75rem;
  vertical-align: -0.12em;
  background: var(--er-border);
}

.er-event-card__title {
  margin: 0;
  max-width: 900px;
  font-family: var(--er-serif);
  font-size: clamp(2rem, 3.9vw, 4.35rem);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.05em;
  color: var(--er-black);
}

.er-event-card__venue {
  margin: 0.9rem 0 0;
  max-width: none;
  color: var(--er-text);
  font-size: 1.02rem;
}

.er-event-card__excerpt {
  margin: 0.45rem 0 0;
  max-width: 760px;
  color: var(--er-muted);
  font-size: 0.96rem;
}

.er-event-card__arrow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  color: var(--er-gold-dark);
  font-size: 2rem;
  transition: transform 0.2s ease;
}

.er-event-card__link:hover .er-event-card__title {
  color: var(--er-gold-dark);
}

.er-event-card__link:hover .er-event-card__arrow {
  transform: translateX(6px);
}

.er-no-events {
  width: 100%;
  max-width: 100%;
  margin: 2rem 0;
  padding: 1.3rem 1.5rem;
  background: var(--er-bg);
  border-left: 2px solid var(--er-gold);
  color: var(--er-muted);
}

/* Compatibilité minimale avec la sortie native [eo_events] */
.eo-events,
.eo-events-shortcode,
ul.eo-events {
  list-style: none;
  padding-left: 0;
}

.eo-events li,
.eo-events-shortcode li,
ul.eo-events li {
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--er-border);
}

.eo-event-date,
.event-date {
  color: var(--er-muted);
}



/* ----------------------------------------------------------
   Archives événements : vue compacte calendrier/liste
   Utilisée par [er_events_archive] et l'archive native des événements.
   ---------------------------------------------------------- */

.er-event-archive-page .entry-title {
  margin-bottom: clamp(28px, 4vw, 48px);
}

.er-events-archive {
  width: 100%;
  max-width: 100%;
  margin: clamp(28px, 4vw, 48px) 0 0;
  border-top: 1px solid var(--er-border);
}

.er-events-archive__year {
  padding-top: clamp(28px, 4vw, 46px);
}

.er-events-archive__year + .er-events-archive__year {
  margin-top: clamp(24px, 4vw, 40px);
}

.er-events-archive__year-title {
  margin: 0 0 1.2rem;
  font-family: var(--er-serif);
  font-size: clamp(2.1rem, 4.2vw, 4.2rem);
  line-height: 1;
  letter-spacing: -0.055em;
  color: var(--er-black);
}

.er-events-archive__month {
  display: grid;
  grid-template-columns: clamp(92px, 14vw, 150px) minmax(0, 1fr);
  gap: clamp(18px, 3vw, 42px);
  padding: 0 0 clamp(20px, 3vw, 34px);
  border-bottom: 1px solid var(--er-border);
}

.er-events-archive__month + .er-events-archive__month {
  padding-top: clamp(20px, 3vw, 34px);
}

.er-events-archive__month-title {
  margin: 0;
  padding-top: 0.35rem;
  font-family: var(--er-sans);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--er-gold-dark);
}

.er-events-archive__items {
  display: grid;
  gap: 0;
  min-width: 0;
}

.er-archive-event {
  display: grid;
  grid-template-columns: clamp(58px, 7vw, 78px) minmax(0, 1fr) auto;
  gap: clamp(16px, 2.5vw, 34px);
  align-items: center;
  min-width: 0;
  padding: 18px 0;
  color: inherit;
  text-decoration: none;
}

.er-archive-event + .er-archive-event {
  border-top: 1px solid var(--er-soft-border);
}

.er-archive-event__date {
  color: var(--er-gold-dark);
  text-align: left;
  text-transform: uppercase;
}

.er-archive-event__day {
  display: block;
  font-family: var(--er-serif);
  font-size: clamp(2.2rem, 3.6vw, 3.4rem);
  line-height: 0.9;
  letter-spacing: -0.06em;
}

.er-archive-event__weekday {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.er-archive-event__body {
  min-width: 0;
}

.er-archive-event__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.7rem;
  margin-bottom: 0.25rem;
  color: var(--er-muted);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.er-archive-event__meta span:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 1px;
  height: 0.85em;
  margin-left: 0.7rem;
  vertical-align: -0.1em;
  background: var(--er-border);
}

.er-archive-event__title {
  margin: 0;
  font-family: var(--er-serif);
  font-size: clamp(1.35rem, 2.4vw, 2.35rem);
  line-height: 1.05;
  letter-spacing: -0.04em;
  color: var(--er-black);
  overflow-wrap: break-word;
}

.er-archive-event__venue {
  margin-top: 0.35rem;
  color: var(--er-muted);
  font-size: 0.92rem;
}

.er-archive-event__arrow {
  color: var(--er-gold-dark);
  font-size: 1.55rem;
  transition: transform 0.2s ease;
}

.er-archive-event:hover .er-archive-event__title {
  color: var(--er-gold-dark);
}

.er-archive-event:hover .er-archive-event__arrow {
  transform: translateX(5px);
}

/* Petit habillage si tu utilises aussi le calendrier Event Organiser natif. */
.eo-fullcalendar,
.eo-calendar,
.eo-calendar-widget,
#eo_fullcalendar,
[id^="eo_fullcalendar"] {
  max-width: 100%;
  margin-top: 2rem;
}

.eo-calendar table,
.eo-calendar-widget table {
  width: 100%;
  border-collapse: collapse;
}

.eo-calendar caption,
.eo-calendar-widget caption {
  padding: 0.8rem 0;
  font-family: var(--er-serif);
  font-size: 1.45rem;
  color: var(--er-black);
}

.eo-calendar th,
.eo-calendar td,
.eo-calendar-widget th,
.eo-calendar-widget td {
  padding: 0.65rem;
  border: 1px solid var(--er-soft-border);
  text-align: center;
}

.eo-calendar td a,
.eo-calendar-widget td a {
  color: var(--er-gold-dark);
  font-weight: 700;
}

/* ----------------------------------------------------------
   Galeries photo Meow
   ---------------------------------------------------------- */

.meow-gallery,
.mgl-gallery,
.meow-gallery * {
  max-width: 100%;
}

.meow-gallery img,
.mgl-gallery img {
  max-width: 100%;
  height: auto;
}

/* ----------------------------------------------------------
   Footer
   ---------------------------------------------------------- */

.site-footer,
.footer-widgets,
.site-info {
  background: var(--er-black);
  color: rgba(255, 255, 255, 0.75);
}

.site-footer a,
.site-info a {
  color: rgba(255, 255, 255, 0.82);
}

.site-footer a:hover,
.site-info a:hover {
  color: var(--er-gold);
}

.site-info {
  font-size: 0.85rem;
  letter-spacing: 0.03em;
}

/* ----------------------------------------------------------
   Pages internes
   ---------------------------------------------------------- */

.page-header,
.entry-header {
  padding-top: clamp(44px, 6vw, 80px);
  padding-bottom: 20px;
}

.entry-content {
  padding-bottom: clamp(56px, 7vw, 96px);
}

.entry-content blockquote {
  border-left: 2px solid var(--er-gold);
  padding-left: 24px;
  color: var(--er-muted);
  font-family: var(--er-serif);
  font-size: 1.35rem;
}

/* ----------------------------------------------------------
   Responsive
   ---------------------------------------------------------- */

@media (max-width: 1024px) {
  .inside-header {
    padding: 22px 28px;
  }

  .main-navigation .main-nav ul li a {
    padding-left: 12px;
    padding-right: 12px;
  }
}

@media (max-width: 768px) {
  body {
    font-size: 16px;
  }

  .inside-header {
    padding: 18px 22px;
  }

  .site-branding .main-title {
    font-size: 2rem;
  }

  .site-branding .main-title::after {
    width: 24px;
    margin-left: 10px;
    margin-bottom: 7px;
  }

  .main-navigation .main-nav > ul > li.current-menu-item > a::after,
  .main-navigation .main-nav > ul > li.current-menu-ancestor > a::after {
    display: none;
  }

  .er-hero {
    min-height: 520px;
  }

  .er-hero .wp-block-cover__inner-container {
    padding: 64px 24px;
  }

  .er-hero h1,
  .er-hero h2 {
    font-size: clamp(3rem, 14vw, 4.5rem);
  }

  .er-hero p {
    font-size: 0.92rem;
    letter-spacing: 0.12em;
  }

  .er-event-card__link {
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 18px;
    padding: 24px 0;
  }

  .er-event-card__arrow {
    display: none;
  }

  .er-event-card__day {
    font-size: 3.1rem;
  }

  .er-event-card__title {
    font-size: clamp(1.8rem, 9vw, 3rem);
  }

  .er-event-card__meta {
    font-size: 0.68rem;
  }
}

@media (max-width: 768px) {
  .er-events-archive__month {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .er-events-archive__month-title {
    padding-top: 0;
  }

  .er-archive-event {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 16px;
  }

  .er-archive-event__arrow {
    display: none;
  }
}

/* ==========================================================
   Correctifs v1.1.0 — sous-menu + page Archives / calendrier
   ========================================================== */

/* Le soulignement actif ne doit jamais apparaître dans les sous-menus. */
.main-navigation .main-nav .sub-menu a::after,
.main-navigation .main-nav .children a::after,
.main-navigation .main-nav ul ul a::after,
.main-navigation .main-nav ul ul li.current-menu-item > a::after,
.main-navigation .main-nav ul ul li.current-menu-ancestor > a::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

/* Soulignement propre, limité au premier niveau du menu. */
.main-navigation .main-nav > ul > li > a {
  position: relative;
}

.main-navigation .main-nav > ul > li.current-menu-item > a::after,
.main-navigation .main-nav > ul > li.current-menu-ancestor > a::after,
.main-navigation .main-nav > ul > li.current_page_item > a::after,
.main-navigation .main-nav > ul > li.current_page_ancestor > a::after {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  margin: 0 auto;
  background: var(--er-gold);
}

/* Page /archives/ : calendrier contenu dans la largeur de page. */
.er-archives-page .entry-content {
  padding-bottom: clamp(64px, 8vw, 120px);
}

.er-archives-intro {
  margin-bottom: 42px;
  font-size: clamp(1.05rem, 1.5vw, 1.22rem);
}

.er-archives-calendar {
  margin-top: 38px;
  padding-top: 34px;
  border-top: 1px solid var(--er-border);
}

.er-archives-calendar__title,
.er-archives-list__title {
  margin-bottom: 22px;
  font-family: var(--er-sans);
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--er-text);
}

.er-archives-calendar .eo-fullcalendar,
.er-archives-calendar .eo-fullcalendar-container,
.er-archives-calendar .fc,
.er-archives-calendar .fc-view-harness,
.er-archives-calendar table {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

.er-archives-calendar .fc,
.er-archives-calendar .eo-fullcalendar {
  font-family: var(--er-sans);
}

.er-archives-calendar .fc-toolbar,
.er-archives-calendar .fc-header-toolbar {
  margin-bottom: 24px !important;
  gap: 16px;
}

.er-archives-calendar .fc-toolbar-title,
.er-archives-calendar .fc-center h2 {
  font-family: var(--er-serif);
  font-size: clamp(1.9rem, 3vw, 3rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  color: var(--er-black);
}

.er-archives-calendar .fc-button,
.er-archives-calendar button.fc-button {
  border-radius: 0 !important;
  border: 1px solid var(--er-border) !important;
  background: var(--er-white) !important;
  color: var(--er-text) !important;
  box-shadow: none !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.74rem !important;
}

.er-archives-calendar .fc-button:hover,
.er-archives-calendar button.fc-button:hover,
.er-archives-calendar .fc-button-active {
  border-color: var(--er-gold) !important;
  color: var(--er-gold-dark) !important;
}

.er-archives-calendar .fc-daygrid-day-number,
.er-archives-calendar .fc-day-number {
  color: var(--er-text);
  text-decoration: none;
}

.er-archives-calendar .fc-event,
.er-archives-calendar .eo-fullcalendar .fc-event {
  border-radius: 0 !important;
  border: 0 !important;
  background: var(--er-gold-dark) !important;
  color: #fff !important;
  padding: 2px 4px !important;
  font-size: 0.72rem !important;
}

.er-archives-calendar .fc-event-title,
.er-archives-calendar .fc-event-time {
  color: #fff !important;
}

.er-archives-calendar-fallback {
  margin-top: 32px;
}

@media (max-width: 768px) {
  .er-archives-calendar .fc-toolbar,
  .er-archives-calendar .fc-header-toolbar {
    align-items: flex-start;
  }

  .er-archives-calendar .fc-toolbar-title,
  .er-archives-calendar .fc-center h2 {
    font-size: 2rem;
  }
}


/* ==========================================================
   Correctifs v1.1.1 — Archives et sous-menu
   ========================================================== */

/* Aucun soulignement actif dans les sous-menus, même si GeneratePress/Polylang ajoute une classe active. */
.main-navigation .main-nav ul ul a::after,
.main-navigation .main-nav ul ul li > a::after,
.main-navigation .main-nav .sub-menu a::after,
.main-navigation .main-nav .children a::after,
.main-navigation .main-nav ul ul li.current-menu-item > a::after,
.main-navigation .main-nav ul ul li.current-menu-ancestor > a::after,
.main-navigation .main-nav ul ul li.current_page_item > a::after,
.main-navigation .main-nav ul ul li.current_page_ancestor > a::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}

/* Le trait actif reste limité au premier niveau. */
.main-navigation .main-nav > ul > li > a {
  position: relative;
}

.main-navigation .main-nav > ul > li.current-menu-item > a::after,
.main-navigation .main-nav > ul > li.current-menu-ancestor > a::after,
.main-navigation .main-nav > ul > li.current_page_item > a::after,
.main-navigation .main-nav > ul > li.current_page_ancestor > a::after {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  margin: 0 auto;
  background: var(--er-gold);
}

/* Page Archives : mêmes cards que l'agenda, dans le conteneur. */
.er-archives-page .entry-content {
  padding-bottom: clamp(64px, 8vw, 120px);
}

.er-archives-intro {
  margin: 0 0 clamp(34px, 5vw, 58px);
  font-size: clamp(1.05rem, 1.5vw, 1.22rem);
}

.er-archives-events {
  margin-top: clamp(34px, 5vw, 64px);
}

.er-archives-section-title,
.er-archives-calendar__title,
.er-archives-list__title {
  margin: 0 0 clamp(24px, 4vw, 42px);
  font-family: var(--er-serif);
  font-size: clamp(2.45rem, 4.6vw, 4.9rem);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.055em;
  text-transform: none;
  color: var(--er-black);
}

.er-archives-events .er-events-cards {
  margin-top: 0;
}

.er-archives-calendar {
  margin-top: clamp(56px, 7vw, 96px);
  padding-top: clamp(36px, 5vw, 66px);
  border-top: 1px solid var(--er-border);
}

.er-archives-calendar .er-events-calendar-shortcode,
.er-archives-calendar .eo-fullcalendar,
.er-archives-calendar .eo-fullcalendar-container,
.er-archives-calendar .fc,
.er-archives-calendar .fc-view-harness,
.er-archives-calendar table,
.er-archives-calendar .eo-calendar,
.er-archives-calendar .eo-calendar-widget {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

.er-archives-calendar .fc,
.er-archives-calendar .eo-fullcalendar,
.er-archives-calendar .eo-calendar,
.er-archives-calendar .eo-calendar-widget {
  font-family: var(--er-sans);
}

.er-archives-calendar .fc-toolbar,
.er-archives-calendar .fc-header-toolbar {
  margin-bottom: 24px !important;
  gap: 16px;
}

.er-archives-calendar .fc-toolbar-title,
.er-archives-calendar .fc-center h2,
.er-archives-calendar .eo-calendar caption,
.er-archives-calendar .eo-calendar-widget caption {
  font-family: var(--er-serif);
  font-size: clamp(1.65rem, 3vw, 2.8rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  color: var(--er-black);
}

.er-archives-calendar .fc-button,
.er-archives-calendar button.fc-button {
  border-radius: 0 !important;
  border: 1px solid var(--er-border) !important;
  background: var(--er-white) !important;
  color: var(--er-text) !important;
  box-shadow: none !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.74rem !important;
}

.er-archives-calendar .fc-button:hover,
.er-archives-calendar button.fc-button:hover,
.er-archives-calendar .fc-button-active {
  border-color: var(--er-gold) !important;
  color: var(--er-gold-dark) !important;
}

.er-archives-calendar .fc-event,
.er-archives-calendar .eo-fullcalendar .fc-event {
  border-radius: 0 !important;
  border: 0 !important;
  background: var(--er-gold-dark) !important;
  color: #fff !important;
  padding: 2px 4px !important;
  font-size: 0.72rem !important;
}

.er-archives-calendar .fc-event-title,
.er-archives-calendar .fc-event-time {
  color: #fff !important;
}

@media (max-width: 768px) {
  .er-archives-section-title,
  .er-archives-calendar__title,
  .er-archives-list__title {
    font-size: clamp(2.1rem, 10vw, 3.3rem);
  }

  .er-archives-calendar .fc-toolbar,
  .er-archives-calendar .fc-header-toolbar {
    align-items: flex-start;
  }
}


/* ==========================================================
   Correctifs v1.1.2 — événements paginés + vignettes
   ========================================================== */

.er-events-cards {
  width: 100%;
  max-width: 100%;
  margin: 2rem 0 0;
  border-top: 1px solid var(--er-border);
}

.er-event-card {
  margin: 0;
  width: 100%;
  max-width: 100%;
  border-bottom: 1px solid var(--er-border);
  background: var(--er-white);
  overflow: hidden;
}

.er-event-card__link {
  display: grid;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  min-height: 170px;
  padding: clamp(24px, 3.2vw, 42px) 0;
  color: inherit;
  text-decoration: none;
}

.er-event-card--no-thumb .er-event-card__link {
  grid-template-columns: clamp(76px, 11vw, 122px) minmax(0, 1fr) clamp(24px, 4vw, 42px);
  gap: clamp(18px, 3.2vw, 44px);
}

.er-event-card--has-thumb .er-event-card__link {
  grid-template-columns: clamp(76px, 10vw, 110px) clamp(132px, 20vw, 210px) minmax(0, 1fr) clamp(24px, 4vw, 42px);
  gap: clamp(18px, 3vw, 36px);
}

.er-event-card__thumb {
  align-self: center;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  background: var(--er-bg);
}

.er-event-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(100%);
  transition: filter 0.2s ease, transform 0.2s ease;
}

.er-event-card__link:hover .er-event-card__thumb img {
  filter: grayscale(0%);
  transform: scale(1.025);
}

.er-event-card__date {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-width: 0;
  color: var(--er-gold-dark);
  text-transform: uppercase;
}

.er-event-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  max-width: 100%;
}

.er-event-card__title,
.er-event-card__venue,
.er-event-card__details,
.er-event-card__excerpt,
.er-event-card__meta {
  overflow-wrap: break-word;
}

.er-event-card__title {
  max-width: 900px;
}

.er-event-card--has-thumb .er-event-card__title {
  font-size: clamp(1.75rem, 3.2vw, 3.75rem);
}

.er-events-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 2rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--er-soft-border);
}

.er-events-pagination__pages {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  flex: 1 1 auto;
}

.er-events-pagination__link,
.er-events-pagination__page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  min-height: 2.25rem;
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--er-border);
  color: var(--er-text);
  text-decoration: none;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  background: var(--er-white);
}

.er-events-pagination__link:hover,
.er-events-pagination__page:hover,
.er-events-pagination__page.is-current {
  border-color: var(--er-gold);
  color: var(--er-gold-dark);
}

.er-events-pagination__link.is-disabled {
  opacity: 0.35;
  pointer-events: none;
}

.er-archives-events {
  margin-top: 2.5rem;
}

.er-archives-section-title,
.er-archives-calendar__title,
.er-archives-list__title {
  margin-bottom: 22px;
  font-family: var(--er-sans);
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--er-text);
}

@media (max-width: 1024px) {
  .er-event-card--has-thumb .er-event-card__link {
    grid-template-columns: clamp(70px, 12vw, 96px) clamp(110px, 24vw, 170px) minmax(0, 1fr) 28px;
    gap: 22px;
  }
}

@media (max-width: 768px) {
  .er-event-card--no-thumb .er-event-card__link,
  .er-event-card--has-thumb .er-event-card__link {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 28px 0;
  }

  .er-event-card__date {
    align-items: flex-start;
  }

  .er-event-card__thumb {
    max-width: 100%;
    aspect-ratio: 16 / 9;
  }

  .er-event-card--has-thumb .er-event-card__title,
  .er-event-card__title {
    font-size: clamp(2rem, 11vw, 3.1rem);
  }

  .er-event-card__arrow {
    justify-content: flex-start;
  }

  .er-events-pagination {
    flex-wrap: wrap;
    justify-content: center;
  }

  .er-events-pagination__pages {
    order: -1;
    flex-basis: 100%;
  }
}

/* ==========================================================
   Correctifs v1.1.3 — harmonisation Agenda / Archives
   Objectif : même rythme typographique, mêmes espacements,
   sans élargir le conteneur GeneratePress.
   ========================================================== */

/* Rythme général des pages internes */
.page .inside-article,
.single .inside-article,
.archive .inside-article,
.er-archives-page .inside-article {
  padding-top: clamp(68px, 8vw, 120px);
  padding-bottom: clamp(72px, 8vw, 120px);
}

.page-header,
.entry-header,
.er-archives-page .entry-header {
  padding-top: 0;
  padding-bottom: clamp(28px, 4vw, 48px);
  margin: 0;
}

.entry-title,
.er-archives-page .entry-title {
  margin: 0;
  font-family: var(--er-serif);
  font-size: clamp(3.4rem, 6.4vw, 6.4rem);
  font-weight: 400;
  line-height: 0.96;
  letter-spacing: -0.055em;
  color: var(--er-black);
}

.entry-content,
.er-archives-page .entry-content {
  padding-bottom: 0;
}

/* Intro de page : même placement sur Agenda et Archives */
.entry-content > p:first-child,
.er-archives-intro {
  margin: 0 0 clamp(36px, 5vw, 58px);
  max-width: none;
  font-size: clamp(1.02rem, 1.35vw, 1.2rem);
  line-height: 1.65;
  color: var(--er-text);
}

/* Les listes d'événements arrivent après l'intro avec le même rythme. */
.entry-content > .er-events-cards,
.entry-content .er-events-cards,
.er-archives-events .er-events-cards {
  margin-top: clamp(30px, 4.2vw, 48px);
  border-top: 1px solid var(--er-border);
}

/* Titre de section secondaire : utilisé pour “Événements passés”. */
.er-archives-events {
  margin-top: clamp(34px, 5vw, 58px);
}

.er-archives-section-title,
.er-archives-list__title {
  margin: 0 0 clamp(18px, 2.8vw, 28px);
  font-family: var(--er-sans);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--er-text);
}

/* Titres de grandes sections dans le contenu : “Parcourir par date”, “Archives”, etc. */
.entry-content > h2,
.er-archives-calendar__title {
  margin: clamp(58px, 7vw, 92px) 0 clamp(24px, 3.6vw, 38px);
  font-family: var(--er-serif);
  font-size: clamp(2.65rem, 4.6vw, 5rem);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.055em;
  text-transform: none;
  color: var(--er-black);
}

.entry-content > h2:first-child {
  margin-top: 0;
}

/* Sur /archives/, le calendrier suit les cards avec un espace identique
   à celui de la page Agenda. */
.er-archives-calendar {
  margin-top: clamp(58px, 7vw, 92px);
  padding-top: 0;
  border-top: 0;
}

.er-archives-calendar__title {
  margin-top: 0;
}

/* Cards : mêmes proportions, avec ou sans vignette. */
.er-event-card__link {
  padding-top: clamp(30px, 4vw, 50px);
  padding-bottom: clamp(30px, 4vw, 50px);
  min-height: 176px;
}

.er-event-card--no-thumb .er-event-card__link {
  grid-template-columns: clamp(76px, 10vw, 116px) minmax(0, 1fr) clamp(30px, 4vw, 46px);
  gap: clamp(20px, 3.2vw, 42px);
}

.er-event-card--has-thumb .er-event-card__link {
  grid-template-columns: clamp(76px, 9vw, 108px) clamp(142px, 18vw, 210px) minmax(0, 1fr) clamp(30px, 4vw, 46px);
  gap: clamp(20px, 3vw, 38px);
}

.er-event-card__title {
  font-size: clamp(2rem, 3.75vw, 4.2rem);
}

.er-event-card--has-thumb .er-event-card__title {
  font-size: clamp(1.85rem, 3.25vw, 3.65rem);
}

.er-event-card__venue,
.er-event-card__excerpt {
  max-width: none;
}

/* Calendriers Event Organiser : largeur contenue + respiration harmonisée. */
.entry-content > .eo-calendar,
.entry-content > .eo-calendar-widget,
.entry-content > .eo-fullcalendar,
.entry-content > .eo-fullcalendar-container,
.er-archives-calendar .eo-calendar,
.er-archives-calendar .eo-calendar-widget,
.er-archives-calendar .eo-fullcalendar,
.er-archives-calendar .eo-fullcalendar-container,
.er-archives-calendar .fc {
  margin-top: 0;
  margin-bottom: clamp(46px, 6vw, 76px);
  width: 100% !important;
  max-width: 100% !important;
}

/* Si la page Agenda contient le lien “Archives” après le calendrier,
   on le laisse respirer mais sans rupture excessive. */
.entry-content > .eo-calendar + h2,
.entry-content > .eo-calendar-widget + h2,
.entry-content > .eo-fullcalendar + h2,
.entry-content > .eo-fullcalendar-container + h2,
.entry-content > h2 + p {
  margin-top: clamp(20px, 3vw, 34px);
}

@media (max-width: 768px) {
  .page .inside-article,
  .single .inside-article,
  .archive .inside-article,
  .er-archives-page .inside-article {
    padding-top: clamp(48px, 10vw, 76px);
    padding-bottom: clamp(56px, 10vw, 86px);
  }

  .entry-title,
  .er-archives-page .entry-title {
    font-size: clamp(3rem, 14vw, 4.6rem);
  }

  .entry-content > h2,
  .er-archives-calendar__title {
    margin-top: clamp(46px, 10vw, 72px);
    font-size: clamp(2.4rem, 11vw, 3.8rem);
  }

  .er-event-card--no-thumb .er-event-card__link,
  .er-event-card--has-thumb .er-event-card__link {
    grid-template-columns: 1fr;
    gap: 18px;
    padding-top: 30px;
    padding-bottom: 30px;
  }
}



/* ----------------------------------------------------------
   Image de header pour toutes les pages
   Utilise l'image mise en avant de la page.
   ---------------------------------------------------------- */

.er-page-hero {
  position: relative;
  min-height: clamp(320px, 42vw, 560px);
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  margin: 0;
}

.er-page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.08) 0%,
      rgba(0, 0, 0, 0.58) 100%
    );
  pointer-events: none;
}

.er-page-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(56px, 8vw, 96px) clamp(28px, 5vw, 64px);
}

.er-page-hero__title {
  margin: 0;
  color: #fff;
  font-family: var(--er-serif);
  font-size: clamp(3.8rem, 8vw, 8rem);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.05em;
}

/* Quand le hero image est présent, on masque le titre classique de la page
   pour éviter le doublon. */
body.er-has-page-hero .entry-header {
  display: none;
}

/* On compense le retrait du titre classique en gardant un rythme confortable
   entre le hero et le contenu. */
body.er-has-page-hero .inside-article {
  padding-top: clamp(42px, 6vw, 76px);
}

body.er-has-page-hero .er-archives-page .inside-article,
body.er-has-page-hero .er-archives-page--agenda .inside-article {
  padding-top: clamp(42px, 6vw, 76px);
}

@media (max-width: 768px) {
  .er-page-hero {
    min-height: 340px;
  }

  .er-page-hero__inner {
    padding: 48px 24px;
  }

  .er-page-hero__title {
    font-size: clamp(3.2rem, 14vw, 5rem);
  }
}


/* ----------------------------------------------------------
   Hero plus compact sur les fiches événement
   ---------------------------------------------------------- */

body.single-event .er-page-hero,
body.er-has-event-hero .er-page-hero {
  min-height: clamp(220px, 28vw, 380px);
}

body.single-event .er-page-hero__inner,
body.er-has-event-hero .er-page-hero__inner {
  padding-top: clamp(42px, 6vw, 72px);
  padding-bottom: clamp(42px, 6vw, 72px);
}

body.single-event .er-page-hero__title,
body.er-has-event-hero .er-page-hero__title {
  font-size: clamp(2.8rem, 5.8vw, 5.6rem);
  max-width: 980px;
}

@media (max-width: 768px) {
  body.single-event .er-page-hero,
  body.er-has-event-hero .er-page-hero {
    min-height: 280px;
  }
}


/* Quand le thème affiche son propre hero, on masque l’image mise en avant native de GeneratePress.
   Sans ça, l’image apparaît une première fois en image simple, puis une seconde fois en hero. */
body.er-has-page-hero .page-header-image,
body.er-has-page-hero .page-header-image-single,
body.er-has-page-hero .post-image,
body.er-has-page-hero .featured-image,
body.er-has-page-hero .inside-article > .post-image,
body.er-has-page-hero .inside-article > .featured-image {
  display: none !important;
}


/* ==========================================================
   Correctifs v1.1.8 — Agenda / Archives homogènes
   - même calendrier full sur Agenda et Archives
   - date affichée = date d'événement Event Organiser, pas date de publication
   ========================================================== */

.er-agenda-events {
  margin-top: 2.5rem;
}

.er-agenda-calendar {
  margin-top: clamp(52px, 6vw, 84px);
}

.er-agenda-archives-link {
  margin-top: clamp(52px, 6vw, 82px);
}

.er-agenda-archives-link h2 {
  margin: 0 0 1rem;
  font-family: var(--er-serif);
  font-size: clamp(2.4rem, 4vw, 4.2rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 1.05;
}

.er-event-card__details + .er-event-card__excerpt {
  margin-top: 0.15rem;
}

/* ==========================================================
   FINAL OVERRIDE v1.2.4 — partenaires : couleur au survol
   Placé en fin de fichier pour gagner la cascade sur Meow / Gutenberg.
   ========================================================== */

body .entry-content .partners-logos img,
body .entry-content .wp-block-gallery.partners-logos img,
body .entry-content .meow-gallery.partners-logos img,
body .entry-content .mgl-gallery.partners-logos img {
  filter: grayscale(100%) !important;
  -webkit-filter: grayscale(100%) !important;
  opacity: 0.90 !important;
  transition: filter .22s ease, -webkit-filter .22s ease, opacity .22s ease, transform .22s ease !important;
}

body .entry-content .partners-logos:hover img:hover,
body .entry-content .partners-logos a:hover img,
body .entry-content .partners-logos figure:hover img,
body .entry-content .partners-logos .wp-block-image:hover img,
body .entry-content .partners-logos .mgl-item:hover img,
body .entry-content .partners-logos .mgl-img-container:hover img,
body .entry-content .wp-block-gallery.partners-logos a:hover img,
body .entry-content .wp-block-gallery.partners-logos figure:hover img,
body .entry-content .meow-gallery.partners-logos a:hover img,
body .entry-content .meow-gallery.partners-logos figure:hover img,
body .entry-content .mgl-gallery.partners-logos a:hover img,
body .entry-content .mgl-gallery.partners-logos .mgl-item:hover img {
  filter: none !important;
  -webkit-filter: none !important;
  opacity: 1 !important;
  transform: scale(1.02) !important;
}
