/* MA1 — efectos (mismos que ma1marketing.com): titulares enmascarados, lectura progresiva,
   cursor, brillo en tarjetas, barra de progreso. Solo se activan si carga GSAP y no hay reduced-motion. */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.18em .06em .12em 0;margin:-.18em -.06em -.12em 0}
.w>span{display:inline-block}
[data-fill] .fw{opacity:clamp(.16,calc(var(--p,1)*var(--n,1) - var(--i,0)),1)}
.cursor{position:fixed;left:0;top:0;z-index:90;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:1px solid rgba(255,255,255,.5);pointer-events:none;mix-blend-mode:difference;opacity:0;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background-color .35s var(--ease),opacity .3s}
.cursor.is-on{opacity:1}
.cursor.is-hover{width:56px;height:56px;margin:-28px 0 0 -28px;background:#fff}
.prog{position:fixed;left:0;top:0;height:2px;width:100%;z-index:80;background:var(--red);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
/* brillo que sigue al mouse dentro de tarjetas */
.plan,.pain,.svc a,.addon,.card.glow{--mx:50%;--my:0%}
.plan::after,.pain::after,.svc a::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(226,27,35,.14),transparent 60%)}
.plan:hover::after,.pain:hover::after,.svc a:hover::after{opacity:1}
.svc a{position:relative}
@media(hover:hover){.js .plan[data-r].in:hover{transform:translateY(-6px)}}
/* respiración suave del anillo del héroe y brillo del fantasma */
.hero__ghost{will-change:transform}
@media(prefers-reduced-motion:reduce){.cursor,.prog{display:none}}
.hero__title .w,.hero__title .w>span{display:inline-block}
.hero__title .l1,.hero__title .l2{display:block}
.hero__title .w{margin-right:.1em}
