.float.mascot-cta{isolation:isolate;overflow:visible;background:radial-gradient(circle at 34% 26%,#fffdf8 0%,#f7eee4 58%,#efd7c2 100%);box-shadow:0 12px 32px rgba(25,54,36,.2),0 0 0 3px #496f53,0 0 0 7px #f8eee4,0 0 26px rgba(239,77,35,.18)}
.float.mascot-cta .mascot-character{position:absolute;z-index:2;top:-51px;left:50%;width:92px;height:92px;transform:translateX(-50%);perspective:450px;pointer-events:none}
.float.mascot-cta .mascot-rotor{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;will-change:transform}
.float.mascot-cta .mascot-character img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:none;backface-visibility:hidden;filter:drop-shadow(0 5px 5px rgba(33,58,36,.19))}
.float.mascot-cta .mascot-character img.mascot-back{transform:rotateY(180deg)}
.float.mascot-cta .mascot-speech{position:absolute;z-index:3;top:-75px;right:4px;min-width:46px;padding:5px 9px;border-radius:18px 18px 18px 5px;background:#fff;border:1px solid #eadfd5;color:#31573c;font-size:.8rem;font-weight:900;opacity:0;transform:translateY(5px) scale(.8);pointer-events:none;box-shadow:0 10px 28px rgba(24,46,31,.14);transition:opacity .24s ease,transform .24s ease}
.float.mascot-cta .mascot-speech.is-visible{opacity:1;transform:translateY(0) scale(1)}
.float.mascot-cta .mascot-cta-title,.float.mascot-cta .mascot-cta-sub{position:relative;z-index:2}
.float.mascot-cta .mascot-cta-title{color:#1f472d;text-shadow:0 1px 0 rgba(255,255,255,.65)}
.float.mascot-cta .mascot-character{top:-133px;width:205px;height:205px}
.float.mascot-cta .mascot-rotor{transform-origin:50% 90%}
.float.mascot-cta .mascot-fallback{position:absolute;z-index:1;top:-133px;left:50%;width:205px;height:205px;transform:translateX(-50%);object-fit:contain;pointer-events:none}
.float.mascot-cta .mascot-speech{top:-98px;right:calc(100% - 4px);width:max-content;max-width:145px;min-width:100px;padding:8px 11px;font-size:.82rem;line-height:1.35;white-space:normal;border-radius:18px 18px 6px 18px}
.float.mascot-cta .mascot-speech:after{content:"";position:absolute;right:-8px;bottom:10px;border-width:7px 0 7px 9px;border-style:solid;border-color:transparent transparent transparent #fff}
.float.mascot-cta{width:160px;height:160px;padding:96px 8px 10px;right:17px}
.float.mascot-cta .mascot-cta-title{position:absolute;bottom:29px;font-size:1.35rem;font-weight:950;line-height:1.12;white-space:nowrap}
.float.mascot-cta .mascot-cta-sub{position:absolute;bottom:11px;font-size:.88rem;font-weight:900;line-height:1.2;color:#254b31;white-space:nowrap}
/* A quiet idle loop continues between the larger, randomly selected gestures. */
.float.mascot-cta .mascot-character{transform-origin:50% 90%;animation:mascot-idle 3.6s ease-in-out infinite}
.float.mascot-cta .mascot-fallback{transform-origin:50% 90%;animation:mascot-fallback-idle 3.6s ease-in-out infinite}
@keyframes mascot-idle{0%,100%{transform:translateX(-50%) translateY(0) rotate(-2deg) scale(1)}35%{transform:translateX(-50%) translateY(-3px) rotate(2deg) scale(1.025,1.015)}70%{transform:translateX(-50%) translateY(-1px) rotate(-1deg) scale(.99,1.02)}}
@keyframes mascot-fallback-idle{0%,100%{transform:translateX(-50%) translateY(0) rotate(-2deg) scale(1)}35%{transform:translateX(-50%) translateY(-3px) rotate(2deg) scale(1.025,1.015)}70%{transform:translateX(-50%) translateY(-1px) rotate(-1deg) scale(.99,1.02)}}
.float.mascot-cta.is-idle-paused .mascot-character,.float.mascot-cta.is-idle-paused .mascot-fallback{animation-play-state:paused}
@media(max-width:600px){.float.mascot-cta{right:13px;width:103px;height:103px;padding:60px 4px 7px;box-shadow:0 9px 22px rgba(25,54,36,.2),0 0 0 2px #496f53,0 0 0 5px #f8eee4}.float.mascot-cta .mascot-character{top:-85px;width:135px;height:135px}.float.mascot-cta .mascot-fallback{top:-85px;width:135px;height:135px}.float.mascot-cta .mascot-cta-title{bottom:22px;font-size:.98rem}.float.mascot-cta .mascot-cta-sub{bottom:9px;font-size:.69rem}.float.mascot-cta .mascot-speech{top:-69px;right:calc(100% - 6px);font-size:.7rem;min-width:80px;max-width:110px;padding:5px 7px}}
@media(prefers-reduced-motion:reduce){.float.mascot-cta .mascot-character,.float.mascot-cta .mascot-fallback{animation:none}.float.mascot-cta .mascot-rotor{will-change:auto}.float.mascot-cta .mascot-speech{transition:none}}
.float.mascot-cta::before{content:"";position:absolute;inset:-13px;border-radius:50%;background:conic-gradient(from 20deg,transparent 0 34%,rgba(239,77,35,.24) 44%,transparent 55% 78%,rgba(255,255,255,.9) 88%,transparent);filter:blur(9px);z-index:-1;pointer-events:none;animation:mascot-aura 9s linear infinite}
.float.mascot-cta .mascot-character img{filter:drop-shadow(0 12px 10px rgba(28,63,39,.22)) drop-shadow(0 0 7px rgba(239,77,35,.14))}
.float.mascot-cta:hover .mascot-character img,.float.mascot-cta:focus-visible .mascot-character img{filter:drop-shadow(0 16px 14px rgba(28,63,39,.28)) drop-shadow(0 0 15px rgba(239,77,35,.28))}
@keyframes mascot-aura{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.float.mascot-cta::before{animation:none}}

/* The feet touch the highlighted top of the consultation ball; keep the crown inside the viewport. */
.float.mascot-cta .mascot-character,
.float.mascot-cta .mascot-fallback{top:-101px;left:calc(50% - 16px)}
.float.mascot-cta .mascot-character{pointer-events:auto;cursor:pointer}
.float.mascot-cta .mascot-character:focus-visible{outline:3px solid #415c9e;outline-offset:5px;border-radius:45%}
.float.mascot-cta .mascot-look{display:block;width:100%;height:100%;transform:perspective(500px) rotateY(var(--look-x,0deg)) rotateX(var(--look-y,0deg));transition:transform .22s ease-out}
.float.mascot-cta:hover .mascot-character,.float.mascot-cta .mascot-character:focus-visible{animation:mascot-hover .85s ease-in-out infinite alternate}
@keyframes mascot-hover{from{transform:translateX(-50%) scale(1.08) rotate(-2deg)}to{transform:translateX(-50%) scale(1.1) rotate(2deg)}}
.float.mascot-cta .mascot-character img{object-position:center bottom}
@media(max-width:600px){
  .float.mascot-cta .mascot-character,
  .float.mascot-cta .mascot-fallback{top:-65px;left:calc(50% - 7px)}
}
@media(prefers-reduced-motion:reduce){.float.mascot-cta:hover .mascot-character,.float.mascot-cta .mascot-character:focus-visible{animation:none}.float.mascot-cta .mascot-look{transition:none}}

/* Keep both painted sides on the same 3D plane, with only the visible side rendered. */
.float.mascot-cta .mascot-look{transform-style:preserve-3d}
.float.mascot-cta .mascot-character img.mascot-front,
.float.mascot-cta .mascot-character img.mascot-back{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.float.mascot-cta .mascot-character img{filter:drop-shadow(0 7px 6px rgba(28,63,39,.2))}
.float.mascot-cta::before{animation:none;filter:blur(5px)}

/* A small rounded speech bubble points to the mascot's mouth. */
.float.mascot-cta .mascot-speech{
  top:-41px;right:calc(100% - 20px);max-width:168px;min-width:105px;
  padding:10px 14px;background:#fffdf9;border:2px solid #d3e7ce;
  border-radius:22px 22px 8px 22px;color:#32533a;
  box-shadow:0 7px 0 #dcebd6,0 15px 24px rgba(24,46,31,.17);
  transform-origin:100% 75%;transform:translateY(7px) scale(.85);
  transition:opacity .25s ease,transform .35s cubic-bezier(.2,1.25,.35,1);
}
.float.mascot-cta .mascot-speech.is-visible{transform:translateY(0) scale(1)}
.float.mascot-cta .mascot-speech::after{bottom:17px;right:-11px;border-width:9px 0 9px 12px;border-color:transparent transparent transparent #fffdf9}
@media(max-width:600px){.float.mascot-cta .mascot-speech{top:-27px;right:calc(100% - 7px);max-width:118px;min-width:84px;padding:7px 10px;border-radius:17px 17px 6px 17px;font-size:.72rem}.float.mascot-cta .mascot-speech::after{bottom:11px}}
@media(prefers-reduced-motion:reduce){.float.mascot-cta .mascot-speech{transition:none}}
