

/* ---------- Fonts ---------- */
@font-face{
  font-family:'Anko';
  src:url('fonts/Anko-Regular.woff2') format('woff2'),
      url('fonts/Anko-Regular.ttf') format('truetype');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Anko';
  src:url('fonts/Anko-RegularItalic.woff2') format('woff2'),
      url('fonts/Anko-RegularItalic.ttf') format('truetype');
  font-weight:400;font-style:italic;font-display:swap;
}
@font-face{
  font-family:'Anko';
  src:url('fonts/Anko-Bold.woff2') format('woff2'),
      url('fonts/Anko-Bold.ttf') format('truetype');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'TradeGothic';
  src:url('fonts/TradeGothicLT.woff2') format('woff2'),
      url('fonts/TradeGothicLT.ttf') format('truetype');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'TradeGothic';
  src:url('fonts/TradeGothicLT-Oblique.woff2') format('woff2'),
      url('fonts/TradeGothicLT-Oblique.ttf') format('truetype');
  font-weight:400;font-style:italic;font-display:swap;
}
@font-face{
  font-family:'TradeGothic';
  src:url('fonts/TradeGothicLT-BoldTwo.woff2') format('woff2'),
      url('fonts/TradeGothicLT-BoldTwo.ttf') format('truetype');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'TradeGothic';
  src:url('fonts/TradeGothicLT-BoldTwoOblique.woff2') format('woff2'),
      url('fonts/TradeGothicLT-BoldTwoOblique.ttf') format('truetype');
  font-weight:700;font-style:italic;font-display:swap;
}

/* ---------- Tokens ---------- */
:root{
  --ink:           #1d1c19;
  --ink-soft:      #4a463f;
  --ink-mute:      #807a6e;
  --paper:         #f1ebde;
  --paper-warm:    #e8dfca;
  --paper-deep:    #ddd0b3;
  --olive:         #4f5430;
  --olive-deep:    #353a1d;
  --slate-deep:    #232826;
  --brick:         #a04a32;
  --line:          rgba(29,28,25,.18);
  --line-soft:     rgba(29,28,25,.10);

  --serif:  'Anko', Georgia, 'Times New Roman', serif;
  --sans:   'TradeGothic', 'Helvetica Neue', Arial, sans-serif;

  --maxw: 1280px;
  --readw: 64ch;
  --pad:  clamp(22px, 5vw, 80px);
}

/* ---------- Reset léger + base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  /* léger grain papier */
  background-image:
    radial-gradient(rgba(0,0,0,.025) 1px, transparent 1px),
    radial-gradient(rgba(0,0,0,.018) 1px, transparent 1px);
  background-size:3px 3px, 7px 7px;
  background-position:0 0, 1px 2px;
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{
  color:inherit;
  text-decoration:none;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:100% 1px;
  background-repeat:no-repeat;
  background-position:0 100%;
  padding-bottom:1px;
  transition:background-size .3s ease;
}
a:hover{background-size:100% 2px}
sup{font-size:.7em;vertical-align:super}

::selection{background:var(--olive); color:var(--paper)}

