

@import url(https://fonts.cdnfonts.com/css/ethnocentric);
@media (max-width:768px) {
    
    
    #imgdsc {
        display: block !important;
        width: clamp(200px, 90vw, 750px) !important;
        height: auto !important;
        object-fit: cover !important;
        border-radius: 5% !important;
        margin: clamp(2vw, 5vh, 4vw) auto 0 !important;
        cursor: zoom-in !important
    }
   
   
    
    
    
   
    .content a {
        font-size: 12px !important;
        width: 140px !important
    }
    .content h1 {
        margin-left: 0 !important;
        transform: none !important;
        width: auto !important;
        text-align: center !important
    }
    
    .btn-primary {
        width: 75% !important;
        font-size: 9px !important
    }
    html,
    body {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
        max-width: 100vw !important
    }
    *,
    *::before,
    *::after {
        box-sizing: inherit
    }
}

body {
    background-color: #000;
    color: #fff;
    font-family: 'Barlow Condensed', sans-serif;
    margin: 0;
    overflow-x: hidden
}











header#accueil {
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    z-index: 1
}



main {
    position: relative;
    margin-top: -100vh;
    z-index: 2;
    background: rgb(0 0 0 / .8);
    padding-top: 100vh
}



nav {
    background-color: #111;
    padding: 12px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center
}

nav .logo {
    font-weight: 700;
    font-size: 1.5rem;
    color: #00f6ff
}

nav a {
    color: #fff;
    margin-left: 20px;
    text-decoration: none;
    font-weight: 600
}

nav a:hover {
    text-decoration: underline
}

main {
    max-width: 1000px;
    margin: 40px auto;
    padding: 0 20px
}









.btn-primary {
    padding: 1rem 2rem;
    border: none;
    border-radius: 30px;
    background: linear-gradient(to right, #0055A4, #ff1100);
    color: #fff;
    font-weight: 700;
    font-size: 1.2rem;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.3s ease;
    margin-bottom: 2rem;
    box-shadow: 0 0 10px rgb(0 85 164 / .7);
    width: 650px !important
}

.btn-primary:hover {
    background: #c00000;
    color: #fff;
    box-shadow: 0 0 15px #c00000
}








footer {
    text-align: center;
    color: #666;
    padding: 20px;
    border-top: 1px solid #2220;
    margin-top: 60px;
    font-size: .9rem
}


.fullscreen-content {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%
}

.fullscreen-content img,
.fullscreen-content video {
    max-width: 90%;
    max-height: 90%;
    border-radius: 12px;
    box-shadow: 0 0 40px #fff;
    object-fit: contain
}





#scrollTopBtn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 60px;
    height: 60px;
    background-color: #C00000;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 999;
    transition: background 0.3s, transform 0.3s
}

#scrollTopBtn:hover {
    background-color: #002060;
    transform: translateY(-3px)
}

.arrow-icon {
    width: 32px;
    height: 32px
}







#video_1 {
    filter: brightness(1.25) contrast(1.12)
}


@media (max-width:768px) {

  canvas {
    color: #cdcdcd
}


}

canvas {
    color: #cdcdcd

}






/*Nouvelles classes CSS*/


/*Fullscreen*/

#fullscreen {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.97);
  justify-content: center;
  align-items: center;
  z-index: 9999;
  padding: 3vw;
  box-sizing: border-box;
  overflow: auto;
}

#fullscreenImage {
  max-width: 100%;
  max-height: 90vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0.5rem;
  box-shadow: 0 0 1.25rem rgba(255, 255, 255, 0.3);
}

#closeFull {
  position: absolute;
  top: clamp(1rem, 3vw, 2.5rem);
  right: clamp(1rem, 3vw, 2.5rem);
  font-size: clamp(1.75rem, 5vw, 3rem);
  color: white;
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1;
  z-index: 10000;
}


/*Header*/


.invest-header {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

.invest-header video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.invest-header .overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 0;
}

.invest-header .content {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  padding: clamp(1rem, 5vw, 3rem);
  text-align: center;
}

.invest-header .content h1 {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(2rem, 8vw, 6rem);
  color: #fff;
  margin: 0 0 clamp(1rem, 3vw, 2rem);
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.63),
               4px 4px 12px rgba(0, 0, 0, 0.57);
}

.invest-header .content h1 span {
  font-size: clamp(1rem, 2vw, 1.5rem);
}

.invest-header .content h4 {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1rem, 4vw, 2.5rem);
  line-height: 1.2;
  color: #fff;
  margin: 0 auto clamp(1rem, 3vw, 1.5rem);
  max-width: 90vw;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.63),
               4px 4px 12px rgba(0, 0, 0, 0.57);
}

.invest-header .content a {
  display: inline-block;
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1rem, 3vw, 1.5rem);
  color: #ffffff;
  padding: clamp(0.75rem, 2vw, 1rem) clamp(1.5rem, 4vw, 2rem);
  border-radius: 30px;
  text-decoration: none;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.63),
               4px 4px 12px rgba(0, 0, 0, 0.57);
  background: linear-gradient(to right, #003C78, #ff1100);
  transition: background 0.3s ease;
}

