/* =========================================================
   Programme 2026 — version stabilisée après refonte
   ---------------------------------------------------------
   Logique retenue : date en titre de journée en haut du papier,
   lecture horaire / contenu, hiérarchie concerts / infos pratiques.
   ========================================================= */

#programme.programme-2026 {
  --programme-night: #071641;
  --programme-cream: #fff7e7;
  --programme-paper-text: #18345a;
  --programme-paper-text-soft: rgba(24, 52, 90, 0.80);
  --programme-paper-line: rgba(24, 52, 90, 0.085);
  --programme-gold: #c49625;
  --programme-gold-deep: #b98e20;
  --programme-orange: #e77f67;
  --programme-teal: #5d9ea0;

  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin: -1px 0 0;
  padding: clamp(58px, 7vw, 88px) 0 clamp(72px, 9vw, 112px);
  color: var(--programme-cream);
  background: var(--programme-night);
  letter-spacing: normal;
}

#programme.programme-2026::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: url('../img/fond.jpg') center center / cover no-repeat;
  transform: scaleY(-1);
  transform-origin: center center;
}

#programme.programme-2026::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 8%, rgba(255, 211, 61, 0.07), transparent 17%),
    linear-gradient(180deg,
      rgba(7, 45, 100, 0.08) 0%,
      rgba(36, 20, 78, 0.22) 28%,
      rgba(7, 22, 65, 0.56) 62%,
      rgba(6, 15, 46, 0.88) 100%
    );
}

#programme.programme-2026 .programme-2026-container {
  position: relative;
  z-index: 1;
  max-width: 1160px;
}

/* Desktop : papier volontairement plus étroit pour éviter l'effet grand panneau vide */
@media (min-width: 992px) {
  #programme.programme-2026 .programme-2026-container {
    width: 62vw;
    min-width: 760px;
    max-width: 1160px;
    padding-left: 0;
    padding-right: 0;
  }
}

#programme.programme-2026 .programme-2026-intro {
  max-width: 620px;
  margin: 0 auto clamp(34px, 5vw, 54px);
  text-align: center;
}

#programme.programme-2026 .programme-2026-title-image {
  display: block;
  width: min(300px, 32vw);
  height: auto;
  margin: 0 auto;
  filter:
    drop-shadow(0 0 10px rgba(255, 211, 61, 0.14))
    drop-shadow(0 10px 22px rgba(3, 8, 31, 0.24));
}

#programme.programme-2026 .programme-2026-artistic-direction {
  margin: 18px 0 0;
  font-family: futura, poppins, Arial, sans-serif;
  font-size: clamp(0.62rem, 0.75vw, 0.72rem);
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
  color: rgba(255, 247, 231, 0.76);
  text-shadow: 0 4px 16px rgba(3, 8, 31, 0.22);
}

/* Cartes */
#programme.programme-2026 .programme-2026-days {
  display: grid;
  gap: clamp(26px, 3.5vw, 42px);
}

#programme.programme-2026 .programme-2026-day {
  display: block;
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

#programme.programme-2026 .programme-2026-paper {
  position: relative;
  display: block;
  padding: clamp(34px, 4.1vw, 52px) clamp(44px, 5.2vw, 70px) clamp(32px, 3.9vw, 48px);
  color: var(--programme-paper-text);
  isolation: isolate;
}

#programme.programme-2026 .programme-2026-paper::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url('../img/edito-papier-musique.png') center center / 100% 100% no-repeat;
  filter: drop-shadow(0 18px 40px rgba(6, 14, 46, 0.30));
}

/* Date : titre de journée centré en haut du papier */
#programme.programme-2026 .programme-2026-date {
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.42em;
  width: 100%;
  margin: 0 0 clamp(24px, 2.6vw, 34px);
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
  color: var(--programme-paper-text);
}

#programme.programme-2026 .programme-2026-date::after {
  content: "";
  display: block;
  flex-basis: 100%;
  width: 42px;
  max-width: 42px;
  height: 1px;
  margin: 0.50em auto 0;
  background: var(--programme-gold);
  opacity: 0.58;
}

#programme.programme-2026 .programme-2026-weekday,
#programme.programme-2026 .programme-2026-number,
#programme.programme-2026 .programme-2026-month {
  font-family: futura, poppins, Arial, sans-serif;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: none;
}

#programme.programme-2026 .programme-2026-weekday {
  color: var(--programme-gold-deep);
  font-size: clamp(1.05rem, 1.22vw, 1.32rem);
  letter-spacing: 0.16em;
}

#programme.programme-2026 .programme-2026-number,
#programme.programme-2026 .programme-2026-month {
  color: #0b2a55;
  font-size: clamp(1.16rem, 1.34vw, 1.46rem);
  letter-spacing: 0.10em;
}

#programme.programme-2026 .programme-2026-number {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
}

#programme.programme-2026 .programme-2026-ordinal {
  display: inline-block;
  margin-left: 0.06em;
  font-size: 0.58em;
  line-height: 1;
  letter-spacing: 0.02em;
  transform: translateY(-0.18em);
}

/* Liste d'événements */
#programme.programme-2026 .programme-2026-events {
  display: grid;
  gap: clamp(24px, 2.5vw, 32px);
  min-width: 0;
}

#programme.programme-2026 .programme-2026-event {
  display: grid;
  grid-template-columns: clamp(96px, 9vw, 128px) minmax(0, 1fr);
  gap: 10px clamp(22px, 2.8vw, 34px);
  align-items: start;
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

#programme.programme-2026 .programme-2026-event + .programme-2026-event {
  padding-top: 0;
  background: none;
}

#programme.programme-2026 .programme-2026-time {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: clamp(78px, 7vw, 94px);
  max-width: 100%;
  padding: 0.38em 0.78em 0.42em;
  border: 0;
  border-radius: 6px;
  background: rgba(190, 139, 31, 0.92);
  color: rgba(255, 247, 231, 0.98);
  font-family: futura, poppins, Arial, sans-serif;
  font-size: clamp(1.06rem, 1.26vw, 1.28rem);
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  text-shadow: none;
}

#programme.programme-2026 .programme-2026-event-heading {
  display: block;
  min-width: 0;
  margin: 0 0 7px;
}

#programme.programme-2026 .programme-2026-event h2 {
  margin: 0;
  padding: 0;
  min-width: 0;
  font-family: futura, poppins, Arial, sans-serif;
  font-size: clamp(1.48rem, 2.20vw, 2.12rem);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: 0.065em;
  text-align: left;
  text-transform: uppercase;
  color: var(--programme-orange);
  text-shadow: none;
}

#programme.programme-2026 .programme-2026-place {
  display: block;
  margin: 0.35rem 0 0;
  font-family: futura, poppins, Arial, sans-serif;
  font-size: clamp(0.72rem, 0.84vw, 0.86rem);
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.25;
  text-transform: uppercase;
  color: var(--programme-gold-deep);
  text-shadow: none;
}

#programme.programme-2026 .programme-2026-place::before {
  content: none;
}

#programme.programme-2026 .programme-2026-description {
  margin: 0;
  max-width: 760px;
  font-family: 'Newsreader', Georgia, serif;
  font-size: clamp(1.06rem, 1.35vw, 1.28rem);
  font-weight: 300;
  line-height: 1.45;
  letter-spacing: 0;
  text-align: left;
  color: var(--programme-paper-text-soft);
  text-shadow: none;
}

