#sbf-dock{display:flex;z-index:9999;}
#sbf-dock.sbf-fixed{position:fixed;right:20px;bottom:20px;left:auto;flex-direction:column;gap:14px;}
#sbf-dock.sbf-inline{position:static;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:30px;margin-top:8px;}
#sbf-anchor{min-height:70px;width:100%;}

.sbf-cluster{position:relative;width:52px;height:52px;transition:transform 2.6s cubic-bezier(.16,1,.3,1);}
#sbf-dock.sbf-inline .sbf-cluster{width:64px;height:64px;}

.sbf-bubble{position:relative;display:flex;width:100%;height:100%;border-radius:50%;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(255,255,255,.45);box-shadow:inset -6px -8px 12px rgba(0,0,0,.1),inset 6px 8px 10px rgba(255,255,255,.35),0 8px 20px rgba(2,40,50,.16);animation:sbfFloat 3.4s ease-in-out infinite;transition:transform .25s ease,box-shadow .25s ease;text-decoration:none;-webkit-backdrop-filter:blur(.5px);backdrop-filter:blur(.5px);}
.sbf-bubble::before{content:"";position:absolute;top:9%;left:16%;width:34%;height:22%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.9),rgba(255,255,255,0) 72%);transform:rotate(-20deg);pointer-events:none;}
.sbf-bubble::after{content:"";position:absolute;bottom:12%;right:18%;width:14%;height:9%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.5),rgba(255,255,255,0) 75%);pointer-events:none;}
.sbf-bubble svg{position:relative;z-index:1;width:22px;height:22px;fill:rgba(255,255,255,.95);filter:drop-shadow(0 1px 2px rgba(2,40,50,.4));}
#sbf-dock.sbf-inline .sbf-bubble svg{width:27px;height:27px;}
.sbf-bubble:hover{transform:scale(1.1);box-shadow:inset -6px -8px 12px rgba(0,0,0,.1),inset 6px 8px 10px rgba(255,255,255,.35),0 12px 26px rgba(2,40,50,.28);animation-play-state:paused;}
#sbf-dock.sbf-fixed .sbf-bubble:hover{transform:translateX(-6px) scale(1.08);}

.sbf-cluster:nth-child(1) .sbf-bubble{animation-delay:0s;}
.sbf-cluster:nth-child(2) .sbf-bubble{animation-delay:-.8s;}
.sbf-cluster:nth-child(3) .sbf-bubble{animation-delay:-1.6s;}
.sbf-cluster:nth-child(4) .sbf-bubble{animation-delay:-2.4s;}
.sbf-cluster:nth-child(5) .sbf-bubble{animation-delay:-3.2s;}
.sbf-cluster:nth-child(6) .sbf-bubble{animation-delay:-4s;}

.sbf-whatsapp{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.9),rgba(130,255,180,.62) 45%,rgba(55,210,130,.52) 100%);}
.sbf-email{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.9),rgba(255,205,130,.62) 45%,rgba(235,150,60,.52) 100%);}
.sbf-facebook{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.9),rgba(145,190,255,.62) 45%,rgba(60,145,235,.52) 100%);}
.sbf-instagram{background:radial-gradient(circle at 30% 100%,rgba(255,230,170,.58) 0%,rgba(255,175,155,.56) 30%,rgba(240,110,185,.54) 60%,rgba(130,140,245,.52) 100%);}
.sbf-tiktok{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.82),rgba(175,175,190,.52) 55%,rgba(80,80,95,.5) 100%);}
.sbf-maps{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.9),rgba(255,155,140,.62) 50%,rgba(220,90,70,.52) 100%);}

.sbf-mini{position:absolute;display:block;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.9),rgba(180,240,255,.28) 55%,rgba(180,240,255,.04) 80%);border:1px solid rgba(255,255,255,.5);opacity:.6;mix-blend-mode:screen;animation:sbfMini 4.2s ease-in-out infinite;}
.sbf-mini.m1{width:9px;height:9px;top:-5px;left:-5px;animation-delay:-.6s;}
.sbf-mini.m2{width:6px;height:6px;bottom:-3px;right:-6px;animation-delay:-1.9s;}

.sbf-tip{position:absolute;z-index:2;background:rgba(2,20,28,.9);color:#fff;font-size:11px;font-weight:700;padding:5px 10px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;}
#sbf-dock.sbf-fixed .sbf-tip{right:calc(100% + 10px);left:auto;top:50%;transform:translateY(-50%) translateX(4px);}
#sbf-dock.sbf-fixed .sbf-bubble:hover .sbf-tip{opacity:1;transform:translateY(-50%) translateX(0);}
#sbf-dock.sbf-inline .sbf-tip{left:50%;right:auto;bottom:calc(100% + 10px);top:auto;transform:translateX(-50%) translateY(4px);}
#sbf-dock.sbf-inline .sbf-bubble:hover .sbf-tip{opacity:1;transform:translateX(-50%) translateY(0);}

@media(max-width:480px){
  #sbf-dock.sbf-inline{justify-content:center;gap:12px;}
  #sbf-dock.sbf-inline .sbf-cluster{width:44px;height:44px;}
  #sbf-dock.sbf-inline .sbf-bubble{opacity:1;}
  #sbf-dock.sbf-inline .sbf-bubble svg{width:19px;height:19px;}
}

@media(prefers-reduced-motion: reduce){
  .sbf-cluster{transition:none;}
  .sbf-bubble{animation:none;transition:box-shadow .2s ease;}
  .sbf-bubble:hover,#sbf-dock.sbf-fixed .sbf-bubble:hover{transform:none;}
  .sbf-mini{animation:none;}
}

@keyframes sbfFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
@keyframes sbfMini{0%,100%{transform:translateY(0) translateX(0) scale(1);}50%{transform:translateY(-5px) translateX(1px) scale(1.1);}}
/* Eine einzelne, dauerhaft sichtbare WhatsApp-Blase am Handy. Das Dock oben
   erscheint mobil nur im Kontaktabschnitt der Startseite (#sbf-anchor, 6 von
   306 Seiten) - auf allen uebrigen Seiten gab es damit gar keinen Weg zu
   WhatsApp. Die Seite ist bewusst gewaehlt: Der Reduce-Motion-Knopf
   (#fd-motion-btn) sitzt unten links, bei Arabisch unten rechts - diese Blase
   steht ihm deshalb jeweils gegenueber. */
#sbf-wa-fix{position:fixed;right:16px;left:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:9998;transition:opacity .3s ease,transform .3s ease;}
[dir=rtl] #sbf-wa-fix{right:auto;left:16px;}
#sbf-wa-fix .sbf-cluster{width:56px;height:56px;}
#sbf-wa-fix .sbf-bubble svg{width:25px;height:25px;}
#sbf-wa-fix.sbf-weg{opacity:0;transform:translateY(14px) scale(.85);pointer-events:none;}
/* Sicherheitsnetz beim Drehen ins Querformat: Dort uebernimmt wieder das Dock,
   und beide nebeneinander waeren einer zu viel. */
@media(min-width:641px){ #sbf-wa-fix{display:none;} }
@media(prefers-reduced-motion: reduce){ #sbf-wa-fix{transition:none;} }