/* ---------- Nav ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--pad);
  background:rgba(241,235,222,.88);
  backdrop-filter:saturate(140%) blur(10px);
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.nav__logo{
  display:inline-flex; align-items:baseline; gap:1px;
  font-family:var(--serif); font-weight:700;
  font-size:22px; letter-spacing:.01em;
  background:none; padding:0;
}
.nav__logo:hover{background:none}
.slash{display:inline-block; margin-right:2px}
.logo-word{letter-spacing:.04em}
.nav__links{display:flex; gap:16px; flex-wrap:wrap}
.nav__links a{
  font-family:var(--sans); font-size:11px;
  text-transform:uppercase; letter-spacing:.14em;
  background:none; padding:6px 0;
  position:relative;
}
.nav__links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0;
  height:1px; background:var(--ink); transition:right .35s ease;
}
.nav__links a:hover::after{right:0}
/* Groupe de droite (liens + sélecteur de langue) */
.nav__right{display:flex; align-items:center; gap:clamp(14px,2vw,24px)}
.nav__lang{
  font-family:var(--sans); font-size:11px;
  text-transform:uppercase; letter-spacing:.14em;
  background:none; padding:6px 0 6px 18px;
  border-left:1px solid var(--line);
  color:var(--ink-soft); white-space:nowrap;
}
.nav__lang:hover{background:none; color:var(--olive)}
/* Version allemande : traduit le label généré du groupe « hors les murs » */
html[lang="de"] .lieux__group--special::before{content:"ausserhalb der Museen"}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  min-height:96vh;
  display:flex; flex-direction:column;
  padding:60px var(--pad) 36px;
  color:#f5efe1;
  overflow:hidden;
  isolation:isolate;
}
.hero__bg{
  position:absolute; inset:0;
  background-image:url('img/oeuvre-1.jpg');
  background-size:cover;
  background-position:center;
  filter:blur(24px) saturate(120%) brightness(.82);
  z-index:-2;
  transform:scale(1.1);
}
.hero__veil{
  position:absolute; inset:0;
  background:
    radial-gradient(80% 70% at 25% 50%, rgba(20,22,18,.55) 0%, rgba(20,22,18,.05) 70%),
    linear-gradient(180deg, rgba(20,22,18,.25) 0%, rgba(20,22,18,.10) 40%, rgba(20,22,18,.45) 100%);
  z-index:-1;
}
.hero__eyebrow{
  position:relative;
  max-width:var(--maxw);
  width:100%;
  margin:0 auto;
  font-family:var(--sans);
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.32em;
  color:rgba(245,239,225,.85);
  line-height:1.5;
}
/* Scène desktop : texte + tableau côte à côte */
.hero__stage{
  flex:1;
  display:grid;
  grid-template-columns:1fr minmax(320px, 0.85fr);
  gap:clamp(32px, 5vw, 80px);
  align-items:center;
  max-width:var(--maxw);
  width:100%;
  margin:0 auto;
  position:relative;
  padding:20px 0 16px;
}
.hero__content{
  margin:0;
  position:relative;
  min-width:0; /* permet au titre nowrap de déborder dans le gap si besoin */
}
.hero__painting{
  margin:0;
  display:flex;
  justify-content:center;
  align-items:center;
  position:relative;
  height:100%;
}
.hero__painting img{
  height:78vh;
  max-height:680px;
  width:auto;
  max-width:100%;
  display:block;
  box-shadow:
    0 60px 100px -20px rgba(0,0,0,.75),
    0 20px 40px -10px rgba(0,0,0,.55);
}
.hero__title{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(64px, 10vw, 160px);
  line-height:.88;
  letter-spacing:-.015em;
  margin:0;
  color:#fff;
  text-shadow:0 6px 40px rgba(0,0,0,.25);
  white-space:nowrap;
}
.hero__slash{display:inline-block; margin-right:.02em; color:#fff;}
.hero__subtitle{
  font-family:var(--serif);
  font-size:clamp(22px, 2.4vw, 32px);
  font-style:italic;
  font-weight:400;
  margin:8px 0 36px;
  color:#fff;
}
.hero__subtitle em{font-style:italic}
.hero__dates{
  font-family:var(--sans);
  font-size:clamp(15px, 1.4vw, 18px);
  letter-spacing:.04em;
  margin:0;
  color:#fff;
}
.hero__dates strong{font-weight:700}
.hero__dash{display:inline-block; margin:0 14px; opacity:.7}
.hero__sites{
  position:relative;
  max-width:var(--maxw);
  width:100%;
  margin:48px auto 0;
  list-style:none; padding:0;
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  border-top:1px solid rgba(255,255,255,.28);
}
.hero__sites li{
  padding:20px 24px 18px 0;
  color:#fff;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:14px;
  align-items:start;
}
.hero__sites li + li{
  padding-left:24px;
  border-left:1px solid rgba(255,255,255,.16);
}
.hero__sites .num{
  font-family:var(--serif);
  font-size:22px;
  color:#fff;
  line-height:1;
  letter-spacing:-.05em;
  white-space:nowrap;
}
.hero__sites-pair{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.hero__sites-city{
  font-family:var(--sans);
  font-size:14px;
  letter-spacing:.02em;
  line-height:1.1;
  color:#fff;
}
.hero__sites-code{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.04em;
  color:rgba(255,255,255,.62);
  line-height:1.25;
}

/* ============================================================
   ED — sections éditoriales (intro, artiste, sous-en-têtes)
   ============================================================ */
.ed{
  max-width:var(--maxw);
  margin:0 auto;
  padding:130px var(--pad);
  position:relative;
}
.ed__kicker{
  font-family:var(--sans);
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:.32em;
  color:var(--olive);
  margin:0 0 28px;
}
.ed__kicker .num{
  font-family:var(--serif);
  font-size:16px;
  color:var(--olive);
  margin-right:8px;
  letter-spacing:0;
  vertical-align:-.05em;
}
.ed__title{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(36px, 5.8vw, 78px);
  line-height:.98;
  letter-spacing:-.015em;
  margin:0 0 56px;
  max-width:18ch;
}
.ed__years{
  display:block;
  font-family:var(--serif);
  font-weight:400;
  font-style:italic;
  font-size:.42em;
  color:var(--ink-soft);
  margin-top:14px;
  letter-spacing:.04em;
}

.ed--intro .ed__body{
  margin-left:auto;
  max-width:var(--readw);
  padding-right:4vw;
}
.ed--intro p{
  font-family:var(--serif);
  font-size:clamp(19px, 1.7vw, 23px);
  line-height:1.55;
  margin:0 0 1.1em;
  color:var(--ink);
}
.dropcap::first-letter{
  font-family:var(--serif);
  font-weight:700;
  float:left;
  font-size:5.6em;
  line-height:.82;
  padding:.06em .14em 0 0;
  color:var(--olive);
}

/* Artiste — deux colonnes asymétriques */
.ed--artist .ed__two{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:48px 80px;
  align-items:start;
}
.ed--artist .lead{
  font-family:var(--serif);
  font-size:clamp(22px, 2.3vw, 30px);
  line-height:1.35;
  margin:0;
  color:var(--ink);
}
.ed--artist .lead em{font-style:italic; color:var(--olive)}
.ed--artist .ed__col p{
  margin:0 0 1.1em;
  font-size:16px;
  line-height:1.7;
  color:var(--ink-soft);
}
.pull{
  margin:90px 0 0;
  padding:0 0 0 clamp(20px, 6vw, 80px);
  max-width:24ch;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(24px, 3vw, 38px);
  line-height:1.25;
  color:var(--olive);
  border-left:2px solid var(--olive);
}
.pull cite{
  display:block;
  margin-top:18px;
  font-style:normal;
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-mute);
}

/* ============================================================
   LIEUX — liste éditoriale, pas de boîtes
   ============================================================ */
.lieux{
  max-width:var(--maxw);
  margin:0 auto;
  padding:130px var(--pad);
}
.lieux__head{margin:0 0 80px; max-width:62ch}
.lieux__intro{
  font-family:var(--serif);
  font-size:clamp(19px, 1.7vw, 22px);
  line-height:1.55;
  margin:24px 0 0;
  max-width:60ch;
  color:var(--ink-soft);
}
.lieux__group{margin-top:60px}
.lieux__group-t{
  display:flex; flex-wrap:wrap; align-items:baseline;
  gap:6px 18px;
  margin:0 0 8px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line-soft);
  font-family:var(--sans);
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.24em;
  font-size:12px;
  color:var(--olive);
}
.lieux__group-t span{font-size:14px; letter-spacing:.22em}
.lieux__group-t em{
  font-style:normal;
  margin-left:auto;
  color:var(--ink-mute);
  font-size:11px;
  letter-spacing:.22em;
}