#programme.programme-2026 .programme-2026-description span,
#programme.programme-2026 .programme-2026-description em {
  color: var(--programme-paper-text);
}

#programme.programme-2026 .programme-2026-description em {
  font-style: italic;
}

#programme.programme-2026 .programme-2026-tagline,
#programme.programme-2026 .programme-2026-note {
  display: block;
  margin-top: 0.30rem;
  margin-left: 0;
  font-family: 'Caveat', 'Segoe Print', 'Bradley Hand', cursive;
  font-size: clamp(0.98rem, 1.16vw, 1.12rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: 0;
  color: rgba(24, 52, 90, 0.70);
  opacity: 0.58;
  text-shadow: none;
  white-space: normal;
}

/* Éléments secondaires : restitution enfant / info pratique */
#programme.programme-2026 .programme-2026-event-choral,
#programme.programme-2026 .programme-2026-event-service {
  opacity: 0.95;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
  background: rgba(74, 145, 148, 0.78);
  color: rgba(255, 247, 231, 0.96);
}

#programme.programme-2026 .programme-2026-event-choral h2,
#programme.programme-2026 .programme-2026-event-service h2 {
  font-size: clamp(1.04rem, 1.26vw, 1.22rem);
  line-height: 1.22;
  letter-spacing: 0.07em;
  text-transform: none;
  color: #36506f;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-place,
#programme.programme-2026 .programme-2026-event-service .programme-2026-place {
  font-size: clamp(0.62rem, 0.72vw, 0.72rem);
  letter-spacing: 0.14em;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-description,
#programme.programme-2026 .programme-2026-event-service .programme-2026-description {
  max-width: 720px;
  font-size: clamp(0.94rem, 1.10vw, 1.04rem);
  line-height: 1.38;
  color: rgba(24, 52, 90, 0.76);
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-note,
#programme.programme-2026 .programme-2026-event-choral .programme-2026-note-choral {
  margin-top: 0.40rem;
  font-family: futura, poppins, Arial, sans-serif;
  font-size: clamp(0.62rem, 0.72vw, 0.72rem);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.13em;
  line-height: 1.2;
  text-transform: uppercase;
  color: rgba(74, 145, 148, 0.88);
  opacity: 1;
}

/* Food truck : info pratique, pas concert */
#programme.programme-2026 .programme-2026-service-card {
  display: none !important;
}

#programme.programme-2026 .programme-2026-event-service .programme-2026-time {
  min-width: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(74, 145, 148, 0.96);
  font-size: clamp(1.02rem, 1.14vw, 1.12rem);
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.12;
  text-align: left;
}

/* Réservation */
#programme.programme-2026 .programme-2026-day-reservation {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  margin-top: clamp(22px, 2.5vw, 34px);
  padding-top: 0;
  border: 0;
}

#programme.programme-2026 .programme-2026-day-reservation p {
  display: none;
}

#programme.programme-2026 .programme-2026-day-reservation-link {
  display: inline-flex;
  align-items: baseline;
  gap: 0.78rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-decoration: none;
  transform: none;
  transition: opacity 180ms ease, color 180ms ease;
}

#programme.programme-2026 .programme-2026-day-reservation-label,
#programme.programme-2026 .programme-2026-day-reservation-action {
  font-family: futura, poppins, Arial, sans-serif;
  font-weight: 400;
  line-height: 1.2;
  text-transform: uppercase;
}

#programme.programme-2026 .programme-2026-day-reservation-label {
  font-size: clamp(0.60rem, 0.66vw, 0.68rem);
  letter-spacing: 0.11em;
  color: rgba(24, 52, 90, 0.58);
}

#programme.programme-2026 .programme-2026-day-reservation-action {
  font-size: clamp(0.66rem, 0.74vw, 0.78rem);
  letter-spacing: 0.08em;
  color: rgba(185, 142, 32, 0.92);
}

#programme.programme-2026 .programme-2026-day-reservation-link:hover,
#programme.programme-2026 .programme-2026-day-reservation-link:focus {
  background: transparent;
  border: 0;
  color: inherit;
  opacity: 0.82;
  transform: none;
  text-decoration: none;
}

#programme.programme-2026 .programme-2026-day-reservation-link:hover .programme-2026-day-reservation-action,
#programme.programme-2026 .programme-2026-day-reservation-link:focus .programme-2026-day-reservation-action {
  color: var(--programme-orange);
}

@media (min-width: 992px) {
  #programme.programme-2026 .programme-2026-paper {
    padding: clamp(32px, 3.2vw, 46px) clamp(34px, 3.8vw, 54px) clamp(30px, 3vw, 42px);
  }

  #programme.programme-2026 .programme-2026-date {
    justify-content: center;
    margin-bottom: clamp(24px, 2.4vw, 32px);
  }

  #programme.programme-2026 .programme-2026-events {
    gap: clamp(24px, 2.35vw, 32px);
  }

  #programme.programme-2026 .programme-2026-event {
    grid-template-columns: clamp(84px, 6.2vw, 112px) minmax(0, 1fr);
    gap: 8px clamp(18px, 2.2vw, 28px);
  }

  #programme.programme-2026 .programme-2026-event + .programme-2026-event {
    padding-top: 0;
    background: none;
  }

  #programme.programme-2026 .programme-2026-event h2 {
    font-size: clamp(1.34rem, 1.72vw, 1.74rem);
    line-height: 1.14;
    letter-spacing: 0.058em;
  }

  #programme.programme-2026 .programme-2026-description {
    font-size: clamp(1rem, 1.10vw, 1.12rem);
    line-height: 1.42;
  }

  #programme.programme-2026 .programme-2026-tagline,
  #programme.programme-2026 .programme-2026-note {
    font-size: clamp(0.94rem, 1vw, 1.04rem);
  }

  #programme.programme-2026 .programme-2026-day-featured .programme-2026-paper {
    padding-top: clamp(34px, 3.4vw, 48px);
    padding-bottom: clamp(32px, 3.2vw, 44px);
  }

  #programme.programme-2026 .programme-2026-paper-short {
    padding-top: clamp(30px, 3vw, 42px);
    padding-bottom: clamp(30px, 3vw, 40px);
  }
}

