/* ============================================================
   FESTIVAL — Caractère Libre
   Page Festival intro
   Figma nodes : 1100-7368 · 1100-7511
   ============================================================ */

/* Cette feuille ne se charge que sur la page Grands Rendez-Vous : on y
   neutralise le scroll-behavior:smooth global (main.css) pour que
   l'atterrissage sur l'ancre #grx-resultats (après un filtrage GET) soit
   INSTANTANÉ — positionnement direct sur les filtres avant l'affichage, sans
   animation qui « remonte pour redescendre ». */
html { scroll-behavior: auto; }

/* ══════════════════════════════════════════════════
   NAV — fond bleu = stop 0% du dégradé (#1E4B9C).
   La nav reste sur la couleur de départ : raccord
   invisible avec le dégradé de .festival-fond juste
   en dessous → continuité parfaite.
══════════════════════════════════════════════════ */

.site-header {
  background: #1E4B9C;
}


/* ══════════════════════════════════════════════════
   FOND BLEU — wrapper hero + blocs festival
   Dégradé Figma (haut → bas) : #163060 → #1A3E7E → #1E4B9C
══════════════════════════════════════════════════ */

.festival-fond {
  background: #1E4B9C;
  border-radius: 0 0 0px 0px;
  padding-bottom: var(--space-20);
  overflow: hidden; /* clip border-radius proprement */
}

/* ══════════════════════════════════════════════════
   RETOUR (blanc sur fond bleu)
══════════════════════════════════════════════════ */

.festival-fond .retour {
  color: var(--color-white);
}

.festival-fond .retour:hover { opacity: 0.65; }

/* ══════════════════════════════════════════════════
   ENTÊTE — overrides (base dans shared.css)
══════════════════════════════════════════════════ */

/* padding-top légèrement réduit + texte blanc sur fond bleu */
.festival-entete {
  padding-top: var(--space-10);
}

.festival-entete .bloc-entete__titre {
  color: var(--color-white);
}

.festival-entete .bloc-entete__accroche {
  color:       var(--color-white);
  line-height: 60px;
  margin:      0 auto var(--space-10);
}

/* ── Filtres sous-menu (RÉGIONS / CATÉGORIES) ── */

.festival-filtres {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
  /* Cible de l'ancre #grx-resultats : laisse un peu d'espace au-dessus des
     filtres quand la page filtrée atterrit dessus (voir cl_fest_filtre_url). */
  scroll-margin-top: 120px;
}

/* Sur fond bleu, forcer le bouton blanc */
.festival-filtres .filtre__btn {
  background: var(--color-white);
  color: var(--color-blue);
  border-color: var(--color-white);
}

.festival-filtres .filtre__btn:hover,
.festival-filtres .filtre__btn[aria-expanded="true"] {
  background: rgba(255, 255, 255, 0.88);
  color: var(--color-blue);
}

/* ══════════════════════════════════════════════════
   LABEL MOIS
══════════════════════════════════════════════════ */

.festival-contenu {
  padding-top: var(--space-8);
}

.festival-mois {
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: var(--weight-black);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: #f7f7f7;
  margin-bottom: var(--space-8);
  margin-left: 150px;
}

/* ══════════════════════════════════════════════════
   BLOCS FESTIVAL (alternés gauche / droit)
══════════════════════════════════════════════════ */

.festival-blocs {
  max-width: 870px;
  margin: 0 auto;
}

.festival-bloc {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: var(--space-8);
  align-items: start;
  margin-bottom: 120px;
}

/* Bloc droit : image à droite */
.festival-bloc--droit .festival-bloc__image { order: 2; }
.festival-bloc--droit .festival-bloc__texte  { order: 1; }

/* ── Photo ── */
.festival-bloc__image {
  width: 100%;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  flex-shrink: 0;
}

.bloc-intro__tagline {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: var(--weight-regular);
  color: var(--color-white);
   margin: 0px 0px 10px 0px;
  }

.festival-bloc__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-fast);
}

.festival-bloc:hover .festival-bloc__image img {
  transform: scale(1.03);
}

/* ── Texte ── */
.festival-bloc__texte {
  padding-top: 100px;  /* décalage visuel — texte démarre sous le haut de l'image */
  color: var(--color-white);
  display: flex;
  flex-direction: column;
}

.festival-bloc--droit .festival-bloc__texte {
  padding-top: 150px;
}

.festival-bloc__dates {
  font-family: var(--font-display);
  font-size: 50px;
  font-weight: var(--weight-black);
  color: #fff;
  text-transform: uppercase;
  line-height: 1;
  margin: 0;
}