.invest-header .content a:hover {
  background: linear-gradient(to right, #004080, #d00000);
}

@import url('https://fonts.cdnfonts.com/css/ethnocentric');



/* Circles */

/* ========== SPEC CIRCLES GRID ========== */

.spec-circles {
  width: 100%;
  max-width: 1400px;
  margin: clamp(2rem,5vw,4rem) auto 0;
  padding: 0 clamp(1rem,3vw,2rem);
  box-sizing: border-box;
}

.circle-grid {
  --circle-size: 140px;
  --gap: clamp(1.2rem,2.2vw,2.2rem);
  display: grid;
  justify-content: center;        /* centre la grille */
  gap: var(--gap);
  /* Grille desktop : 3 colonnes max pour imposer 3/3/2 */
  grid-template-columns: repeat(3, var(--circle-size));
}



/* Pour s'assurer que la dernière ligne (2 items) est centrée,
   on laisse 'justify-content:center' et EXACTEMENT 3 colonnes fixes. */

.circle {
  position: relative;
  width: var(--circle-size);
  height: var(--circle-size);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 var(--circle-size);
  border-radius: 50%;
  background: #000;
  box-shadow: 0 0 12px rgba(255,255,255,0.15);
  overflow: hidden;
  font-family: 'Barlow Condensed', sans-serif;
}

.circle-svg,
.circle-svg svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.progress-ring {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg); /* départ en haut */
}

.progress-ring-2 {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg); /* départ en haut */
}

.progress-ring__circle--bg {
  fill: none;
  stroke: #d7d7d7;
  stroke-width: 10;
  stroke-linecap: round;
  opacity: .55;
}

.progress-ring__circle {
  fill: none;
  stroke: #c00000;
  stroke-width: 10;
  stroke-linecap: round;
  stroke-dasharray: 377;
  stroke-dashoffset: 377;
  transition: stroke-dashoffset 1.5s ease-out;
}

.progress-ring-2__circle {
  fill: none;
  stroke: #09ff00;
  stroke-width: 10;
  stroke-linecap: round;
  stroke-dasharray: 377;
  stroke-dashoffset: 377;
  transition: stroke-dashoffset 1.5s ease-out;
}

.circle-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  line-height: 1.12;
  padding: 0 .6rem;
}

.circle-content span {
  font-size: .95rem;
  font-weight: 700;
  text-shadow: 2px 2px 8px rgba(0,0,0,0.63);
  margin: 0;
}

.circle-content small {
  margin-top: 4px;
  font-size: .75rem;
  text-shadow: 2px 2px 8px rgba(0,0,0,0.57);
  letter-spacing: .3px;
}

/* ====== Tablettes : conserver 3 colonnes si possible ====== */
@media (max-width: 900px) {
  .circle-grid {
    --circle-size: 132px;
    gap: clamp(1rem,2vw,1.6rem);
  }
}

/* ====== Entre 640px et 899px : 3 colonnes adaptatives (toujours 3/3/2) ====== */
@media (max-width: 640px) {
  .circle-grid {
    --circle-size: 120px;
    gap: 1.2rem;
    grid-template-columns: repeat(2, var(--circle-size)); /* 2 colonnes => 4 lignes de 2 */
  }
}

/* ====== Petits mobiles <480px : 1 colonne ====== */
@media (max-width: 480px) {
  .circle-grid {
    --circle-size: 118px;
    gap: 1rem;
    grid-template-columns: repeat(1, var(--circle-size));
  }
  .circle-content span   { font-size: .9rem; }
  .circle-content small  { font-size: .65rem; }
}

/*circle span + small 900px*/

@media (max-width: 900px) {
  .circle-content span   { font-size: .80rem !important;}
  .circle-content small  { font-size: .55rem !important; }
}

/* Option : animation quand le cercle entre dans la vue */
.circle.reveal .progress-ring__circle {
  stroke-dashoffset: var(--target, 0);
}









/*Description Container*/




.description-container {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 1rem;
  box-sizing: border-box;
}

.description-text {
  box-sizing: border-box;
  width: clamp(280px, 90%, 550px);
  margin: 0 auto;
  padding: clamp(1rem, 4vw, 2rem);
  text-align: center;
}

.description-text h2,
.description-text h3 {
  font-size: clamp(1.5rem, 5vw, 2.5rem);
  font-family: 'Orbitron', sans-serif;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.63), 4px 4px 12px rgba(0, 0, 0, 0.57);
  transform: translateZ(40px);
  perspective: 1000px;
  margin-bottom: clamp(1rem, 3vw, 2rem);
}

.description-text p {
  font-size: clamp(1.1rem, 3.5vw, 1.75rem);
  line-height: 1.6;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.63), 4px 4px 12px rgba(0, 0, 0, 0.57);
  transform: translateZ(40px);
  perspective: 1000px;
  margin-bottom: clamp(1.5rem, 5vw, 3rem);
  max-width: 100%;
}


.superscript {
  font-size: 2rem;
  vertical-align: super;
}

.colored-blue {
  color: #0553f0;
}

.colored-red {
  color: #ed0505;
}

.small-note {
  font-size: clamp(0.85rem, 3vw, 1.1rem);
}

.highlight-red {
  color: red;
  font-weight: bold;
}

.highlight-blue {
  color: rgb(0, 157, 255);
  font-weight: bold;
}

.highlight-green {
  color: rgb(14, 204, 14);
  font-weight: bold;
}


/*carousel*/


/* Container fixe */
.sf-carousel-container {
  --cell-width: clamp(260px, 52vw, 640px);
  --cell-height: clamp(180px, 35vw, 400px);
  --cell-gap: 0.22; /* espace relatif entre faces */
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 60px auto;
  perspective: 1600px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--cell-height); /* fixe la hauteur */
}