/* Tablette */
@media (max-width: 991px) {
  #programme.programme-2026 .programme-2026-container {
    max-width: 760px;
  }

  #programme.programme-2026 .programme-2026-paper {
    padding: 38px 34px 36px;
  }

  #programme.programme-2026 .programme-2026-date {
    margin-bottom: 24px;
  }

  #programme.programme-2026 .programme-2026-event {
    grid-template-columns: 104px minmax(0, 1fr);
  }

  #programme.programme-2026 .programme-2026-events {
    gap: 26px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  #programme.programme-2026 {
    padding: 42px 0 64px;
  }

  #programme.programme-2026 .programme-2026-container {
    max-width: 430px;
    padding-left: 16px;
    padding-right: 16px;
  }

  #programme.programme-2026 .programme-2026-intro {
    margin-bottom: 28px;
  }

  #programme.programme-2026 .programme-2026-title-image {
    width: min(225px, 62vw);
  }

  #programme.programme-2026 .programme-2026-artistic-direction {
    margin-top: 14px;
    font-size: 0.58rem;
    letter-spacing: 0.10em;
  }

  #programme.programme-2026 .programme-2026-days {
    gap: 24px;
  }

  #programme.programme-2026 .programme-2026-paper {
    padding: 32px 20px 28px;
  }

  #programme.programme-2026 .programme-2026-date {
    display: flex;
    justify-content: center;
    margin-bottom: 24px;
    text-align: center;
  }

  #programme.programme-2026 .programme-2026-date::after {
    margin-left: auto;
    margin-right: auto;
  }

  #programme.programme-2026 .programme-2026-weekday {
    font-size: 0.82rem;
    letter-spacing: 0.15em;
  }

  #programme.programme-2026 .programme-2026-number,
  #programme.programme-2026 .programme-2026-month {
    font-size: 0.98rem;
    letter-spacing: 0.08em;
  }

  #programme.programme-2026 .programme-2026-events {
    gap: 24px;
  }

  #programme.programme-2026 .programme-2026-event {
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 8px 12px;
  }

  #programme.programme-2026 .programme-2026-event + .programme-2026-event {
    padding-top: 0;
    background: none;
  }

  #programme.programme-2026 .programme-2026-time {
    min-width: 68px;
    padding: 0.32em 0.54em 0.36em;
    font-size: 0.88rem;
    letter-spacing: 0;
  }

  #programme.programme-2026 .programme-2026-event-service .programme-2026-time {
    min-width: 0;
    padding: 0;
    background: transparent;
    font-size: 0.72rem;
  }

  #programme.programme-2026 .programme-2026-event-choral h2,
  #programme.programme-2026 .programme-2026-event-service h2 {
    font-size: clamp(0.92rem, 4.4vw, 1.02rem);
    line-height: 1.24;
    letter-spacing: 0.06em;
  }

  #programme.programme-2026 .programme-2026-event h2 {
    font-size: clamp(1.12rem, 6.2vw, 1.42rem);
    line-height: 1.14;
    letter-spacing: 0.048em;
  }

  #programme.programme-2026 .programme-2026-place {
    margin-top: 0.26rem;
    font-size: 0.66rem;
    line-height: 1.25;
    letter-spacing: 0.13em;
  }

  #programme.programme-2026 .programme-2026-description {
    font-size: 1rem;
    line-height: 1.42;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-description,
  #programme.programme-2026 .programme-2026-event-service .programme-2026-description {
    font-size: 0.90rem;
    line-height: 1.36;
  }

  #programme.programme-2026 .programme-2026-tagline {
    font-size: 0.94rem;
  }

  #programme.programme-2026 .programme-2026-day-reservation {
    justify-content: center;
    margin-top: 20px;
    text-align: center;
  }

  #programme.programme-2026 .programme-2026-day-reservation-link {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.30rem 0.58rem;
  }

  #programme.programme-2026 .programme-2026-day-reservation-label {
    font-size: 0.56rem;
    letter-spacing: 0.08em;
  }

  #programme.programme-2026 .programme-2026-day-reservation-action {
    font-size: 0.62rem;
    letter-spacing: 0.06em;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-container {
    max-width: 390px;
    padding-left: 12px;
    padding-right: 12px;
  }

  #programme.programme-2026 .programme-2026-paper {
    padding: 30px 16px 26px;
  }

  #programme.programme-2026 .programme-2026-event {
    grid-template-columns: 72px minmax(0, 1fr);
    column-gap: 10px;
  }

  #programme.programme-2026 .programme-2026-time {
    min-width: 62px;
    font-size: 0.82rem;
  }

  #programme.programme-2026 .programme-2026-event-service .programme-2026-time {
    font-size: 0.66rem;
  }

  #programme.programme-2026 .programme-2026-event h2 {
    font-size: clamp(1.04rem, 5.9vw, 1.30rem);
  }

  #programme.programme-2026 .programme-2026-description {
    font-size: 0.96rem;
  }

  #programme.programme-2026 .programme-2026-day-reservation-link {
    flex-direction: column;
    align-items: center;
  }
}

/* =========================================================
   Correctif 2026-04-29 — hiérarchie chant choral + accroches
   ---------------------------------------------------------
   Le concert du stage de chant choral reste une restitution
   secondaire, et les accroches manuscrites redeviennent lisibles.
   ========================================================= */

#programme.programme-2026 .programme-2026-date {
  justify-content: center;
  text-align: center;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
  min-width: clamp(68px, 5.2vw, 82px);
  padding: 0.30em 0.58em 0.34em;
  border-radius: 5px;
  font-size: clamp(0.86rem, 0.92vw, 1.02rem);
  font-weight: 500;
  background: rgba(74, 145, 148, 0.70);
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-event-content {
  max-width: 560px;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-event-heading {
  margin-bottom: 0.38rem;
}

#programme.programme-2026 .programme-2026-event-choral h2 {
  font-size: clamp(1.00rem, 1.04vw, 1.18rem);
  line-height: 1.24;
  letter-spacing: 0.06em;
  text-transform: none;
  color: #36506f;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-place {
  margin-top: 0.22rem;
  font-size: clamp(0.60rem, 0.66vw, 0.70rem);
  letter-spacing: 0.14em;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
  max-width: 520px;
  font-size: clamp(0.90rem, 0.96vw, 1.02rem);
  line-height: 1.34;
  color: rgba(24, 52, 90, 0.72);
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-note,
#programme.programme-2026 .programme-2026-event-choral .programme-2026-note-choral {
  margin-top: 0.36rem;
  font-size: clamp(0.58rem, 0.64vw, 0.68rem);
  letter-spacing: 0.13em;
}

#programme.programme-2026 .programme-2026-tagline {
  margin-top: 0.42rem;
  font-size: clamp(1.06rem, 0.98vw, 1.18rem);
  line-height: 1.18;
  color: rgba(24, 52, 90, 0.78);
  opacity: 0.82;
}

@media (max-width: 767px) {
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
    min-width: 62px;
    font-size: 0.76rem;
    padding: 0.30em 0.46em 0.34em;
  }

  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.88rem, 4.1vw, 1.00rem);
    letter-spacing: 0.045em;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
    font-size: 0.86rem;
  }

  #programme.programme-2026 .programme-2026-tagline {
    font-size: 1.00rem;
    opacity: 0.84;
  }
}

/* =========================================================
   Correctif 2026-04-30 — proportions réellement appliquées
   ---------------------------------------------------------
   Ce bloc final verrouille la largeur desktop, centre la date
   et retire le petit filet décoratif.
   ========================================================= */

@media (min-width: 992px) {
  #programme.programme-2026 .programme-2026-container {
    width: 62vw !important;
    min-width: 760px !important;
    max-width: 1160px !important;
  }
}

#programme.programme-2026 .programme-2026-date {
  justify-content: center !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#programme.programme-2026 .programme-2026-date::after {
  content: none !important;
  display: none !important;
}


/* =========================================================
   Correctif 2026-04-30 — alignement food truck + CTA plus court
   ---------------------------------------------------------
   L'horaire de l'info pratique reste sans fond, mais retrouve
   une vraie tenue dans la colonne horaire. La réservation est
   raccourcie pour ne plus former une longue ligne commerciale.
   ========================================================= */

