/* style.css */
/* ==========================================
   Réinitialisation & Styles Globaux
   ========================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
html, body {
    overflow-x: hidden;
    width: 100%;
  }
  
body {
  font-family: 'brawler', 'Roboto', sans-serif;
  background: #000;
  color: #fff;
  overflow-x: hidden;
  font-weight: 400;
  line-height: 1.5;
  font-style: normal;
}
/* Canvas */
#bgCanvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
}
/* Texte lisible */
section h1, section h2, section p {
  text-shadow: 0 1px 3px rgba(0,0,0,0.6);
}
/* Espacement sous nav */
section {
  width: 100%;
  padding: 20px;
  position: relative;
  background: transparent;
  margin-top: 40px;
}
/* ---------- CSS ---------- */

/* Nav de base */
nav {
  display: flex;
  align-items: center;
  justify-content: space-between; /* logo à gauche, menu à droite */
  width: 100%;
  height: 120px;                   /* 10% de la hauteur de la fenêtre */
  padding: 0 2rem;
  background: #000;
  transition: height 0.3s ease;
  position: fixed;
  top: 0;
  z-index: 999;
  opacity: 0.9;
}

/* Logo */
.nav-brand {
  flex: 0 0 auto;
  max-width: 115px;   /* ajustez selon vos besoins */
  max-height: 115px;   /* ajustez selon vos besoins */
  padding-top: 5px;
}

.nav-brand .brand-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: #fff;
  font-weight: bold;
  font-size: 1.5rem;
  padding: 0;      /* supprimez tout padding si nécessaire */
}

/* Si votre logo est une image à l’intérieur de .brand-link : */
.nav-brand .brand-link img {
  max-width: 100%;
  max-height: 100%;
  display: block;   
}

/* Logo : image visible, texte caché */
.nav-brand .logo-img {
  display: block;
}
.nav-brand .logo-text {
  display: none;
  font-size: 1.5rem;
  font-weight: bold;
  color: #fff;
  align-items: center;
  align-text: center;
}
/* Quand on est scrollé (nav.scrolled), on masque l’image et on affiche le texte */
nav.scrolled .nav-brand .logo-img {
  display: none;
}
nav.scrolled .nav-brand .logo-text {
  display: block;
}

