/* Rock Motion FX 2.0.0 — Rock Media Design */

/* ---------- Texto: máquina de escribir ---------- */
.rm-caret::after{content:"";display:inline-block;width:2px;height:1em;margin-left:3px;vertical-align:-.12em;background:currentColor;animation:rm-blink .8s steps(1) infinite}
@keyframes rm-blink{50%{opacity:0}}

/* ---------- Texto dividido (split text) ---------- */
.rm-w{display:inline-block;white-space:nowrap;vertical-align:top}
.rm-p{display:inline-block;transition-property:opacity,transform,filter;transition-timing-function:cubic-bezier(.2,.7,.2,1);transition-duration:.6s}
.rm-split-ready.rm-fx-up .rm-p{opacity:0;transform:translate3d(0,.5em,0)}
.rm-split-ready.rm-fx-fade .rm-p{opacity:0}
.rm-split-ready.rm-fx-blur .rm-p{opacity:0;filter:blur(10px)}
.rm-split-ready.rm-fx-rotate .rm-p{opacity:0;transform:translate3d(0,.6em,0) rotate(8deg);transform-origin:left bottom}
.rm-split-ready.rm-fx-mask .rm-w{overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.rm-split-ready.rm-fx-mask .rm-p{transform:translate3d(0,110%,0)}
.rm-split-ready.rm-in .rm-p{opacity:1;transform:none;filter:none}

/* ---------- Entrada al hacer scroll ---------- */
.rm-js .rm-reveal{transition-property:opacity,transform;transition-timing-function:cubic-bezier(.2,.7,.2,1);transition-duration:.8s}
.rm-js .rm-reveal:not(.rm-in){opacity:0}
.rm-js .rm-reveal.rm-from-up:not(.rm-in){transform:translate3d(0,40px,0)}
.rm-js .rm-reveal.rm-from-down:not(.rm-in){transform:translate3d(0,-40px,0)}
.rm-js .rm-reveal.rm-from-left:not(.rm-in){transform:translate3d(-60px,0,0)}
.rm-js .rm-reveal.rm-from-right:not(.rm-in){transform:translate3d(60px,0,0)}
.rm-js .rm-reveal.rm-from-zoom:not(.rm-in){transform:scale(.88)}

/* ---------- Botones ---------- */
.rm-btn-shine .elementor-button,a.rm-btn-shine,button.rm-btn-shine,
.rm-btn-fill .elementor-button,a.rm-btn-fill,button.rm-btn-fill{position:relative;overflow:hidden;isolation:isolate}
.rm-btn-shine .elementor-button::after,a.rm-btn-shine::after,button.rm-btn-shine::after{content:"";position:absolute;top:0;left:-75%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:rm-shine var(--rm-speed,2.5s) ease-in-out infinite;pointer-events:none}
@keyframes rm-shine{0%{left:-75%}60%,100%{left:130%}}

.rm-btn-pulse .elementor-button,a.rm-btn-pulse,button.rm-btn-pulse{animation:rm-pulse var(--rm-speed,1.8s) ease-out infinite}
@keyframes rm-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--rm-color,#ff4c4c) 60%,transparent)}100%{box-shadow:0 0 0 16px color-mix(in srgb,var(--rm-color,#ff4c4c) 0%,transparent)}}

.rm-btn-fill .elementor-button,a.rm-btn-fill,button.rm-btn-fill{transition:color .35s ease}
.rm-btn-fill .elementor-button::before,a.rm-btn-fill::before,button.rm-btn-fill::before{content:"";position:absolute;inset:0;background:var(--rm-color,#111);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.2,.7,.2,1);z-index:-1}
.rm-btn-fill .elementor-button:hover::before,a.rm-btn-fill:hover::before,button.rm-btn-fill:hover::before{transform:scaleX(1)}
.rm-btn-fill .elementor-button:hover,a.rm-btn-fill:hover,button.rm-btn-fill:hover{color:var(--rm-text,#fff)!important}

/* ---------- Degradado en movimiento ---------- */
.rm-gradient{background-image:var(--rm-grad,linear-gradient(120deg,#534AB7,#D4537E,#ff4c4c,#1D9E75))!important;background-size:300% 300%!important;animation:rm-grad var(--rm-speed,8s) ease infinite}
@keyframes rm-grad{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

/* ---------- Marquesina ---------- */
.rm-marquee,.rm-marquee>.e-con-inner{overflow:hidden!important;flex-wrap:nowrap!important}
.rm-marquee.rm-marquee-fade{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.rm-marquee-track{display:flex;flex-wrap:nowrap;align-items:center;width:max-content;animation:rm-marquee var(--rm-speed,25s) linear infinite}
.rm-marquee-track>*{flex:0 0 auto!important;max-width:none!important;margin:0 var(--rm-gap,48px) 0 0!important}
.rm-marquee:hover .rm-marquee-track{animation-play-state:paused}
.rm-marquee.rm-no-pause:hover .rm-marquee-track{animation-play-state:running}
.rm-marquee-right .rm-marquee-track{animation-direction:reverse}
@keyframes rm-marquee{to{transform:translate3d(-50%,0,0)}}

/* ---------- Tarjetas ---------- */
.rm-tilt{will-change:transform}
.rm-zoom{overflow:hidden}
.rm-zoom img{transition:transform var(--rm-speed,.6s) cubic-bezier(.2,.7,.2,1)}
.rm-zoom:hover img{transform:scale(var(--rm-scale,1.1))}

/* ---------- Menú con scroll ---------- */
.rm-header.rm-header-ready{transition:transform .35s ease,background-color .35s ease,padding .35s ease,box-shadow .35s ease!important}
.rm-header[data-rm-bg].rm-scrolled{background-color:var(--rm-header-bg)!important}
.rm-header.rm-has-shrink.rm-scrolled{padding-top:var(--rm-shrink)!important;padding-bottom:var(--rm-shrink)!important}
.rm-header.rm-hidden{transform:translate3d(0,-110%,0)!important}
.rm-header a.rm-active,.rm-header a.rm-active .elementor-item{color:var(--rm-color,#ff4c4c)!important}
.rm-progress{position:fixed;top:0;left:0;width:100%;height:3px;transform-origin:left;transform:scaleX(0);z-index:99999;pointer-events:none}
.admin-bar .rm-progress{top:32px}
@media (max-width:782px){.admin-bar .rm-progress{top:46px}}
.rm-dots{position:fixed;right:18px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:9998}
.rm-dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:rgba(127,127,127,.5);cursor:pointer;transition:transform .3s,background-color .3s}
.rm-dots button.rm-active{background:var(--rm-color,#ff4c4c);transform:scale(1.5)}
@media (max-width:767px){.rm-dots{display:none}}

/* ---------- Cambio de fondo ---------- */
body.rm-bg-on{transition:background-color .6s ease}
body.rm-bg-on.rm-bg-smooth{transition:none}
.rm-bg-change[data-rm-text],
.rm-bg-change[data-rm-text] :is(.elementor-heading-title,.elementor-widget-text-editor,.elementor-icon-list-text,p){color:var(--rm-text)!important}

/* ---------- Scroll horizontal ---------- */
.rm-h-ready,.rm-h-ready>.e-con-inner{display:block!important;overflow:visible!important}
.rm-h-ready>.e-con-inner{max-width:none!important;height:100%!important;padding:0!important}
.rm-h-ready:not(.rm-h-swipe){padding-top:0!important;padding-bottom:0!important}
.rm-h-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center}
.rm-h-track{display:flex;flex-wrap:nowrap;gap:var(--rm-gap,24px);padding:0 var(--rm-gap,24px);will-change:transform}
.rm-h-panel{flex:0 0 var(--rm-panel,80vw)!important;width:var(--rm-panel,80vw)!important;max-width:none!important}
.rm-h-swipe .rm-h-sticky{position:relative;height:auto;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.rm-h-swipe .rm-h-sticky::-webkit-scrollbar{display:none}
.rm-h-swipe .rm-h-track{transform:none!important}
.rm-h-swipe .rm-h-panel{scroll-snap-align:center;flex-basis:85vw!important;width:85vw!important}

/* ---------- Video con scroll ---------- */
.rm-vs-stage{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}
.rm-vs-stage>video,.rm-vs-stage>canvas.rm-vs-canvas{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;z-index:0;max-width:none}
.rm-vs-stage>*:not(video):not(canvas){position:relative;z-index:1}
.rm-vs-stage [data-rm-at],.rm-pin-stage [data-rm-at]{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}
.rm-vs-stage [data-rm-at].rm-on,.rm-pin-stage [data-rm-at].rm-on{opacity:1;transform:none}

/* ---------- Sticky y pin ---------- */
.rm-sticky{position:sticky!important;top:var(--rm-top,0px);align-self:flex-start!important;height:fit-content;z-index:var(--rm-z,2)}
.rm-sticky.rm-sticky-off{position:relative!important;top:auto}
.rm-pin-ready,.rm-pin-ready>.e-con-inner{display:block!important;overflow:visible!important}
.rm-pin-ready>.e-con-inner{height:100%!important;max-width:none!important}
.rm-pin-ready{padding-top:0!important;padding-bottom:0!important}
.rm-pin-stage{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:var(--rm-dir,column);align-items:center;justify-content:center;width:100%}

/* ---------- Tarjetas apiladas ---------- */
.rm-stack-ready,.rm-stack-ready>.e-con-inner{overflow:visible!important}
.rm-stack-card{position:sticky!important;top:var(--rm-card-top,100px);transform-origin:center top;will-change:transform}

/* ---------- Revelado de imagen ---------- */
.rm-img-reveal{overflow:hidden}
.rm-img-reveal img{transition:transform var(--rm-dur,1.2s) cubic-bezier(.2,.7,.2,1)}
.rm-js .rm-img-reveal .rm-ir-target{transition:clip-path var(--rm-dur,1.2s) cubic-bezier(.77,0,.18,1)}
.rm-js .rm-img-reveal:not(.rm-in) img{transform:scale(var(--rm-scale,1.3))}
.rm-js .rm-img-reveal.rm-from-left:not(.rm-in) .rm-ir-target{clip-path:inset(0 100% 0 0)}
.rm-js .rm-img-reveal.rm-from-right:not(.rm-in) .rm-ir-target{clip-path:inset(0 0 0 100%)}
.rm-js .rm-img-reveal.rm-from-up:not(.rm-in) .rm-ir-target{clip-path:inset(100% 0 0 0)}
.rm-js .rm-img-reveal.rm-from-down:not(.rm-in) .rm-ir-target{clip-path:inset(0 0 100% 0)}
.rm-js .rm-img-reveal.rm-from-center:not(.rm-in) .rm-ir-target{clip-path:inset(50% 50% 50% 50%)}
.rm-js .rm-img-reveal.rm-in .rm-ir-target{clip-path:inset(0 0 0 0)}

/* ---------- Parallax ---------- */
.rm-parallax-img{overflow:hidden}
.rm-parallax-img img{transform:scale(var(--rm-scale,1.25));will-change:translate}

/* ---------- SVG que se dibuja ---------- */
.rm-svg-draw svg :is(path,line,polyline,polygon,circle,ellipse,rect){transition:stroke-dashoffset var(--rm-dur,2s) cubic-bezier(.6,0,.3,1),fill-opacity .8s ease}

/* ---------- Tilt: brillo ---------- */
.rm-tilt-glare{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at var(--rm-gx,50%) var(--rm-gy,50%),rgba(255,255,255,.35),transparent 55%);opacity:0;transition:opacity .3s;z-index:5}
.rm-tilt:hover .rm-tilt-glare{opacity:1}

/* ---------- Cursor personalizado ---------- */
.rm-cursor-on,.rm-cursor-on *{cursor:none!important}
.rm-cur-dot,.rm-cur-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:2147483646;border-radius:50%;translate:-50% -50%;will-change:transform}
.rm-cur-dot{width:8px;height:8px;background:var(--rm-cur,#ff4c4c)}
.rm-cur-ring{width:36px;height:36px;border:1.5px solid var(--rm-cur,#ff4c4c);display:flex;align-items:center;justify-content:center;transition:width .3s,height .3s,background-color .3s,border-color .3s,opacity .3s}
.rm-cur-ring span{font:500 13px/1 system-ui,sans-serif;color:#fff;opacity:0;transition:opacity .2s;white-space:nowrap}
.rm-cur-blend .rm-cur-dot,.rm-cur-blend .rm-cur-ring{mix-blend-mode:difference}
.rm-cur-hover .rm-cur-ring{width:60px;height:60px;background:color-mix(in srgb,var(--rm-cur,#ff4c4c) 15%,transparent)}
.rm-cur-label .rm-cur-ring{width:86px;height:86px;background:var(--rm-cur,#ff4c4c);border-color:transparent}
.rm-cur-label .rm-cur-ring span{opacity:1}
.rm-cur-label .rm-cur-dot,.rm-cur-hidden .rm-cur-dot,.rm-cur-hidden .rm-cur-ring{opacity:0}

/* ---------- Imagen que sigue al cursor ---------- */
.rm-hover-img{position:fixed;top:0;left:0;width:var(--rm-w,260px);aspect-ratio:4/3;object-fit:cover;pointer-events:none;z-index:2147483645;border-radius:10px;opacity:0;scale:.8;transition:opacity .3s,scale .3s;will-change:transform}
.rm-hover-img.rm-on{opacity:1;scale:1}

/* ---------- Accesibilidad: movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
	.rm-js .rm-reveal:not(.rm-in){opacity:1;transform:none}
	.rm-split-ready .rm-p{opacity:1!important;transform:none!important;filter:none!important}
	.rm-js .rm-img-reveal .rm-ir-target{clip-path:none!important}
	.rm-js .rm-img-reveal img{transform:none!important}
	.rm-btn-shine .elementor-button::after,a.rm-btn-shine::after,button.rm-btn-shine::after{display:none}
	.rm-btn-pulse .elementor-button,a.rm-btn-pulse,button.rm-btn-pulse,.rm-gradient,.rm-marquee-track{animation:none}
	.rm-caret::after{animation:none}
}
