/* Two short hops followed by a rest, like the original registration CTA. */
.hero-register,#official-register{animation:rto-register-hop 2.8s ease-in-out infinite}
.hero-register:hover,.hero-register:focus-visible,.hero-register:active,
#official-register:hover,#official-register:focus-visible,#official-register:active{animation:none;transform:none}
@keyframes rto-register-hop{
  0%,58%,100%{transform:translateY(0)}
  65%{transform:translateY(-7px)}
  73%{transform:translateY(0)}
  80%{transform:translateY(-3px)}
  88%{transform:translateY(0)}
}
.rto-contact-floaters{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom) + var(--contact-bar-offset,0px));z-index:35;display:flex;flex-direction:column;gap:12px}
.rto-contact-floaters[hidden]{display:none!important}
.rto-contact-floaters a{position:relative;width:50px;height:50px;display:grid;place-items:center;border:1px solid #00333514;border-radius:50%;background:#fff;box-shadow:0 5px 16px #00333529;text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.rto-contact-floaters a:focus-visible{outline:3px solid #003335;outline-offset:5px}
.rto-contact-floaters img{display:block;width:32px;height:32px}
.rto-contact-floaters svg{display:block;width:25px;height:25px;fill:#003335}
.rto-contact-floaters .rto-float-call{background:#ffc500;animation:rto-contact-pulse 3.2s ease-in-out .45s infinite}
.rto-float-zalo{animation:rto-contact-hop 3.2s ease-in-out infinite}
.rto-float-call svg{transform-origin:50% 65%;animation:rto-phone-ring 3.2s ease-in-out .45s infinite}
.rto-contact-floaters a::after{content:'';position:absolute;inset:-2px;border:2px solid #009da3;border-radius:inherit;opacity:0;pointer-events:none;animation:rto-contact-ring 3.2s ease-out infinite}
.rto-contact-floaters .rto-float-call::after{border-color:#ffc500;animation-delay:.45s}
.rto-contact-floaters a:hover,.rto-contact-floaters a:focus-visible,.rto-contact-floaters a:active,
.rto-contact-floaters a:hover::after,.rto-contact-floaters a:focus-visible::after,.rto-contact-floaters a:active::after,
.rto-contact-floaters a:hover svg,.rto-contact-floaters a:focus-visible svg,.rto-contact-floaters a:active svg{animation:none;transform:none}
@keyframes rto-contact-hop{0%,60%,100%{transform:translateY(0)}68%{transform:translateY(-7px)}76%{transform:translateY(0)}83%{transform:translateY(-3px)}90%{transform:translateY(0)}}
@keyframes rto-contact-pulse{0%,60%,90%,100%{transform:scale(1)}73%{transform:scale(1.08)}}
@keyframes rto-phone-ring{0%,60%,92%,100%{transform:rotate(0)}67%{transform:rotate(-17deg)}73%{transform:rotate(15deg)}79%{transform:rotate(-10deg)}85%{transform:rotate(6deg)}}
@keyframes rto-contact-ring{0%,60%,100%{opacity:0;transform:scale(1)}66%{opacity:.45;transform:scale(1)}88%{opacity:0;transform:scale(1.45)}}
body[data-cta-paused=true] .hero-register,body[data-cta-paused=true] #official-register,
body[data-cta-paused=true] .rto-contact-floaters *,body[data-cta-paused=true] .rto-contact-floaters *::after{animation-play-state:paused}
body[data-motion=off] .hero-register,body[data-motion=off] #official-register,
body[data-motion=off] .rto-contact-floaters *,body[data-motion=off] .rto-contact-floaters *::after{animation:none!important}
@media(prefers-reduced-motion:reduce){
  .hero-register,#official-register,.rto-contact-floaters *,.rto-contact-floaters *::after{animation:none!important;transition:none!important}
}