/* Track = pivot, ne bouge pas en Z */
.sf-carousel {
  position: relative;
  width: var(--cell-width);
  height: var(--cell-height);
  transform-style: preserve-3d;
  transition: transform 0.85s cubic-bezier(.22,.8,.25,1);
  will-change: transform;
}

/* Faces */
.sf-cell {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--cell-width);
  height: var(--cell-height);
  transform-style: preserve-3d;
  margin: -50% 0 0 -50%;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 10px 30px -8px rgba(0,0,0,.55);
  background:#000;
  display:flex;
}

.sf-cell img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:brightness(1.05) contrast(1.18);
  transition:filter .5s, transform .6s;
}

.sf-cell.is-front img {
  filter:brightness(1.18) contrast(1.28) saturate(1.08);
  transform:scale(1.035);
}

/* Boutons (inchangé si tu veux) */
.sf-nav {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:56px;height:56px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:1.8rem;
  cursor:pointer;
  display:grid;
  place-items:center;
  backdrop-filter:blur(6px);
  transition:background .3s,border-color .3s,color .3s,transform .3s;
  z-index:5;
}
.sf-prev{left:8px;}
.sf-next{right:8px;}
.sf-nav:hover{background:rgba(255,255,255,.65);color:#000;border-color:#fff;transform:scale(1.08);}

/* Dots */
.sf-dots {
  display:flex;
  gap:.55rem;
  justify-content:center;
  margin-top:26px;
  flex-wrap:wrap;
}
.sf-dots button {
  width:14px;height:14px;
  border-radius:50%;border:none;
  background:radial-gradient(circle at 30% 30%,#fff,#777 70%);
  opacity:.35;cursor:pointer;
  transition:opacity .35s, transform .35s;
}
.sf-dots button.is-active {
  opacity:1;
  transform:scale(1.4);
  background:radial-gradient(circle at 35% 35%,#fff,#00f6ff 70%);
  box-shadow:0 0 0 5px rgba(0,246,255,.18);
}

/* Responsive : on laisse les clamp() gérer la taille.
   Optional: réduire gap visuel mobile */
@media (max-width:600px){
  .sf-carousel-container {
    --cell-gap: 0.28;
  }
}

/*carousel v2*/

/* ====== ULX CAROUSEL 3D (nouvelles classes) ====== */

/* ===== ULX GALLERY (titre haut + carousel plus bas) ===== */
.ulx-gallery {
  --ulx-width: clamp(280px, 70vw, 960px);
  --ulx-height: clamp(180px, 48vw, 520px);
  --ulx-gap-factor: 0.22;
  --ulx-offset: clamp(1.2rem, 3vw, 2rem); /* espace entre titre et carousel */
  position: relative;
  width: 100%;
  max-width: var(--ulx-width);
  margin: clamp(2.5rem,5vw,4rem) auto 0;
  font-family: 'Orbitron', sans-serif;
  text-align: center;
  
}

.ulx-title {
  margin: 0;
  padding: 0;
  font-size: clamp(1.4rem,4vw,2.5rem);
  line-height: 1.15;
  color:#fff;
  text-shadow:2px 2px 8px rgba(0,0,0,.63),4px 4px 12px rgba(0,0,0,.57);
  position: relative;
  z-index: 2;
}

/* Espace avant la scène */
.ulx-stage {
  margin-top: var(--ulx-offset);
  position: relative;
  width: 100%;
  height: var(--ulx-height);
  perspective: 1800px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  margin-top: 50% !important;
}

.ulx-track {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform .9s cubic-bezier(.22,.8,.25,1);
  will-change: transform;
}

.ulx-face {
  position:absolute;
  top:50%; left:50%;
  width:100%; height:100%;
  margin:-50% 0 0 -50%;
  display:flex;
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 10px 34px -10px rgba(0,0,0,.6),
             0 0 0 1px rgba(255,255,255,.06);
  background:#000;
  transform-style: preserve-3d;
  transition:filter .6s, transform .9s, box-shadow .6s;
}

.ulx-face img {
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:brightness(1.05) contrast(1.15) saturate(1.05);
  transition: transform 1.2s ease, filter .6s;
  pointer-events:none;
}

.ulx-face.is-front {
  box-shadow:0 14px 46px -12px rgba(0,0,0,.75),
             0 0 0 1px rgba(0,255,255,.25);
}
.ulx-face.is-front img {
  filter:brightness(1.18) contrast(1.25) saturate(1.1);
  transform:scale(1.035);
}

.ulx-nav {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:64px; height:64px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.45);
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:2rem;
  display:grid;
  place-items:center;
  cursor:pointer;
  backdrop-filter:blur(6px);
  transition:background .35s, border-color .35s, color .35s, transform .35s;
  z-index:10;
}
.ulx-prev { left: -12px; }
.ulx-next { right: -12px; }
.ulx-nav:hover {
  background:rgba(255,255,255,.7);
  color:#000;
  border-color:#fff;
  transform:translateY(-50%) scale(1.08);
}

.ulx-dots {
  margin-top: -15% !important;
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  justify-content:center;
}
.ulx-dots button {
  width:15px; height:15px;
  border-radius:50%;
  border:none;
  background:radial-gradient(circle at 30% 30%, #fff, #666 70%);
  opacity:.35;
  cursor:pointer;
  transition:opacity .35s, transform .35s, box-shadow .35s;
}
.ulx-dots button.is-active {
  opacity:1;
  transform:scale(1.4);
  background:radial-gradient(circle at 35% 35%, #fff, #00f6ff 70%);
  box-shadow:0 0 0 6px rgba(0,246,255,.22);
}

/* ===== Responsive tweaks ===== */
@media (max-width: 900px) {
  .ulx-gallery {
    margin-top: clamp(2rem,6vw,3.2rem);
    --ulx-offset: clamp(1.4rem, 4vw, 2.2rem); /* un peu plus d'espace */
  }
  .ulx-nav {
    width:54px; height:54px; font-size:1.6rem;
  }
  .ulx-prev { left: -6px; }
  .ulx-next { right: -6px; }

  .ulx-stage {
  margin-top: var(--ulx-offset);
  position: relative;
  width: 100%;
  height: var(--ulx-height);
  perspective: 1800px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  margin-top: 50% !important;
}

.ulx-title {
  margin: 0;
  padding: 0;
  font-size: clamp(1.4rem,4vw,2.5rem);
  line-height: 1.15;
  color:#fff;
  text-shadow:2px 2px 8px rgba(0,0,0,.63),4px 4px 12px rgba(0,0,0,.57);
  position: relative;
  z-index: 2;
  margin-top: -20%;
}
}

@media (max-width: 640px) {
  .ulx-gallery {
    --ulx-height: clamp(220px, 60vw, 400px);
    margin-top: clamp(1.8rem,7vw,2.8rem);  /* galerie reste haute */
    --ulx-offset: clamp(1.8rem, 8vw, 3rem); /* descend le carousel */
  }
  .ulx-nav {
    width:50px; height:50px; font-size:1.4rem;
  }

  .ulx-stage {
  margin-top: var(--ulx-offset);
  position: relative;
  width: 100%;
  height: var(--ulx-height);
  perspective: 1800px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  margin-top: 50% !important;
}

.ulx-title {
  margin: 0;
  padding: 0;
  font-size: clamp(1.4rem,4vw,2.5rem);
  line-height: 1.15;
  color:#fff;
  text-shadow:2px 2px 8px rgba(0,0,0,.63),4px 4px 12px rgba(0,0,0,.57);
  position: relative;
  z-index: 2;
  margin-top: -20%;
}
}

@media (max-width: 440px) {
  .ulx-gallery {
    --ulx-height: clamp(200px, 62vw, 360px);
    margin-top: clamp(1.6rem,8vw,2.4rem);
    --ulx-offset: clamp(2.2rem, 10vw, 3.6rem);
  }
  .ulx-nav {
    width:46px; height:46px; font-size:1.3rem;
  }

  .ulx-stage {
  margin-top: var(--ulx-offset);
  position: relative;
  width: 100%;
  height: var(--ulx-height);
  perspective: 1800px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  margin-top: 50% !important;
}

.ulx-title {
  margin: 0;
  padding: 0;
  font-size: clamp(1.4rem,4vw,2.5rem);
  line-height: 1.15;
  color:#fff;
  text-shadow:2px 2px 8px rgba(0,0,0,.63),4px 4px 12px rgba(0,0,0,.57);
  position: relative;
  z-index: 2;
  margin-top: -20%;
}
}





/* === FULLSCREEN IMAGE FIX (version finale robuste) === */
.sf-fs {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(0,0,0,0.95) !important;
  padding: clamp(12px, 3vw, 42px) !important;
  box-sizing: border-box !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease;
  overflow: hidden !important;        /* pas de scroll interne parasite */
}

.sf-fs.active {
  opacity: 1 !important;
  visibility: visible !important;
}

.sf-fs-inner {
  position: relative !important;
  max-width: 92vw !important;
  max-height: 92vh !important;
  width: auto !important;
  height: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  top: 0 !important;
  left: 0 !important;
  transform: none !important;
}

.sf-fs-inner img,
#sfFsImg {
  display: block !important;
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  top: 0 !important;
  left: 0 !important;
  transform: none !important;
  border-radius: 14px !important;
  box-shadow: 0 0 38px rgba(255,255,255,.28) !important;
}

/* Bouton close */
.sf-fs-close {
  position: absolute !important;
  top: -18px !important;
  right: -18px !important;
  width: clamp(42px,5.2vw,58px) !important;
  height: clamp(42px,5.2vw,58px) !important;
  border-radius: 50% !important;
  border: 2px solid rgba(0,0,0,.55) !important;
  background: radial-gradient(circle at 30% 30%, #ffffff, #d9d9d9 70%) !important;
  color:#000 !important;
  font-size: clamp(1.6rem,4vw,2.4rem) !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  display: grid !important;
  place-items: center !important;
  cursor: pointer !important;
  box-shadow: 0 6px 22px -6px rgba(0,0,0,.6), 0 0 0 3px rgba(255,255,255,.55) !important;
  transition: background .3s, transform .25s !important;
}

.sf-fs-close:hover { background: radial-gradient(circle at 30% 30%, #ffffff, #bfeeff 75%) !important; }

/* Safe areas iOS */
@supports(padding:max(0px)) {
  .sf-fs {
    padding:
      max(12px, env(safe-area-inset-top))
      max(12px, env(safe-area-inset-right))
      max(12px, env(safe-area-inset-bottom))
      max(12px, env(safe-area-inset-left)) !important;
  }
}

/* ==== FULLSCREEN IMAGE (version finale centrée) ==== */
.sf-fs {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000 !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(0,0,0,0.95) !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease;
}

.sf-fs.active {
  opacity: 1;
  visibility: visible;
}

.sf-fs-inner {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  max-width: 100vw !important;
  max-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
}

#sfFsImg {
  display: block !important;
  max-width: calc(100vw - 40px) !important;
  max-height: calc(100vh - 40px) !important; /* petit breathing room */
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 14px;
  box-shadow: 0 0 38px rgba(255,255,255,.28);
}

.sf-fs-close {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 50%;
  border: 2px solid rgba(0,0,0,.55);
  background: radial-gradient(circle at 30% 30%, #ffffff, #d9d9d9 70%);
  color:#000;
  font-size: 1.9rem;
  line-height: 1;
  font-weight: 700;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 6px 18px -6px rgba(0,0,0,.6), 0 0 0 3px rgba(255,255,255,.55);
  transition: background .3s, transform .25s;
  transform: translateY(5px) !important;
}
.sf-fs-close:hover { background: radial-gradient(circle at 30% 30%, #ffffff, #bfeeff 75%); transform: scale(1.07); }
.sf-fs-close:active { transform: scale(.92); }

/* Désactivation du debug */
.sf-fs-inner::before { content:none !important; }


.sf-fs-inner { transform: translateY(685px) !important; }





/*charts..*/


/* ========== INVEST SECTION ========== */
.invest-section {
  padding: clamp(2rem,5vw,4rem) 5vw;
  max-width: 1600px;
  margin: 0 auto;
  box-sizing: border-box;
  text-align: center;
}

.invest-title {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1.8rem,5vw,3rem);
  margin: 0 0 clamp(2rem,4vw,3rem);
  color:#fff;
  text-shadow:2px 2px 8px rgba(0,0,0,.63),4px 4px 12px rgba(0,0,0,.57);
  letter-spacing:.5px;
}

.invest-reasons {
  display:flex;
  flex-wrap:wrap;
  gap: clamp(1.8rem,3vw,3rem);
  justify-content:center;
  align-items:stretch;
}

.invest-reason {
  flex:1 1 300px;
  max-width:360px;
  background:rgba(0,255,255,0.05);
  padding: clamp(1.2rem,2.2vw,2rem);
  border-radius:12px;
  box-shadow:0 0 10px rgba(0,255,255,0.08);
  display:flex;
  flex-direction:column;
  position:relative;
  box-sizing:border-box;
  overflow:visible;
  backdrop-filter: blur(2px);
  transition: box-shadow .4s, transform .4s;
}

.invest-reason:hover {
  box-shadow:0 0 14px -2px rgba(0,255,255,0.25),
             0 0 30px -8px rgba(0,255,255,0.15);
  transform: translateY(-4px);
}

/* Lignes internes */
.ir-row {
  width:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  /* min-height fixé en JS */
}

/* Titres / Sous-titres */
.invest-reason-title,
.invest-subtitle {
  margin:0;
  font-family:'Orbitron', sans-serif;
  color:#fff;
  text-shadow:2px 2px 8px rgba(0,0,0,.63),4px 4px 12px rgba(0,0,0,.57);
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
}

.invest-reason-title { font-size: clamp(1.2rem,2.2vw,1.9rem); }
.invest-subtitle     { font-size: clamp(0.8rem,1.8vw,1rem); }

.reg-big {
  font-size:1.8rem;
  line-height:0;
  vertical-align:middle;
}

/* Texte */
.invest-text {
  margin:0;
  line-height:1.55;
  font-size: clamp(0.9rem,1.8vw,1.15rem);
  color:#fff;
  text-shadow:2px 2px 8px rgba(0,0,0,.63),4px 4px 12px rgba(0,0,0,.57);
  text-align:center;
}

/* Images */
.invest-image {
  width:100%;
  aspect-ratio: 4 / 3;
  object-fit:cover;
  border-radius:10px;
  box-shadow:0 6px 16px -4px rgba(0,0,0,.5);
  transition:transform .45s, box-shadow .45s;
  display:block;
}
.invest-image:hover {
  transform:scale(1.04);
  box-shadow:0 8px 24px -6px rgba(0,0,0,.65);
}

/* Wrapper graphique */
.invest-chart-wrapper {
  position:relative;
  width:100%;
  aspect-ratio:5 / 3;
  overflow:hidden;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:radial-gradient(circle at 30% 30%,rgba(0,255,255,0.08),rgba(0,255,255,0.02));
  box-shadow: inset 0 0 12px -4px rgba(0,255,255,0.15);
}

.invest-chart-wrapper canvas {
  position:absolute;
  inset:0;
  width:100% !important;
  height:100% !important;
}

/* Responsive affinage */
@media (max-width: 900px) {
  .invest-reason { max-width: 420px; }
}
@media (max-width:680px){
  .invest-reason { max-width: 520px; }
  .invest-image { aspect-ratio:16 / 10; }
}
@media (max-width:480px){
  .invest-reasons { gap: 1.4rem; }
}


/* ================== MEDIA SECTION (PRESSE & MÉDIAS) ================== */

.media-section {
  margin-top: clamp(-8rem, -12vw, -15%);
  padding: clamp(2rem,4vw,3rem) 5vw 0;
  box-sizing: border-box;
  position: relative;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}

.media-title {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1.8rem, 4.5vw, 2.6rem);
  margin: 0 0 clamp(1.8rem,3.2vw,2.4rem);
  width: 100%;
  text-align: center;
  color: #ffffff;
  letter-spacing: .5px;
  text-shadow:
    2px 2px 8px rgba(0,0,0,0.63),
    4px 4px 12px rgba(0,0,0,0.57);
  transform: translateZ(40px);
  perspective: 1000px;
}

.phantom-rotator-container {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: clamp(0.5rem,2vw,1rem);
  padding: 0 clamp(.4rem,1vw,.8rem);
  box-sizing: border-box;
}

.phantom-rot-btn {
  position: relative;
  z-index: 5;
  width: clamp(42px,5vw,64px);
  height: clamp(42px,5vw,64px);
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.45);
  background: rgba(255,255,255,0.15);
  color:#fff;
  font-size: clamp(1.6rem,3vw,2.2rem);
  font-weight: 600;
  cursor: pointer;
  backdrop-filter: blur(6px);
  display: grid;
  place-items: center;
  transition: background .3s, transform .3s, border-color .3s, color .3s;
}
.phantom-rot-btn:hover {
  background: rgba(255,255,255,0.65);
  color:#000;
  border-color:#fff;
  transform: scale(1.08);
}
.phantom-prev { order: 0; }
.phantom-next { order: 2; }

.phantom-rotator {
  order:1;
  flex: 1 1 auto;
  display: flex;
  gap: clamp(1.2rem,2.4vw,2.2rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: .6rem .4rem 1.2rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
  position: relative;
}
.phantom-rotator::-webkit-scrollbar { display: none; }

/* Chaque slide */
.phantom-slide {
  flex: 0 0 clamp(280px, 42vw, 500px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #fff;
  scroll-snap-align: center;
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(140deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  box-shadow: 0 4px 18px -6px rgba(0,0,0,0.6),
              0 0 0 1px rgba(255,255,255,0.05);
  transition: transform .5s cubic-bezier(.22,.8,.25,1),
              box-shadow .5s, filter .5s;
}

.phantom-slide img {
  width: 100%;
  aspect-ratio: 10 / 7;          /* approx 500x350 */
  object-fit: cover;
  display: block;
  filter: brightness(1.05) contrast(1.1);
  transition: transform .6s ease, filter .6s ease;
}

.phantom-slide p {
  width: 100%;
  margin: 0;
  font-size: clamp(.95rem,1.8vw,1.25rem);
  padding: .9rem .8rem 1.1rem;
  text-align: center;
  font-weight: 600;
  text-shadow:
    2px 2px 8px rgba(0,0,0,0.63),
    4px 4px 12px rgba(0,0,0,0.57);
  background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 85%);
  position: relative;
  transform: translateZ(40px);
  perspective: 1000px;
}

.phantom-slide:hover {
  transform: translateY(-6px) scale(1.02);
  box-shadow: 0 10px 28px -8px rgba(0,0,0,0.75),
              0 0 0 1px rgba(0,255,255,0.25);
}
.phantom-slide:hover img {
  filter: brightness(1.15) contrast(1.18) saturate(1.1);
  transform: scale(1.05);
}

/* FOCUS accessibilité */
.phantom-slide:focus-visible {
  outline: 3px solid #00f6ff;
  outline-offset: 3px;
}

/* Navigation invisible si peu d’éléments (optionnel) */
@media (min-width:1200px) {
  .phantom-rotator:not(.force-arrows)::after {
    content:'';
  }
}

/* Petits écrans : centrage / réduction */
@media (max-width: 820px){
  .media-section { margin-top: clamp(1rem,4vw,3rem); }
  .phantom-rot-btn {
    width: clamp(40px,10vw,52px);
    height: clamp(40px,10vw,52px);
    font-size: clamp(1.4rem,4vw,2rem);
  }
  .phantom-slide {
    flex: 0 0 clamp(240px,70vw,400px);
  }
  .phantom-slide img {
    aspect-ratio: 4 / 3;
  }
}

/* Très petits écrans */
@media (max-width:480px){
  .phantom-rotator-container {
    gap: .4rem;
  }
  .phantom-rot-btn {
    backdrop-filter: blur(4px);
  }
  .phantom-slide {
    border-radius: 12px;
  }
  .phantom-slide p {
    font-size: .95rem;
    padding: .75rem .6rem 1rem;
  }
}


/* ================= PARTNERS SECTION ================= */

.partners-section {
  padding: clamp(2rem,5vw,4rem) 5vw;
  text-align: center;
  box-sizing: border-box;
  max-width: 1600px;
  margin: 0 auto;
}

.partners-title {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1.6rem, 4.5vw, 2.5rem);
  margin: 0 0 clamp(1.8rem,4vw,3rem);
  color: #fff;
  letter-spacing: .5px;
  text-shadow:
    2px 2px 8px rgba(0,0,0,0.63),
    4px 4px 12px rgba(0,0,0,0.57);
  transform: translateZ(40px);
  perspective: 1000px;
}

/* Rail principal */
.partners-rail {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(1.5rem,5vw,4rem);
  padding-bottom: clamp(1rem,2vw,2rem);
  box-sizing: border-box;
  max-width: 100%;
  /* Sur mobile : défilement horizontal doux */
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
}
.partners-rail::-webkit-scrollbar { display: none; }

/* Logos */
.partner-logo {
  flex: 0 0 auto;
  height: auto;
  width: clamp(80px, 14vw, 150px);
  object-fit: contain;
  filter: brightness(1.15) contrast(1.05);
  transition: transform .35s ease, filter .35s ease, box-shadow .35s ease;
  scroll-snap-align: center;
  display: block;
  pointer-events: auto;
  user-select: none;
  image-rendering: -webkit-optimize-contrast;
}

.partner-logo--wide {
  width: clamp(120px, 18vw, 200px);
}

.partner-logo:hover,
.partner-logo:focus {
  transform: scale(1.08);
  filter: brightness(1.25) contrast(1.1);
  box-shadow: 0 0 18px -4px rgba(0,255,255,0.35);
  outline: none;
}

/* Effet “pulse” léger au focus clavier */
.partner-logo:focus-visible {
  box-shadow: 0 0 0 4px rgba(0,246,255,.4);
  border-radius: 6px;
}

/* Ajustements responsive spécifiques */
@media (max-width: 900px) {
  .partners-rail {
    flex-direction: column;
    align-items: center;
    gap: 1.4rem;
    overflow: visible !important;
  }

  .partner-logo,
  .partner-logo--wide {
    /* plus petit qu'avant */
    width: clamp(70px, 28vw, 110px) !important;
    height: auto;
  }
}

/* <= 640px */
@media (max-width: 640px) {

  .partners-rail {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 1.2rem;
    overflow: visible !important;
    scroll-snap-type: none;
    padding-bottom: 0;
  }

  .partner-logo,
  .partner-logo--wide {
    /* plus petit mais visible */
    width: clamp(65px, 48vw, 100px) !important;
    max-width: 120px;
    height: auto;
    /* Si tu veux forcer une hauteur fixe :
       height: 70px; object-fit: contain; */
  }

  .partner-logo:hover,
  .partner-logo:focus {
    transform: scale(1.04);
  }
}

/* Variante pour les logos "wide" si tu veux qu'ils restent un peu plus larges */
.partner-logo--wide {
  width: clamp(85px, 36vw, 150px);
}

/* <= 420px */
@media (max-width: 420px) {
  .partners-rail {
    gap: 1rem;
  }

  .partner-logo,
  .partner-logo--wide {
    /* on réduit encore légèrement */
    width: clamp(60px, 60vw, 90px) !important;
  }
}


/* Option: animation continue (décommente si tu veux un défilement auto)
.partners-rail {
  animation: partnersScroll 28s linear infinite;
}
@keyframes partnersScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
*/

/*particles*/

#particles-js,
#dronesCanvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0; /* Ajuste : 0 = derrière tout, >0 si besoin */
}

/* Option : un léger voile pour futurisme (désactive si trop) */
.flag-glow-overlay {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg,#0055A430 0%,#ffffff26 50%,#EF413530 100%);
  mix-blend-mode: overlay;
  z-index: 1;
}

/* Pour que ton header / contenu passe au-dessus */
.invest-header,
main,
footer {
  position: relative;
  z-index: 2;
}

body > *:not(#particles-js):not(#dronesCanvas) {
  position: relative;
  z-index: 3;
}





/* ====== PATCH iOS GLOBAL ====== */

/* Police rendue plus nette sur iOS */
html {
  -webkit-font-smoothing: antialiased;
  text-size-adjust: 100%;
}

/* Unités dynamiques de viewport */
:root {
  --vh: 100dvh;
}
@supports not (height: 100dvh) {
  :root { --vh: 100vh; } /* fallback, JS remplacera ensuite */
}

/* Remplace tes sections pleine hauteur : */
.invest-header,
#particles-js,
#dronesCanvas {
  min-height: var(--vh);
}

/* Safe area (notamment iPhone avec Dynamic Island) */
body {
  padding-top: env(safe-area-inset-top, 0);
  padding-bottom: env(safe-area-inset-bottom, 0);
}

/* Empêcher le “jump” lors de l'apparition de la barre d’adresse */
body, .invest-header {
  overscroll-behavior-y: none;
}

/* Carrousels 3D – corrections WebKit */
.ulx-track, .ulx-face, .sf-carousel, .sf-cell, .carousel3d, .carousel-item {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform-style: preserve-3d;
  will-change: transform;
}

.ulx-face img,
.sf-cell img,
.carousel-item img {
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
}

/* Réduction effets lourds sur mobile iOS */
@supports (-webkit-touch-callout: none) {
  @media (max-width: 820px) {
    .invest-reason,
    .phantom-slide,
    .circle,
    .partner-logo {
      box-shadow: 0 0 12px rgba(0,0,0,0.5);
    }
    .invest-header .overlay {
      background: rgba(0,0,0,0.55);
    }
    /* Particules & drones un peu moins visibles */
    #particles-js { opacity: .75; }
    #dronesCanvas { opacity: .85; }
  }
}

/* Limiter blur filtre (si tu utilises backdrop-filter ailleurs) */
@media (max-width: 820px) {
  [style*="backdrop-filter"],
  .ulx-nav,
  .phantom-rot-btn {
    backdrop-filter: none !important;
  }
}

/* Préférences utilisateur – réduire animations */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

/* Fix du bouton scrollTop sur iOS (zone clic) */
#scrollTopBtn {
  -webkit-tap-highlight-color: transparent;
}

/* Désactiver sélection / zoom intempestif sur éléments interactifs */
button, a {
  -webkit-user-select: none;
  touch-action: manipulation;
}

/* Plein écran image – assurer centrage sans “drift” iOS */
#fullscreen {
  -webkit-overflow-scrolling: touch;
}

/* Éviter scroll horizontal fantôme */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

/* Atténuer transitions transform en chaîne (smoother) */
.ulx-face,
.sf-cell,
.carousel-item {
  transition: transform .8s cubic-bezier(.22,.8,.25,1), filter .5s;
}

/* Si halo vidéo trop lumineux sur iPhone, ajuster: */
@media (max-width: 820px) {
  #video_1 {
    filter: brightness(1.1) contrast(1.08) saturate(1.05);
  }
}

/* Circles – empêcher aliasing du stroke (force layer) */
.progress-ring__circle,
.progress-ring__circle--bg {
  shape-rendering: geometricPrecision;
  vector-effect: non-scaling-stroke;
  transform: translateZ(0);
}



/* ====== BOUTON SON COMPACT & 100% RESPONSIVE ====== */

.sound-toggle-wrapper {
  position: absolute;
  top: clamp(4px, 1vw, 8px);         /* bien haut sans coller au bord */
  right: clamp(6px, 2vw, 12px);      /* marge dynamique à droite */
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  -webkit-user-select: none;
  user-select: none;
}

#sound-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(30px, 6vw, 38px);     /* taille fluide adaptée */
  height: clamp(30px, 6vw, 38px);
  font-size: clamp(1rem, 3vw, 1.4rem); /* symbole 🔊 bien visible */
  border-radius: 50%;
  padding: 0;
  background: rgba(255, 255, 255, 0.15);
  color: #ffffff;
  border: none;
  cursor: pointer;
  line-height: 1;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px); /* iOS Safari */
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  transition: background 0.3s ease, transform 0.2s ease;
  
  /* Compatibilité mobile */
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  user-select: none;
}

