/* ===============================
SECTION 2 COLONNES
=============================== */

.section-2colonnes .cols2{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 60px;
  align-items: center;
}

/* Inversion colonnes */
.section-2colonnes .cols2.-reverse > :first-child{
  grid-column: 2;
  grid-row: 1;
}

.section-2colonnes .cols2.-reverse > :last-child{
  grid-column: 1;
  grid-row: 1;
}

/* Aucun média : texte garde 50% */
.section-2colonnes .cols2.no-media{
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.section-2colonnes .cols2.no-media .txt{
  grid-column: 1 / 2;
  max-width: 100%;
}


/* ===============================
COLONNE IMAGE
=============================== */

.section-2colonnes .w-img{
  width: 100%;
  min-width: 0;
  margin: 0;
  position: relative;
  left: auto;
  right: auto;
  transform: none;
}

.section-2colonnes .w-img.-left,
.section-2colonnes .w-img.-right,
.section-2colonnes .cols2.-reverse .w-img{
  position: relative;
  left: auto;
  right: auto;
  transform: none;
}

.section-2colonnes .w-img img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 24px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}


/* ===============================
COLONNE TEXTE
=============================== */

.section-2colonnes .txt{
  min-width: 0;
  max-width: 100%;
}

.section-2colonnes .txt h2{
  margin-bottom: 20px;
}

.section-2colonnes .txt .text{
  margin-bottom: 30px;
  font-weight: 400;
}


/* ===============================
SLIDER WRAPPER
=============================== */

.section-2colonnes .slider-w-img{
  width: 100%;
  min-width: 0;
}

.section-2colonnes .slider-w-img img{
  width: 100%;
  height: auto;
}


/* ===============================
SLIDER HORIZONTAL EXISTANT
=============================== */

.slider-vid,
.slider-img{
  position: relative;
  width: 100%;
  --gap: 15px;
}