/* Menu desktop */
.nav-menu {
  display: flex;
  gap: 1.5rem;
}
.nav-menu a {
  color: #fff;
  text-decoration: none;
  line-height: 1; 
  font-size: 1.25rem;
}
.nav-menu a:hover { color: #007bc8; font-weight: bold; font-size: 1.5rem;}
/* Toggle button (mobile) */
.nav-toggle {
  display: none;
  background: none;
  border: none;
  color: #fff;
  font-size: 1.5rem;
}


/* ==== DESKTOP SHRINK ==== */
/* rien de particulier à déclarer ici, on gère via JS sur scroll */


/* Hero */
.full-screen{ min-height:100vh; }
.d-flex-center{ display:flex; align-items:center; justify-content:center; }
.text-center{ text-align:center; }


#home h1{ font-size: 6rem;}
#home p{ font-size:3rem;}
#home .time p{ font-size:3rem;}
#home .date p{ font-size:1.5rem; }
/* Bouton CTA */
.btn {  
  display:inline-block;
  background:#007bc8; color:#fff;
  padding:10px 20px; border:none;
  border-radius:5px; text-decoration:none;
  font-weight:bold; font-size:1.1rem;
  align-items:center; justify-content:center;
  cursor:pointer;
}
.btn:hover { background:#005f9e; }

/*border-bottom:2px solid #fff; border-top:2px solid #fff;*/

/* Section2 */
.vision {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  border-top: 2px solid #fff;
  align-items: center;
  justify-content: center; 
  margin-top: 10px;
  opacity: 0.8;
  background-color: #001;
}

.horizontal-slider {
  border-bottom: 2px solid #fff;
}

.vision h2 {
  font-size: 3rem;
  color: #007bc8;
}

.vision p {
  font-size: 1.5rem;
}

.vision .pinterne p {
  font-size: 1.25rem;
}

.vision .section2-top {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
  margin-left: 10px;
  align-items: center;   /* <- ici, le plus grand bloc fixe la hauteur et l’autre est centré */
}

.vision .general {
  display: flex 1;
  gap: 10px;
  margin-top: 30px;
  margin-left: 5%;
  align-items: left;
  opacity: 0.9;
}
.vision .general ul{margin-left: 5%;}
.vision .section2-top .text,
.vision .section2-top .graphic {
  flex: 1;
}

.vision .section2-top .graphic img {
  max-width: 100%;
  height: auto;
  display: block;
}

.section2-bottom{ display:flex; justify-content:space-around; align-items:center; flex-wrap:wrap; margin-top:10px; }

.key-number{ text-align:center; margin:10px; }
.key-number .icon{ font-size:2rem; margin-bottom:10px; }
.key-number p{ font-size:1.5rem; }


#our_team {border-top:2px solid #fff; margin-top: 10px;}
.team-members{ display:flex; flex-wrap:wrap; justify-content:center; gap:20px; margin-top:20px;}
.team-member{ background:#774000; color:#fff; padding:20px; border-radius:5px; max-width:350px; text-align:center; }
.team-member img{ max-width:100%; border-radius:80%; margin-bottom:15px; }
.team h2{ font-size:3rem; color: #774000;}
.team p{ font-size:1.5rem}
.team-member h3{ font-size:1.3rem; margin-bottom:5px; }
.team-member .role p{ font-weight:bold; font-size:0.9rem; color:#ccc; margin-bottom:10px; }
.team-member .bio p{ font-size:0.9rem; line-height:1.4; }
/* Partenaires  */
.partners{ height:20%; min-height:100px; display:flex; align-items:center; overflow:hidden; background:transparent; border-top:2px solid #fff; border-bottom:2px solid #fff; }
.partners-marquee{ display:flex; width:200%; animation:marquee 15s linear infinite; will-change: transform;}
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
/* Contact & Liens */
.contact-links{ display:flex; flex-wrap:wrap; padding:20px; align-items:center; justify-content:center;}
.contact-form{ flex:2; min-width:300px; margin-bottom:20px; margin-right:30px}
.contact-form form{ display:flex; flex-direction:column; gap:10px; }
.contact-form input, .contact-form textarea{ padding:10px; border:none; border-radius:5px; color:#333; }
.contact-form textarea {min-width:250px;}
.contact-form button{ display:inline-block;
  background:#007bc8; color:#fff;
  padding:10px 20px; border:none;
  border-radius:5px; text-decoration:none;
  font-weight:bold; font-size:1.1rem;
  align-items:center; justify-content:center;
  cursor:pointer;}
.contact-form button:hover { background:#005f9e; }

.links{ flex:1; min-width:200px; margin-top:30px; }
.links ul{ list-style:none; margin-bottom:20px; padding-left:0; }
.links li a{ color:#fff; text-decoration:none; }
.links li a:hover { color: #007bc8; font-weight: bold; font-size: 1.2rem;}
@media (max-width: 1200px) {
  #home h1{ font-size: 4rem;}
  #home p{ font-size:2rem;}
  #home .time p{ font-size:2rem;}
  #home .date p{ font-size:1.2rem; }
}
/* nouvelle partie */
/* ==== MOBILE ==== */
@media (max-width: 900px) {
  .nav-toggle {
    display: block;
  } 
  .nav-menu {
    position: absolute;
    top: 100%;
    right: 0;
    flex-direction: column;
    background: #000;
    color: #fff;
    text-justify: center;
    text-align: center;
    width: 160px;
    display: none;      /* caché par défaut */
  }
  .nav-menu.open {
    display: flex;
  }
}
@media(max-width:900px){
  .section2-top, .container-slide{ flex-direction:column; }
  .contact-links{ flex-direction:column; }
  .vision h1{ font-size:2rem; }
  .vision p{ font-size:1.25rem; }
  /* Empêcher tout débordement horizontal */
  html, body {
    overflow-x: hidden;
    width: 100%;
  }

  /* Ajustement complet pour la page home */
  #home {
    min-height: 100vh; /* garantit l'occupation complète de l'écran en hauteur */
    height: auto;
    padding-top: 5vh; /* espace sous la nav */
    padding-bottom: 5vh; /* petite marge inférieure */
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  /* Polices adaptées précisément au mobile */
  #home h1 {
    font-size: 3rem;
    margin: 1vh auto;
    max-width: 97%;
    word-wrap: break-word;
  }

  #home p {
    font-size: 1.5rem;
    margin: 1vh auto;
    max-width: 97%;
    word-wrap: break-word;
  }

  #home .time p {
    font-size: 1.5rem;
    margin: 1vh auto;
  }

  #home .date p {
    font-size: 1rem;
    margin: 1vh auto;
  }

  /* Réduire l'espacement général des sections suivantes */
  section {
    padding: 10px;
    margin-top: 40px;
  }

  /* Ajuste les boutons pour mobile */
  .btn {
    padding: 8px 15px;
    font-size: 1rem;
  }

  /* Corrige les images et médias */
  img, video, canvas {
    max-width: 100%;
    height: auto;
  }
}


/* Styles pour le modal */
.modal {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.6);
  display: none;          /* caché */
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.modal.active {
  display: flex;          /* visible quand on ajoute la classe active */
}
.modal-content p {
  white-space: pre-line;
}
.modal-content {
  background: #aaa;
  color: #000;
  padding: 20px;
  max-width: 400px;
  width: 90%;
  border-radius: 6px;
  text-align: left;
}
.modal-actions {
  margin-top: 15px;
  text-align: right;
}
.modal-actions button {
  margin-left: 10px;
  padding: 6px 12px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
#modalCancel { background: #ccc; }
#modalOk     { background: #007bc8; color: #fff; }

#titreContact {
  display: none !important;
}
#titreNL {
  display: none !important;
}