.lieux-list{
  list-style:none; padding:0; margin:0;
  counter-reset:lieu;
}
.lieu{
  display:grid;
  grid-template-columns:minmax(110px, 18%) 1fr;
  gap:48px;
  padding:48px 0;
  border-bottom:1px solid var(--line-soft);
  align-items:start;
}
.lieu:last-child{border-bottom:none}
.lieu__num{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(40px, 5vw, 68px);
  line-height:.85;
  color:var(--olive);
  letter-spacing:-.08em;
  white-space:nowrap;
}
.lieu__body{max-width:62ch}
.lieu__name{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(28px, 3.4vw, 44px);
  line-height:1.05;
  margin:0 0 6px;
  letter-spacing:-.01em;
}
.lieu__inst{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--olive-deep);
  margin:0 0 22px;
}
.lieu__txt{
  font-family:var(--serif);
  font-size:clamp(17px, 1.4vw, 19px);
  line-height:1.55;
  margin:0 0 18px;
  color:var(--ink);
}
.lieu__addr{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-mute);
  margin:0;
  padding-top:14px;
  border-top:1px dashed var(--line-soft);
  display:inline-block;
}
.lieu__meta{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:8px 22px;
  margin:18px 0 0;
  padding-top:16px;
  border-top:1px dashed var(--line-soft);
  font-family:var(--sans);
  font-size:13px;
  line-height:1.45;
  align-items:baseline;
}
.lieu__meta dt{
  font-size:10.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--olive);
  white-space:nowrap;
  padding-top:2px;
}
.lieu__meta dd{
  margin:0;
  color:var(--ink);
}
.lieu__meta dd .muted{
  color:var(--ink-mute);
  font-size:.92em;
}