.slider-vid .scroll,
.slider-img .scroll{
  display: flex;
  flex-wrap: nowrap;
  gap: 0 var(--gap);
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.slider-vid .scroll::-webkit-scrollbar,
.slider-img .scroll::-webkit-scrollbar{
  display: none;
}

.slider-vid .scroll > div,
.slider-img .scroll > div{
  flex: 0 0 100%;
  min-width: 0;
  align-self: center;
}

.slider-vid picture,
.slider-img picture{
  display: block;
}

.slider-vid img,
.slider-img img{
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 20px;
}


/* ===============================
BOUTONS PREV / NEXT
=============================== */

.slider-vid .bts button,
.slider-img .bts button{
  position: absolute;
  top: 50%;
  z-index: 10;
  padding: 24px;
  transform: translateY(-50%);
  border-radius: 50px;
  border: 0;
  background-color: var(--color-accent);
}

.slider-vid .bts button::before,
.slider-img .bts button::before{
  display: none;
}

.slider-vid .prev,
.slider-img .prev{
  left: 15px;
  border-radius: 50px;
}

.slider-vid .prev::after,
.slider-img .prev::after{
  transform: rotate(180deg);
}

.slider-vid .next,
.slider-img .next{
  right: 15px;
  border-radius: 50px;
}

.slider-vid .bts button:hover,
.slider-img .bts button:hover{
  background-color: var(--color-accent-light);
}


/* ===============================
DOTS
=============================== */

.h-scroll-nav{
  display: flex;
  justify-content: center;
  margin-top: 1rem;
}

.h-scroll-nav span{
  display: block;
  width: 8px;
  height: 8px;
  margin: 0 3px;
  border-radius: 50%;
  background-color: #999;
}

.h-scroll-nav .selected{
  background-color: #666;
}


/* ===============================
GRILLE IMAGE
=============================== */

.section-2colonnes .grid-w-img{
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.section-2colonnes .img-grid{
  width: 100%;
}

.section-2colonnes .img-grid__item{
  margin: 0;
  overflow: hidden;
  border-radius: 24px;
  background: transparent;
}

.section-2colonnes .img-grid__item picture{
  display: block;
  width: 100%;
  height: 100%;
}

.section-2colonnes .img-grid__item img{
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  border-radius: 24px;
}


/* ===============================
GRILLE - 1 IMAGE
=============================== */

.section-2colonnes .img-grid-1{
  display: block;
}

.section-2colonnes .img-grid-1 .img-grid__item{
  aspect-ratio: 1 / 1;
}


/* ===============================
GRILLE - 2 IMAGES
Version pleine largeur, plus haute, égale et sans décalage
=============================== */

.section-2colonnes .img-grid-2{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.section-2colonnes .img-grid-2 .img-grid__item{
  aspect-ratio: 1 / 1.18;
}

.section-2colonnes .img-grid-2 .img-grid__item:nth-child(2){
  margin-top: 0;
}


/* ===============================
GRILLE - 3 IMAGES
=============================== */

.section-2colonnes .img-grid-3{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

.section-2colonnes .img-grid-3 .img-grid__item:nth-child(1){
  aspect-ratio: 1 / 1.35;
  grid-row: span 2;
}

.section-2colonnes .img-grid-3 .img-grid__item:nth-child(2){
  aspect-ratio: 1 / 1;
}

.section-2colonnes .img-grid-3 .img-grid__item:nth-child(3){
  aspect-ratio: 1 / 1;
}


/* ===============================
GRILLE - 4 IMAGES
Effet maquette : petite/grande + grande/petite
=============================== */

.section-2colonnes .img-grid-4{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

/* Image 1 : haut gauche, petite */
.section-2colonnes .img-grid-4 .img-grid__item:nth-child(1){
  grid-column: 1;
  grid-row: 1;
  aspect-ratio: 1 / 1;
}

/* Image 2 : haut droite, grande */
.section-2colonnes .img-grid-4 .img-grid__item:nth-child(2){
  grid-column: 2;
  grid-row: 1 / span 2;
  aspect-ratio: 1 / 1.35;
}

/* Image 3 : bas gauche, grande */
.section-2colonnes .img-grid-4 .img-grid__item:nth-child(3){
  grid-column: 1;
  grid-row: 2 / span 2;
  aspect-ratio: 1 / 1.35;
  margin-top: 18px;
}

/* Image 4 : bas droite, petite */
.section-2colonnes .img-grid-4 .img-grid__item:nth-child(4){
  grid-column: 2;
  grid-row: 3;
  aspect-ratio: 1 / 1;
  margin-top: 18px;
}


/* ===============================
VIDEO CARD
=============================== */

.video-trigger{
  display: block;
  width: 100%;
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
  text-align: inherit;
}

.video-card{
  position: relative;
  margin: 0;
}

.video-card::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 20px;
  background: rgba(0, 0, 0, 0.18);
  pointer-events: none;
}

.video-play{
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  width: 72px;
  height: 72px;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.video-play svg{
  display: block;
  width: 100%;
  height: 100%;
}

.video-play circle{
  fill: rgba(0, 0, 0, 0.72);
}

.video-play polygon{
  fill: #fff;
}

.video-trigger:hover .video-play circle{
  fill: var(--color-accent);
}


/* ===============================
VIDEO MODAL
=============================== */

.video-modal{
  width: min(1000px, calc(100vw - 40px));
  max-width: 1000px;
  padding: 0;
  border: 0;
  background: transparent;
}

.video-modal::backdrop{
  background: rgba(0, 0, 0, 0.75);
}

.video-modal .inner{
  position: relative;
  padding: 20px;
  background: #fff;
  border-radius: 16px;
}

.video-modal .overlay{
  display: none;
}

.video-modal .close{
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 5;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #000;
  color: #fff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.video-modal__content{
  width: 100%;
}

.video-embed.-ratio{
  position: relative;
  padding-top: 56.25%;
}

.video-embed.-ratio iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.video-embed video{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}


/* ===============================
MOBILE - 768PX ET MOINS
Grille transformée en slider horizontal
=============================== */

@media (max-width: 768px){
  .section-2colonnes .cols2{
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .section-2colonnes .cols2.-reverse > :first-child,
  .section-2colonnes .cols2.-reverse > :last-child{
    grid-column: auto;
    grid-row: auto;
  }

  .section-2colonnes .cols2.no-media{
    grid-template-columns: 1fr;
  }

  .section-2colonnes .cols2.no-media .txt{
    grid-column: auto;
  }

  .section-2colonnes .txt{
    max-width: 100%;
  }

  .video-play{
    width: 58px;
    height: 58px;
  }

  .section-2colonnes .grid-w-img{
    width: 100%;
    max-width: none;
    overflow: hidden;
    margin-left: 0;
    margin-right: 0;
  }

  /* La grille devient un slider horizontal */
  .section-2colonnes .img-grid,
  .section-2colonnes .img-grid-1,
  .section-2colonnes .img-grid-2,
  .section-2colonnes .img-grid-3,
  .section-2colonnes .img-grid-4{
    display: flex;
    flex-wrap: nowrap;
    gap: 14px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 2px;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  .section-2colonnes .img-grid::-webkit-scrollbar,
  .section-2colonnes .img-grid-1::-webkit-scrollbar,
  .section-2colonnes .img-grid-2::-webkit-scrollbar,
  .section-2colonnes .img-grid-3::-webkit-scrollbar,
  .section-2colonnes .img-grid-4::-webkit-scrollbar{
    display: none;
  }

  .section-2colonnes .img-grid__item,
  .section-2colonnes .img-grid-1 .img-grid__item,
  .section-2colonnes .img-grid-2 .img-grid__item,
  .section-2colonnes .img-grid-3 .img-grid__item,
  .section-2colonnes .img-grid-4 .img-grid__item,
  .section-2colonnes .img-grid-2 .img-grid__item:nth-child(2),
  .section-2colonnes .img-grid-3 .img-grid__item:nth-child(1),
  .section-2colonnes .img-grid-3 .img-grid__item:nth-child(2),
  .section-2colonnes .img-grid-3 .img-grid__item:nth-child(3),
  .section-2colonnes .img-grid-4 .img-grid__item:nth-child(1),
  .section-2colonnes .img-grid-4 .img-grid__item:nth-child(2),
  .section-2colonnes .img-grid-4 .img-grid__item:nth-child(3),
  .section-2colonnes .img-grid-4 .img-grid__item:nth-child(4){
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 3 / 2;
    scroll-snap-align: start;
    margin: 0;
    grid-column: auto;
    grid-row: auto;
  }

  .section-2colonnes .img-grid__item picture,
  .section-2colonnes .img-grid__item img{
    width: 100%;
    height: 100%;
  }

  .section-2colonnes .img-grid__item img{
    object-fit: cover;
  }
}


@media screen and (max-width: 810px){
  .slider-vid .bts,
  .slider-img .bts{
    display: none;
  }
}