.back-to-top{position:fixed;right:26px;bottom:94px;z-index:89;width:48px;height:48px;display:grid;place-items:center;border:1px solid #dce3ef;border-radius:50%;background:#fffffff2;color:#21009e;box-shadow:0 6px 22px #1625421a;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .2s,transform .2s,visibility .2s,background .2s}
.back-to-top.visible{visibility:visible;opacity:1;transform:none}.back-to-top:hover{background:#eef2ff;transform:translateY(-3px)}.back-to-top:focus-visible{outline:3px solid #1d67ff;outline-offset:4px}.back-to-top svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:860px){.back-to-top{right:18px;bottom:82px}}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none;transform:none}}

/* Browser-native blue pointers avoid a JavaScript repaint on every mouse move. */
@media(hover:hover) and (pointer:fine){
 html,body{cursor:url("cursor-dot.svg") 16 16,auto}
 a[href],button,summary,select,[role="button"],[role="tab"],label[for],input[type="checkbox"],input[type="radio"],input[type="submit"],input[type="button"]{cursor:url("cursor-link.svg") 18 18,pointer!important}
 input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),textarea,[contenteditable="true"]{cursor:text}
 button:disabled,input:disabled{cursor:not-allowed!important}
}

/* WhatsApp's handset stays visible inside its speech-bubble outline. */
.wa-float img{display:block;width:36px;height:36px;filter:none}
.wa-float:focus-visible{outline:3px solid #1764ed;outline-offset:4px}
footer a.footer-whatsapp{display:inline-flex;align-items:center;gap:7px}
.footer-whatsapp img{display:block;width:21px;height:21px;flex:none;object-fit:contain}

/* One contact selector follows the team avatar on every page. */
.wa-contact{position:fixed;right:18px;bottom:max(16px,env(safe-area-inset-bottom));width:128px;height:142px;z-index:91}
.wa-contact .wa-float,.wa-contact .wa-float.wa-team{position:absolute;right:0;bottom:0;border:0;padding:0;cursor:pointer}
.wa-contact-panel{position:absolute;right:0;bottom:calc(100% + 12px);width:304px;padding:16px;background:#fff;border:1px solid #e1e7f2;border-radius:23px;box-shadow:0 16px 54px #14203e24;color:#14203e;animation:wa-contact-in .16s ease-out}
.wa-contact-panel[hidden]{display:none}
.wa-contact-panel::before{content:"";position:absolute;right:56px;bottom:-6px;width:12px;height:12px;background:#fff;border-right:1px solid #e1e7f2;border-bottom:1px solid #e1e7f2;transform:rotate(45deg)}
.wa-contact-panel::after{content:"";position:absolute;left:0;right:0;top:100%;height:16px}
.wa-contact-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding-left:6px}
.wa-contact-heading h2{font:750 17px/1.35 var(--font,Arial,sans-serif);letter-spacing:-.035em;margin:0;color:#14203e}
.wa-contact-close{display:grid;place-items:center;flex:none;width:30px;height:30px;border:0;border-radius:50%;padding:6px;background:#f1f4fa;color:#64728b;cursor:pointer}
.wa-contact-close:hover{background:#e5ecfb;color:#21009e}
.wa-contact-close svg,.wa-contact-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wa-contact-panel .wa-contact-option{display:flex;align-items:center;gap:12px;padding:12px 9px;border-radius:14px;text-decoration:none;color:#14203e;transition:background .15s}
.wa-contact-option+.wa-contact-option{margin-top:3px}
.wa-contact-option:hover,.wa-contact-option:focus-visible{background:#f0f5ff}
.wa-contact-icon{display:grid;place-items:center;flex:none;width:39px;height:39px;padding:9px;border-radius:12px;background:#edf2ff;color:#245cf0}
.wa-contact-icon img{display:block;width:24px;height:24px;max-width:none}
.wa-contact-whatsapp .wa-contact-icon{background:#e8f9ef;padding:7px}
.wa-contact-whatsapp:hover,.wa-contact-whatsapp:focus-visible{background:#effaf4}
.wa-contact-option b{display:block;font-size:14px;font-weight:750;line-height:1.4}
.wa-contact-option small{display:block;font-size:12px;line-height:1.6;color:#68758c;margin-top:2px;white-space:nowrap}
.wa-contact-arrow{margin-left:auto;font-size:17px;color:#8190aa}
.wa-contact-panel :focus-visible{outline:2px solid #2568ff;outline-offset:2px}
@keyframes wa-contact-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:860px){
 .wa-contact{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:102px;height:116px}
 .wa-contact-panel{width:min(304px,calc(100vw - 24px));padding:15px}
 .wa-contact-panel::before{right:44px}
}
@media(prefers-reduced-motion:reduce){.wa-contact-panel{animation:none}.wa-contact-option{transition:none}}

/* The visible team member animates; the other two scenes remain paused. */
.wa-float.wa-team{width:128px;height:142px;right:18px;bottom:max(16px,env(safe-area-inset-bottom));border-radius:28px;background:transparent;box-shadow:none;isolation:isolate;transition:transform .22s ease}
.wa-float.wa-team:hover{transform:translateY(-3px);box-shadow:none}
.wa-team-stage{position:absolute;inset:0;pointer-events:none}
.wa-team-stage::before{content:"";position:absolute;inset:34px 6px 10px;border:1px solid #dce3ff;border-radius:50%;background:linear-gradient(150deg,#f7f9ff,#dce6ff);box-shadow:0 8px 22px #171c5520}
.wa-team-scene{position:absolute;inset:0;opacity:0;transform-origin:50% 90%;visibility:hidden;transform:translate3d(-12px,4px,0) scale(.96);transition:opacity .32s,transform .32s,visibility .32s}
.wa-team-scene.is-active{opacity:1;visibility:visible;transform:none}
.wa-team-scene:not(.is-active) *{animation-play-state:paused!important}
.wa-float.wa-team .wa-team-avatar{position:absolute;left:-5%;bottom:5px;width:110%;aspect-ratio:1;max-width:none;transform-origin:50% 88%;animation:wa-team-breathe 2.4s ease-in-out infinite}
.wa-float.wa-team .wa-team-avatar img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;filter:none;object-fit:contain}
.wa-team-live{opacity:0}
.wa-team-call-live{animation:wa-talk-open 2.7s linear infinite}
.wa-team-call-closed{animation:wa-talk-closed 2.7s linear infinite}
.wa-team-phone-live{animation:wa-type-phone .72s linear infinite}
.wa-team-laptop-live{animation:wa-type-laptop .56s linear infinite}
.wa-team-phone .wa-team-avatar{animation:wa-team-texting 1.7s ease-in-out infinite}
.wa-team-laptop .wa-team-avatar{animation:wa-team-typing 1.5s ease-in-out infinite}
.wa-team-badge{position:absolute;right:0;bottom:0;width:40px;height:40px;display:grid;place-items:center;background:#25d366;border:3px solid #fff;border-radius:50%;box-shadow:0 3px 12px #142b2929;pointer-events:none}
.wa-float.wa-team .wa-team-badge img{width:26px;height:26px;filter:none}
.wa-team-activity{position:absolute;right:0;top:27px;display:flex;gap:3px;align-items:center;justify-content:center;width:31px;height:23px;background:#fff;border:1px solid #e0e7fb;border-radius:10px 10px 10px 2px;box-shadow:0 2px 8px #19295b16}
.wa-team-activity i{width:4px;height:4px;background:#45278f;border-radius:50%;animation:wa-team-dot 1.05s ease-in-out infinite}
.wa-team-activity i:nth-child(2){animation-delay:.14s}.wa-team-activity i:nth-child(3){animation-delay:.28s}
.wa-team-call .wa-team-activity{left:-2px;right:auto;top:37px;width:27px;height:29px;background:transparent;border:0;box-shadow:none;transform:rotate(180deg)}
.wa-team-activity svg{width:29px;height:29px;fill:none;stroke:#45278f;stroke-width:2.5;stroke-linecap:round}
.wa-team-activity path{animation:wa-team-ring 1.4s ease-out infinite;transform-origin:center}
.wa-team-label{position:absolute;right:calc(100% + 10px);bottom:22px;width:max-content;max-width:210px;padding:10px 14px;border-radius:13px;background:#171b45;color:#fff;font:600 13px/1.4 var(--font,Arial,sans-serif);box-shadow:0 5px 18px #151b4324;opacity:0;transform:translateX(5px);transition:opacity .18s,transform .18s;pointer-events:none}
.wa-team:is(:hover,:focus-visible) .wa-team-label{opacity:1;transform:none}
.has-wa-team .back-to-top{right:24px;bottom:max(174px,calc(env(safe-area-inset-bottom) + 158px))}
.wa-team.is-paused *{animation-play-state:paused!important}
@keyframes wa-team-breathe{0%,100%{transform:rotate(-1deg) translateY(0)}50%{transform:rotate(1deg) translateY(-2px)}}
@keyframes wa-team-texting{0%,100%{transform:rotate(.5deg)}40%{transform:rotate(-.7deg) translateY(-1px)}60%{transform:rotate(-.2deg)}}
@keyframes wa-team-typing{0%,50%,100%{transform:translateY(0)}25%,75%{transform:translateY(1px) rotate(.3deg)}}
@keyframes wa-team-dot{0%,60%,100%{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@keyframes wa-team-ring{0%,100%{opacity:.2;transform:scale(.86)}50%{opacity:1;transform:scale(1.05)}}
@keyframes wa-talk-open{0%,12%,28%,39%,60%,74%,100%{opacity:0}17%,23%,45%,53%,66%{opacity:1}}
@keyframes wa-talk-closed{0%,8%,31%,35%,79%,88%,100%{opacity:1}12%,27%,39%,74%,92%{opacity:0}}
@keyframes wa-type-phone{0%,10%,48%,58%,100%{opacity:0}22%,35%,72%,85%{opacity:1}}
@keyframes wa-type-laptop{0%,12%,60%,100%{opacity:0}28%,45%,78%,90%{opacity:1}}
@media(max-width:860px){
 .wa-float.wa-team{width:102px;height:116px;right:12px;bottom:max(12px,env(safe-area-inset-bottom))}
 .wa-team-stage::before{inset:29px 5px 8px}.wa-team-badge{width:35px;height:35px;border-width:2px}
 .wa-float.wa-team .wa-team-badge img{width:24px;height:24px}
 .wa-team-activity{top:20px;transform:scale(.9);transform-origin:right center}.wa-team-call .wa-team-activity{top:29px}
 .has-wa-team .back-to-top{right:17px;bottom:max(142px,calc(env(safe-area-inset-bottom) + 130px))}
 .wa-team-label{font-size:12px;padding:9px 11px;right:calc(100% + 5px);bottom:14px}
}
@media(hover:none){.wa-team:hover .wa-team-label{opacity:0}}
/* On phones the team stays within reach without covering the reading area. */
@media(max-width:600px){
 .wa-contact{transition:width .2s ease,height .2s ease}
 .wa-contact .wa-float.wa-team{transition:width .2s ease,height .2s ease,transform .2s ease}
 .wa-contact.is-compact:not(.is-open){width:68px;height:78px}
 .wa-contact.is-compact:not(.is-open) .wa-float.wa-team{width:68px;height:78px}
 .wa-contact.is-compact:not(.is-open) .wa-team-stage::before{inset:18px 3px 5px}
 .wa-contact.is-compact:not(.is-open) .wa-team-activity{display:none}
 .wa-contact.is-compact:not(.is-open) .wa-team-badge{width:29px;height:29px}
 .wa-contact.is-compact:not(.is-open) .wa-team-badge img{width:20px;height:20px}
 .has-wa-team.wa-contact-compact .back-to-top{bottom:max(104px,calc(env(safe-area-inset-bottom) + 92px))}
}
@media(prefers-reduced-motion:reduce){
 .wa-contact,.wa-contact .wa-float.wa-team,.wa-float.wa-team,.wa-team-label{transition:none}
 .wa-team *{animation:none!important}
 .wa-team-scene{opacity:0;transform:none}.wa-team-call{opacity:1}
 .wa-team-activity{display:none}
}
