.floating-call{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:40;width:112px;height:132px;display:grid;place-items:center;color:#fff;text-decoration:none;border-radius:28px;outline-offset:1px;-webkit-tap-highlight-color:transparent}
.floating-call:focus-visible{outline:3px solid var(--accent);background:#f6f5f2c9}
.floating-call-art{position:relative;display:block;width:112px;height:132px;filter:drop-shadow(0 9px 9px #142c4938);transition:transform .35s}
.floating-call:hover .floating-call-art,.floating-call:focus-visible .floating-call-art{transform:translateY(-3px)}
.floating-call-world,.floating-call-fallback{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.floating-call-world canvas{display:block;width:100%;height:100%}
.floating-call.is-3d .floating-call-fallback{visibility:hidden}
.floating-call-phone{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),var(--accent-hover));box-shadow:0 3px 7px color-mix(in srgb,var(--accent-hover) 22%,transparent),inset 0 1px 1px #ffffff65;border:1px solid #ffffffa6}
.floating-call-phone svg{width:18px;height:18px}
.floating-call-label{position:absolute;right:calc(100% + 4px);top:50%;transform:translate(8px,-50%);padding:12px 16px;background:#fff;color:#173551;box-shadow:0 5px 24px #433d331a;border:1px solid #edebe8;border-radius:12px;font-size:14px;line-height:1.5;font-weight:700;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .2s,visibility .2s}
.floating-call-label span{display:block;font-size:11px;font-weight:500;color:#7b7770;margin-top:2px}
.floating-call:hover .floating-call-label,.floating-call:focus-visible .floating-call-label{opacity:1;visibility:visible;transform:translate(0,-50%)}
.floating-call-fallback-halo{opacity:0;transform:scale(.55) rotate(-11deg);transform-origin:60px 70px;transform-box:view-box;transition:transform .6s cubic-bezier(.22,1,.36,1),opacity .3s}
.floating-call:hover .floating-call-fallback-halo,.floating-call:focus-visible .floating-call-fallback-halo{opacity:1;transform:rotate(-11deg)}
@media(max-width:540px){.floating-call{right:max(8px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:86px;height:104px}.floating-call-art{width:86px;height:104px}.floating-call-phone{width:28px;height:28px}.floating-call-phone svg{width:16px;height:16px}.floating-call-label{padding:10px 12px}}
@media(hover:none){.floating-call:hover .floating-call-art{transform:none}.floating-call:hover .floating-call-label{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.floating-call-art,.floating-call-label,.floating-call-fallback-halo{transition:none}}

/* One tooth lives beside the headline, then becomes the floating call link. */
.hero h1 .hero-smile-line{overflow:visible}
.hero h1 .hero-smile-row{display:flex;align-items:center;gap:.12em;padding-right:0}
.hero h1 .hero-tooth-slot{position:relative;display:block;flex:0 0 1.3em;width:1.3em;height:1.09em;letter-spacing:normal}
.floating-call.is-hero{position:absolute;inset:auto 0;top:50%;transform:translateY(-50%);width:100%;height:auto;aspect-ratio:112/132;pointer-events:none;border-radius:0}
.floating-call.is-hero .floating-call-art{width:100%;height:100%;transform:none;filter:drop-shadow(0 0 .6px #1b345a59) drop-shadow(0 .14em .16em #1b345a33)}
.floating-call.is-hero .floating-call-phone,.floating-call.is-hero .floating-call-label{display:none}
.floating-call.is-hero .floating-call-fallback-halo{opacity:1;transform:rotate(-11deg)}

/* SVG-зуб показывается, только если 3D не запустилось. */
.tooth-pending .floating-call-fallback{visibility:hidden}
