/* --- MOSAIQUE --- */
.mosaique-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.mosaique-row {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: 20px;
  margin: 0;
  padding: 0;
}

.mosaique-row .vignette-item {
  flex: 1 1 calc(25% - 20px);
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

/* Responsive tablette */
@media (max-width: 991px) {
  .mosaique-row .vignette-item {
    flex: 1 1 calc(50% - 20px);
  }
}
/* Responsive mobile */
@media (max-width: 576px) {
  .mosaique-row .vignette-item {
    flex: 1 1 100%;
  }
}

/* --- IMAGES --- */
.vignette-item .et_pb_image_wrap img,
.vignette-item-alt .et_pb_image_wrap img,
.group-item .et_pb_image_wrap img,
.solutions-item .et_pb_image_wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter 0.4s ease-in-out, transform 0.6s ease-in-out;
}

.vignette-item:hover .et_pb_image_wrap img,
.vignette-item-alt:hover .et_pb_image_wrap img,
.group-item:hover .et_pb_image_wrap img,
.solutions-item:hover .et_pb_image_wrap img {
  filter: blur(10px);
  transform: scale(1.1);
}

/* --- OVERLAY (titre + bouton) --- */
.vignette-overlay,
.vignette-alt-overlay,
.group-overlay,
.solutions-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
  width: 90%;
  color: #fff;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.vignette-item:hover .vignette-overlay,
.vignette-item-alt:hover .vignette-alt-overlay,
.group-item:hover .group-overlay,
.solutions-item:hover .solutions-overlay {
  opacity: 1;
}

.vignette-overlay-text,
.vignette-alt-title,
.group-title,
.solutions-title {
  font-size: 22px;
  font-weight: 700;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 15px;
}

.vignette-alt-desc,
.group-desc,
.solutions-desc {
  margin-bottom: 20px;
}

/* --- BOUTON SEE MORE --- */
.vignette-overlay .see-more-link,
.vignette-alt-overlay .see-more-link,
.group-overlay .see-more-link,
.solutions-overlay .see-more-link {
  color: #FFFFFF !important;
  border-radius: 60px;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  background-color: rgba(255, 255, 255, 0.12);
  padding: 1px 15px !important;
  font-size: 12px;
  line-height: 1.7em !important;
  border: 2px solid #FFFFFF;
  display: inline-block;
  text-decoration: none !important;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
  margin-top: 0;
}

/* Hover bouton */
.vignette-overlay .see-more-link:hover,
.vignette-alt-overlay .see-more-link:hover,
.group-overlay .see-more-link:hover,
.solutions-overlay .see-more-link:hover {
  background-color: #f28705 !important;
  border-color: #f28705 !important;
}

/* --- LIEN SUR TOUTE LA VIGNETTE --- */
.vignette-full-link,
.group-full-link,
.solutions-full-link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 4; /* en dessous de l'overlay */
  text-decoration: none;
}

/* --- BOUTON LOAD MORE --- */
.mosaique-loadmore-wrapper {
  text-align: center;
  margin-top: 30px;
	margin-left: auto;
  margin-right: auto;
}

.mosaique-loadmore {
    position: relative; 
    display: inline-block;
    overflow: hidden;
    color: #FFFFFF !important;
    border-radius: 60px;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    background-color: rgba(255,255,255,0.12);
    padding: 1px 15px 1px 15px !important; /* Augmenté légèrement pour l'équilibre visuel */
    font-size: 18px;
    line-height: 1.7em !important;
    border: 2px solid #FFFFFF;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
}

.mosaique-loadmore::after {
    font-family: 'ETmodules' !important;
    content: "\35"; 
    font-size: 24px;
    position: absolute;
    right: -10px;
    opacity: 0;
    transition: all 0.3s ease-in-out;
    line-height: 1em;
    top: 50%;
    transform: translateY(-50%);
}

.mosaique-loadmore:hover {
    background-color: #f28705 !important;
    border-color: #f28705 !important;
    padding-right: 45px !important;
    padding-left: 15px !important;
}

.mosaique-loadmore:hover::after {
    opacity: 1;
    right: 15px; /* La flèche glisse vers sa position visible */
}

/* --- MOSAIQUE ALT (3 colonnes) --- */
.mosaique-alt-wrapper {
  display: flex;
  flex-wrap: wrap;
}

.mosaique-alt-row {
  display: flex;
  flex-wrap: wrap;
  gap: 30px 20px;
  width: 100%;
}

.vignette-item-alt {
  flex: 1 1 calc(33.333% - 20px);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

/* Responsive tablette */
@media (max-width: 991px) {
  .vignette-item-alt {
    flex: 1 1 calc(50% - 20px);
  }
}
/* Responsive mobile */
@media (max-width: 576px) {
  .vignette-item-alt {
    flex: 1 1 100%;
  }
}

/* --- GROUP MOSAIQUE (3 colonnes fixes avec colmatage) --- */
.group-wrapper {
  display: flex;
  flex-wrap: wrap;
}

.group-row {
  display: flex;
  flex-wrap: wrap;
  gap: 30px 20px;
  width: 100%;
}

.group-item {
  flex: 0 0 calc(33.333% - 20px); /* Toujours 3 colonnes fixes */
  position: relative;
  overflow: hidden;
  cursor: pointer;
  aspect-ratio: 4/3;
  background: transparent;
}

.group-item.empty {
  pointer-events: none; /* pas cliquable */
  background: transparent; /* invisible mais garde la place */
}

/* Responsive tablette */
@media (max-width: 991px) {
  .group-item {
    flex: 0 0 calc(50% - 20px);
  }
}
/* Responsive mobile */
@media (max-width: 576px) {
  .group-item {
    flex: 0 0 100%;
  }
}

/* --- SOLUTIONS MOSAIQUE (3 colonnes fixes avec colmatage) --- */
.solutions-wrapper {
  display: flex;
  flex-wrap: wrap;
}

.solutions-row {
  display: flex;
  flex-wrap: wrap;
  gap: 30px 20px;
  width: 100%;
}

.solutions-item {
  flex: 0 0 calc(33.333% - 20px);
  position: relative;
  overflow: hidden;
  cursor: pointer;
  /*aspect-ratio: 4/3;*/
  background: transparent;
}

.solutions-item.empty {
  pointer-events: none;
  background: transparent;
}

/* Responsive tablette */
@media (max-width: 991px) {
  .solutions-item {
    flex: 0 0 calc(50% - 20px);
  }
}
/* Responsive mobile */
@media (max-width: 576px) {
  .solutions-item {
    flex: 0 0 100%;
  }
}