/* ---------- Carte des 5 lieux ---------- */
.lieux__map-wrap{margin-top:80px}
.lieux__map{
  width:100%;
  height:clamp(360px, 56vh, 560px);
  margin-top:18px;
  border:1px solid var(--line-soft);
  background:var(--paper-warm);
}
.lieux__map .leaflet-container{
  font-family:var(--sans);
  background:#e9e4d6;
}
/* marqueur custom */
.coghuf-marker{background:none !important; border:none !important}
.coghuf-marker__dot{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px;
  border-radius:50%;
  background:var(--olive);
  color:#f5efe1;
  box-shadow:0 4px 14px rgba(0,0,0,.25), 0 0 0 4px rgba(241,235,222,.85);
  transition:transform .2s ease;
}
.coghuf-marker:hover .coghuf-marker__dot{transform:scale(1.1)}
.coghuf-marker__slash{
  font-family:var(--serif);
  font-weight:700;
  font-size:15px;
  line-height:1;
  letter-spacing:-.06em;
}
/* popup */
.leaflet-popup-content-wrapper{
  background:var(--paper);
  border-radius:0;
  box-shadow:0 12px 30px -10px rgba(0,0,0,.35);
  padding:2px;
}
.leaflet-popup-tip{background:var(--paper)}
.leaflet-popup-content{margin:14px 18px; min-width:200px}
.coghuf-popup__num{
  font-family:var(--serif);
  font-size:18px;
  color:var(--olive);
  margin:0 0 4px;
  line-height:1;
}
.coghuf-popup__name{
  font-family:var(--serif);
  font-weight:700;
  font-size:20px;
  margin:0 0 4px;
  line-height:1.1;
  color:var(--ink);
}
.coghuf-popup__inst{
  font-family:var(--sans);
  font-size:10.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--olive-deep);
  margin:0 0 12px;
}
.coghuf-popup__link{
  font-family:var(--sans);
  font-size:12px;
  margin:0;
}
.coghuf-popup__link a{
  color:var(--ink);
  background-image:linear-gradient(currentColor,currentColor);
  background-size:100% 1px;
  background-repeat:no-repeat;
  background-position:0 100%;
}

