
/* =========================================================
   LFA 2026 ROOT CLEAN FIX
   Classes préfixées pour éviter conflits anciens CSS.
   ========================================================= */

/* Nav desktop : on ne touche pas à la position globale existante */
body .lfa2026-nav-wrap {
  z-index: 900 !important;
}

/* Bouton billetterie indépendant */
#btn_billet,
.btn_billet {
  position: absolute !important;
  z-index: 950 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

/* Intro plafonnée */
body #intro {
  max-height: 300px !important;
  overflow: hidden !important;
}

/* Grilles de contenu : neutralise les floats/hauteurs hérités */
body .lfa2026-content-grid {
  width: min(1200px, 96vw) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items: start !important;
  clear: both !important;
  box-sizing: border-box !important;
}

body .lfa2026-content-grid > .box,
body .lfa2026-content-grid > .last-box,
body .lfa2026-content-grid > .lfa2026-grid-item {
  float: none !important;
  clear: none !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  transform: none !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

/* Cas activités : last-box doit rester 3e colonne en desktop */
body .lfa2026-content-grid > .last-box {
  grid-column: auto !important;
}

/* Textes / news sans chevauchement */
body .box *,
body .last-box *,
body .news,
body .news ul,
body .news li,
body .post-data,
body .entry {
  box-sizing: border-box !important;
  max-width: 100% !important;
}

body .news li,
body .box li,
body .last-box li {
  float: none !important;
  width: auto !important;
  height: auto !important;
}

/* Mobile */
@media (max-width: 900px) {
  body .lfa2026-content-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  /* évite chevauchement logo / menu */
  body #header {
    min-height: 150px !important;
  }

  body #logo {
    position: relative !important;
    z-index: 920 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    display: block !important;
  }

  body .lfa2026-nav-wrap {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    margin: 18px auto 0 auto !important;
    width: min(96vw, 420px) !important;
    min-width: 0 !important;
    max-width: 96vw !important;
    z-index: 910 !important;
  }

  body .lfa2026-nav-wrap nav,
  body .lfa2026-nav-wrap .lfa2026-mainnav {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  body .lfa2026-nav-wrap ul.primary {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body .lfa2026-nav-wrap ul.primary > li {
    float: none !important;
    display: block !important;
    width: 100% !important;
    position: relative !important;
  }

  body .lfa2026-nav-wrap ul.primary > li > a {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  body .lfa2026-nav-wrap ul.primary li ul.sub {
    display: none !important;
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-shadow: none !important;
    z-index: 999 !important;
  }

  body .lfa2026-nav-wrap ul.primary li.lfa2026-sub-open > ul.sub {
    display: block !important;
  }

  /* bouton billet en mobile : sous le menu, pas de chevauchement */
  body #btn_billet,
  body .btn_billet {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    margin: 10px auto 0 auto !important;
    width: min(92vw, 260px) !important;
    display: flex !important;
  }

  body .lfa2026-content-grid {
    grid-template-columns: 1fr !important;
    width: min(94vw, 480px) !important;
    gap: 18px !important;
  }
}

@media (max-width: 480px) {
  body #header {
    min-height: 165px !important;
  }

  body .lfa2026-nav-wrap {
    margin-top: 22px !important;
  }
}
