html { scroll-behavior: smooth; }
body { font-family: 'Poppins', ui-sans-serif, system-ui, sans-serif; }

.bg-hero-pattern {
  background-image: radial-gradient(circle at 20% 20%, rgba(56,153,242,0.15) 0%, transparent 45%),
                     radial-gradient(circle at 80% 0%, rgba(11,196,170,0.18) 0%, transparent 40%);
}

.glass-card {
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,0.85);
}

/* Fondu d'apparition pour les cartes d'avis générées dynamiquement */
.review-card {
  animation: fadeIn .35s ease-in-out;
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.reviews-track::-webkit-scrollbar { height: 8px; }
.reviews-track::-webkit-scrollbar-thumb { background: #93d1fd; border-radius: 9999px; }
.reviews-track::-webkit-scrollbar-track { background: transparent; }

.filter-btn.active {
  background-color: #227be6;
  color: white;
  box-shadow: 0 6px 16px -6px rgba(34,123,230,0.6);
}

/* ---- Dropzone glisser/déposer (page Devis) ---- */
.dropzone {
  border: 2px dashed #bfe3fe;
  transition: border-color .2s ease, background-color .2s ease;
}
.dropzone.dragover {
  border-color: #0bc4aa;
  background-color: #eefffb;
}
.dropzone-thumb {
  animation: fadeIn .25s ease-in-out;
}

/* Champ honeypot anti-spam : invisible pour un humain, visible pour un bot */
.hp-field {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Spinner simple pour le bouton d'envoi */
.spinner {
  border: 2px solid rgba(255,255,255,0.4);
  border-top-color: #ffffff;
  border-radius: 9999px;
  width: 16px;
  height: 16px;
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