#programme.programme-2026 .programme-2026-event-service .programme-2026-time {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin-top: 0.16rem;
  padding: 0;
  background: transparent;
  color: rgba(74, 145, 148, 0.96);
  font-size: clamp(0.94rem, 1vw, 1.04rem);
  font-weight: 500;
  line-height: 1.18;
  text-align: right;
  white-space: nowrap;
}

#programme.programme-2026 .programme-2026-day-reservation-link {
  gap: 0.55rem;
}

#programme.programme-2026 .programme-2026-day-reservation-label {
  font-size: clamp(0.56rem, 0.62vw, 0.64rem);
  letter-spacing: 0.10em;
}

#programme.programme-2026 .programme-2026-day-reservation-action {
  font-size: clamp(0.62rem, 0.70vw, 0.74rem);
  letter-spacing: 0.07em;
}

@media (max-width: 767px) {
  #programme.programme-2026 .programme-2026-event-service .programme-2026-time {
    justify-content: flex-start;
    width: auto;
    margin-top: 0.10rem;
    font-size: 0.70rem;
    text-align: left;
  }

  #programme.programme-2026 .programme-2026-day-reservation-link {
    gap: 0.24rem 0.50rem;
  }
}

/* =========================================================
   Correctif 2026-04-30 — vraie adaptation mobile
   ---------------------------------------------------------
   Sur téléphone, on abandonne la grille desktop : l'horaire
   se pose au-dessus du bloc, le texte retrouve toute la largeur,
   et le concert du stage garde son ordre logique.
   ========================================================= */

#programme.programme-2026 .programme-2026-choral-meta {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.34rem 0.48rem;
  margin: 0.42rem 0 0;
}

#programme.programme-2026 .programme-2026-choral-meta .programme-2026-place,
#programme.programme-2026 .programme-2026-choral-meta .programme-2026-note {
  display: inline-block;
  margin: 0;
}

#programme.programme-2026 .programme-2026-choral-meta .programme-2026-place::after {
  content: " ·";
  color: rgba(24, 52, 90, 0.38);
}

@media (max-width: 767px) {
  #programme.programme-2026 .programme-2026-date {
    display: block !important;
    margin-bottom: 26px !important;
    line-height: 1.2;
    text-align: center !important;
  }

  #programme.programme-2026 .programme-2026-date::after {
    content: none !important;
    display: none !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday,
  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    display: inline !important;
    font-weight: 500;
    line-height: 1.15;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    font-size: clamp(0.96rem, 4.7vw, 1.12rem);
    letter-spacing: 0.105em;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-size: clamp(0.98rem, 4.9vw, 1.14rem);
    letter-spacing: 0.075em;
  }

  #programme.programme-2026 .programme-2026-event {
    display: block !important;
    padding: 0;
  }

  #programme.programme-2026 .programme-2026-event + .programme-2026-event {
    margin-top: 28px;
  }

  #programme.programme-2026 .programme-2026-time {
    display: inline-flex;
    margin: 0 0 0.78rem;
    min-width: 72px;
    padding: 0.34em 0.62em 0.38em;
    font-size: 0.92rem;
  }

  #programme.programme-2026 .programme-2026-event-content {
    width: 100%;
    max-width: none;
  }

  #programme.programme-2026 .programme-2026-event-heading {
    margin-bottom: 0.46rem;
  }

  #programme.programme-2026 .programme-2026-event h2 {
    font-size: clamp(1.24rem, 6.1vw, 1.58rem);
    line-height: 1.16;
    letter-spacing: 0.052em;
  }

  #programme.programme-2026 .programme-2026-event-choral h2,
  #programme.programme-2026 .programme-2026-event-service h2 {
    font-size: clamp(1.02rem, 4.9vw, 1.18rem);
    line-height: 1.22;
    letter-spacing: 0.055em;
  }

  #programme.programme-2026 .programme-2026-place {
    margin-top: 0.32rem;
  }

  #programme.programme-2026 .programme-2026-description {
    font-size: clamp(1.02rem, 4.9vw, 1.14rem);
    line-height: 1.40;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-description,
  #programme.programme-2026 .programme-2026-event-service .programme-2026-description {
    font-size: clamp(0.94rem, 4.4vw, 1.02rem);
    line-height: 1.38;
  }

  #programme.programme-2026 .programme-2026-event-service .programme-2026-time {
    display: inline-block;
    margin: 0 0 0.58rem;
    width: auto;
    color: rgba(74, 145, 148, 0.98);
    font-size: clamp(0.90rem, 4.2vw, 1.00rem);
    font-weight: 500;
    line-height: 1.15;
    text-align: left;
  }

  #programme.programme-2026 .programme-2026-choral-meta {
    gap: 0.20rem 0.42rem;
    margin-top: 0.48rem;
  }

  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-place,
  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-note {
    font-size: 0.66rem;
    letter-spacing: 0.13em;
    line-height: 1.25;
  }

  #programme.programme-2026 .programme-2026-tagline {
    margin-top: 0.52rem;
    font-size: clamp(1.05rem, 5vw, 1.18rem);
    line-height: 1.16;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    font-size: 0.92rem;
    letter-spacing: 0.095em;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-size: 0.94rem;
    letter-spacing: 0.065em;
  }

  #programme.programme-2026 .programme-2026-event h2 {
    font-size: clamp(1.16rem, 6vw, 1.42rem);
  }
}

/* =========================================================
   Ajustement 2026-04-30 — mobile : date, accroches, choral
   ---------------------------------------------------------
   Objectifs : date plus présente, accroches moins dominantes,
   titre de la restitution choral sur une ligne en mobile.
   ========================================================= */

#programme.programme-2026 .programme-2026-tagline {
  font-weight: 400 !important;
  color: rgba(24, 52, 90, 0.56) !important;
  opacity: 0.72 !important;
}

@media (max-width: 767px) {
  #programme.programme-2026 .programme-2026-date {
    margin-bottom: 25px !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday,
  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-weight: 600 !important;
    opacity: 1 !important;
    text-shadow: none !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    font-size: clamp(1.02rem, 4.9vw, 1.18rem) !important;
    letter-spacing: 0.095em !important;
    color: var(--programme-gold-deep) !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-size: clamp(1.04rem, 5vw, 1.20rem) !important;
    letter-spacing: 0.060em !important;
    color: #0b2a55 !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-event-heading {
    margin-bottom: 0.32rem !important;
  }

  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.86rem, 3.9vw, 0.98rem) !important;
    line-height: 1.18 !important;
    letter-spacing: 0.026em !important;
    white-space: nowrap !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
    font-size: clamp(0.90rem, 4.2vw, 1.00rem) !important;
    line-height: 1.34 !important;
  }

  #programme.programme-2026 .programme-2026-tagline {
    margin-top: 0.42rem !important;
    font-size: clamp(0.88rem, 4.1vw, 0.98rem) !important;
    line-height: 1.18 !important;
    font-weight: 400 !important;
    color: rgba(24, 52, 90, 0.54) !important;
    opacity: 0.70 !important;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.80rem, 3.55vw, 0.90rem) !important;
    letter-spacing: 0.018em !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    font-size: 1.00rem !important;
    letter-spacing: 0.085em !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-size: 1.02rem !important;
    letter-spacing: 0.052em !important;
  }
}

