* {
 padding:0;
 margin:0;
}

/**MAIN**/
body {
 background-image: url("https://image.contact.pmu.fr/lib/fe5715707c620178701d/m/1/658d75c2-c710-40fd-a0e2-d4cdf5b93885.jpg");
 background-size: cover;
 background-repeat: no-repeat;
 font-family: "Roboto", arial, helvetica, sans-serif;
 overflow-x:hidden;
 background-attachment: fixed;
}

main {
 max-width:1146px;
 width:96%;
 margin:auto;
 box-sizing: border-box;
 text-align: center;
}

/**DATE**/
span.date {
  border: 1px solid #FFF;
  padding: 18px 40px;
  border-radius: 50px;
  color: #FFF;
  font-size: 28px;
  font-weight: 900;
  text-transform: uppercase;
  display: inline-block;
  margin: 20px 0;

  /* --- AJOUTS POUR LE CONTRASTE --- */
  
  /* 1. Ombre douce sur le texte (le détache) */
  text-shadow: 0px 4px 10px rgba(0, 0, 0, 0.5);
  
  /* 2. Ombre douce sur le conteneur (le fait "flotter") */
  box-shadow: 0px 4px 14px rgba(0, 0, 0, 0.25);
}

/**BIG TITLE**/
 img.big-title {
 width:550px;
 position:relative;
 display: block;
 text-align: center;
 margin: auto;
 z-index: 3;
}
/**COINS**/
.coins {
 position:absolute;
 will-change: transform;
}
.coin-1 {
 width:150px;
 right: -50px;
}
.coin-2 {
 width:180px;
 left: -50px;
 top:30%;
}
.coin-3 {
 width:100px;
 left: -50px;
 top: 60%
}
.coin-4 {
   width: 380px;
   right: -180px;
   top: 90%;
}
/**CONTENT**/
.content {
 background: rgba(6, 12, 45, 0.9);
 background: linear-gradient(
    215deg,
    rgba(6, 12, 45, 0.9) 0%,
    rgba(7, 75, 161, 0.9) 35%,
    rgba(108, 5, 5, 0.9) 100%
 );
 box-shadow: inset 0px 4px 24px 0px rgba(253,253,253,0.55),
    0px 4px 24px 0px rgba(253,253,253,0.55);
 padding:76px;
 border-radius:45px;
 border:2px solid #FFF;
 position: relative;
 bottom: 150px;
 z-index:2;
}
/**SECTION**/
section {
 padding:34px 0;
}

/**TEXT INTRO**/
section.text-intro  p {
 color:#FFF;
 font-size:26px;
 text-align:center;
 padding-top:50px;
}

/**OFFER**/
section.offer img {
 width:550px;
}

/**STEPS**/
section.steps {
 padding-top:0px;
 padding-bottom:34px;
}
section.steps h2 {
 color:#FFF;
 font-size:40px;
 text-transform: uppercase;
 font-weight:900;
}
section.steps ul.div-steps-section {
 background-color:#0B1389;
 padding:30px;
 border-radius:20px;
 border:1px solid #FFF;
 margin-top:30px;
 display: flex;
 box-shadow: inset 0px 4px 24px 0px rgba(253,253,253,0.55),
    0px 4px 24px 0px rgba(253,253,253,0.55);
}
section.steps ul.div-steps-section li.item-step {
 color:#FFF;
 font-size:16px;
 font-weight:900;
 text-transform: uppercase;
 text-align:left;
 list-style: none;
 padding:0 4px;
}
section.steps ul.div-steps-section li.item-step h3 {
 display: flex;
 align-items: center;
}
section.steps ul.div-steps-section li.item-step h3 span:first-child {
 font-size:84px;
 padding-right:10px;
 text-shadow: 0px 4px 18px #ED000F;
}

/**FORM**/

