html.lenis,
  html.lenis body {
    height: auto;
  }
  
  .lenis.lenis-smooth {
    scroll-behavior: auto !important;
  }
  
  .lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
  }
   
  .lenis.lenis-stopped {
    overflow: clip;
  }
  
  .lenis.lenis-smooth iframe {
    pointer-events: none;
  }

  html, body{
    overflow-x: hidden !important;
  }

.split-title {
  margin: 0;
  color:white !important;
  line-height: 1.5;
}
.title-black{
    color:black !important; 
}
.title-white{
    color:white !important;
}
.title-yellow{
    color:#f8ec31 !important;
}

.split-title__a {
  font-size: var(--e-global-typography-1922f40-font-size);
  line-height: var(--e-global-typography-1922f40-line-height);
  letter-spacing: var(--e-global-typography-1922f40-letter-spacing);
  font-family: var(--e-global-typography-1922f40-font-family), Sans-serif;
  font-style: var(--e-global-typography-1922f40-font-style);
  font-weight: var(--e-global-typography-1922f40-font-weight);
}

.split-title__b {
  font-size: var(--e-global-typography-615cabe-font-size);
  line-height: var(--e-global-typography-615cabe-line-height);
  letter-spacing: var(--e-global-typography-615cabe-letter-spacing);
  font-family: var(--e-global-typography-615cabe-font-family), Sans-serif;
  font-weight: var(--e-global-typography-615cabe-font-weight);
  text-transform: var(--e-global-typography-615cabe-text-transform);
}

/*--------IMG--------*/
.img-anim-wrap{
  position: relative;
  display: inline-block;      
  overflow: hidden;
}

.img-anim-wrap > img{
  display: block;
  width: 100%;
  height: auto;
  will-change: transform, opacity;
}

/* volets de r�v�lation */
.reveal-pane{
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background: transparent; 
  pointer-events: none;
}
.reveal-pane.left  { left: 0; }
.reveal-pane.right { right: 0; }

/* option: sur fond sombre */
.dark .reveal-pane{ background: var(--reveal-bg-dark, #111); }


/* --- SVG HERO POSITIONING --- */

.svg-hero-wrapper {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important; 
  pointer-events: none;
  overflow: hidden !important;
}

.svg-hero {
  position: absolute !important;
  width: 400px !important;
  max-width: 40vw; /* Pour les mobiles */
}

/* Bas Gauche */
.svg-hero.bottom-left {
  bottom: 0 !important;
  left: 0 !important;
  top: auto !important;
  right: auto !important;
}

/* Haut Droite */
.svg-hero.top-right {
  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: auto !important;
  transform: rotate(180deg) !important; /* Rotation CSS classique, sans conflit */
}


/*----------Else-----------*/

.img-eim{
    padding-bottom:1rem;
}
.img-eim img{
        height:300px;
}

.vergessen-container {
  position: relative;
  z-index: 0;
}

.vergessen-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, white 0%, rgba(255, 255, 255, 0) 50%, white 100%);
  pointer-events: none;
  z-index: 1;
}

/* masque le d�bordement des lignes pour text-anim */
.line-mask {
  display: block;
  overflow: hidden;
}


/*******Solution Display*****/
.solution-notice {
    padding: 0rem 0rem 0rem 0rem;
    font-family: var( --e-global-typography-8f00686-font-family ), Sans-serif;
    font-size: var( --e-global-typography-8f00686-font-size );
    font-weight: var( --e-global-typography-8f00686-font-weight );
    letter-spacing: var( --e-global-typography-8f00686-letter-spacing );
    color: var( --e-global-color-7c7e400 );
}

