.animate-on-scroll{opacity:0;transform:translateY(var(--animation-distance));transition:opacity var(--animation-duration) var(--animation-easing),transform var(--animation-duration) var(--animation-easing)}.animate-fade-in{opacity:0;transition:opacity var(--animation-duration) var(--animation-easing)}.animate-slide-up{opacity:0;transform:translateY(var(--animation-distance));transition:opacity var(--animation-duration) var(--animation-easing),transform var(--animation-duration) var(--animation-easing)}.animate-slide-left{opacity:0;transform:translateX(var(--animation-distance));transition:opacity var(--animation-duration) var(--animation-easing),transform var(--animation-duration) var(--animation-easing)}.animate-slide-right{opacity:0;transform:translateX(calc(-1 * var(--animation-distance)));transition:opacity var(--animation-duration) var(--animation-easing),transform var(--animation-duration) var(--animation-easing)}.animate-scale{opacity:0;transform:scale(.9);transition:opacity var(--animation-duration) var(--animation-easing),transform var(--animation-duration) var(--animation-easing)}.animate-fade-in.animate-in,.animate-on-scroll.animate-in,.animate-scale.animate-in,.animate-slide-left.animate-in,.animate-slide-right.animate-in,.animate-slide-up.animate-in{opacity:1;transform:translateY(0) translateX(0) scale(1)}.stagger-children>*{opacity:0;transform:translateY(var(--animation-distance));transition:opacity var(--animation-duration) var(--animation-easing),transform var(--animation-duration) var(--animation-easing)}.stagger-children.animate-in>:first-child{transition-delay:calc(var(--animation-delay-base) * 1)}.stagger-children.animate-in>:nth-child(2){transition-delay:calc(var(--animation-delay-base) * 2)}.stagger-children.animate-in>:nth-child(3){transition-delay:calc(var(--animation-delay-base) * 3)}.stagger-children.animate-in>:nth-child(4){transition-delay:calc(var(--animation-delay-base) * 4)}.stagger-children.animate-in>:nth-child(5){transition-delay:calc(var(--animation-delay-base) * 5)}.stagger-children.animate-in>:nth-child(6){transition-delay:calc(var(--animation-delay-base) * 6)}.stagger-children.animate-in>*{opacity:1;transform:translateY(0)}.section-title{opacity:0;transform:translateY(30px);transition:opacity .8s var(--animation-easing),transform .8s var(--animation-easing)}.section-title.animate-in{opacity:1;transform:translateY(0)}.section-title:hover{color:var(--color-primary);transition:var(--transition)}.section-title:hover::after{width:12rem;background:linear-gradient(90deg,var(--color-primary),var(--color-cta));box-shadow:0 0 15px rgba(58,134,255,.5)}.nosotros-content{opacity:0;transform:translateY(40px);transition:opacity .9s var(--animation-easing),transform .9s var(--animation-easing)}.nosotros-content.animate-in{opacity:1;transform:translateY(0)}.valores-lista{margin-top:var(--spacing-sm);padding-left:var(--spacing-md);line-height:var(--line-height-base);opacity:0;transform:translateY(30px);transition:opacity .8s var(--animation-easing) .2s,transform .8s var(--animation-easing) .2s}.valores-lista.animate-in{opacity:1;transform:translateY(0)}.valores-lista li{opacity:0;transform:translateX(-20px);transition:opacity .6s var(--animation-easing),transform .6s var(--animation-easing)}.valores-lista.animate-in li:first-child{transition-delay:0.1s}.valores-lista.animate-in li:nth-child(2){transition-delay:0.2s}.valores-lista.animate-in li:nth-child(3){transition-delay:0.3s}.valores-lista.animate-in li:nth-child(4){transition-delay:0.4s}.valores-lista.animate-in li{opacity:1;transform:translateX(0)}.recursos-content{position:relative}.recursos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-xxl);opacity:0;transform:translateY(40px);transition:opacity .9s var(--animation-easing),transform .9s var(--animation-easing)}.recursos-grid.animate-in{opacity:1;transform:translateY(0)}.recurso-card{opacity:0;transform:translateY(30px) scale(.95);transition:opacity .7s var(--animation-easing),transform .7s var(--animation-easing)}.recursos-grid.animate-in .recurso-card:first-child{transition-delay:0.1s}.recursos-grid.animate-in .recurso-card:nth-child(2){transition-delay:0.2s}.recursos-grid.animate-in .recurso-card:nth-child(3){transition-delay:0.3s}.recursos-grid.animate-in .recurso-card{opacity:1;transform:translateY(0) scale(1)}.recursos-cta{text-align:center;opacity:0;transform:translateY(30px);transition:opacity .8s var(--animation-easing) .4s,transform .8s var(--animation-easing) .4s}.recursos-cta.animate-in{opacity:1;transform:translateY(0)}.contacto-content{opacity:0;transform:translateY(40px);transition:opacity .9s var(--animation-easing),transform .9s var(--animation-easing)}.contacto-content.animate-in{opacity:1;transform:translateY(0)}.contacto-info{opacity:0;transform:translateX(-30px);transition:opacity .8s var(--animation-easing) .2s,transform .8s var(--animation-easing) .2s}.contacto-info.animate-in{opacity:1;transform:translateX(0)}.contacto-form{opacity:0;transform:translateX(30px);transition:opacity .8s var(--animation-easing) .3s,transform .8s var(--animation-easing) .3s}.contacto-form.animate-in{opacity:1;transform:translateX(0)}:root{--hover-transition:all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);--hover-transition-fast:all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);--hover-transition-slow:all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.hover-lift{transition:var(--hover-transition)}.hover-lift:hover{transform:translateY(var(--hover-elevation)) scale(var(--hover-scale-small))}.hover-lift-large{transition:var(--hover-transition-slow)}.hover-lift-large:hover{transform:translateY(var(--hover-elevation-large)) scale(var(--hover-scale))}.hover-zoom img{transition:var(--hover-transition-slow);transform:scale(1)}.hover-zoom:hover img{transform:scale(1.1)}.hover-glow{transition:var(--hover-transition)}.hover-glow:hover{box-shadow:0 0 20px rgba(58,134,255,var(--hover-glow-opacity))}.hover-underline{position:relative;transition:var(--hover-transition)}.hover-underline::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--color-primary),var(--color-cta));transition:var(--hover-transition)}.hover-underline:hover::after{width:100%}.reveal-animation{position:relative;overflow:hidden}.reveal-animation::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:var(--color-bg);transform:translateX(-100%);transition:transform .8s var(--animation-easing);z-index:1}.reveal-animation.animate-in::before{transform:translateX(100%)}.counter-animation{opacity:0;transform:translateY(20px);transition:opacity .6s var(--animation-easing),transform .6s var(--animation-easing)}.counter-animation.animate-in{opacity:1;transform:translateY(0)}@keyframes float{0%,100%{transform:translateY(0) rotate(0);opacity:.7}50%{transform:translateY(-20px) rotate(180deg);opacity:1}}.float-animation{animation:float 6s ease-in-out infinite}.float-animation-reverse{animation:float 8s ease-in-out infinite reverse}@keyframes slideInFromRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInFromLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}.animate-bounce{animation:bounce 1s infinite}@keyframes bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,0.2,1)}}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes ping{100%,75%{transform:scale(2);opacity:0}}.servicios-carousel{opacity:1;transform:translateY(0)}.servicios-carousel.animate-in{opacity:1;transform:translateY(0)}.servicio-card{opacity:1;transform:none;transition:none}.servicios-carousel.animate-in .servicio-card{opacity:1;transform:none;transition:none}@media screen and (max-width:768px){.hover-lift:hover{transform:translateY(-3px) scale(1.01)}.hover-lift-large:hover{transform:translateY(-6px) scale(1.02)}.stagger-children.animate-in>*{transition-delay:calc(var(--animation-delay-base) * 0.5)}.servicios-carousel.animate-in .servicio-card{transition-delay:calc(var(--animation-delay-base) * 0.3)}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}.animate-fade-in,.animate-on-scroll,.animate-scale,.animate-slide-left,.animate-slide-right,.animate-slide-up,.contacto-content,.contacto-form,.contacto-info,.counter-animation,.nosotros-content,.recursos-cta,.recursos-grid,.section-title,.servicio-card,.servicios-carousel,.stagger-children>*,.valores-lista{transition:none;opacity:1;transform:none}.reveal-animation::before{display:none}.float-animation,.float-animation-reverse{animation:none}.hover-lift-large:hover,.hover-lift:hover{transform:none}}.animate-fade-in,.animate-on-scroll,.animate-scale,.animate-slide-left,.animate-slide-right,.animate-slide-up,.servicio-card,.servicios-carousel{will-change:opacity,transform}.animate-fade-in.animate-in,.animate-on-scroll.animate-in,.animate-scale.animate-in,.animate-slide-left.animate-in,.animate-slide-right.animate-in,.animate-slide-up.animate-in,.servicio-card.animate-in,.servicios-carousel.animate-in{will-change:auto}.btn-ripple{position:relative;overflow:hidden}.btn-ripple .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.3);transform:scale(0);animation:ripple .6s ease-out;pointer-events:none}@keyframes ripple{to{transform:scale(2);opacity:0}}.loading-animation{position:relative}.loading-animation::after{content:'';position:absolute;top:50%;left:50%;width:2rem;height:2rem;margin:-1rem 0 0 -1rem;border:2px solid transparent;border-top:2px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.typewriter{overflow:hidden;border-right:2px solid var(--color-primary);white-space:nowrap;animation:typing 3.5s steps(40,end),blink-caret .75s step-end infinite}@keyframes typing{from{width:0}to{width:100%}}@keyframes blink-caret{from,to{border-color:transparent}50%{border-color:var(--color-primary)}}