/* groupe spécial : fond chaud, marge supplémentaire */
.lieux__group--special{
  margin-top:96px;
  padding:64px clamp(20px, 4vw, 60px);
  background:
    linear-gradient(180deg, rgba(232,223,202,.55), rgba(221,208,179,.55));
  border:1px solid var(--line-soft);
  position:relative;
}
.lieux__group--special::before{
  content:"hors les murs";
  position:absolute; top:-12px; left:24px;
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:.32em;
  text-transform:uppercase;
  background:var(--paper);
  padding:4px 10px;
  color:var(--olive);
  border:1px solid var(--line-soft);
}

.lieux__map .leaflet-tile{
  filter: grayscale(1) brightness(1.1) contrast(0.52);
}

/* ============================================================
   ŒUVRES — CARROUSEL
   ============================================================ */
.works{
  padding:130px 0 130px;
  background:linear-gradient(180deg, transparent 0%, rgba(232,223,202,.5) 100%);
  position:relative;
  overflow:hidden;
}
.works__head{
  max-width:var(--maxw);
  margin:0 auto 70px;
  padding:0 var(--pad);
}
.works__intro{
  font-family:var(--serif);
  font-size:clamp(18px, 1.6vw, 21px);
  line-height:1.55;
  margin:24px 0 0;
  max-width:54ch;
  color:var(--ink-soft);
}

.carousel{
  width:min(100%, 720px);
  margin:0 auto;
  padding:0 var(--pad) 60px;
  position:relative;
}
.carousel__slide{
  display:flex; flex-direction:column;
}

.carousel__media{
  margin:0;
  width:fit-content;
  max-width:100%;
  overflow:hidden;
  box-shadow:
    0 30px 60px -20px rgba(0,0,0,.35),
    0 8px 20px -10px rgba(0,0,0,.25);
}
.carousel__img{
  display:block;
  width:auto;
  max-width:100%;
  max-height:70vh;
}
.carousel__caption{
  margin:22px 0 0;
  padding:0 4px;
}
.carousel__num{
  font-family:var(--serif);
  color:var(--olive);
  font-size:22px;
  margin:0 0 4px;
  line-height:1;
}
.carousel__title{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(22px, 2vw, 28px);
  line-height:1.15;
  margin:0 0 6px;
}
.carousel__sub{
  font-family:var(--serif);
  font-style:italic;
  font-size:15px;
  color:var(--ink-soft);
  margin:0;
}

/* pagination */
.carousel .swiper-pagination{
  position:relative;
  margin-top:30px;
  text-align:center;
}
.carousel .swiper-pagination-bullet{
  width:48px; height:2px;
  border-radius:0;
  background:var(--ink);
  opacity:.16;
  transition:opacity .25s, background .25s;
  margin:0 5px !important;
}
.carousel .swiper-pagination-bullet-active{
  opacity:1;
  background:var(--olive);
}


.carousel__stage{
  display:flex; align-items:center; justify-content:center;
  gap:clamp(10px, 1.6vw, 22px);
  width:fit-content; max-width:100%; margin:0 auto;
}
.carousel__stage .carousel{
  flex:0 0 auto;
  width:min(84vw, 52vh);   /* ← le cadre calé en vh : suit la largeur des œuvres */
  margin:0; padding:0 0 4px;
}
.carousel__nav{
  flex:0 0 auto; width:44px; height:44px;
  display:flex; align-items:center; justify-content:center; padding:0;
  font-family:var(--serif); font-size:19px; line-height:1; color:var(--ink);
  background:none; border:1px solid var(--line); border-radius:50%;
  cursor:pointer; transition:background-color .2s, color .2s, border-color .2s;
}
.carousel__nav:hover{ background:var(--olive); color:var(--paper); border-color:var(--olive); }
.carousel__media{ margin:0 auto; }      /* image centrée dans le cadre */
.carousel__caption{ text-align:center; }
@media (max-width:560px){
  .carousel__stage{ gap:4px; }
  .carousel__stage .carousel{ width:min(72vw, 52vh); }
  .carousel__nav{ width:34px; height:34px; font-size:16px; }
}

