img {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none; /* Safari iOS */
}

.open-sans-<uniquifier> {
  font-family: "Open Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}

.dancing-script-<uniquifier> {
  font-family: "Dancing Script", cursive;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}


body {
  font-family: "Open Sans", sans-serif;
  margin-left: 5%;
  margin-top: 0%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  -webkit-user-select: none; /* iOS/Safari */
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none; /* iOS Safari */
  }

h1 {
  line-height: 1;
  font-size: 20pt;
  text-transform: uppercase;
  font-weight: 600;
  }

h6 {
  text-align: center;
  margin-top: 100px;
  line-height: 1;
  font-size: 15pt;
  text-transform: uppercase;
  font-weight: 200;
  }

p { color: #656565;
    margin-bottom: 60px;
}
h2 {
  font-size: 18pt;
  font-family: "Dancing Script", cursive;
  font-weight: 400;
  margin-bottom: 60px;
  font-weight: 600;
  color:hsl(230, 40%, 70%);
}

h3 { 
  font-size: 10pt;
  line-height: 1;
  margin-top: 50px;
  font-weight: 700;
}

h4 {font-weight: 400;
  font-size: 10pt;
  line-height: 1;
}

.lightgrey{
  color: #ebebeb;
}

.darkgrey{
  color: #656565;
}

.uppercase {
  text-transform: uppercase;
}

 .centered {
  width: 100%;
  text-align: center;
  margin: 0 auto;
  align-self: center; /* Pour qu’il s’aligne dans le flex */
 }

.with-border-left {
  border-left: 1px dotted #ebebeb;
  padding-left:10px;
}


.left-spacing {
  margin-left: 50px;
}

.spacing-xl {
  margin-top:100px;
 }

.spacing-l {
  margin-top:50px;
 }

 .spacing-m {
  margin-top:20px;
 }

 .spacing-s {
  margin-top:10px;
  line-height:1,2;
 }

 .italic {
  font-style: italic;
 }

 .bold {
  font-weight: 600;
 }

.background-color{
  background-color: #ebebeb;
}
 .red {
  color: orangered;
  opacity : 70%;
 }

.layout {
  display: flex;
}

.menu {
  width: 300px;
  background-color: #FFFFF;
  padding: 50px;
  /* PAS de position: fixed ! */
}

/* Base commune à toutes les mises en page */
.content {
  margin-right: 50px;
  padding: 0px;
  flex: 1;
  overflow-y: auto;
  box-sizing: border-box;
}

.contentbis {
  margin-right: 50px;
  padding: 0px;
  flex: 1;
  overflow-y: auto;
  box-sizing: border-box; 
  background-color:hsl(230, 40%, 90%);
}

/* Style en grille 2x2 — par défaut */
.content.grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  gap: 0px;
}

/* Style colonne verticale — alternative */
.content.column {
  display: flex;
  flex-wrap: wrap; /* autorise le retour à la ligne */
  gap: 0%; /* espace entre les boxes */
  justify-content: flex-start;
}

/* Style colonne verticale — alternative */
.content.columntext {
  display: flex;
  flex-wrap: wrap; /* autorise le retour à la ligne */
  gap: 0%; /* espace entre les boxes */
  justify-content: flex-start;
  background-color: #656565;
}

.content.column .box {
  flex: 1 1 100%; /* par défaut, box prend toute la largeur */
  max-width: 100%;
  aspect-ratio: auto; 
  position: relative;
  border: 1px solid white;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden; /* éviter débordement */
}

.content.column .box.half {
  flex: 1 1 50%; /* pour 2 par ligne */
  max-width: 50%;
}

*

 {
  box-sizing: border-box;
}

.box {
  border: 1px solid #ccc;
  border-color:white;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1; /* pour garder les carrés */
  position: relative;        /* pour positionner l’overlay dedans */
    }

 .box img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block
    }

  .content.column .box img {
  width: 100%;
  height: auto;
  object-fit: cover; /* ou 'contain' selon l'effet désiré */
}


