/* Vida Médica · movimiento sutil (se carga al final y unifica todas las capas anteriores) */
:root{--vm-soft:cubic-bezier(.22,1,.36,1)}

/* Entradas al cargar: menos recorrido, más suaves */
@keyframes vm-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes vm-scale-in{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:none}}
@keyframes vm-float{from{transform:translateY(0)}to{transform:translateY(-6px)}}
@keyframes vm-blip{0%,100%{opacity:.45;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}
@keyframes vm2-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.vm-rise{animation-duration:1.2s;animation-timing-function:var(--vm-soft)}
.vm-scale-in{animation-duration:2s;animation-timing-function:var(--vm-soft)}
.vm-float{animation-duration:9s}
.vm-panel{animation-duration:.8s;animation-timing-function:var(--vm-soft)}

/* Entradas al hacer scroll: solo un leve desplazamiento con fundido, sin escalonado brusco */
@supports (animation-timeline: view()){
  @keyframes vm-reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  @keyframes vmp-reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  @keyframes vm-reveal-img{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
  .vm-reveal,.vm-stagger>*,main>section:not(.vm-hero)>div>*,main>div>div>*,main [style*="display: grid"]>*{animation-timing-function:var(--vm-soft)!important;animation-range:entry 0% entry 42%}
  .vm-stagger>*:nth-child(2),main [style*="display: grid"]>*:nth-child(2){animation-range:entry 4% entry 46%}
  .vm-stagger>*:nth-child(3),main [style*="display: grid"]>*:nth-child(3){animation-range:entry 8% entry 50%}
  .vm-stagger>*:nth-child(n+4),main [style*="display: grid"]>*:nth-child(n+4){animation-range:entry 12% entry 54%}
  .vm-reveal-img{animation-timing-function:var(--vm-soft)!important}
}

/* Tarjetas: un solo sistema de elevación con transición completa (antes el desplazamiento saltaba sin transición) */
.vm-card,.vm-lift,
main article,main a[style*="border-radius: 2"],main li[style*="border-radius: 2"],main div[style*="border-radius: 24px; padding"],main a[style*="border-radius: 3"]{
  transition:translate .9s var(--vm-soft),box-shadow .9s var(--vm-soft),background-color .5s ease,border-color .5s ease,color .5s ease}
main article:not(.vm-tilt):hover,main a[style*="border-radius: 2"]:not(.vm-tilt):hover,main li[style*="border-radius: 2"]:not(.vm-tilt):hover,main div[style*="border-radius: 24px; padding"]:not(.vm-tilt):hover,main a[style*="border-radius: 3"]:not(.vm-tilt):hover{transform:none}
.vm-card:hover,.vm-lift:hover,
main article:hover,main a[style*="border-radius: 2"]:hover,main li[style*="border-radius: 2"]:hover,main div[style*="border-radius: 24px; padding"]:hover,main a[style*="border-radius: 3"]:hover{
  translate:0 -4px;box-shadow:0 26px 56px -30px rgba(4,38,58,.34),0 8px 18px -14px rgba(4,38,58,.14)}
.vm-tilt{transition:transform 1s var(--vm-soft),translate .9s var(--vm-soft),box-shadow .9s var(--vm-soft)!important}
/* Tarjetas con borde sobre fondo oscuro: el borde se ilumina en lugar de una sombra pesada */
main a[style*="rgba(255,255,255,0.16)"]:hover,main div[style*="rgba(255,255,255,0.16)"]:hover,main li[style*="rgba(255,255,255,0.16)"]:hover{border-color:rgba(127,198,234,.55)!important;background-color:rgba(255,255,255,.04)}

/* Botones y controles: elevación mínima */
.vm-btn{transition:transform .6s var(--vm-soft),background-color .35s ease,color .35s ease,border-color .35s ease}
.vm-btn:hover,a[style*="border-radius: 999px"]:hover,button[style*="border-radius: 999px"]:hover{transform:translateY(-1px)}
.vm-btn:hover svg,.vm-mag:hover>svg,a[style*="border-radius: 999px"]:hover svg{transform:translateX(3px)}
.vm-btn:active,a[style*="border-radius: 999px"]:active,button[style*="border-radius: 999px"]:active{transform:scale(.985)}
.vm-arrow-link:hover svg{transform:translateX(4px)}
.vm-chip:hover,.vm-tab:hover,.vm-tabbtn:hover,.vm-logo:hover{transform:translateY(-1px)}
.vm-slide-btn:hover{transform:scale(1.03)}
.vm-wa:hover{transform:translateY(-2px)}
.vm-mag{transition:transform .8s var(--vm-soft),background-color .35s ease,color .35s ease,border-color .35s ease,box-shadow .5s ease}

/* Imágenes y filas */
.vm-media>img,.vm-media>.vm-zoom{transition:transform 1.8s var(--vm-soft)}
.vm-card:hover .vm-media>img,.vm-card:hover .vm-media>.vm-zoom,.vm-media:hover>img{transform:scale(1.025)}
.vm-row{transition:background-color .7s var(--vm-soft),color .45s ease}
.vm-row .vm-row-media{transform:translateX(10px) scale(.98);transition:opacity .7s ease,transform 1s var(--vm-soft)}
.vm-row:hover .vm-row-arrow{transform:rotate(-45deg)}
.vm-slide-track{transition:transform 1.1s var(--vm-soft)}

/* Foco de luz: aparición más lenta */
.vm-spot::before{transition:opacity .8s ease}
.vm-spot-xl::before{background:radial-gradient(640px circle at var(--sx,50%) var(--sy,50%),rgba(127,198,234,.26),rgba(127,198,234,.06) 45%,transparent 70%)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
}