/* =========================================================
   Ajustement 2026-04-30 — mobile : lisibilité date + lieux
   ---------------------------------------------------------
   Sur téléphone, la date et les lieux doivent être de vrais
   repères. Les accroches manuscrites restent secondaires.
   ========================================================= */

@media (max-width: 767px) {
  /* Date : moins fine, plus lisible, sans devenir massive */
  #programme.programme-2026 .programme-2026-date {
    margin-bottom: 26px !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday,
  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: 700 !important;
    line-height: 1.12 !important;
    opacity: 1 !important;
    text-rendering: geometricPrecision;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    font-size: clamp(1.02rem, 4.95vw, 1.18rem) !important;
    letter-spacing: 0.075em !important;
    color: #b88a1f !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-size: clamp(1.04rem, 5.05vw, 1.20rem) !important;
    letter-spacing: 0.050em !important;
    color: #0b2a55 !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-ordinal {
    font-weight: 700 !important;
    transform: translateY(-0.12em) !important;
  }

  /* Lieux : doivent se voir sur téléphone */
  #programme.programme-2026 .programme-2026-place,
  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-place,
  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-note {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: clamp(0.72rem, 3.35vw, 0.82rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0.095em !important;
    line-height: 1.25 !important;
    color: rgba(178, 132, 24, 0.98) !important;
    opacity: 1 !important;
  }

  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-note {
    color: rgba(74, 145, 148, 0.98) !important;
  }

  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-place::after {
    color: rgba(24, 52, 90, 0.30) !important;
  }

  /* Restitution chœur : tient sur une ligne, mais reste secondaire */
  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-family: futura, poppins, Arial, sans-serif !important;
    font-size: clamp(0.84rem, 3.7vw, 0.96rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.018em !important;
    line-height: 1.18 !important;
    white-space: nowrap !important;
    color: #36506f !important;
  }

  /* Accroches : lisibles mais clairement secondaires */
  #programme.programme-2026 .programme-2026-tagline {
    margin-top: 0.46rem !important;
    font-size: clamp(0.86rem, 3.95vw, 0.96rem) !important;
    font-weight: 400 !important;
    line-height: 1.16 !important;
    color: rgba(24, 52, 90, 0.42) !important;
    opacity: 0.62 !important;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    font-size: 0.98rem !important;
    letter-spacing: 0.068em !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-size: 1.00rem !important;
    letter-spacing: 0.045em !important;
  }

  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.78rem, 3.42vw, 0.88rem) !important;
    letter-spacing: 0.010em !important;
  }

  #programme.programme-2026 .programme-2026-place,
  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-place,
  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-note {
    font-size: 0.68rem !important;
    letter-spacing: 0.080em !important;
  }
}

/* =========================================================
   Correctif 2026-04-30 — restitution chorale vraiment secondaire
   ---------------------------------------------------------
   Sans modifier le texte : le concert du stage devient une
   annonce très discrète, et non le premier concert du festival.
   ========================================================= */

#programme.programme-2026 .programme-2026-event-choral {
  opacity: 0.84 !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
  min-width: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(74, 145, 148, 0.78) !important;
  font-size: clamp(0.72rem, 0.78vw, 0.84rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.015em !important;
  line-height: 1.1 !important;
}

#programme.programme-2026 .programme-2026-event-choral h2 {
  font-size: clamp(0.84rem, 0.94vw, 1.02rem) !important;
  font-weight: 400 !important;
  letter-spacing: 0.025em !important;
  line-height: 1.18 !important;
  color: rgba(54, 80, 111, 0.76) !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
  font-size: clamp(0.82rem, 0.90vw, 0.94rem) !important;
  line-height: 1.32 !important;
  color: rgba(24, 52, 90, 0.62) !important;
}

@media (max-width: 767px) {
  #programme.programme-2026 .programme-2026-date {
    margin-bottom: 28px !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday,
  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-family: futura, poppins, Arial, sans-serif !important;
    font-weight: 600 !important;
    line-height: 1.12 !important;
    opacity: 1 !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    font-size: clamp(1.08rem, 5.35vw, 1.28rem) !important;
    letter-spacing: 0.075em !important;
    color: #b88a1f !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-size: clamp(1.10rem, 5.45vw, 1.30rem) !important;
    letter-spacing: 0.050em !important;
    color: #0b2a55 !important;
  }

  #programme.programme-2026 .programme-2026-place,
  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-place,
  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-note {
    font-family: futura, poppins, Arial, sans-serif !important;
    font-size: clamp(0.72rem, 3.25vw, 0.82rem) !important;
    font-weight: 600 !important;
    letter-spacing: 0.105em !important;
    line-height: 1.25 !important;
    color: rgba(178, 132, 24, 0.98) !important;
    opacity: 1 !important;
  }

  #programme.programme-2026 .programme-2026-choral-meta .programme-2026-note {
    color: rgba(74, 145, 148, 0.95) !important;
  }

  #programme.programme-2026 .programme-2026-event-choral {
    opacity: 0.78 !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
    display: inline-block !important;
    min-width: 0 !important;
    margin: 0 0 0.56rem !important;
    padding: 0 !important;
    background: transparent !important;
    color: rgba(74, 145, 148, 0.78) !important;
    font-size: clamp(0.72rem, 3.3vw, 0.82rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.010em !important;
  }

  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.76rem, 3.25vw, 0.88rem) !important;
    font-weight: 400 !important;
    line-height: 1.16 !important;
    letter-spacing: 0.008em !important;
    white-space: nowrap !important;
    color: rgba(54, 80, 111, 0.76) !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
    font-size: clamp(0.78rem, 3.65vw, 0.88rem) !important;
    line-height: 1.30 !important;
    color: rgba(24, 52, 90, 0.62) !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta {
    margin-top: 0.36rem !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-place,
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-note {
    font-size: clamp(0.58rem, 2.75vw, 0.66rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.095em !important;
  }

  #programme.programme-2026 .programme-2026-tagline {
    margin-top: 0.44rem !important;
    font-size: clamp(0.78rem, 3.55vw, 0.88rem) !important;
    font-weight: 400 !important;
    line-height: 1.16 !important;
    color: rgba(24, 52, 90, 0.36) !important;
    opacity: 0.58 !important;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.72rem, 3.05vw, 0.82rem) !important;
    letter-spacing: 0 !important;
  }
}

/* =========================================================
   Ajustement 2026-04-30 — stabilisation hiérarchie vendredi
   ---------------------------------------------------------
   Le concert du stage devient une mention secondaire compacte ;
   le Conte musical reprend le rôle de premier vrai concert.
   ========================================================= */

/* Accroches : présentes, mais nettement sous le texte principal */
#programme.programme-2026 .programme-2026-tagline {
  font-weight: 400 !important;
  color: rgba(24, 52, 90, 0.48) !important;
  opacity: 0.68 !important;
}