/* Bloc overlay caché par défaut */
.overlay {
  position: absolute;
  width: 95%;
  height: 95%;
  background-color: hsla(230, 40%, 90%,0.8); /* blanc translucide */
  color: #333;
  display: flex;
  flex-direction: column;
  justify-content: center; /* Centre verticalement */
  align-items: center;     /* Centre horizontalement */
  opacity: 0;               /* invisible au départ */
  transition: opacity 0.3s ease;
  font-weight: 800;
  font-size: 1.2em;
  text-align: center;
  padding: 10px;
  box-sizing: border-box;
}

.overlay-note {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7); /* noir translucide */
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: center; /* Centre verticalement */
  align-items: center;     /* Centre horizontalement */
  opacity: 0;               /* invisible au départ */
  transition: opacity 0.3s ease;
  font-weight: 400;
  font-size: 1.2em;
  text-align: center;
  padding: 10px;
  box-sizing: border-box;
}

.overlay-head {
  position: relative;
  /* centre parfaitement */
}

.overlay-title {
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1;
}

.overlay-subtitle {
  font-weight: 600;
  margin-bottom: 60px;
}

.overlay-quote {
  position: absolute;
  font-family: "Dancing Script", cursive;
  font-weight: 400;
  bottom: 5%;
  left: 5%;
  text-align: left;
  width: 70%; /* optionnel : pour que le texte prenne toute la largeur */
}

/* Affiche le bloc au survol */
.box:hover .overlay {
  opacity: 1;
}

/* Affiche le bloc au survol */
.box:hover .overlay-note {
  opacity: 1;
}

/* Affiche le bloc au survol du diaporama*/
.slider-box:hover .overlay-note {
  opacity: 1;
}

/* Réglages pointeur souris et liens cliqués */
.menu h1[data-page] {
  cursor: pointer !important;
  transition: color 0.2s ease !important;
}

.menu h1[data-page]:hover {
  color: black !important;
}


.menu h3[data-page] {
  cursor: pointer !important;
  transition: color 0.2s ease !important;
}

.menu h3[data-page]:hover {
  color: black !important;
}

.menu h4[data-page] {
  cursor: pointer !important;
  transition: color 0.2s ease !important;
}

.menu h4[data-page]:hover {
  color: black !important;
}

.box[data-page] {
  cursor: pointer;
  transition: transform 0.2s ease;
}

/* DIAPORAMA */

/* REMPLACE ce bloc pour éviter le carré fixe qui bloque le slider */
.content.column .box.slider-box {
  flex: 1 1 100%;
  max-width: 100%;
  position: relative;
  background-color: white;
  border: 1px solid white;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  aspect-ratio: auto; /* important */
}

/* Assure une largeur correcte pour le conteneur */
.slider-container {
  display: flex;
  transition: transform 0.5s ease;
  width: 100%; /* valeur initiale, sera étendue automatiquement par flex */
}

/* Chaque image prend 100% du slider */
.slide {
  flex: 0 0 100%;
  max-width: 100%;
}

.slide img {
  width: 100%;
  height: auto;
  display: block;
}

/* Boutons navigation */
.slider-box button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0, 0, 0, 0.5);
  border: none;
  color: white;
  font-size: 32px;
  padding: 10px 16px;
  cursor: pointer;
  z-index: 10;
}

.slider-box .prev {
  left: 10px;
}

.slider-box .next {
  right: 10px;
}

/* Pour que l'overlay ne masque pas les flèches 
.slider-box .overlay-note {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: auto;
  background-color: rgba(0, 0, 0, 0.6);
  color: white;
  font-size: 1em;
  padding: 10px;
  text-align: center;
  opacity: 1;
} */


.colonne {
  text-align: justify; /* optionnel, pour un rendu plus propre */
}