.form {
  /* --- ÉTAT PAR DÉFAUT (FIXÉ EN BAS) --- */
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%; /* S'assure qu'il prend toute la largeur */
  text-align:center;
  
  /* Styles pour le look (fond, ombre, z-index) */
  z-index: 100;
  
  /* Un peu de padding pour ne pas coller aux bords */
  padding: 1rem;
  box-sizing: border-box; 
  
  /* Transition pour un "atterrissage" en douceur */
  transition: transform 0.2s ease-out;
}
.form .inner-form {
 background: #020024;
background: linear-gradient(90deg,rgba(2, 0, 36, 1) 0%, rgba(9, 9, 121, 1) 35%, rgba(0, 69, 158, 1) 100%);
 box-shadow: inset 0px 4px 24px 0px rgba(253,253,253,0.55),
    0px 4px 24px 0px rgba(253,253,253,0.55);
 margin: auto;
 max-width: 500px;
 width: 100%;
 text-align:center;
 padding: 40px 0;
 border-radius:20px;
}
.form h3 {
 font-size:24px;
 color:#FFF;
 text-transform: uppercase;
}
.form input {
 border:1px solid #FFF;
 background:transparent;
 border-radius:100px;
 width:315px;
 height:50px;
 text-align:center;
 font-size:18px;
 color:#FFF;
 padding:0 20px;
 box-sizing: border-box;
 margin:20px 0;
}
form .btn , .btn-confirm {
 display:block;
 margin:auto;
 background: #00483D;
 background: linear-gradient(90deg,rgba(0, 72, 61, 1) 0%, rgba(82, 221, 129, 1) 100%);
 border:none;
 border-radius:100px;
 width:315px;
 height:60px;
 text-align:center;
 font-size:22px;
 text-transform: uppercase;
 color:#FFF;
 font-weight:bold;
 cursor:pointer;
}

.btn-confirm {
 display: flex;
 align-items: center;
 justify-content: center;
 text-decoration: none;
 margin-top:20px;
}

/**RULES**/

section.rules {
 border:1px solid #FFF;
 border-radius:20px;
 text-align:left;
 margin-bottom:150px;
}
section.rules h4 {
 font-size:28px;
 font-weight: bold;
 color:#FFF;
 padding-left:20px;
 padding-bottom:20px;
}
section.rules ul {
 margin:auto;
 width: 90%;
}
section.rules ul li {
 color:#FFF;
 text-align:left;
}
.rules-confirmation {
 margin-bottom:0 !important;
}
/**CONDITIONS**/
a.conditions {
 color:#FFF;
 font-size:15px;
 font-weight: 500;
 display:inline-block;
 padding-top:10px;
}


/* PROGRAMME */

section.programmation p.intro {
 color:#FFF;
 font-size:26px;
 margin:40px 0;
}




/* --- 3. Conteneur principal --- */
.timeline-wrapper {
    position: relative; /* Contexte pour les marqueurs haut/bas */
    width: 100%;
    max-width: 500px;
    margin:auto;
}

/* --- 4. Liste de la Timeline (UL) --- */
.timeline {
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative; /* Contexte pour la ligne centrale */
    font-style:italic;
    color:#FFF;
}

/* --- 5. Ligne verticale centrale --- */
.timeline::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 4px;
    background-color: #FFF; /* Couleur de la ligne grise */
    transform: translateX(-50%);
    z-index: 0; /* Derrière les icônes */
}

/* --- 6. Chaque item de la liste (LI) --- */
.timeline-item {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    position: relative;
}

/* --- 7. Contenu : Date et Événement --- */
.timeline-date,
.timeline-event {
    flex-basis: 40%; /* 40% de la largeur */
    padding: 0 10px;
    font-size: 1.1em;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.2;
}

.timeline-date {
    text-align: right;
}

.timeline-event {
    text-align: left;
}

/* --- 8. Contenu : Icône centrale --- */
.timeline-icon {
    flex-basis: 20%; /* 20% de la largeur */
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 1; /* Au-dessus de la ligne centrale */
}

.timeline-icon img {
    width: 40px;
    height: 40px;
    display: block;
    border-radius: 50%; /* Pour que l'image soit ronde */
}

/* =====================================================
=== STYLES DES 3 ÉTATS (CE QUE VOUS AVEZ DEMANDÉ) ===
=====================================================
*/

