/*
 * eVous · Week-end | PILOTE graphique v1.0.0 | 19 octobre 2026
 * Objet : harmoniser les fiches et leurs sous-programmes sur HTML V3 existant.
 * Important : surcouche de déploiement progressif, pas encore extraction complète
 * des règles Week-end des feuilles globales. Charger après les CSS existantes.
 * Aucun style hors .weekend-guide. Aucun script, aucune dependance.
 */

.weekend-guide {
  --evw-accent: var(--weekend-accent, #b5181b);
  --evw-encre: #25292e;
  --evw-secondaire: #505963;
  --evw-contour: #dfe3e7;
  --evw-fond-discret: #f7f8f9;
  --evw-fond-horaire: #fff5f3;
}

/* Fiche-parent : conserver une silhouette proche des cartes eVous. */
.weekend-guide article.weekend-card {
  box-sizing: border-box;
  min-width: 0;
  margin: 1.2rem 0 1.55rem;
  padding: clamp(1rem, 2vw, 1.55rem);
  background: #fff;
  border: 1px solid var(--evw-contour);
  border-radius: 10px;
  box-shadow: 0 1px 3px rgb(24 30 36 / 5%);
  color: var(--evw-encre);
}

.weekend-guide article.weekend-card > h3 {
  margin: 0 0 .6rem;
  padding: 0;
  color: var(--evw-accent);
  font-size: clamp(1.22rem, 1.07rem + .4vw, 1.5rem);
  line-height: 1.33;
  font-weight: 700;
}

.weekend-guide article.weekend-card > p.event-description {
  margin: 0 0 .95rem;
  max-width: 78ch;
  color: var(--evw-encre);
  font-size: 1rem;
  line-height: 1.62;
}

/* Faits communs : bloc discret et compact, pas une grande affiche grise. */
.weekend-guide article.weekend-card > .event-meta {
  box-sizing: border-box;
  display: grid;
  gap: .35rem;
  min-width: 0;
  max-width: none;
  margin: 0 0 .85rem;
  padding: .8rem 1rem;
  background: var(--evw-fond-discret);
  border: 1px solid #e8eaed;
  border-radius: 7px;
}

.weekend-guide article.weekend-card > .event-meta > p.weekend-card__practical,
.weekend-guide article.weekend-card > .event-meta > p {
  display: block;
  float: none;
  margin: 0;
  padding: 0;
  color: var(--evw-secondaire);
  font-size: .91rem;
  line-height: 1.52;
}

.weekend-guide article.weekend-card > .event-meta strong,
.weekend-guide .weekend-programme-item .weekend-card__practical strong {
  font-weight: 650;
  color: var(--evw-encre);
}

.weekend-guide article.weekend-card a {
  text-underline-offset: .15em;
  overflow-wrap: anywhere;
}

/* Option V3 : les consignes longues restent lisibles sans encombrer le résumé. */
.weekend-guide article.weekend-card > .weekend-card__notes {
  margin: .9rem 0 0;
  padding: .8rem 0 0;
  border-top: 1px solid var(--evw-contour);
  font-size: .91rem;
  line-height: 1.55;
  color: var(--evw-secondaire);
}
.weekend-guide article.weekend-card > .weekend-card__notes h4 {
  color: var(--evw-encre);
  font-weight: 700;
  font-size: .98rem;
  line-height: 1.35;
  margin: 0 0 .35rem;
}
.weekend-guide article.weekend-card > .weekend-card__notes p {
  margin: .3rem 0;
  line-height: 1.55;
  font-size: .91rem;
}

/* Horaires communs à la manifestation : compacts et bien différenciés. */
.weekend-guide article.weekend-card > ul.event-sessions {
  box-sizing: border-box;
  display: block;
  max-width: 100%;
  margin: 0 0 1rem;
  padding: .65rem .85rem;
  list-style: none;
  background: var(--evw-fond-horaire);
  border: 1px solid #efdbd9;
  border-left: 3px solid var(--evw-accent);
  border-radius: 5px;
  font-size: .92rem;
  line-height: 1.5;
  font-weight: 600;
}

.weekend-guide article.weekend-card > ul.event-sessions > li { margin: 0; padding: 0; }
.weekend-guide article.weekend-card > ul.event-sessions > li + li { margin-top: .25rem; }

/* Programme imbrique : deux sous-cartes comparables sur grand ecran. */
.weekend-guide article.weekend-card > .weekend-programme {
  display: grid;
  /* Se fonde sur la largeur REELLE du bloc, non celle de la fenêtre. */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  align-items: stretch;
  gap: .85rem;
  margin: .95rem 0 0;
  padding: 0;
  min-width: 0;
  max-width: 100%;
}

.weekend-guide .weekend-programme > section.weekend-programme-item {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: .45rem;
  min-width: 0;
  height: 100%;
  margin: 0;
  padding: 1rem 1.05rem 1.05rem;
  background: #fff;
  border: 1px solid var(--evw-contour);
  border-left: 3px solid var(--evw-accent);
  border-radius: 7px;
  box-shadow: 0 1px 2px rgb(24 30 36 / 4%);
}

.weekend-guide .weekend-programme > section.weekend-programme-item > h4 {
  margin: 0 0 .08rem;
  padding: 0;
  font-weight: 700;
  font-size: 1.06rem;
  line-height: 1.32;
  color: var(--evw-encre);
  overflow-wrap: break-word;
}

.weekend-guide .weekend-programme > section.weekend-programme-item > p.subactivity-description {
  margin: 0 0 .2rem;
  color: var(--evw-encre);
  font-size: .95rem;
  line-height: 1.58;
}

.weekend-guide .weekend-programme > section.weekend-programme-item > p.weekend-card__practical {
  display: block;
  float: none;
  margin: 0;
  padding: 0;
  color: var(--evw-secondaire);
  font-size: .89rem;
  line-height: 1.5;
}

/* Date(s) de la sous-activite : contraste sans ajouter de fausses pastilles. */
.weekend-guide .weekend-programme > section.weekend-programme-item > ul.event-sessions {
  box-sizing: border-box;
  display: block;
  width: 100%;
  max-width: 100%;
  margin: .38rem 0 0;
  padding: .55rem .7rem;
  background: var(--evw-fond-horaire);
  border: 1px solid #efdcd9;
  border-radius: 5px;
  list-style: none;
  color: #53282a;
  font-size: .9rem;
  line-height: 1.5;
  font-weight: 600;
  overflow-wrap: break-word;
}

.weekend-guide .weekend-programme > section.weekend-programme-item > ul.event-sessions > li {
  margin: 0;
  padding: 0;
}
.weekend-guide .weekend-programme > section.weekend-programme-item > ul.event-sessions > li + li {
  margin-top: .25rem;
}

.weekend-guide .weekend-programme-item a:focus-visible,
.weekend-guide article.weekend-card > .event-meta a:focus-visible {
  outline: 2px solid var(--evw-accent);
  outline-offset: 3px;
}

/* Les ancres internes et labels techniques vides ne prennent pas de place. */
.weekend-guide .weekend-programme-item span[id]:empty,
.weekend-guide article.weekend-card > ul.event-sessions span[id]:empty {
  display: inline;
}

@media (max-width: 639px) {
  .weekend-guide article.weekend-card { padding: .95rem .85rem; }
  .weekend-guide article.weekend-card > .event-meta { padding: .7rem .75rem; }
  .weekend-guide .weekend-programme > section.weekend-programme-item {
    padding: .85rem .82rem;
  }
  .weekend-guide article.weekend-card > h3 { font-size: 1.19rem; }
  .weekend-guide article.weekend-card > p.event-description { font-size: .98rem; }
}

@media print {
  .weekend-guide article.weekend-card,
  .weekend-guide .weekend-programme > section.weekend-programme-item {
    box-shadow: none;
    break-inside: avoid;
  }
  .weekend-guide article.weekend-card > .weekend-programme { display: block; }
  .weekend-guide .weekend-programme > section.weekend-programme-item { margin: 0 0 .7rem; }
}

/* Sur les longues pages, préserver les points d'arrivée de la navigation. */
.weekend-guide article.weekend-card[id],
.weekend-guide .weekend-programme-item[id] {
  scroll-margin-top: 1.25rem;
}