/* Restitution chorale : bloc compact, pas une entrée de programme principale */
#programme.programme-2026 .programme-2026-event-choral {
  opacity: 0.78 !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  column-gap: 0.72rem !important;
  row-gap: 0 !important;
  max-width: 560px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
  display: inline-block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0.10rem 0 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(74, 145, 148, 0.72) !important;
  font-size: clamp(0.68rem, 0.72vw, 0.78rem) !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
  letter-spacing: 0.01em !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-event-content {
  max-width: none !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-event-heading {
  margin-bottom: 0.18rem !important;
}

#programme.programme-2026 .programme-2026-event-choral h2 {
  font-size: clamp(0.78rem, 0.88vw, 0.96rem) !important;
  font-weight: 400 !important;
  line-height: 1.14 !important;
  letter-spacing: 0.018em !important;
  color: rgba(54, 80, 111, 0.72) !important;
  white-space: nowrap !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
  max-width: none !important;
  font-size: clamp(0.78rem, 0.84vw, 0.90rem) !important;
  line-height: 1.25 !important;
  color: rgba(24, 52, 90, 0.56) !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta {
  margin-top: 0.26rem !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-place,
#programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-note {
  font-size: clamp(0.54rem, 0.58vw, 0.62rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.09em !important;
}

/* Vendredi : le vrai bloc d'ouverture artistique reprend visuellement la main */
#programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event {
  margin-top: clamp(8px, 1.2vw, 16px) !important;
}

#programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event h2 {
  font-size: clamp(1.50rem, 1.90vw, 1.92rem) !important;
  letter-spacing: 0.060em !important;
}

@media (max-width: 767px) {
  /* Date mobile : plus ferme, sans épaissir tout le reste */
  #programme.programme-2026 .programme-2026-date .programme-2026-weekday,
  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-family: futura, poppins, Arial, sans-serif !important;
    font-weight: 700 !important;
    line-height: 1.10 !important;
    opacity: 1 !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    font-size: clamp(1.08rem, 5.2vw, 1.24rem) !important;
    letter-spacing: 0.070em !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-size: clamp(1.10rem, 5.3vw, 1.26rem) !important;
    letter-spacing: 0.045em !important;
  }

  /* Choral mobile : une note compacte, sans pastille ni effet de concert */
  #programme.programme-2026 .programme-2026-event-choral {
    display: block !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    opacity: 0.74 !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
    display: block !important;
    margin: 0 0 0.36rem !important;
    font-size: clamp(0.66rem, 3.1vw, 0.76rem) !important;
    color: rgba(74, 145, 148, 0.72) !important;
  }

  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.74rem, 3.35vw, 0.86rem) !important;
    font-weight: 400 !important;
    line-height: 1.12 !important;
    letter-spacing: 0.004em !important;
    white-space: nowrap !important;
    color: rgba(54, 80, 111, 0.70) !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
    font-size: clamp(0.76rem, 3.55vw, 0.86rem) !important;
    line-height: 1.28 !important;
    color: rgba(24, 52, 90, 0.56) !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-place,
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-note {
    font-size: clamp(0.54rem, 2.55vw, 0.62rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.08em !important;
  }

  #programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event {
    margin-top: 30px !important;
  }

  #programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event h2 {
    font-size: clamp(1.38rem, 6.6vw, 1.72rem) !important;
    letter-spacing: 0.050em !important;
  }

  #programme.programme-2026 .programme-2026-tagline {
    margin-top: 0.44rem !important;
    font-size: clamp(0.80rem, 3.7vw, 0.92rem) !important;
    font-weight: 400 !important;
    line-height: 1.16 !important;
    color: rgba(24, 52, 90, 0.38) !important;
    opacity: 0.60 !important;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.70rem, 3.05vw, 0.80rem) !important;
    letter-spacing: 0 !important;
  }
}

/* =========================================================
   Correctif 2026-04-30 — stabilisation finale sans head.php
   ---------------------------------------------------------
   Objectifs :
   - restitution chorale lisible mais clairement secondaire ;
   - date plus stable, moins filiforme ;
   - CTA réservation identifiable comme lien cliquable.
   ========================================================= */

/* Date : repère net, centré, sans effet trop léger */
#programme.programme-2026 .programme-2026-date {
  margin-bottom: clamp(24px, 2.4vw, 32px) !important;
}

#programme.programme-2026 .programme-2026-date .programme-2026-weekday,
#programme.programme-2026 .programme-2026-date .programme-2026-number,
#programme.programme-2026 .programme-2026-date .programme-2026-month {
  font-family: futura, poppins, Arial, sans-serif !important;
  font-weight: 600 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

#programme.programme-2026 .programme-2026-date .programme-2026-weekday {
  color: #b88a1f !important;
  letter-spacing: 0.085em !important;
}

#programme.programme-2026 .programme-2026-date .programme-2026-number,
#programme.programme-2026 .programme-2026-date .programme-2026-month {
  color: #0b2a55 !important;
  letter-spacing: 0.055em !important;
}

/* Restitution chorale : secondaire, mais jamais illisible */
#programme.programme-2026 .programme-2026-event-choral {
  opacity: 1 !important;
  grid-template-columns: clamp(76px, 6vw, 96px) minmax(0, 1fr) !important;
  column-gap: clamp(16px, 2vw, 26px) !important;
  max-width: 640px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0.05rem 0 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(74, 145, 148, 0.92) !important;
  font-family: futura, poppins, Arial, sans-serif !important;
  font-size: clamp(0.82rem, 0.88vw, 0.96rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.15 !important;
  text-align: right !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-event-heading {
  margin-bottom: 0.26rem !important;
}

#programme.programme-2026 .programme-2026-event-choral h2 {
  font-size: clamp(0.96rem, 1.04vw, 1.12rem) !important;
  font-weight: 500 !important;
  line-height: 1.18 !important;
  letter-spacing: 0.018em !important;
  text-transform: none !important;
  color: rgba(54, 80, 111, 0.88) !important;
  white-space: nowrap !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
  max-width: none !important;
  font-size: clamp(0.88rem, 0.95vw, 1.00rem) !important;
  line-height: 1.32 !important;
  color: rgba(24, 52, 90, 0.72) !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta {
  margin-top: 0.34rem !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-place,
#programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-note {
  font-size: clamp(0.60rem, 0.68vw, 0.72rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.095em !important;
  opacity: 0.96 !important;
}

/* Le Conte musical garde le rôle de vrai premier concert */
#programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event {
  margin-top: clamp(16px, 1.8vw, 26px) !important;
}

#programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event h2 {
  font-size: clamp(1.50rem, 1.92vw, 1.94rem) !important;
  font-weight: 400 !important;
  color: var(--programme-orange) !important;
}

/* Accroches manuscrites : visibles, mais nettement secondaires */
#programme.programme-2026 .programme-2026-tagline {
  margin-top: 0.40rem !important;
  font-weight: 400 !important;
  color: rgba(24, 52, 90, 0.46) !important;
  opacity: 0.70 !important;
}

/* CTA : le lien doit se lire comme une action cliquable, sans devenir un gros bouton */
#programme.programme-2026 .programme-2026-day-reservation {
  margin-top: clamp(22px, 2.3vw, 30px) !important;
}

#programme.programme-2026 .programme-2026-day-reservation-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.62rem !important;
  padding: 0.42rem 0.70rem 0.44rem !important;
  border: 1px solid rgba(185, 142, 32, 0.30) !important;
  border-radius: 999px !important;
  background: rgba(255, 247, 231, 0.18) !important;
  text-decoration: none !important;
}