.btn-solution{
        border-radius:0;
        background-color: var( --e-global-color-5e0e956 );
        fill: var( --e-global-color-25b976b );
        color: var( --e-global-color-25b976b );
        border-radius: 0px 0px 0px 0px;
        border:none;
        padding: 1rem 3rem 1rem 3rem;
        font-family: var( --e-global-typography-accent-font-family ), Sans-serif;
        font-size: var( --e-global-typography-accent-font-size );
        font-weight: var( --e-global-typography-accent-font-weight );
        text-transform: var( --e-global-typography-accent-text-transform );
        line-height: var( --e-global-typography-accent-line-height );
        letter-spacing: var( --e-global-typography-accent-letter-spacing );
    }

    /* Le conteneur en Grid : les cartes gardent la largeur d'une colonne,
       même seules sur leur ligne (pas d'étirement en pleine largeur). */
    .bloc-container-custom {
      display: grid;
      grid-template-columns: repeat(5, 1fr); /* 5 colonnes */
      align-items: stretch;
      gap: 1.5rem; /* espace régulier : plus de superposition */
      overflow: visible;
      width: 100%;
      margin: 0 auto;
    }

    .bloc-train {
      min-height: 400px;
      padding: 1.5rem;
      box-sizing: border-box;
      position: relative;
      cursor: pointer;
      color: #ffffff;
      border: 2px solid black;
      border-radius: 0;
      overflow: hidden;          /* pour le reflet */
      isolation: isolate;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      transition: transform .45s cubic-bezier(.22,1,.36,1);
      /* Apparition au chargement */
      opacity: 0;
      transform: translateY(26px);
      animation: cardIn .7s cubic-bezier(.22,1,.36,1) forwards;
    }

    /* Reflet diagonal qui balaie la carte au survol */
    .bloc-train::after {
      content: "";
      position: absolute;
      top: 0;
      left: -120%;
      width: 75%;
      height: 100%;
      z-index: 1;
      pointer-events: none;
      background: linear-gradient(100deg, transparent, rgba(255,255,255,.25), transparent);
      transform: skewX(-18deg);
      transition: left .8s ease;
    }
    .card-yellow::after { /* reflet plus discret sur fond clair */
      background: linear-gradient(100deg, transparent, rgba(0,0,0,.08), transparent);
    }

    .bloc-train:hover,
    .bloc-train:focus-within {
      transform: translateY(-16px) scale(1.04);
    }
    .bloc-train:hover::after,
    .bloc-train:focus-within::after { left: 150%; }

    /* Le contenu accompagne le mouvement */
    .card-title { transition: transform .45s cubic-bezier(.22,1,.36,1); }
    .bloc-train:hover .card-title,
    .bloc-train:focus-within .card-title { transform: translateY(-5px); }

    /* Le contenu reste au-dessus du reflet */
    .card-title, .card-bottom { position: relative; z-index: 2; }

    /* Apparition décalée (effet cascade) */
    .bloc-train:nth-child(1){ animation-delay:.05s; }
    .bloc-train:nth-child(2){ animation-delay:.15s; }
    .bloc-train:nth-child(3){ animation-delay:.25s; }
    .bloc-train:nth-child(4){ animation-delay:.35s; }
    .bloc-train:nth-child(5){ animation-delay:.45s; }

    @keyframes cardIn {
      to { opacity: 1; transform: translateY(0); }
    }

    /* Accessibilité : on respecte « mouvement réduit » */
    @media (prefers-reduced-motion: reduce) {
      .bloc-train { animation: none; opacity: 1; transform: none; transition: none; }
      .bloc-train::after { display: none; }
    }
    
    /* Bas de carte */
    .card-bottom {
      display: flex;
      flex-direction: column;
      width: 100%;
    }
    
    /* Divider */
    .card-divider {
      border: 0;
      height: 2px !important;
      background-color: white !important;
      margin: 0 0 1rem 0 !important;
      width: 100%;
    }
    
    /* Couleurs */
    .card-teal   { background-color: #00A69D; }
    .card-purple { background-color: #6A3B9A; }
    .card-blue   { background-color: #00ADEE; }
    .card-yellow { background-color: #F8EC31; color: #000000; }
    .card-red    { background-color: #C1272D; }
    
    .card-yellow .card-divider {
      background-color: black !important;
    }
    
    /* Typo */
    .card-title {
      font-size: clamp(1.15rem, 0.8vw + 0.75rem, 1.6rem); /* un peu plus gros, sans couper les titres */
      line-height: 1.15;
      letter-spacing: var(--e-global-typography-a0d7db0-letter-spacing);
      font-weight: var(--e-global-typography-a0d7db0-font-weight);
      font-family: var(--e-global-typography-a0d7db0-font-family), Sans-serif;
      text-transform: uppercase;
    
      overflow-wrap: break-word;
      word-break: break-word;
      hyphens: auto;
    }
    
    .card-text {
      font-size: var(--e-global-typography-text-font-size);
      line-height: var(--e-global-typography-text-line-height);
      letter-spacing: var(--e-global-typography-text-letter-spacing);
      font-family: var(--e-global-typography-text-font-family), Sans-serif;
      font-weight: var(--e-global-typography-text-font-weight);
    }
    
    /* ===== RESPONSIVE ===== */
    /* On réduit le nombre de colonnes progressivement : 5 → 4 → 3 → 2 → 1.
       Les colonnes restantes gardent la même largeur (1fr). */
    @media (max-width: 1500px) {
      .bloc-container-custom { grid-template-columns: repeat(4, 1fr); }
    }
    @media (max-width: 1200px) {
      .bloc-container-custom { grid-template-columns: repeat(3, 1fr); }
    }
    @media (max-width: 900px) {
      .bloc-container-custom { grid-template-columns: repeat(2, 1fr); }
      .bloc-train { min-height: 340px; }
    }
    @media (max-width: 600px) {
      .bloc-container-custom { grid-template-columns: 1fr; gap: 0.75rem; }
      .bloc-train { min-height: auto; }
      .card-title br { display: none; }
    }


.scroll-svg-wrapper {
  position: absolute;
  top: 100%; 
  left: 36%;
  transform: translateX(-50%); 
  height: 75vh; 
  width: auto;
  margin-top: -45px;
  z-index: 1;
}

.scroll-reveal-svg {
  height: 100%;
  width: auto;
  display: block;
  overflow: visible; /* Permet aux formes de rebondir sans être coupées */
}

.svg-hero path,
.svg-hero rect {
    visibility: hidden; /* Cache les éléments dès le chargement du HTML */
    opacity: 0;
}


.box-kurse {
  position: sticky !important;
  top: 15vh; 
  transform-origin: center center; 
  will-change: transform, opacity; 
  height: 60vh !important;
}

/* Sécurité : on s'assure que Elementor ne bloque pas le comportement sticky */
.elementor-section-wrap, 
.elementor-widget-wrap {
  overflow: visible !important;
}


.elementor-button-content-wrapper {
  position: relative;
  z-index: 1;
}

@media (max-width:1024px){
  .box-kurse {
    top: 23vh; /* La hauteur à laquelle la boîte se bloque. Ajuste selon tes préférences */
    height: 400px !important;
  }
}

@media (max-width:768px){

}

.responsive-container {
  width: 100%;
  margin: 0 auto;
}

/* >1900px */
@media (min-width: 1900px) {
  .responsive-container {
    max-width: 1800px;
  }
}

/* >1024px */
@media (min-width: 1024px) and (max-width: 1899px) {
  .responsive-container {
    max-width: 1450px;
  }
} 

/* ── Post title: single line with ellipsis ── */
.pp-post-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
 
/* ── Post thumbnail ── */
.pp-post-thumbnail img {
  height: 400px !important;
  object-fit: cover;
  border: 1px solid black !important;
}

@media (max-width: 1024px) {
  .pp-post-thumbnail img {
    height: 300px !important;
  }
}

@media (max-width: 600px) {
  .pp-post-thumbnail img {
    height: 220px !important;
  }
}

/* ── Member grid: hide photo btn, full-width document btn ── */
.member-grid .btn-photo {
  display: none !important;
}
.member-grid .btn-document {
  width: 100% !important;
}

.logout-btn {
  background: #fff !important;
  color: #000 !important;
  border: 2px solid #000 !important;
  border-radius: 100px !important;
}

.logout-btn .elementor-button-text {
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

.logout-btn:hover {
  background: #000 !important;
  color: #fff !important;
}