body { padding: 20px; }

body.no-scroll {
    overflow: hidden;
    touch-action: none;
}


#preview {
	margin-top: 20px;
	padding: 10px;
	border: 1px solid #ddd;
}
		
.btn-action {
	width: 120px; 
	height: 120px; 
	border-radius: 50%;
	display: flex; 
	align-items: center; 
	justify-content: center;
	font-size: 16px; 
	font-weight: bold; 
	margin: 10px auto;
}
.btn-container {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
.btn-or {
	background-color: #ffd7003d;
	color: #000;
	border: 1px solid #ffd7003d;
}

.btn-yellow {
	background-color: #ffd700;
	color: #000;
	border: 1px solid #ffd700;
	transition: all 0.2s ease;
	display: inline-block;
}


/* .btn-ptp { */
	/* background-color: #886eff; */
	/* color: #fff; */
	/* border: 1px solid #886eff; */
/* } */

.btn-success-ptp {
	background-color: #846af861 ;
	color: #fff;
	border: 1px solid #846af861;
}

.section-title i {
	margin-right: 8px;
}


#progressOverlay, #installPWAOverlay, #changeFiltrePhoto, #overlayFaceRecognition, #overlayFace {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	color: white;
	font-size: 24px;
	text-align: center;
	display: none;
	z-index: 1080;
}


/* #overlayFaceRecognition { */
    /* position: fixed; */
    /* top: 0; */
    /* left: 0; */
    /* width: 100%; */
    /* height: 100%; */
    /* background: rgba(0, 0, 0, 0.8); */
    /* display: none; */
    /* align-items: center; */
    /* justify-content: center; */
    /* z-index: 1000; */
/* } */

#messageErrorContainer {
    position: fixed;
    bottom: 20px; /* 20px au-dessus du bord inférieur */
    left: 50%;
    transform: translateX(-50%); /* Centre horizontalement */
    color: white;
    padding: 10px 15px;
    border-radius: 8px;
    text-align: center;
    max-width: 90%;
    width: 100%;
    z-index: 1000;
	display: none;
}


#progressText, #checkIcon, #installPWAText, #messageRecherche {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
}

#checkIcon {
	font-size: 80px;
	color: #4CAF50;
	display: none;
}

#questionOverlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.8);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	color: white;
	font-size: 24px;
	text-align: center;
	display: none;
	padding: 20px;
}

#questionText {
	position: absolute;
	top: 30%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
}

#countdownText {
	font-size: 40px;
	font-weight: bold;
	color: #FFD700;
}

#moderationImage {
	border: 2px solid green;
  min-height: 100px;
  max-width: 100%;
}


.gallery-container {
    display: inline-flex;
    flex-wrap: wrap;
    /* gap: 10px; */
    /* justify-content: space-between; */
	justify-content: center;
}

/* Ajustement global */
.gallery-item {
	padding-bottom: 10px;
    position: relative;
    width: calc(33.33% - 10px); /* 3 images par ligne par défaut */
    max-width: 250px; /* Empêcher les images trop grandes */
    display: flex;
    align-items: center;
    justify-content: center;
	width: 100%;
    height: auto;
}

.gallery-item img {
    width: 100%;
    height: auto;
    max-height: 200px; /* Ajuste selon tes besoins */
    object-fit: cover;
}

/* Portrait : plus haut, moins large */
.gallery-item.portrait {
    width: calc(25% - 10px); /* Réduit la largeur */
    height: 250px; /* Augmente la hauteur */
}

/* Paysage : plus large, moins haut */
.gallery-item.landscape {
    width: calc(40% - 10px); /* Augmente la largeur */
    height: 200px; /* Réduit la hauteur */
}

/* Mobile : 2 images par ligne */
@media (max-width: 768px) {
    .gallery-item {
        /* width: calc(50% - 10px); /* 2 images par ligne */ */
        height: 220px;
    }
}

/* Très petit écran : 1 image par ligne */
@media (max-width: 480px) {
    .gallery-item {
        /* width: 100%; */
        height: auto; /* Taille automatique */
        /* padding: 5px;  */
    }
}
/* Très petit écran : 1 image par ligne */
/* @media (max-width: 480px) { */
    /* .gallery-item-one { */
        /* width: 100%; */
    /* } */
