/* ======================================================
   🎄 Tournée du Père Noël – Bloc plein écran collé
   ====================================================== */

/* Réinitialisation des marges globales */
body { margin: 0; padding: 0; overflow-x: hidden; }

/* Section Noël pleine largeur, collée au reste du site */
.form-noel-wrapper {
  position: relative;
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
  background: linear-gradient(180deg, #ffefef 0%, #fff5f5 100%);
  overflow: hidden;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
}

/* Contenu centré et lisible */
.form-noel {
  max-width: 1100px;
  width: 95%;
  margin: 0 auto;
  padding: 3rem 2rem;
  color: #3b1b07;
  font-family: "Poppins", sans-serif;
  text-align: center;
  background: transparent;
  border: none;
  border-radius: 0;
}

/* Titres */
.form-noel h2 {
  color: #b71c1c;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  margin-bottom: 1.2rem;
}
.form-noel h3 {
  color: #2e8b57;
  font-weight: 600;
  margin-top: 2rem;
  margin-bottom: .8rem;
}

/* Champs */
label { font-weight: 600; color: #3b1b07; }
input[type="text"], input[type="email"], select, textarea {
  border: 1px solid #2e8b57;
  border-radius: 6px;
  padding: .6em;
  width: 100%;
  background: #fff;
}
input:focus, select:focus { outline: none; box-shadow: 0 0 5px rgba(46,139,87,.4); }

/* ============================================================
   📍 Liste des lieux (cases à cocher verticales)
   ============================================================ */
.lieux-grid {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  text-align: left;
  background: rgba(255,255,255,.6);
  padding: 1rem;
  border: 1px solid rgba(46,139,87,.3);
  border-radius: 6px;
}

/* Style des blocs de chaque lieu */
.lieux-grid .form-check {
  position: relative;
  display: flex;
  align-items: center;
  gap: .6rem;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(231, 76, 60, 0.4);
  border-radius: 6px;
  padding: 0.6em 0.8em;
  transition: all 0.25s ease;
  cursor: pointer;
}

/* Survol : fond rouge et texte blanc */
.lieux-grid .form-check:hover {
  background-color: #e74c3c;
  border-color: #e74c3c;
  color: #fff;
}

/* Case cochée : fond vert sapin + texte blanc + pulsation douce */
.lieux-grid .form-check-input:checked ~ .form-check-label,
.lieux-grid .form-check-input:checked ~ span {
  color: #fff !important;
  font-weight: 600;
}
.lieux-grid .form-check-input:checked ~ span,
.lieux-grid .form-check-input:checked ~ .form-check-label {
  background-color: #2e8b57 !important;
  border-color: #2e8b57 !important;
  padding: 0.4em 0.6em;
  border-radius: 4px;
  animation: pulseGreen 2s infinite ease-in-out;
}

/* Animation pulsation verte */
@keyframes pulseGreen {
  0%, 100% { box-shadow: 0 0 0 rgba(46,139,87,0.4); }
  50% { box-shadow: 0 0 10px 3px rgba(46,139,87,0.5); }
}

/* Coche native */
.lieux-grid .form-check-input {
  accent-color: #2e8b57;
  width: 1.1em;
  height: 1.1em;
  cursor: pointer;
}

/* ============================================================
   🎅 Case “Je serai présent pour la fin de la tournée”
   ============================================================ */
.form-check.my-2 {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(231, 76, 60, 0.4);
  border-radius: 6px;
  padding: 1em;
  transition: all 0.25s ease;
}

/* Survol */
.form-check.my-2:hover {
  background-color: #e74c3c;
  border-color: #e74c3c;
  color: #fff;
}

/* Cochée */
.form-check.my-2 input[type="checkbox"]:checked + label {
  color: #fff;
  background-color: #2e8b57;
  border-radius: 6px;
  display: block;
  padding: 0.8em;
  animation: pulseGreen 2s infinite ease-in-out;
}

/* Coche verte */
.form-check.my-2 input[type="checkbox"] {
  accent-color: #2e8b57;
  width: 1.1em;
  height: 1.1em;
  cursor: pointer;
}

/* ============================================================
   🔢 Bloc Adultes / Enfants
   ============================================================ */
#bloc-nombres {
  transition: all .4s ease;
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  margin-top: 0;
}
#bloc-nombres.visible {
  max-height: 400px;
  opacity: 1;
  margin-top: 1rem;
}

/* ============================================================
   🎄 Bouton principal
   ============================================================ */
.form-noel .btn-primary {
  background: linear-gradient(90deg, #2e8b57 0%, #3fa065 100%);
  border: none;
  color: #fff;
  border-radius: 30px;
  padding: .8em 2.2em;
  font-weight: 600;
  transition: .3s;
}
.form-noel .btn-primary:hover {
  background: linear-gradient(90deg, #3fa065 0%, #2e8b57 100%);
  transform: translateY(-2px);
}

/* ============================================================
   🤝 Partenaires
   ============================================================ */
.partners {
  background: rgba(255,255,255,.7);
  border: 1px solid #f1c40f;
  border-radius: 6px;
  padding: 1rem 1.5rem;
  text-align: left;
  list-style-position: inside;
}
.partners li { margin: .25rem 0; padding-left: .5em; }

/* ============================================================
   🎅 Image décorative
   ============================================================ */
.decor-noel {
  display: block;
  margin: 0 auto 1.5rem auto;
  width: 160px;
  max-width: 35%;
  filter: drop-shadow(0 0 6px rgba(255,255,255,.6));
}

/* ============================================================
   📱 Responsive
   ============================================================ */
@media (max-width:768px){
  .form-noel { padding:2rem 1rem; width:100%; }
  .lieux-grid, .form-check { padding:.8rem; }
}

/* === Champ anti-bot (honeypot) totalement invisible === */
.hp {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  opacity: 0 !important;
  height: 0 !important;
  width: 0 !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.encart-legal {
  background: rgba(255, 248, 230, 0.9);
  border: 1px solid #f1c40f;
  border-radius: 8px;
  padding: 1rem 1.2rem;
  margin-top: 1rem;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
.encart-legal strong {
  color: #2e8b57;
}