/* --- État par défaut (ou .event-avenir) --- */
.timeline-item.event-avenir .timeline-date,
.timeline-item.event-avenir .timeline-event,
/* Mettre "light" par défaut si aucune classe n'est appliquée */
.timeline-date,
.timeline-event {
    font-weight: 300; /* Police "Light" */
    /* Vous pouvez dé-saturer la couleur si vous voulez */
    /* color: #b0b0b0; */
}

/* --- État 1 : VALIDÉ (Vert) --- */
.timeline-item.event-valide .timeline-date,
.timeline-item.event-valide .timeline-event {
    font-weight: 900; /* Police "Bold" */
    color: #ffffff; /* S'assurer qu'il est bien blanc */
}

/* --- État 2 : ANNULÉ (Rouge) --- */
.timeline-item.event-annule .timeline-date {
    font-weight: 300; /* Date en "Bold" */
    color: #ffffff;
}

.timeline-item.event-annule .timeline-event {
    font-weight: 300; /* Événement en "Normal" (ou 300 si vous préférez "light") */
    text-decoration: line-through; /* Texte rayé */
    text-decoration-color: #FFF; /* Couleur de la rayure (rouge) */
    text-decoration-thickness: 2px; /* Épaisseur de la rayure */
    /* color: #b0b0b0; */ /* Optionnel : griser le texte annulé */
}


/* =====================================================
=== MARQUEURS HAUT ET BAS (LES POINTS VIOLETS) ======
=====================================================
*/
.timeline-top-marker,
.timeline-bottom-marker {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 20px;
    background-color: #FFF; /* Couleur violette de l'image */
    border-radius: 50%;
    z-index: 2; /* Au-dessus de tout */
}

.timeline-top-marker {
    top: 0; /* Tout en haut du wrapper */
}

.timeline-bottom-marker {
    bottom: 0; /* Tout en bas du wrapper */
}

/* Petits connecteurs entre les points et la ligne principale */
.timeline-top-marker::after {
    content: '';
    position: absolute;
    top: 100%; /* Part du bas du cercle */
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 10px; /* Longueur de la connexion */
    background-color: #6a6a6a;
    z-index: -1;
}

.timeline-bottom-marker::before {
    content: '';
    position: absolute;
    bottom: 100%; /* Part du haut du cercle */
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 10px; /* Longueur de la connexion */
    background-color: #6a6a6a;
    z-index: -1;
}

/* Ajustement : L'espace entre les marqueurs et la timeline */
/* On ajoute de la marge à la timeline pour ne pas qu'elle touche les marqueurs */
.timeline {
    margin-top: 20px;
    margin-bottom: 20px;
}

/**MOBILE**/
@media (max-width: 1480px) {
 body {
  background-size:cover;
 }
}
@media (max-width: 1150px) {
 span.date {
    padding: 12px 27px;
    font-size: 16px;
 }
 .content {
  padding:35px;
  bottom:100px;
 }
 section {
  padding:12px 0;
 }
 section.steps ul.div-steps-section {
  flex-direction: column;
 }
 .coins {
  display: none;
 }
 section.text-intro  p {
  font-size:18px;
 }
 img.big-title {
  width:340px;
 }
 section.offer img {
    max-width: 350px;
    width:100%;
 }
 section.steps h2 {
  font-size:30px;
 }
 section.rules {
  margin-bottom:200px;
 }
}
@media (max-width: 500px) {
 .content {
  padding:15px
 }
 section.text-intro p {
  padding-top:100px;
 }
 section.steps ul.div-steps-section li.item-step {
  font-size:12px;
 }
 section.steps ul.div-steps-section li.item-step h3 span:first-child {
    font-size: 50px;
    padding-right: 10px;
    text-shadow: rgb(237, 0, 15) 0px 4px 18px;
 }
}
/* --- EFFET PARTICULES --- */
#particles-js {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  
  /* C'est la clé :
     - z-index: 100 (form)
     - z-index: 2 (content)
     - z-index: 1 (PARTICULES)
     - z-index: auto (BG.jpg)
  */
  z-index: 1; 
}