/* ============================================================
   VENIR — definition list éditoriale
   ============================================================ */
.venir{
  max-width:var(--maxw);
  margin:0 auto;
  padding:130px var(--pad);
}
.venir__head{margin:0 0 60px; max-width:62ch}
.venir__list{
  margin:0; padding:0;
  display:grid;
  grid-template-columns:1fr;
}
.venir__list > div{
  display:grid;
  grid-template-columns:minmax(180px, 22%) 1fr;
  gap:32px;
  padding:32px 0;
  border-top:1px solid var(--line-soft);
  align-items:baseline;
}
.venir__list > div:last-child{border-bottom:1px solid var(--line-soft)}
.venir__list dt{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(20px, 1.9vw, 26px);
  letter-spacing:-.005em;
}
.venir__list dd{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(17px, 1.4vw, 19px);
  line-height:1.55;
  color:var(--ink);
  max-width:54ch;
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{
  background:var(--slate-deep);
  color:var(--paper);
  padding:60px var(--pad) 30px;
  margin-top:80px;
}
.footer__inner{
  max-width:var(--maxw);
  margin:0 auto;
  display:flex; flex-wrap:wrap; gap:36px;
  align-items:flex-end; justify-content:space-between;
  padding-bottom:26px;
  border-bottom:1px solid rgba(255,255,255,.15);
}
.footer__logo{
  font-family:var(--serif);
  font-weight:700;
  font-size:30px;
  display:flex; flex-direction:column; gap:6px;
}
.footer__logo-name{
  display:inline-flex; align-items:baseline; gap:1px;
  line-height:1;
}
.footer__tag{
  font-family:var(--sans);
  font-weight:400;
  font-size:11px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
}
.footer__partners{
  list-style:none; padding:0; margin:0;
  display:flex; flex-wrap:wrap; gap:12px 26px;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:rgba(255,255,255,.7);
}
.footer__legal{
  max-width:var(--maxw);
  margin:18px auto 0;
  font-size:11px;
  color:rgba(255,255,255,.55);
  letter-spacing:.16em;
  text-transform:uppercase;
  display:flex; flex-wrap:wrap; gap:18px; justify-content:space-between;
}
.footer__legal a{
  color:rgba(255,255,255,.9);
  background:none;
  padding:0;
}

/* ============================================================
   AGENDA — liste chronologique éditoriale
   ============================================================ */
.agenda{
  max-width:var(--maxw);
  margin:0 auto;
  padding:130px var(--pad);
}
.agenda__head{margin:0 0 56px; max-width:62ch}
.agenda__intro{
  font-family:var(--serif);
  font-size:clamp(18px, 1.6vw, 22px);
  line-height:1.55;
  margin:24px 0 0;
  max-width:58ch;
  color:var(--ink-soft);
}
.agenda__list{list-style:none; padding:0; margin:0}
.agenda__item{
  display:grid;
  grid-template-columns:minmax(160px, 22%) 1fr;
  gap:40px;
  padding:36px 0;
  border-top:1px solid var(--line-soft);
  align-items:baseline;
}
.agenda__item:last-child{border-bottom:1px solid var(--line-soft)}
.agenda__when-main{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(19px, 1.7vw, 24px);
  line-height:1.15;
  color:var(--olive);
  letter-spacing:-.01em;
}
.agenda__title{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(22px, 2.2vw, 30px);
  line-height:1.1;
  margin:0 0 6px;
}
.agenda__where{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--olive-deep);
  margin:0 0 12px;
}
.agenda__txt{
  font-family:var(--serif);
  font-size:clamp(16px, 1.4vw, 19px);
  line-height:1.55;
  margin:0;
  color:var(--ink);
  max-width:56ch;
}
.agenda__more{
  font-family:var(--sans);
  font-size:11.5px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-mute);
  margin:30px 0 0;
}