.festival-bloc__nom {
font-family: var(--font-display);
    font-size: 40px;
    font-weight: var(--weight-bold);
    color: #fff;
    text-transform: uppercase;
    line-height: 1.1;
    margin: 0 0 18px;
}

.festival-bloc__desc {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  color: var(--color-white);
  line-height: 1.55;
  margin-bottom: var(--space-8);
}

/* ── CTA Programme ── */
/* .festival-bloc__cta → components.css (.bt-blanc__cta) */


/* ══════════════════════════════════════════════════
   SECTION PAR RÉGION
══════════════════════════════════════════════════ */

.festival-regions {
  padding-top: var(--space-16);
  padding-bottom: var(--space-20);
  background: #fff;
}

.festival-regions__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
  margin-bottom: var(--space-10);
}

.festival-regions__titre {
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: var(--weight-black);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-blue);
  line-height: var(--leading-tight);
}

/* ── Liste des régions ── */
.festival-regions__liste {
  list-style: none;
  padding: 0;
  margin: 0;
  border-bottom: 1.5px solid var(--color-border);
}

.festival-regions__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-5) 0;
  border-top: 1.5px solid var(--color-border);
}

.festival-regions__nom {
  font-family: var(--font-display);
  font-size: 34px;
  font-weight: var(--weight-black);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-blue);
  line-height: var(--leading-normal);
}

/* Bouton DÉCOUVRIR → components.css (.bt-bleu__cta) */

/* ══════════════════════════════════════════════════
   RESPONSIVE — TABLET (768-1023px)
══════════════════════════════════════════════════ */

@media (min-width: 768px) and (max-width: 1023px) {
  /* .bloc-entete__titre / .bloc-entete__accroche responsive → shared.css */
  .festival-entete .bloc-entete__accroche { line-height: 44px; }

  .festival-blocs { max-width: 100%; }

  .festival-bloc {
    column-gap: var(--space-6);
    margin-bottom: var(--space-20);
  }

  .festival-bloc__dates { font-size: 36px; line-height: 42px; }
  .festival-bloc__nom   { font-size: 28px; }

  .festival-bloc__texte        { padding-top: 60px; }
  .festival-bloc--droit .festival-bloc__texte { padding-top: 80px; }

  .festival-regions__titre { font-size: 28px; }
  .festival-regions__nom   { font-size: 26px; }
}

/* ══════════════════════════════════════════════════
   RESPONSIVE — MOBILE (≤ 767px)
══════════════════════════════════════════════════ */

@media (max-width: 767px) {
  .festival-fond {
    border-radius: 0 0 0px 0px;
    padding-bottom: var(--space-12);
  }

  /* Contenu à 12px de chaque côté, comme le reste du site (cohérence mobile).
     Intro + filtres, liste des festivals, section régions. */
  .festival-entete,
 
  .festival-regions > .container {
    width: calc(100% - 24px);
  }

 
    .festival-contenu > .container {
        width: calc(100% - 48px);
    }


  /* .bloc-entete__titre → shared.css */
  .festival-bloc__desc { font-size: 14px; }

  .festival-entete .bloc-entete__accroche { font-size: 22px; line-height: 32px; }

  .festival-mois { font-size: 28px; }

  /* Blocs : 2 colonnes — image pleine hauteur à gauche, texte à droite */
  .festival-bloc {
    column-gap: var(--space-4);
    margin-bottom: var(--space-10);
    align-items: stretch;
  }

  /* Image : pleine hauteur de la grille, pas de ratio fixe */
  .festival-bloc__image {
    aspect-ratio: unset;
    height: 100%;
    min-height: 180px;
  }

  .bloc-intro__tagline {
    font-size: 16px;
   
    }

  /* Texte : padding réduit sur mobile */
  .festival-bloc__texte        { padding-top: var(--space-10);}
  .festival-bloc--droit .festival-bloc__texte { padding-top: var(--space-10); }

  /* Ordre : hérité du desktop — --droit inverse automatiquement */

  .festival-bloc__dates { font-size: 18px; line-height: 22px; }
  .festival-bloc__nom   { font-size: 16px; margin-bottom: var(--space-4); line-height: 1.2; }
  .festival-bloc__desc  { display: none; }
  .festival-bloc .bt-blanc__cta { height: 32px; font-size: 12px; padding: 0 10px; }

  .festival-regions__titre { font-size: 28px;line-height: 1 }
  .festival-regions__nom   { font-size: 22px; }

  .festival-regions__item {
    gap: 12px;
    flex-wrap: wrap;
    padding: var(--space-4) 0;
  }

  .festival-mois {
    margin-left: 0px;
}

  /* .bt-bleu__cta responsive → components.css */
}

/* ══════════════════════════════════════════════════
   ACCESSIBILITÉ
══════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  .festival-bloc__image img { transition: none; }
}
