
/* CODE CSS START */
.countrie3-img img {
  width: 100%;
  height: 250px;
  /* Tu peux ajuster ici selon le look */
  object-fit: cover;
  border-radius: 8px;
  /* optionnel, pour adoucir les coins */
}

.countrie3-img video {
  width: 100%;
  height: 250px;
  /* Tu peux ajuster ici selon le look */
  object-fit: cover;
  border-radius: 8px;
  /* optionnel, pour adoucir les coins */
}

.video-thumbnail {
  position: relative;
  display: block;
  max-width: 100%;
}

.video-thumbnail img,
.video-thumbnail video {
  width: 100%;
  display: block;
}

.video-play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 60px;
  color: #000000;
  opacity: 0.85;
  pointer-events: none;
  background: white;
}

.video-play-icon i {
  background: rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  padding: 10px;
}
/* CODE CSS FIN*/

/* CODE CSS START */
.carousel-item {
  position: relative;
  z-index: 1 !important;
}

.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* couleur et opacité ici */
  z-index: 2 !important;
}

.overlay {
  /* position: absolute; */
  /* top: 0; */
  /* left: 0; */
  /* width: 100%; */
  /* height: 100%; */
  /* background: rgba(0, 0, 0, 0.5); */
  z-index: 2 !important;
}

.overlay {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  /* z-index: -1; */
  background: #ff001f;
  background: linear-gradient(90deg, rgb(96 43 49 / 90%) 0%, rgb(113 20 30 / 63%) 50%, rgb(243 113 137 / 21%) 100%);
}

.carousel-item .container {
  position: relative;
  z-index: 3 !important;
  /* Le contenu passe au-dessus de l'overlay */
}


.bg-video-wrap {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100px !important;
  margin-top: 70px !important;
}

.hero-area7 {
  overflow: hidden;
  min-height: 700px;
  display: flex;
  align-items: center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
  height: 100% !important;
}

.carousel-item {
  position: relative;
  z-index: 1 !important;
  height: 100%;
  width: 100%;
}

@media (min-width: 768px) and (max-width : 1000px) {
  .mtablette {
    margin-top: 20rem !important;
  }
}
/* CODE CSS FIN*/

/* CODE CSS START */

.btn-puzzle-group {
  display: flex;
  justify-content: center;
  flex-wrap: nowrap;
  /* ✅ jamais de retour à la ligne */
  gap: 0;
  overflow-x: hidden;
  /* ou auto si tu veux un scroll */
}

.btn-puzzle {
  background-color: white;
  color: #dc3545;
  padding: 6px 16px;
  border: 2px solid #dc3545;
  font-weight: 500;
  border-radius: 40px;
  position: relative;
  z-index: 1;
  margin-left: -12px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;

  flex: 1 0 120px;
  /* ✅ shrink=0 empêche de trop se réduire */
  min-width: 80px;
  max-width: 160px;
  min-width: 0;
  /* pour éviter que le texte force */

  transition:
    flex-basis 0.5s ease,
    max-width 0.5s ease,
    background-color 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease;
}

.btn-puzzle:first-child {
  margin-left: 0;
}

.btn-puzzle:hover,
.btn-puzzle.active {
  background-color: #dc3545;
  color: white;
  border-color: #a71d2a;
  z-index: 10;
  flex: 2 0 220px;
  /* shrink=0 ici aussi */
  max-width: 300px;
  overflow: hidden;
  white-space: nowrap;
}

.btn-puzzle:hover span,
.btn-puzzle.active span {
  color: #fff;
}

/* ===== Responsive ===== */

/* Masque le texte et garde que l'icône sur petit écran */
@media (max-width: 768px) {
  .btn-puzzle span {
    display: none;
  }

  .btn-puzzle {
    flex: 0 0 auto;
    /* largeur fixe en mobile */
    min-width: 80px;
    max-width: 80px;
    padding: 8px;
    justify-content: center;
  }

  .btn-puzzle:hover,
  .btn-puzzle.active {
    flex: 0 0 auto;
    /* pas d'agrandissement en mobile */
    max-width: 50px;
  }
}
/* CODE CSS FIN*/

/* CODE CSS START */
/* Ajoute ceci ou copie dans ton fichier .css */
.video-section {
  position: relative;
  height: 80vh;
  background-color: #0b1a33;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: transform 1s ease, opacity 1s ease;
  transform: scale(1);
  opacity: 0.85;
  z-index: 1;
}

.video-section.zoom {
  transform: scale(1.3);
  opacity: 1;
  z-index: 5;
  box-shadow: 0 0 60px rgba(0, 0, 0, 0.7);
}

.video-wrapper {
  width: 85%;
  max-width: 900px;
  position: relative;
  transition: transform 1s ease;
}

.video-wrapper video {
  width: 100%;
  border-radius: 14px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}

.play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 14px 28px;
  background: #e63946;
  color: #fff;
  border: none;
  border-radius: 50px;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
  transition: background 0.3s ease, transform 0.2s ease;
  z-index: 10;
}

.play-btn:hover {
  background: #c62828;
  transform: translate(-50%, -50%) scale(1.05);
}

.dimmed {
  opacity: 0.3;
  filter: blur(2px);
  transition: opacity 0.6s ease, filter 0.6s ease;
}

@media (max-width: 600px) {
  .video-section.zoom {
    transform: scale(1.1);
  }

  .play-btn {
    font-size: 16px;
    padding: 12px 20px;
  }

  .dimmed {
    opacity: 0.4;
    filter: none;
  }
}
/* CODE CSS FIN*/

/* CODE CSS START */
/* youtube */
.yt-video-section {
  position: relative;
  height: 80vh;
  background-color: #0b1a33;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: transform 1s ease, opacity 1s ease;
  transform: scale(1);
  opacity: 0.85;
  z-index: 1;
}

.yt-video-section.zoom {
  transform: scale(1.3);
  opacity: 1;
  z-index: 5;
  box-shadow: 0 0 60px rgba(0, 0, 0, 0.7);
}

.yt-video-wrapper {
  width: 85%;
  max-width: 900px;
  position: relative;
  aspect-ratio: 16 / 9;
  transition: transform 1s ease;
}

.yt-play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 14px 28px;
  background: #e63946;
  color: #fff;
  border: none;
  border-radius: 50px;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
  transition: background 0.3s ease, transform 0.2s ease;
  z-index: 10;
}

.yt-play-btn:hover {
  background: #c62828;
  transform: translate(-50%, -50%) scale(1.05);
}

.dimmed {
  opacity: 0.3;
  filter: blur(2px);
  transition: opacity 0.6s ease, filter 0.6s ease;
}

@media (max-width: 600px) {
  .yt-video-section.zoom {
    transform: scale(1.1);
  }

  .yt-play-btn {
    font-size: 16px;
    padding: 12px 20px;
  }

  .dimmed {
    opacity: 0.4;
    filter: none;
  }
}
/* CODE CSS FIN*/

/* CODE CSS START */
.service4-box {
  min-height: 700px;
}
/* CODE CSS FIN*/