:root {
  --cobalt: #1E4F9D;
  --poppy: #DB3130;
  --grisfr: #AAACB0;
  --uranian: #AAD9F9;
  --font-family-titre: "EXO";
  --font-family-texte: "Montserrat";

  --pos-souris-x: 0px;
  --pos-souris-y: 0px;
}
    
.no-select {
    user-select: none;
    -webkit-user-select: none; 
    -ms-user-select: none; 
}

html, body {
    height: 100%;
}

body{
    margin: 0px;
}


header{

    display: flex;
    justify-content :center;
    align-items: center;
    height: 400px;
    font-size: 2em;
    background-image: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(237, 221, 83, 0) 60%), url("photos/DeuxJumeaux.JPEG");
    background-size: cover;
    background-position: center;
    position: relative;
}

header *
{
    z-index: 1;
}

/* A voir pour supprimer le flou */
#overlay-header
{
    position: absolute;
    width: 100%;
    height: 400px;
    z-index: 0;
    /*backdrop-filter: blur(5px);*/
}

#langue {
    position: absolute;
    top: 15px;
    right: 20px;
    display: flex;
    gap: 12px;
    font-size: 28px; /* taille des emoji */
}

#langue span {
    cursor: pointer;
    transition: transform 0.2s ease;
}

#langue span:hover {
    transform: scale(1.3);

}

#etoiles {
    display: block;
    text-align: center;
    font-size: 2em;
    color: gold;
    margin-top: 10px;
    font-family: Arial, sans-serif;
    font-size: 1.4em; 
    margin-top: 6px;
}

#num_enregistrement{
  font-size: 0.6em;
}


#titre-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transform: translateY(22px); /* ✅ décale vers le bas */
}

#titre-header h1 {

  margin-bottom: 0.001em;
}



@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}



h1{
    text-align: center;
    color: #090a63;
}


#titre{ 
    text-align: center;
    font-size: 2em;
}

    

#deroulei {
    display: flex;
}


/* Lightbox */
.gallery {
  display: flex;
  gap: 10px;
}

.thumbnail {
  width: 150px;
  cursor: pointer;
  border-radius: 5px;
  transition: transform 0.2s;
}

.thumbnail:hover {
  transform: scale(1.05);
}

.lightbox {
  display: none;
  position: fixed;
  z-index: 999;
  inset: 0;
  background-color: rgba(0,0,0,0.8);

  /* ✅ centrage avec flexbox */
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.lightbox-content {
  max-width: 90%;
  max-height: 80%;
  border-radius: 8px;

}

.close, .prev, .next {
  position: absolute;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
  user-select: none;
}

.close { top: 20px; right: 35px; }
.prev { top: 50%; left: 20px; transform: translateY(-50%); }
.next { top: 50%; right: 20px; transform: translateY(-50%); }

#caption {
  text-align: center;
  color: #ccc;
  margin-top: 10px;
}


#deroule2{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    overflow: auto;
    height: 300px;
    
}

#deroule2 img {
    width: 100%;          /* occupe la cellule */
    height: 160px;        /* hauteur fixe pour garder l'alignement */
    object-fit: cover;    /* recadrage propre sans déformer */
    border-radius: 8px;   /* bordure arrondi*/
    
    cursor: pointer;
}


#deroule3{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    overflow: auto;
    height: 300px;
    
}

.zone{
    box-sizing: border-box;
    margin-left: 2em;
    margin-bottom: 2em;
    padding: 1em 1em 0em 1em;
    text-align: justify;
    justify-content: center;
    width: 30%;
    height: 25em;
    flex-wrap: wrap;    
    display: inline-flex;
    font-size: large;
    
    
}

.pdp {

    padding: 4em;
    background-color: aliceblue;
}

footer{
    font-size: 20px;
    display: inline-flex;
    flex-wrap: wrap;    
    gap: 2em ;
}

.coordonnees {
    text-align: center;
    width: 30%;
    align-content: center;
}