#programme.programme-2026 .programme-2026-day-reservation-label {
  color: rgba(24, 52, 90, 0.68) !important;
}

#programme.programme-2026 .programme-2026-day-reservation-action {
  color: #b88a1f !important;
  font-weight: 500 !important;
}

#programme.programme-2026 .programme-2026-day-reservation-link:hover,
#programme.programme-2026 .programme-2026-day-reservation-link:focus {
  border-color: rgba(231, 127, 103, 0.42) !important;
  background: rgba(255, 247, 231, 0.30) !important;
  opacity: 1 !important;
}

@media (max-width: 767px) {
  /* Date mobile : plus lisible et moins fragile */
  #programme.programme-2026 .programme-2026-date {
    margin-bottom: 28px !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday,
  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-weight: 650 !important;
    line-height: 1.12 !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    font-size: clamp(1.08rem, 5.1vw, 1.22rem) !important;
    letter-spacing: 0.070em !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-size: clamp(1.10rem, 5.25vw, 1.26rem) !important;
    letter-spacing: 0.044em !important;
  }

  /* Choral mobile : lisible, mais traité comme information secondaire */
  #programme.programme-2026 .programme-2026-event-choral {
    display: grid !important;
    grid-template-columns: 62px minmax(0, 1fr) !important;
    column-gap: 10px !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    opacity: 1 !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
    margin-top: 0.08rem !important;
    color: rgba(74, 145, 148, 0.90) !important;
    font-size: clamp(0.72rem, 3.25vw, 0.82rem) !important;
    font-weight: 600 !important;
    text-align: right !important;
  }

  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.80rem, 3.55vw, 0.94rem) !important;
    font-weight: 500 !important;
    line-height: 1.16 !important;
    letter-spacing: 0.006em !important;
    color: rgba(54, 80, 111, 0.86) !important;
    white-space: nowrap !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
    font-size: clamp(0.82rem, 3.85vw, 0.92rem) !important;
    line-height: 1.30 !important;
    color: rgba(24, 52, 90, 0.68) !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-place,
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-note {
    font-size: clamp(0.60rem, 2.85vw, 0.70rem) !important;
    font-weight: 600 !important;
    letter-spacing: 0.078em !important;
  }

  #programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event {
    margin-top: 28px !important;
  }

  #programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event h2 {
    font-size: clamp(1.42rem, 6.8vw, 1.74rem) !important;
  }

  #programme.programme-2026 .programme-2026-tagline {
    font-size: clamp(0.80rem, 3.72vw, 0.92rem) !important;
    color: rgba(24, 52, 90, 0.42) !important;
    opacity: 0.64 !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation {
    justify-content: center !important;
    margin-top: 22px !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-link {
    gap: 0.22rem 0.48rem !important;
    padding: 0.42rem 0.58rem 0.44rem !important;
    border-color: rgba(185, 142, 32, 0.36) !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-label {
    font-size: 0.54rem !important;
    letter-spacing: 0.07em !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-action {
    font-size: 0.60rem !important;
    letter-spacing: 0.055em !important;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-event-choral {
    grid-template-columns: 58px minmax(0, 1fr) !important;
    column-gap: 9px !important;
  }

  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.76rem, 3.30vw, 0.86rem) !important;
  }
}

/* =========================================================
   Correctif 2026-04-30 — restitution chorale alignée
   ---------------------------------------------------------
   Le concert du stage reste secondaire, mais il n'est plus
   centré comme un événement mis en avant : il reprend la
   même grille horaire / contenu que le reste du programme.
   ========================================================= */

#programme.programme-2026 .programme-2026-event-choral {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  grid-template-columns: clamp(84px, 6.2vw, 112px) minmax(0, 1fr) !important;
  column-gap: clamp(18px, 2.2vw, 28px) !important;
}

#programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
  text-align: right !important;
}

@media (max-width: 991px) {
  #programme.programme-2026 .programme-2026-event-choral {
    grid-template-columns: 104px minmax(0, 1fr) !important;
    column-gap: 12px !important;
  }
}

@media (max-width: 767px) {
  #programme.programme-2026 .programme-2026-event-choral {
    grid-template-columns: 62px minmax(0, 1fr) !important;
    column-gap: 10px !important;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-event-choral {
    grid-template-columns: 58px minmax(0, 1fr) !important;
    column-gap: 9px !important;
  }
}

/* =========================================================
   Correctif 2026-04-30 — mobile : titres moins fins + accroches lisibles
   ---------------------------------------------------------
   Objectif : rapprocher le rendu mobile des titres principaux
   du rendu desktop, sans modifier la hiérarchie du choral.
   ========================================================= */

@media (max-width: 767px) {
  /* Titres des vrais concerts : moins filiformes sur téléphone */
  #programme.programme-2026 .programme-2026-event:not(.programme-2026-event-choral):not(.programme-2026-event-service) h2 {
    font-weight: 500 !important;
    letter-spacing: 0.046em !important;
    color: rgba(231, 127, 103, 0.96) !important;
    text-rendering: geometricPrecision;
  }

  /* On garde le Conte musical fort, mais pas excessivement étiré */
  #programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event h2 {
    font-weight: 500 !important;
    letter-spacing: 0.046em !important;
    color: rgba(231, 127, 103, 0.96) !important;
  }

  /* Accroches : même couleur douce, mais un peu plus lisibles */
  #programme.programme-2026 .programme-2026-tagline {
    font-size: clamp(0.88rem, 4.10vw, 1.02rem) !important;
    line-height: 1.18 !important;
    color: rgba(24, 52, 90, 0.44) !important;
    opacity: 0.68 !important;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-event:not(.programme-2026-event-choral):not(.programme-2026-event-service) h2 {
    font-weight: 500 !important;
    letter-spacing: 0.038em !important;
  }

  #programme.programme-2026 .programme-2026-tagline {
    font-size: clamp(0.84rem, 3.95vw, 0.96rem) !important;
  }
}

/* =========================================================
   Correctif 2026-04-30 — mobile : choral à gauche, titres plus fermes,
   CTA sur deux lignes
   ---------------------------------------------------------
   Dernière couche volontairement limitée au rendu mobile + CTA.
   ========================================================= */

/* CTA : séparer l'information et l'action, sur ordinateur comme sur mobile */
#programme.programme-2026 .programme-2026-day-reservation-link {
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.16rem !important;
  padding: 0.46rem 0.86rem 0.50rem !important;
  line-height: 1.1 !important;
}

#programme.programme-2026 .programme-2026-day-reservation-label,
#programme.programme-2026 .programme-2026-day-reservation-action {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  white-space: nowrap !important;
}

#programme.programme-2026 .programme-2026-day-reservation-label {
  font-size: clamp(0.54rem, 0.60vw, 0.62rem) !important;
  letter-spacing: 0.09em !important;
  color: rgba(24, 52, 90, 0.58) !important;
}

#programme.programme-2026 .programme-2026-day-reservation-action {
  font-size: clamp(0.66rem, 0.74vw, 0.78rem) !important;
  letter-spacing: 0.07em !important;
  font-weight: 600 !important;
  color: #b88a1f !important;
}