/* } */
/* Ajustement des images pour qu'elles remplissent bien leur conteneur */
.image-container {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.image-container img,
.image-container video {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Remplit le conteneur sans déformation */
}
.btn-anim, .btn {
	transition: all 0.5s ease !important;
	display: inline-block !important;
}

.btn-anim:hover, .btn-anim:focus, .btn:hover, .btn:focus {
	transform: scale(1.3) !important;
	box-shadow: 8px 8px 20px rgba(0, 0, 0, 0.3),
				-8px -8px 20px rgba(255, 255, 255, 0.6) !important;
	outline: unset!important;
}


.btn-anim:active, .btn:active {
	transform: scale(1.3) !important;
	box-shadow: inset 2px 2px 8px rgba(0, 0, 0, 0.4),
				inset -2px -2px 8px rgba(255, 255, 255, 0.3) !important;
	outline: unset!important;
}

.btn-anim.pressed {
	transform: scale(1.3) !important;
	box-shadow: inset 2px 2px 8px rgba(0, 0, 0, 0.4),
				inset -2px -2px 8px rgba(255, 255, 255, 0.3) !important;
	outline: unset!important;

}


/* ✅ Positionnement parfait de la checkbox */
.select-box {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 20px;
    height: 20px;
    cursor: pointer;
    z-index: 10;
    background: white;
    border: 2px solid #ccc;
    border-radius: 3px;
    appearance: none;
}

/* Style quand la checkbox est cochée */
.select-box:checked {
    background: #ffd700;
    border-color: #ffd700;
}
.img-thumbnail {
    padding: 0px!important;
    border: unset!important;
}


.btn-ptp {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 130px;
	height: 130px;
	/* background: linear-gradient(145deg, #6a5acd, #7b68ee); */
	border-radius: 50%;
	box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.2),
				-5px -5px 15px rgba(255, 255, 255, 0.5);
	font-size: 16px;
	font-weight: bold;
	color: black;
	cursor: pointer;
	transition: all 0.3s ease;
	border: none;
	outline: none;
	text-align: center;
	text-decoration: none;
	position: relative;
	overflow: hidden;
}

.btn-ptp img {
	width: 24px;
	height: 24px;
	margin-bottom: 5px;
}


/* Animation fluide au survol */
.btn-ptp:hover {
	transform: scale(1.1);
	box-shadow: 8px 8px 20px rgba(0, 0, 0, 0.3),
				-8px -8px 20px rgba(255, 255, 255, 0.6);
}

/* Effet d'enfoncement au clic */
.btn-ptp:active {
	transform: scale(0.95);
	box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.2),
				inset -5px -5px 10px rgba(255, 255, 255, 0.5);
}

.lg-custom-btn {
    background: rgba(0, 0, 0, 0.7);
    border: none;
    color: white;
    font-size: 18px;
    padding: 10px;
    margin: 5px;
    border-radius: 5px;
    cursor: pointer;
}

.lg-custom-btn:hover {
    background: rgba(255, 255, 255, 0.7);
    color: black;
}

 

.btn-icon {
	margin: 5px;
	font-size: 20px;
	border-radius: 50%;
}

.btn-filter-container {
}


.select-box-filter {
	margin: 4px 5px 0!important;
	top: 10px;
	right: 30px;
	width: 20px;
	height: 20px;
	transform: scale(1.5);
	cursor: pointer;
}        
.download-icon {
	position: absolute;
	bottom: -5px;
	right: 15px;
	color: white;
	padding: 8px;
	border-radius: 50%;
	cursor: pointer;
	transition: 0.3s;
	z-index: 10;
	font-size: 30px;
}

.download-icon:hover {
	background: rgba(0, 0, 0, 1);
}

.download-btn {
	margin-top: 20px;
	display: none;
}

.selected-count {
	font-weight: bold;
}

.like-text {
	font-size: 25px!important;
}

.trash-icon {
	font-size: 15px; /* Taille de l'icône du cœur */
	color: #ff4757; /* Couleur du cœur */
}

.heart-icon {
	font-size: 25px; /* Taille de l'icône du cœur */
	color: #ff4757; /* Couleur du cœur */
}

.like-count {
	font-size: 12px; /* Taille du texte du nombre de likes */
	color: #d7d0d0; /* Couleur plus discrète */
	margin-top: 3px; /* Espacement entre le cœur et le nombre */
}


.button-overlay {
	position: absolute;
	bottom: 0px; /* ✅ Aligné en bas */
	left: 0;
	width: 100%;
	display: flex;
	justify-content: space-between; /* ✅ Espacement max entre les boutons */
	align-items: center;
	padding: 5px 10px;
	background: rgba(0, 0, 0, 0.5); /* ✅ Fond semi-transparent pour visibilité */
}

/* ✅ Permet au conteneur de s'étirer sur toute la largeur */
.btn-group {
	width: 100%; /* ✅ Étend le groupe sur toute la largeur */
	display: flex;
	justify-content: space-between; /* ✅ Espace entre les éléments */
	align-items: center;
}

/* ✅ Aligne le bouton "Like" à gauche */
.like-btn {
	color: white;
	font-size: 18px;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 5px; /* ✅ Espacement entre l’icône et le nombre de likes */
}

/* ✅ Pousse le bouton "Supprimer" à droite */
.delete-btn {
	color: white;
	font-size: 18px;
	cursor: pointer;
	display: flex;
	align-items: center;
}

.like-btn:hover {
	color: red;
}

.delete-btn:hover {
	color: orange;
}


.fa-lnk:hover {
	color : #000;
}

.download-icon .fa-lnk, .printBtn .fa-lnk, .like-text {
	color: #d7d0d0;
}


.loading-text {
	text-align: center;
	font-size: 16px;
	font-weight: bold;
	color: #555;
}
#overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.7);
	color: white;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 20px;
	z-index: 9999;
}

