/* Utilidades mínimas complementarias a Tailwind */
:root { --ring: 2px solid rgba(59,130,246,.6); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.ribbon-verified {
  transform-origin: left;
  transform: scale(.9);
  opacity: 0;
  transition: transform .2s ease, opacity .2s ease;
}
.group:hover .ribbon-verified { transform: scale(1); opacity: 1; }

/* Scrollbar del carrusel */
.carousel::-webkit-scrollbar { height: 8px; }
.carousel::-webkit-scrollbar-thumb { background: rgba(100,116,139,.4); border-radius: 8px; }
.carousel { scrollbar-width: thin; scrollbar-color: rgba(100,116,139,.4) transparent; }

/* Evita conflictos con usuarios que prefieren menos movimiento */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* Estado al abrir modales */
.modal-open { overflow: hidden; }

/* Cursor tipo "mano" al pasar por el carrusel de categorías */
#categories-carousel {
  cursor: grab;
}
#categories-carousel:active {
  cursor: grabbing;
}

/* ===== Scroll reveal ===== */
@media (prefers-reduced-motion: no-preference) {
  [data-animate] {
    opacity: 0;
    transform: translate3d(0, 0, 0) scale(1);
    transition-property: opacity, transform, filter;
    transition-duration: var(--anim-dur, 700ms);
    transition-timing-function: var(--anim-ease, cubic-bezier(.22,.61,.36,1));
    will-change: transform, opacity, filter;
    backface-visibility: hidden;
  }

  [data-animate="fade-in"]    { transform: none; }
  [data-animate="fade-up"]    { transform: translateY(24px); }
  [data-animate="fade-down"]  { transform: translateY(-24px); }
  [data-animate="fade-left"]  { transform: translateX(24px); }
  [data-animate="fade-right"] { transform: translateX(-24px); }
  [data-animate="zoom-in"]    { transform: scale(.95); filter: blur(2px); }
  [data-animate="zoom-out"]   { transform: scale(1.05); }
  [data-animate="flip-up"]    { transform: perspective(800px) rotateX(8deg) translateY(16px); }
  [data-animate="flip-up"]    { transform-origin: 50% 100%; }

  .is-in[data-animate] {
    opacity: 1;
    transform: none;
    filter: none;
  }

  [data-stagger] > * { --dly: 0ms; }
  [data-stagger] > *:nth-child(1)  { --dly: 0ms }
  [data-stagger] > *:nth-child(2)  { --dly: 70ms }
  [data-stagger] > *:nth-child(3)  { --dly: 140ms }
  [data-stagger] > *:nth-child(4)  { --dly: 210ms }
  [data-stagger] > *:nth-child(5)  { --dly: 280ms }
  [data-stagger] > *:nth-child(6)  { --dly: 350ms }
  [data-stagger] > *:nth-child(7)  { --dly: 420ms }
  [data-stagger] > *:nth-child(8)  { --dly: 490ms }
  [data-stagger] > *:nth-child(9)  { --dly: 560ms }
  [data-stagger] > *:nth-child(10) { --dly: 630ms }

  [data-stagger] > [data-animate] { transition-delay: var(--dly); }
}

/* Reduced motion: sin animaciones ni suavizados */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  [data-animate] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}