/* ============================================================
   CATALOGUE — présentation du livre
   ============================================================ */
.catalogue{
  max-width:var(--maxw);
  margin:0 auto;
  padding:130px var(--pad);
}
.catalogue__head{margin:0 0 56px; max-width:62ch}
.catalogue__layout{
  display:grid;
  grid-template-columns:minmax(200px, .42fr) 1fr;
  gap:clamp(32px, 5vw, 72px);
  align-items:center;
}
.catalogue__cover{margin:0}
.catalogue__cover-ph{
  aspect-ratio:3/4;
  background:linear-gradient(160deg, var(--olive) 0%, var(--olive-deep) 100%);
  color:#f5efe1;
  display:flex; flex-direction:column; justify-content:flex-end; gap:6px;
  padding:28px;
  box-shadow:
    0 30px 60px -20px rgba(0,0,0,.4),
    0 8px 20px -10px rgba(0,0,0,.3);
}
.catalogue__cover-slash{font-family:var(--serif); font-size:42px; line-height:1}
.catalogue__cover-name{
  font-family:var(--serif); font-weight:700;
  font-size:clamp(28px, 3vw, 38px); line-height:1; letter-spacing:.02em;
}
.catalogue__cover-tag{
  font-family:var(--serif); font-style:italic;
  font-size:16px; color:rgba(245,239,225,.8);
}
.catalogue__lead{
  font-family:var(--serif);
  font-size:clamp(20px, 2vw, 26px);
  line-height:1.4;
  margin:0 0 1em;
  color:var(--ink);
}
.catalogue__txt{
  font-family:var(--serif);
  font-size:clamp(17px, 1.4vw, 19px);
  line-height:1.6;
  margin:0 0 1.6em;
  color:var(--ink-soft);
  max-width:52ch;
}
.catalogue__cta{display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin:0}
.catalogue__cta-note{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--brick);
}

/* bouton générique */
.btn{
  display:inline-block;
  font-family:var(--sans);
  font-size:13px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#f5efe1;
  background:var(--olive);
  background-image:none;
  padding:14px 26px;
  border:1px solid var(--olive);
  transition:background-color .25s ease, border-color .25s ease;
}
.btn:hover{
  background:var(--olive-deep);
  background-size:auto;
  border-color:var(--olive-deep);
}

.catalogue__otherlang{
  margin:18px 0 0;
  font-family:var(--serif);
  font-style:italic;
  font-size:15px;
  color:var(--ink-soft);
}
.catalogue__otherlang a{
  color:var(--olive);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color .2s ease;
}
.catalogue__otherlang a:hover{ border-color:var(--olive); }

/* ============================================================
   SPONSORS — soutiens (institutions en texte + grille de logos)
   ============================================================ */
.sponsors{
  max-width:var(--maxw);
  margin:0 auto;
  padding:130px var(--pad);
}
.sponsors__head{margin:0 0 52px; max-width:62ch}
.sponsors__intro{
  font-family:var(--serif);
  font-size:clamp(18px, 1.6vw, 22px);
  line-height:1.55;
  margin:24px 0 0;
  max-width:58ch;
  color:var(--ink-soft);
}
.sponsors__institutions{
  font-family:var(--serif);
  font-size:clamp(15px, 1.3vw, 18px);
  line-height:1.75;
  margin:16px 0 0;
  color:var(--ink);
}
.sponsors__logos{ list-style:none; padding:0; margin:52px 0 0; display:grid;
  grid-template-columns:repeat(6,1fr); gap:clamp(20px,3vw,48px); }