.well {
	position: relative; /* Permet d'aligner `filterBox` sur `well` */
	overflow: hidden; /* Empêche `filterBox` de dépasser */
}

#filterBox {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5); /* Effet sombre uniquement sur `well` */
	z-index: 10;
	display: none; /* Caché au départ */
}

/* Animation d’apparition/disparition */
.show-filter {
	display: block !important;
	animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}



.overlay-content {
	text-align: center;
}
.loader, .progressLoader, .loaderFaceRecognition {
    border: 4px solid rgba(255, 255, 255, 0.3);
    border-top: 4px solid white;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
    position: fixed; /* Ou absolute si dans un conteneur */
    top: 70%;
    left: 44%;
    /* transform: translate(-50%, -50%); */
}




.loaderGallery {
	border: 4px solid #33333342;
	border-top: 4px solid #333;
	border-radius: 50%;
	width: 40px;
	height: 40px;
	animation: spin 1s linear infinite;
	margin: 20px auto;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}


/* Le loader, caché par défaut */
.loader-img {
  display: none;                    /* Masqué tant que la classe .visible n'est pas ajoutée */
  position: absolute;               /* Positionné par rapport au conteneur parent */
  top: 50%;                         /* Centré verticalement */
  left: 50%;                        /* Centré horizontalement */
  /* transform: translate(-50%, -50%); /* Ajuste l’ancrage au centre exact */
  
  width: 40px;                      /* Taille du cercle */
  height: 40px;
  
  border: 4px solid rgba(255,255,255,0.3); /* Anneau semi‑transparent */
  border-top-color: #ffffff;        /* Partie pleine blanche */
  border-radius: 50%;               /* Cercle parfait */
  
  animation: spin 1s linear infinite; /* Animation de rotation continue */
  z-index: 9999999999999;                    /* Au‑dessus de tout */
}

/* Quand on veut l’afficher */
.loader-img.visible {
  display: block;
}

/* Définition de l’animation */
@keyframes spin {
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}


.overlay-content {
	position: relative;
    top: 20%;
    padding: 20px;
    text-align: center;
    max-width: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;}

video {
    width: 100%;
    max-width: 500px;
    border-radius: 8px;
}

.button-container {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin-top: 10px;
}

button {
    padding: 10px;
    border: none;
    background: #7b5eff;
    color: white;
    border-radius: 5px;
    cursor: pointer;
}

/* Bouton de fermeture fixe en haut à droite */
.close-button {
    position: fixed;
    top: 10px;
    right: 10px;
    font-size: 60px;
    background: none;
    border: none;
    color: #c7c5c;
    z-index: 9999;
    cursor: pointer;
}

.close-button:hover {
    color: #ffcc00;
}


#userNameText {
    display: inline-block;
    margin-right: 10px; /* Espace entre le prénom et le lien */
    vertical-align: middle; /* Alignement vertical */
}

#userName {
    display: inline-block;
    vertical-align: middle;
}
#connexion {
    display: inline-block;
    margin-right: 10px; /* Espace entre le prénom et le lien */
    vertical-align: middle; /* Alignement vertical */
}
#connexionCount {
    display: inline-block;
    vertical-align: middle;
}

.blurred {
    filter: blur(15px); /* Ajoute un flou */
    pointer-events: none; /* Empêche le clic */
    cursor: not-allowed;
}
.moderation-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.5); /* Fond semi-transparent */
    color: white; /* Texte blanc */
    padding: 10px 20px;
    font-weight: bold;
    font-size: 16px;
    border-radius: 5px;
    text-align: center;
}

.img-thumbnail {
    background-color: unset;
}

.thumb-wrapper.lazy {
  position: relative;
  display: inline-block; /* ou block selon ton layout */
  width: 200px; /* ou 100% si tu es en grid responsive */
  height: 150px; /* très important */
  /* background-color: #6f4fff; */
}

.thumb-wrapper.lazy img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* ou contain selon ton style */
}

.thumb-wrapper.lazy::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 24px;
  margin: -12px 0 0 -12px;
  border: 3px solid #ccc;
  border-top: 3px solid #333;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

.thumb-wrapper.lazy-loaded::after {
  display: none;
}
.thumb-button.lazy-loaded::after {
  display: none;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}


.top-left-label {
  position: absolute;
  /* top: 10px; */
  left: 5px;
  color: white;
  /* background: rgba(0, 0, 0, 0.5); /* Fond sombre pour lisibilité */ */
  padding: 5px 10px;
  border-radius: 5px;
  font-size: 14px;
  z-index: 2;
}


/* Barre d’actions fixe en bas, masquée par défaut */
#actionBar {
  position: sticky;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgba(255,255,255,0.95);
  border-top: 1px solid #ccc;
  padding: 8px 0;
  box-shadow: 0 -2px 5px rgba(0,0,0,0.1);
  display: none;
  text-align: center;
  z-index: 999;
}

/* Les boutons à l’intérieur peuvent être espacés */
#actionBar button {
  margin: 0 8px;
}