@media (max-width: 767px) {
  /* Choral : aligné à gauche comme les autres blocs, plus de mini-bloc centré */
  #programme.programme-2026 .programme-2026-event-choral {
    display: block !important;
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
    opacity: 1 !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-time {
    display: inline-block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 0 0.56rem 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: rgba(74, 145, 148, 0.92) !important;
    font-size: clamp(0.78rem, 3.55vw, 0.88rem) !important;
    font-weight: 600 !important;
    text-align: left !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-event-content,
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-event-heading,
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-description,
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
  }

  #programme.programme-2026 .programme-2026-event-choral h2 {
    display: block !important;
    max-width: 100% !important;
    font-size: clamp(0.92rem, 4.05vw, 1.02rem) !important;
    font-weight: 500 !important;
    line-height: 1.16 !important;
    letter-spacing: 0.004em !important;
    white-space: nowrap !important;
    color: rgba(54, 80, 111, 0.82) !important;
    text-align: left !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-description {
    font-size: clamp(0.88rem, 4.05vw, 0.98rem) !important;
    line-height: 1.32 !important;
    color: rgba(24, 52, 90, 0.68) !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta {
    margin-top: 0.42rem !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-place,
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-note {
    font-size: clamp(0.62rem, 2.95vw, 0.72rem) !important;
    font-weight: 600 !important;
    letter-spacing: 0.075em !important;
  }

  /* Titres principaux : se rapprocher du rendu desktop, moins filiforme */
  #programme.programme-2026 .programme-2026-event:not(.programme-2026-event-choral):not(.programme-2026-event-service) h2 {
    font-weight: 600 !important;
    letter-spacing: 0.034em !important;
    color: rgba(231, 127, 103, 0.98) !important;
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
  }

  #programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event h2 {
    font-weight: 600 !important;
    letter-spacing: 0.034em !important;
  }

  /* Accroches : légèrement plus lisibles, mais toujours secondaires */
  #programme.programme-2026 .programme-2026-tagline {
    font-size: clamp(0.92rem, 4.25vw, 1.04rem) !important;
    color: rgba(24, 52, 90, 0.46) !important;
    opacity: 0.68 !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-link {
    gap: 0.12rem !important;
    padding: 0.46rem 0.78rem 0.50rem !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-label {
    font-size: 0.54rem !important;
    letter-spacing: 0.065em !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-action {
    font-size: 0.64rem !important;
    letter-spacing: 0.050em !important;
  }
}

@media (max-width: 390px) {
  #programme.programme-2026 .programme-2026-event-choral h2 {
    font-size: clamp(0.86rem, 3.75vw, 0.96rem) !important;
    letter-spacing: 0 !important;
  }

  #programme.programme-2026 .programme-2026-event:not(.programme-2026-event-choral):not(.programme-2026-event-service) h2 {
    font-weight: 600 !important;
    letter-spacing: 0.026em !important;
  }
}

/* =========================================================
   Correctif 2026-04-30 — CTA desktop moins gras
   ---------------------------------------------------------
   Mobile inchangé : on adoucit seulement le libellé d'action
   sur ordinateur pour éviter l'effet trop lourd.
   ========================================================= */

@media (min-width: 768px) {
  #programme.programme-2026 .programme-2026-day-reservation-action {
    font-weight: 500 !important;
    font-size: clamp(0.60rem, 0.66vw, 0.70rem) !important;
    letter-spacing: 0.055em !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-label {
    font-weight: 500 !important;
    font-size: clamp(0.52rem, 0.58vw, 0.60rem) !important;
    letter-spacing: 0.085em !important;
  }
}

/* =========================================================
   Correctif 2026-04-30 — lieux choral desktop allégés
   ---------------------------------------------------------
   La lisibilité des lieux avait été renforcée trop largement.
   Sur ordinateur, le bloc du stage doit rester secondaire :
   ÉGLISE / ENTRÉE LIBRE reviennent à une graisse normale.
   Le mobile conserve une lisibilité suffisante.
   ========================================================= */

@media (min-width: 768px) {
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-place,
  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-note {
    font-weight: 400 !important;
    letter-spacing: 0.090em !important;
    opacity: 0.82 !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-place {
    color: rgba(184, 138, 31, 0.78) !important;
  }

  #programme.programme-2026 .programme-2026-event-choral .programme-2026-choral-meta .programme-2026-note {
    color: rgba(74, 145, 148, 0.78) !important;
  }
}

/* =========================================================
   Correctif 2026-04-30 — desktop : dates allégées,
   titres principaux agrandis, CTA plus lisible mais non gras
   ---------------------------------------------------------
   Ne touche pas au mobile. Ne modifie pas le choral.
   ========================================================= */

@media (min-width: 768px) {
  /* Dates desktop : retirer l'effet trop gras ajouté par les derniers correctifs */
  #programme.programme-2026 .programme-2026-date .programme-2026-weekday,
  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    font-weight: 500 !important;
    text-shadow: none !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-weekday {
    letter-spacing: 0.095em !important;
  }

  #programme.programme-2026 .programme-2026-date .programme-2026-number,
  #programme.programme-2026 .programme-2026-date .programme-2026-month {
    letter-spacing: 0.070em !important;
  }

  /* Titres des vrais concerts : plus grands sur ordinateur, sans alourdir la graisse */
  #programme.programme-2026 .programme-2026-event:not(.programme-2026-event-choral):not(.programme-2026-event-service) h2 {
    font-size: clamp(2.02rem, 2.38vw, 2.58rem) !important;
    font-weight: 400 !important;
    line-height: 1.04 !important;
    letter-spacing: 0.052em !important;
  }

  /* Le Conte musical garde son statut principal le vendredi */
  #programme.programme-2026 .programme-2026-day:first-child .programme-2026-event-choral + .programme-2026-event h2 {
    font-size: clamp(2.04rem, 2.42vw, 2.62rem) !important;
    font-weight: 400 !important;
    line-height: 1.04 !important;
    letter-spacing: 0.052em !important;
  }

  /* CTA desktop : plus lisible, mais sans effet gras / bouton lourd */
  #programme.programme-2026 .programme-2026-day-reservation-link {
    padding: 0.50rem 0.92rem 0.54rem !important;
    gap: 0.18rem !important;
    border-color: rgba(185, 142, 32, 0.26) !important;
    background: rgba(255, 247, 231, 0.12) !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-label {
    font-size: clamp(0.60rem, 0.68vw, 0.72rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.078em !important;
    color: rgba(24, 52, 90, 0.62) !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-action {
    font-size: clamp(0.72rem, 0.82vw, 0.88rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.055em !important;
    color: rgba(184, 138, 31, 0.94) !important;
  }
}

/* =========================================================
   Correctif 2026-04-30 — mobile : CTA réservation à droite
   ---------------------------------------------------------
   Sur téléphone, le bouton de réservation reprend l'ancrage
   à droite déjà utilisé sur ordinateur, sans modifier son
   style interne ni le texte.
   ========================================================= */

@media (max-width: 767px) {
  #programme.programme-2026 .programme-2026-day-reservation {
    justify-content: flex-end !important;
    text-align: right !important;
  }

  #programme.programme-2026 .programme-2026-day-reservation-link {
    width: auto !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    align-self: flex-end !important;
  }
}
