html {
  scroll-behavior: smooth;
}

/* ---- Utilidades usadas por los componentes originales que Tailwind (CDN) no trae por defecto ---- */

.text-balance {
  text-wrap: balance;
}

/* Animaciones tipo "animate-in" de tailwindcss-animate, usadas en modales */
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes zoom-in-95 {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes slide-in-from-bottom-6 {
  from { opacity: 0; transform: translateY(1.5rem); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-in {
  animation-duration: 200ms;
  animation-timing-function: ease-out;
  animation-fill-mode: both;
}
.fade-in { animation-name: fade-in; }
.zoom-in-95 { animation-name: fade-in, zoom-in-95; }
.slide-in-from-bottom-6 { animation-name: fade-in, slide-in-from-bottom-6; }

/* line-clamp utilities (in case the Tailwind CDN build in use lacks the plugin) */
.line-clamp-1 {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Elementos ocultos hasta que JS decide mostrarlos (evita parpadeos) */
[data-js-hidden] {
  display: none;
}
