/* Styles spécifiques à la page Programme */
.programme-link {
  display: inline-block;
  margin-top: 0.5rem;
  /* Fond bicolore orange / blanc type balise d'orientation */
  background: linear-gradient(135deg, #F39A3C 0%, #F39A3C 50%, #ffffff 50%, #ffffff 100%);
  color: #2A378C; /* texte foncé lisible sur orange et blanc */
  padding: 0.5rem 1rem;
  border-radius: 999px;
  text-decoration: none;
  border: 1px solid #d97f21;
  box-shadow: 0 3px 0 rgba(0,0,0,0.18);
  transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.15s ease-out, box-shadow 0.15s ease-out;
}

 .programme-link-wrapper {
  text-align: center;
 }

 .programme-content .programme-link-wrapper {
  text-align: center;
 }

.programme-link:hover {
  /* Au survol : bicolore violet / blanc (comme le logo Balise 25) */
  background: linear-gradient(135deg, #D4006C 0%, #D4006C 50%, #ffffff 50%, #ffffff 100%);
  border-color: #D4006C;
  color: #2A378C;
  transform: translateY(-2px);
  box-shadow: 0 6px 10px rgba(0,0,0,0.25);
}

.programme-link:active {
  transform: translateY(1px);
  box-shadow: 0 1px 0 rgba(0,0,0,0.25);
}

 /* Centrage spécifique du lien de l’étape 1 */
 #jour1 .programme-link {
  display: inline-block; /* largeur = largeur du texte */
  margin: 0.5rem auto 0; /* centré via le paragraphe */
 }

 /* Centrage spécifique du lien de l’étape 2 */
 #jour2 .programme-link {
  display: inline-block; /* largeur = largeur du texte */
  margin: 0.5rem auto 0; /* centré via le paragraphe */
 }

 /* Centrage spécifique du lien de l’étape 3 */
 #jour3 .programme-link {
  display: inline-block; /* largeur = largeur du texte */
  margin: 0.5rem auto 0; /* centré via le paragraphe */
 }

 /* Centrage spécifique du lien de l’étape 4 */
 #jour4 .programme-link {
  display: inline-block; /* largeur = largeur du texte */
  margin: 0.5rem auto 0; /* centré via le paragraphe */
 }

 /* Centrage spécifique du lien de l’étape 5 */
 #jour5 .programme-link {
  display: inline-block; /* largeur = largeur du texte */
  margin: 0.5rem auto 0; /* centré via le paragraphe */
 }

 /* Centrage spécifique du lien de la journée REPOS / SPRINT */
 #sprint .programme-link {
  display: inline-block; /* largeur = largeur du texte */
  margin: 0.5rem auto 0; /* centré via le paragraphe */
 }

 /* Centrage du paragraphe contenant le lien de l'étape 1 */
 #jour1 p:last-of-type {
  text-align: center;
 }

 /* Centrage du paragraphe contenant le lien de l'étape 2 */
 #jour2 p:last-of-type {
  text-align: center;
 }

 /* Centrage du paragraphe contenant le lien de l'étape 3 */
 #jour3 p:last-of-type {
  text-align: center;
 }

 /* Centrage du paragraphe contenant le lien de l'étape 4 */
 #jour4 p:last-of-type {
  text-align: center;
 }

 /* Centrage du paragraphe contenant le lien de l'étape 5 */
 #jour5 p:last-of-type {
  text-align: center;
 }

 /* Centrage du paragraphe contenant le lien de REPOS / SPRINT */
 #sprint p:last-of-type {
  text-align: center;
 }

 #sprint, #jour1, #jour2, #jour3, #jour4, #jour5 {
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #eaeaea;
}

 #jour1 h3, #jour2 h3, #jour3 h3, #jour4 h3, #jour5 h3, #sprint h3 {
  text-align: center;
  margin-top: 0;
  margin-bottom: 1.5rem;
 
}

/* Carte du programme */
#map-programme {
  width: 100%;
  height: 480px;
  margin: 1rem 0 2rem;
  border-radius: 8px;
  overflow: hidden;
}

/* Légende de la carte */
.map-legend {
  display: flex;
  gap: 1.25rem;
  align-items: center;
  font-size: 0.95rem;
  margin: 0.5rem 0 1.5rem;
}

.legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.legend-swatch {
  width: 18px;
  height: 18px;
  display: inline-block;
  border: 1px solid #333;
  border-radius: 3px;
  background:
    linear-gradient(135deg, transparent 49%, currentColor 50%)
    , #fff;
}

.legend-swatch[data-type="centre"] { color: #EB4EB4; }
.legend-swatch[data-type="etapes"] { color: #F39A3C; }
.legend-swatch[data-type="sprint"] { color: #3AA0B6; }

/* Popups */
.popup-course { min-width: 180px; text-align: center; }
.popup-title { font-weight: 700; margin-bottom: 0.25rem; }
.popup-meta { color: #666; font-size: 0.9rem; margin-bottom: 0.5rem; }

/* Tableau récapitulatif des étapes */
.programme-table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(15,61,62,0.07);
  border: 1px solid rgba(15,61,62,0.08);
}

.programme-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 720px;
}

.programme-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  text-align: left;
  padding: 0.9rem 1rem;
  background: rgba(15,61,62,0.04);
  border-bottom: 1px solid rgba(15,61,62,0.12);
  font-weight: 700;
  letter-spacing: 0.2px;
}

.programme-table tbody td {
  padding: 0.9rem 1rem;
  border-bottom: 1px solid rgba(15,61,62,0.06);
  vertical-align: middle;
}

.programme-table tbody tr:nth-child(even) td {
  background: rgba(15,61,62,0.02);
}

.programme-table tbody tr:hover td {
  background: rgba(243,154,60,0.08);
}

.programme-table tbody tr:last-child td {
  border-bottom: 0;
}

.programme-table .programme-table-actions {
  text-align: center;
  white-space: nowrap;
}

/* Garder la colonne "Détails" visible lorsque le tableau déborde horizontalement */
.programme-table thead th.programme-table-actions,
.programme-table tbody td.programme-table-actions {
  position: sticky;
  right: 0;
  z-index: 2;
  width: 110px;
  min-width: 110px;
  max-width: 110px;
  padding-left: 0.6rem;
  padding-right: 0.6rem;
}

.programme-table thead th.programme-table-actions {
  background: #f3f6f6;
}

.programme-table tbody td.programme-table-actions {
  background: #ffffff;
  box-shadow: -10px 0 14px rgba(0, 0, 0, 0.08);
}

.programme-table tbody tr:nth-child(even) td.programme-table-actions {
  background: #f8fafa;
}

.programme-table tbody tr:hover td.programme-table-actions {
  background: #fdf1e6;
}

/* Alignements par colonne (th + td) */
.programme-table thead th:nth-child(2),
.programme-table thead th:nth-child(3),
.programme-table tbody td:nth-child(2),
.programme-table tbody td:nth-child(3) {
  text-align: center;
}

.programme-table thead th.programme-table-actions,
.programme-table tbody td.programme-table-actions {
  text-align: center;
}

.programme-table thead th:nth-child(1),
.programme-table tbody td:nth-child(1) {
  text-align: center;
}

/* Variante compacte du bouton pour le tableau */
.programme-link--table {
  margin-top: 0;
  padding: 0.28rem 0.6rem;
  font-size: 0.85rem;
  line-height: 1.1;
}
