/* Programme — même direction éditoriale que l'accueil. */
.program-page { max-width: none !important; margin: 0 !important; padding: 0 0 clamp(64px, 8vw, 120px) !important; background: #f4f1ea; overflow: hidden; }
.program-hero.program-hero-centered { min-height: min(650px, calc(100svh - 76px)) !important; padding: clamp(50px, 8vw, 120px) clamp(24px, 7vw, 110px) !important; display: flex !important; align-items: flex-end !important; justify-content: flex-start !important; text-align: left !important; border: 0 !important; }
.program-hero.program-hero-centered::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,12,9,.94) 0%, rgba(7,12,9,.74) 42%, rgba(7,12,9,.18) 100%); z-index: -1; }
.program-hero.program-hero-centered > div { width: min(760px, 100%); }
.program-hero.program-hero-centered .eyebrow { color: var(--lime) !important; }
.program-hero.program-hero-centered h1 { max-width: 700px; margin: 18px 0 0 !important; color: #fff; font-size: clamp(68px, 8.8vw, 142px) !important; line-height: .72 !important; letter-spacing: -.035em; text-shadow: none !important; }
.program-hero.program-hero-centered h1 em { color: var(--lime); font-style: normal; }

.schedule { width: min(1180px, calc(100% - 48px)); margin: clamp(-54px, -4vw, -34px) auto 0 !important; padding: 18px clamp(24px, 4vw, 54px) !important; position: relative; z-index: 2; background: #fff; border-radius: 20px; box-shadow: 0 24px 60px rgba(16,21,18,.14); }
.schedule::before { left: clamp(98px, 11vw, 138px) !important; top: 112px !important; bottom: 38px !important; background: linear-gradient(var(--lime), rgba(16,21,18,.08)) !important; }
.schedule-header { padding: 18px 0 24px; }
.schedule-header h2 { font-size: clamp(42px, 4.4vw, 66px) !important; line-height: .78 !important; }
.schedule-header span { color: #617066; }
.schedule-item { grid-template-columns: clamp(78px, 9vw, 120px) minmax(0, 1fr) auto !important; gap: clamp(20px, 3vw, 42px) !important; padding: clamp(23px, 2.5vw, 32px) 0 !important; }
.schedule-item::after { left: calc(clamp(78px, 9vw, 120px) - 6px) !important; width: 12px !important; height: 12px !important; border-color: #fff !important; background: var(--orange) !important; box-shadow: 0 0 0 4px rgba(255,100,56,.16) !important; }
.schedule-item.start { margin-inline: -16px; padding-inline: 16px !important; background: #101512; border-radius: 12px; color: #fff; }
.schedule-item.start .schedule-content p { color: rgba(255,255,255,.72); }
.schedule-item.start .schedule-time { color: var(--lime); }
.schedule-item.start::after { border-color: #101512 !important; background: var(--lime) !important; box-shadow: 0 0 0 4px rgba(215,255,63,.18) !important; }
.schedule-time { font-size: clamp(40px, 4.8vw, 64px) !important; color: var(--orange); }
.schedule-content strong { font-size: clamp(25px, 2.5vw, 39px) !important; }
.schedule-content p { max-width: 620px; font-size: 14px; line-height: 1.65; }
.schedule-tag { align-self: center; border-color: rgba(16,21,18,.18); }
.schedule-item.start .schedule-tag { background: var(--lime); border-color: var(--lime); color: var(--ink); }

.program-callout { width: min(1180px, calc(100% - 48px)); margin: clamp(38px, 5vw, 72px) auto 0 !important; padding: clamp(34px, 5vw, 68px) !important; border-radius: 20px; background: linear-gradient(112deg, #07110c 0%, #182d1d 58%, #334f27 100%) !important; box-shadow: none; }
.program-callout h3 { max-width: 800px; font-size: clamp(40px, 1.5vw, 78px) !important; line-height: .8 !important; }
.program-callout .button { min-height: 50px; border-radius: 0; }

@media (max-width: 760px) {
  .program-page { padding-bottom: 52px !important; }
  .program-hero.program-hero-centered { min-height: 400px !important; padding: 42px 20px !important; }
  .program-hero.program-hero-centered h1 { font-size: clamp(54px, 15vw, 72px) !important; line-height: .78 !important; }
  .schedule { width: calc(100% - 28px); margin-top: -26px !important; padding: 12px 16px !important; border-radius: 16px; }
  .schedule::before { left: 46px !important; top: 93px !important; bottom: 28px !important; }
  .schedule-header { display: block; padding: 15px 0 20px; }
  .schedule-header span { display: block; margin-top: 12px; }
  .schedule-item { grid-template-columns: 56px minmax(0, 1fr) !important; gap: 14px !important; padding: 20px 0 !important; }
  .schedule-item::after { left: 50px !important; width: 10px !important; height: 10px !important; }
  .schedule-item.start { margin-inline: -6px; padding-inline: 6px !important; }
  .schedule-time { font-size: 31px !important; }
  .schedule-content strong { font-size: 24px !important; }
  .schedule-content p { font-size: 12px; }
  .schedule-tag { grid-column: 2; justify-self: start; margin-top: -4px; }
  .program-callout { width: calc(100% - 28px); margin-top: 30px !important; padding: 30px 22px !important; border-radius: 16px; }
  .program-callout h3 { font-size: clamp(38px, 11vw, 55px) !important; }
}