.cartePrecis{
    text-align: center;
    width: 30%;
}

.map {
    
    text-align: center;
    width: 30%;
}



/* ---------------------------------------------------
   WRAPPER GLOBAL
--------------------------------------------------- */
#calendar-wrapper {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin: 10px auto;
  max-width: 1000px;
  font-family: 'Segoe UI', sans-serif;
}

/* ---------------------------------------------------
   LÉGENDE
--------------------------------------------------- */
#legend {
  display: flex;
  justify-content: center;
  gap: 20px;
  font-size: 0.95em;
  font-weight: 500;
  margin: 0;
}

#legend .reserved {
  background-color: #888888ab;
  color: white;
  padding: 6px 12px;
  border-radius: 20px;
}

#legend .holiday {
  background-color: rgb(255, 255, 255);
  color: rgb(204, 2, 2);
  padding: 6px 12px;
  border: 1px solid #ddd;

  border-radius: 20px;
}

/* ---------------------------------------------------
   CONTENEUR CALENDRIER + TARIFS
--------------------------------------------------- */
.calendar-and-tarifs {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  flex-wrap: wrap;
  flex-wrap: nowrap; /* ✅ empêche le retour à la ligne */ 
  overflow-x: auto; /* ✅ scroll horizontal si nécessaire */
}

/* ---------------------------------------------------
   CALENDRIER (COLONNE DE GAUCHE)
--------------------------------------------------- */
.calendar-months {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 500px;
}

.month {
  background: #fdfdfd;
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 5px;
}

.month h2 {
  font-size: 1.4em;
  text-align: center;
  color: #333;
}

.month table {
  width: 100%;
  border-collapse: collapse;
}

.month th {
  background: #f0f0f0;
  padding: 1px;
  border: 1px solid #ccc;
  font-weight: 000;
  text-align: center;
}

.month td {
  width: 30px;
  height: 30px;
  border: 1px solid #ddd;
  padding: 6px;
  text-align: center;
  vertical-align: middle;
  font-size: 0.95em;
  background-color: #fff;
}

/* Jours réservés */
.month td.reserved {
  background-color: #888888ab;
  color: white;
}

/* Jours fériés */
.month td.holiday {
  color: rgb(204, 2, 2);
}

/* ---------------------------------------------------
   TABLEAU DES TARIFS (COLONNE DE DROITE)
--------------------------------------------------- */
.tarif-container {
  width: 87px;
  flex-shrink: 0;
  position: sticky; 
  top: 0;
}

.tarif-table {
  width: 100%;
  border-collapse: collapse;
  border-radius: 5px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.tarif-table th {
  background: #f9e5b5;
  border: 1px solid #ccc;
  padding: 14px;
  text-align: center;
  color: #333;
}

.tarif-table td {
  border: 1px solid #ccc;
  padding: 7px;
  height: 30px;
  text-align: center;
  background: #fffbed;

}

/* --- RESPONSIVE DESIGN --- */

/* Tablettes (max 1024px) */
@media (max-width: 1024px) {
    .zone {
        width: 45%;
        height: auto;
        margin-left: 0;
    }

    #calendar {
        margin-left: 0;
        justify-content: center;
    }

    .month {
        width: 45%;
    }
}





/* Mobiles (max 600px) */
@media (max-width: 600px) {
    header {
        height: 250px;
        font-size: 1.4em;
    }

    #langue {
        font-size: 22px;
        right: 10px;
    }

    .zone {
        width: 90%;
        margin: auto;
        height: auto;
    }

    #deroule2 img {
        width: 100%;
        height: auto;
    }

    .month {
        width: 100%;
    }

    #calendar {
        margin-left: 0;
        flex-direction: column;
        align-items: center;
    }

    footer {
        flex-direction: column;
        align-items: center;
    }

    .coordonnees, .cartePrecis, .map {
        width: 90%;
    }
}


.thumbnail { width: 100%; height: auto; }