#sound-toggle:hover {
  background: rgba(255, 255, 255, 0.3);
}

#sound-toggle:active {
  transform: scale(0.92);
}



/*carousel 2d blr 15*/


.gal-blr-section {
  width: 100%;
  max-width: 1280px;
  margin: 60px auto;
  padding: 0 20px;
  text-align: center;
}

.gal-blr-title {
  font-size: clamp(1.6rem, 4vw, 2.5rem);
  color: white;
  margin-bottom: 1.5rem;
  font-family: 'Orbitron', sans-serif;
  text-shadow: 2px 2px 10px rgba(0,0,0,0.7);
}

.gal-blr-wrapper {
  position: relative;
  overflow: hidden;
}

.gal-blr-track {
  display: flex;
  transition: transform 0.4s ease;
  gap: 12px;
  padding: 0;
  margin: 0;
}

.gal-blr-track li {
  flex: 0 0 100%;
  list-style: none;
}

.gal-blr-track img {
  width: 100%;
  height: auto;
  max-height: 80vh;
  object-fit: cover;
  border-radius: 12px;
  cursor: zoom-in;
}

.gal-blr-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  background: rgba(0, 0, 0, 0.6);
  color: white;
  border: none;
  font-size: 2rem;
  padding: 0.6rem 1rem;
  cursor: pointer;
  border-radius: 8px;
  backdrop-filter: blur(4px);
}

