/* Programme détaillé : repères de journée et horaires lisibles. */
.programme-reperes { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 2rem; }
.programme-reperes a { display: inline-flex; align-items: center; min-height: 44px;
  padding: .65rem 1rem; border: 1px solid var(--trait-fort); border-radius: 8px;
  background: var(--surface); font-family: var(--titre); text-decoration: none; }
.programme-reperes a:hover { text-decoration: underline; }
.page-programme .journee { padding: 1.5rem; border-radius: 16px; }
.page-programme .journee__quand { padding: 1rem; margin: 1rem 0;
  background: var(--fond); border-radius: 8px; font-family: var(--titre); }
.page-programme .horaire { margin-top: 1.5rem; }
.page-programme .horaire th, .page-programme .horaire td { padding-top: 1rem; padding-bottom: 1rem; vertical-align: top; }
.page-programme .horaire .horaire__heure { color: var(--j1); }
.page-programme .journee--j2 .horaire .horaire__heure { color: var(--j2); }
.page-programme .horaire__qui { margin-top: .4rem; font-size: .85rem; }
.page-programme .journee__sans-grille { padding: 1rem; border: 1px dashed var(--trait-fort); border-radius: 8px; }
@media (max-width: 640px) {
  .programme-reperes { flex-direction: column; }
  .page-programme .journee { padding: 1rem; }
  .page-programme .horaire .horaire__heure { white-space: normal; width: 5.5rem; padding-right: .75rem; }
}
@media print {
  .programme-reperes, .page-programme .chapo__identite { display: none; }
  .page-programme .chapo--accueil { display: block; padding: 0; background: none; color: black; }
  .page-programme .chapo--accueil::before, .page-programme .chapo--accueil::after { display: none; }
  .page-programme .grille { display: block; }
  .page-programme .journee { margin-bottom: 2rem; }
  .page-programme .horaire tr { break-inside: avoid; }
}
