/* Lightweight presentation only. No continuous animation, video or extra images. */
.niva-reservas .contenido-portada-negocio { animation:none; }
.niva-reservas:not(.agenda-cargando) .contenido-portada-negocio { animation:an-entrada 380ms ease-out both; }
.niva-reservas:not(.agenda-cargando) .logo-negocio-publico { animation:an-logo 300ms ease-out both; }
.niva-reservas .portada-negocio { background-position:center; }
.niva-reservas .contenido-portada-negocio h1 { line-height:1.12;letter-spacing:-.025em;text-wrap:balance; }
.niva-reservas .contenido-portada-negocio p { max-width:52ch;line-height:1.65; }
.niva-reservas .logo-negocio-publico { object-fit:contain;background:#fff; }
.niva-reservas .servicio-publico-card,
.niva-reservas .servicio-modal-card,
.niva-reservas .fc-servicio,
.niva-reservas .tarjeta-contacto,
.niva-reservas .an-prof-card { transition:transform 160ms ease,border-color 160ms ease; }
.niva-reservas .servicio-publico-card .foto-servicio-ligera,
.niva-reservas .servicio-modal-card .foto-servicio-ligera,
.niva-reservas .fc-foto img { transition:transform 220ms ease-out; }
/* Hover is enabled only on devices with a precise pointer. */
@media (hover:hover) and (pointer:fine) {
 .niva-reservas .servicio-publico-card:hover,
 .niva-reservas .servicio-modal-card:hover,
 .niva-reservas .tarjeta-contacto:hover { transform:translateY(-2px); }
 .niva-reservas .servicio-publico-card:hover .foto-servicio-ligera,
 .niva-reservas .servicio-modal-card:hover .foto-servicio-ligera,
 .niva-reservas .fc-servicio:hover .fc-foto img { transform:scale(1.035); }
 .niva-reservas .an-prof-card:hover { transform:translateY(-2px); }
}
@media (hover:none) {
 .niva-reservas .servicio-publico-card:hover,.niva-reservas .servicio-modal-card:hover { transform:none;box-shadow:none; }
 .niva-reservas .servicio-publico-card:hover .foto-servicio-ligera,.niva-reservas .servicio-modal-card:hover .foto-servicio-ligera { transform:none; }
}
.niva-reservas .fc-foto { overflow:hidden; }
.niva-reservas .an-rama[open] > :not(summary) { animation:an-categoria 180ms ease-out; }
.niva-reservas .an-rama summary { transition:border-color 160ms ease,background-color 160ms ease; }
.niva-reservas .an-prof-card[aria-pressed=true],
.niva-reservas .fc-profesional.activo,
.niva-reservas .fc-slots button.activo,
.niva-reservas .fc-dia.activo {
 border-color:var(--color-principal,#d94e90);
 outline:2px solid var(--color-principal,#d94e90);outline-offset:2px;
}
.niva-reservas .fc-servicio:has(button[aria-pressed=true]) { border-color:var(--color-principal,#d94e90); }
.niva-reservas .fc-paso[aria-current=step] .fc-numero { outline:2px solid var(--color-principal,#d94e90);outline-offset:3px; }
.niva-reservas .an-entrada-paso { animation:an-paso 180ms ease-out; }
.niva-reservas .fc-picker-panel { animation:an-paso 180ms ease-out; }
.niva-reservas .fc-exito { animation:an-entrada 250ms ease-out; }
.niva-reservas .fc-exito-icono { animation:an-confirmado 340ms ease-out; }
.niva-reservas :is(.fc-primario,.fc-quitar,.an-prof-card,.boton-comenzar-reserva,.an-siguiente-movil button):active:not(:disabled) { transform:scale(.985); }
.niva-reservas :is(button,a,summary):focus-visible { outline:2px solid var(--color-principal,#d94e90);outline-offset:4px; }
@keyframes an-entrada { from { opacity:.65;transform:translateY(10px); } to { opacity:1;transform:none; } }
@keyframes an-logo { from { opacity:.6;transform:scale(.96); } to { opacity:1;transform:none; } }
@keyframes an-categoria { from { opacity:.65;transform:translateY(-4px); } to { opacity:1;transform:none; } }
@keyframes an-paso { from { opacity:.75;transform:translateY(6px); } to { opacity:1;transform:none; } }
@keyframes an-confirmado { from { opacity:.4;transform:scale(.86); } 70% { opacity:1;transform:scale(1.035); } to { transform:scale(1); } }
@media (prefers-reduced-motion:reduce) {
 .niva-reservas *, .niva-reservas *::before, .niva-reservas *::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
}