.gal-blr-prev { left: 10px; }
.gal-blr-next { right: 10px; }

@media (min-width: 768px) {
  .gal-blr-track li { flex: 0 0 50%; }
}

@media (min-width: 1024px) {
  .gal-blr-track li { flex: 0 0 33.33%; }
}

/* Mode plein écran */
.gal-blr-fullscreen {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  justify-content: center;
  align-items: center;
  background: rgba(0, 0, 0, 0.96);
  z-index: 9999;
}

.gal-blr-fullscreen img {
  max-width: 95vw;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.25);
}

#gal-blr-close {
  position: absolute;
  top: 20px;
  right: 25px;
  font-size: 2rem;
  color: white;
  background: none;
  border: none;
  cursor: pointer;
}


/**/

.gal-blr-full-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 3rem;
  background: none;
  color: white;
  border: none;
  cursor: pointer;
  z-index: 10000;
  padding: 0 1rem;
}

#gal-blr-full-prev {
  left: 10px;
}

#gal-blr-full-next {
  right: 10px;
}


/*scrolltop galerie*/



/*nouvelle section carousel 2d*/


.gal-large-section {
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
  }
  .gal-large-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
  }
  .gal-large-slide {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    opacity: 0;
    transition: opacity 1s ease;
  }
  .gal-large-slide.active {
    opacity: 1;
  }
  .gal-large-slide img {
    width: 100%; height: 100%;
    object-fit: cover;
  }
  .gal-large-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0,0,0,0.5);
    color: #fff;
    border: none;
    font-size: 2.5rem;
    padding: 0.5rem;
    cursor: pointer;
    z-index: 20; /* au-dessus de tout */
  }
  /*.gal-large-prev { left: 0rem; }
  .gal-large-next { right: 1rem; }*/

.gal-large-prev {
  position: absolute;
  left: 1vw;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  cursor: pointer;
}

.gal-large-next {
  position: absolute;
  right: 1.85vw;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  cursor: pointer;
}


@media (max-width: 768px) {

   .gal-large-prev {
  position: absolute;
  left: 1vw;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  cursor: pointer;
}

.gal-large-next {
  position: absolute;
  right: 1vw !important;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  cursor: pointer;
}


}


  .gal-large-controls {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 0.75rem;
    z-index: 20;
  }
  .gal-large-dot {
    width: 12px; height: 12px;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
    border: none;
    cursor: pointer;
  }
  .gal-large-dot.active {
    background: rgba(255,255,255,1);
  }
  @media (orientation: portrait) {
    .gal-large-section { height: 60vh; }
  }