.sponsors__logo{ display:flex; align-items:center; justify-content:center; min-height:88px; padding:6px; }
.sponsors__logo img{ max-width:100%; max-height:58px; width:auto; height:auto; object-fit:contain; transition:opacity .2s; }
.sponsors__logo a{ display:inline-flex; align-items:center; justify-content:center; background:none; padding:0; }
.sponsors__logo a:hover{ background:none } .sponsors__logo a:hover img{ opacity:.6 }

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* Tablette : tableau et titre un peu réduits */
@media (max-width: 1180px) and (min-width: 901px){
  .hero__stage{grid-template-columns:1fr minmax(260px, .8fr); gap:28px}
  .hero__painting img{height:66vh; max-height:540px}
  .hero__title{font-size:clamp(56px, 9vw, 110px)}
}

@media (max-width: 900px){
  .nav__links{display:none}
  .nav__lang{border-left:none; padding-left:0}
  .hero{min-height:92vh; padding:32px var(--pad) 24px}
  .hero__bg{filter:saturate(96%) brightness(.7); transform:scale(1.04); background-position:center 32%}
  .hero__title{font-size:clamp(60px, 16vw, 110px)}
  .hero__subtitle{font-size:clamp(18px, 4.5vw, 24px); margin:6px 0 24px}
  .hero__dates{font-size:13px}
  .hero__eyebrow{font-size:11px; letter-spacing:.28em; margin-bottom:24px}
  .hero__stage{
    flex:1;
    display:flex; flex-direction:column;
    justify-content:flex-end;
    padding:0;
  }
  .hero__painting{display:none}
  .hero__content{margin-top:auto}
  .hero__sites{grid-template-columns:1fr; margin-top:36px; border-top:1px solid rgba(255,255,255,.28)}
  .hero__sites li{
    grid-template-columns:60px 1fr;
    gap:12px;
    padding:14px 0;
    border-left:none !important;
    border-bottom:1px solid rgba(255,255,255,.16);
  }
  .hero__sites li + li{padding-left:0}
  .hero__sites li:last-child{border-bottom:none}
  .hero__sites .num{font-size:18px}
  .hero__sites-pair{flex-direction:column; gap:4px}
  .hero__sites-city{font-size:15px}
  .hero__sites-code{font-size:12px; letter-spacing:.03em}
  .ed--artist .ed__two{grid-template-columns:1fr}
  .lieu{grid-template-columns:1fr; gap:14px}
  .lieu__num{font-size:44px; letter-spacing:-.1em}
  .venir__list > div{grid-template-columns:1fr; gap:8px}
  .venir__list dt{font-size:20px}
  .agenda__item{grid-template-columns:1fr; gap:8px}
  .catalogue__layout{grid-template-columns:1fr; gap:28px}
  .catalogue__cover{max-width:260px}
  .sponsors__logos{grid-template-columns:repeat(3, 1fr)}
  .ed, .lieux, .venir, .agenda, .catalogue, .sponsors{padding:80px var(--pad)}
  .pull{margin-top:50px}
}

.pressgallery{ list-style:none; padding:0; margin:44px 0 0;
  display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:clamp(16px,2.4vw,32px); }
.pressgallery__item{ margin:0; }
.pressgallery__link{ position:relative; display:block; aspect-ratio:1/1; overflow:hidden;
  background:rgba(232,223,202,.5); border:1px solid var(--line); }
.pressgallery__thumb{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .4s ease, filter .3s ease; }
.pressgallery__link:hover .pressgallery__thumb{ transform:scale(1.04); filter:brightness(.8); }
.pressgallery__badge{ position:absolute; right:0; bottom:0; margin:10px; padding:6px 11px;
  font-family:var(--sans); font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--paper); background:var(--olive); transition:background-color .2s; }
.pressgallery__link:hover .pressgallery__badge,
.pressgallery__link:focus-visible .pressgallery__badge{ background:var(--ink); }
.pressgallery__cap{ font-family:var(--serif); font-style:italic; font-size:14px;
  color:var(--ink-soft); line-height:1.35; margin:12px 2px 0; }
  
  .pressgallery__meta{
  display:block; margin-top:4px;
  font-family:var(--sans); font-style:normal;
  font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--brick);
}