body {
    background-color: rgb(255, 255, 255);
    color: #373737;
}

a {
  text-decoration: none;
}

.color-red {
  color: #f84646d5 !important;
}

.color-custom-black {
  color: #373737
}

.bg-red {
  background-color: #f84646d5;
}

.color-white {
  color: #fff;
}

.link-custom a { 
  color: #f84646d5
}

.footer-design {
  background-color: #f4f4f4;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  height: 370px;
}

footer .blockquote {
  color: #373737;
}

.float-right {
  float: right !important;
}

.com-center {
  justify-self: center;
  margin: 0 auto;
  width: fit-content;
}

.cover-image {
  object-fit: cover;
  object-position: top;
  overflow: hidden;
  max-height: 1040px;
}

.d-flow {
    display: flow;
}

/*  Paginator  */ 
.pagination .active {
  background-color: #f84646d5;
  border-color: #f84646d5;
}

.page-link {
  color: #f84646d5;
  border-color: #f84646d5;
}

.page-link:hover {
  color: #ffffff;
  background-color: #f84646d5;
}

/* Compte Client */
.download-user {
  position: absolute !important;
  top: 0;
  left: 0;
  padding: 0.85rem;
}

.download-user {
  background-color: #f84646;
}

.down-zip {
  background-color: #f84646;
    color: white;
    padding: 15px;
}

/* liste des albums/portfolio */
.grid-custom {
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 10px;
    justify-content: stretch; /* Par défaut */
    align-items: stretch;    /* Pour étirer les cellules verticalement si nécessaire */
    width: 100%;
}

.img-gallery-list {
  height: 360px;
  width: 400px;
  object-fit: cover;
}

/* Modal Image */
.modal-dialog {
    max-width: max-content !important;
  }
  
  .modal-body {
    display: flex;
  }

  .modal-content {
    background-color: transparent;
    border: none;
  }
  
  .modal-body img {
    object-fit: contain;
  }


/* Design Home */
.image-home {
  width: 100%;
}

.images-home-middle {
  transition: opacity .2s ease-out;
  color: white;
  display: flex;
  justify-content: center;
  align-items: end;
}

.images-home-middle:hover img {
  opacity: 0.8;
}

.images-home-middle:hover .design-figcaption-home {
  color: #f84646d5;
}

.images-home-middle img {
  background-color: rgba(0, 0, 0, .25);
  height: 620px;
  object-fit: cover;
}

.design-figcaption-home {
  position: absolute;
  text-align: center;
  font-weight: 600;
  line-height: 100%;
  margin-bottom: 5rem;
}

.images-home-footer {
  width: 20vh;
  height: 20vh;
  color: white;
}

.images-home-footer img {
  width: 20vh;
  height: 20vh;
  object-fit: cover;
  object-position: center;
}


/* Design témoignage */
.temoignages {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.image-container {
  position: relative; 
}

.image-container img {
  width: 100%; 
  height: 475px;
  object-fit: cover; 
}

.image-container blockquote {
  position: absolute; 
  top: 50%; 
  left: 50%;
  transform: translate(-50%, -50%); 
  width: 80%; 
  text-align: center; 
  z-index: 1;
  font-size: 5vw;
  background-color: #f8464685;
}

.image-container .blockquote-footer {
  margin-top: 20px;  
  font-size: 5vw;
}


/* Galerie */
/* Loader en overlay */
#gallery-loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.8); /* Fond semi-transparent */
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999; /* Toujours au-dessus */
}

/* Spinner animé */
.spinner {
  width: 50px;
  height: 50px;
  border: 5px solid #ccc;
  border-top-color: #333;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

#loading-overlay, #loading-spinner {
  opacity: 1;
  transition: opacity 0.5s ease;
}

.fade-out {
  opacity: 0;
}


@keyframes spin {
  from {
      transform: rotate(0deg);
  }
  to {
      transform: rotate(360deg);
  }
}

.gallery {
  display: grid; 
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); 
  gap: 10px; 
  visibility: hidden; /* Cache la galerie au chargement */
  

}

/* Lien contenant l'image */
.gallery a {
  display: block; 
  position: relative; 
  width: 100%;
  height: auto;
  overflow: hidden;
}

/* Images dans les liens */
.gallery a img {
  width: 100%;
  height: 100%;
  object-fit: cover; 
  display: block;
}

/* Lien en mode paysage */
.gallery a.landscape {
  grid-row: span 1;
  grid-column: span 2; 
}

/* Lien en mode portrait */
.gallery a.portrait {
  grid-row: span 2; 
  grid-column: span 2; 
}

/* Règles lorsque la galerie contient moins de 4 images */
.gallery.few-images {
  grid-template-columns: repeat(auto-fit, minmax(200px, 425px)); /* Largeur max 425px */
}

.gallery.few-images a.landscape {
  grid-column: span 1; /* Réduction de la largeur */
}

.gallery.few-images a.portrait {
  grid-column: span 1; /* Réduction de la largeur */
  grid-row: span 1; /* Réduction de la hauteur */
}




@media (max-width: 480px) {
  /* Galerie */
  .gallery {
    gap: 5px;
  }
}

@media (max-width: 768px) {
  /* Galerie */
  .gallery {
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 8px;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .img-gallery-list {
    width: 300px;
  }
}

@media (min-width: 769px) and (max-width: 991px) {
  /* Galerie */
  .gallery {
    grid-template-columns: repeat(auto-fit, minmax(109px, 1fr));
    gap: 8px;
  }
}

@media (min-width: 992px) and (max-width: 1399px) {
  /* Galerie */
  .gallery {
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 8px;
  }
}

@media (min-width: 768px) {
  .images-home-middle {
    width: 100%;
  }

  .images-home-middle img {
    height: 770px;
    object-fit: cover;
  }

  .image-container blockquote {
    font-size: 1rem;
  }

  .image-container .blockquote-footer {
    font-size: 1rem;
  }
}

@media (min-width: 992px) {
  .down-hover .download-user:hover {
    background-color: #eb4040;
  }

  .down-hover {
    opacity: 0.5;
  }

  .down-hover:hover {
    opacity: 1;
    background-color: #f84646d5;
  }

  .close-hover {
    opacity: 0.5;
  }

  .close-hover:hover {
    opacity: 1;
  }

  .download-user {
    background-color: #f84646;
  }

  .presentation {
    display: flex;
    align-items: center;
  }
  
  .image-home {
    width: 395px;
  }

  .images-home-middle {
    width: 320px;
  }

  .images-home-middle img {
    height: 630px;
  }
  
  /* Design témoignage */
  .carousel-w {
    width: 75%;
    margin: auto;
  }

  .image-container img {
    width: 100%; 
    object-fit: cover; 
    height: auto;
  }

  .image-container blockquote {
    font-size: 1rem;
  }

  .image-container .blockquote-footer {
    font-size: 1rem;
  }

  /* Gallerie */
  .img-gallery-list {
    height: 300px;
  }
}

@media (min-width: 1200px) { 
  .image-home {
    width: 470px;
  }
}


@media (min-width: 2380px) {
  .container {
    min-width: 62%;
  }

  /* Design témoignage */
  .carousel-w {
    width: 50%;
    margin: auto;
  }

  .images-home-middle {
    width: 26vh;
  }

  .images-home-middle img {
    height: 715px;
    object-fit: cover;
  }

  .image-home {
    width: 550px;
  }
}