.tfsd-floating-dock{position:fixed;top:50%;z-index:99999;width:260px;padding:14px;border-radius:24px;background:var(--tfsd-bg,rgba(255,255,255,.96));box-shadow:0 18px 45px rgba(0,0,0,.22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:width .28s ease,padding .28s ease,border-radius .28s ease,transform .28s ease;overflow:hidden;box-sizing:border-box}.tfsd-floating-dock.tfsd-right{right:22px;transform:translateY(-50%)}.tfsd-floating-dock.tfsd-left{left:22px;transform:translateY(-50%)}.tfsd-toggle{width:100%;border:0;cursor:pointer;border-radius:18px;padding:10px 12px;background:var(--tfsd-accent,#18315f);color:#fff;font-size:21px;line-height:1;min-height:48px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 -1px 0 rgba(255,255,255,.18)}.tfsd-closed-icon{display:none}.tfsd-closed-icon img{width:30px;height:30px;object-fit:contain;display:block}.tfsd-title,.tfsd-section-title{margin:12px 0 10px;font-size:14px;line-height:1.35;font-weight:800;color:#111;text-align:center}.tfsd-section-title{margin-top:12px;padding-top:10px;border-top:1px solid rgba(0,0,0,.08);font-size:12px;letter-spacing:.03em;text-transform:uppercase;opacity:.78}.tfsd-buttons,.tfsd-follow-buttons{display:grid;grid-template-columns:1fr;gap:8px}.tfsd-btn{display:flex;align-items:center;gap:10px;width:100%;border:1px solid rgba(0,0,0,.08);background:#fff;color:#111;text-decoration:none!important;border-radius:16px;padding:9px 10px;cursor:pointer;box-sizing:border-box;font:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.tfsd-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.1);border-color:rgba(0,0,0,.14)}.tfsd-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:var(--tfsd-accent,#18315f);color:#fff;flex:0 0 auto;overflow:hidden}.tfsd-icon svg{width:18px;height:18px;fill:currentColor;display:block}.tfsd-img-icon{background:transparent!important}.tfsd-img-icon img{width:100%;height:100%;object-fit:contain;display:block}.tfsd-btn em{font-style:normal;font-size:13px;font-weight:800}.tfsd-icons-only .tfsd-btn{justify-content:center;padding:9px}.tfsd-icons-only .tfsd-btn em{display:none}.tfsd-icons-only .tfsd-buttons,.tfsd-icons-only .tfsd-follow-buttons{grid-template-columns:repeat(4,1fr)}.tfsd-brand .tfsd-brand-whatsapp .tfsd-icon{background:#25D366;color:#fff}.tfsd-brand .tfsd-brand-facebook .tfsd-icon{background:#1877F2;color:#fff}.tfsd-brand .tfsd-brand-instagram .tfsd-icon{background:radial-gradient(circle at 30% 30%,#fdf497 0%,#fdf497 12%,#fd5949 42%,#d6249f 68%,#285AEB 100%);color:#fff}.tfsd-brand .tfsd-brand-telegram .tfsd-icon{background:#229ED9;color:#fff}.tfsd-brand .tfsd-brand-linkedin .tfsd-icon{background:#0A66C2;color:#fff}.tfsd-brand .tfsd-brand-x .tfsd-icon{background:#000;color:#fff}.tfsd-brand .tfsd-brand-email .tfsd-icon{background:#6b7280;color:#fff}.tfsd-brand .tfsd-brand-copy .tfsd-icon{background:#111827;color:#fff}.tfsd-brand .tfsd-brand-youtube .tfsd-icon{background:#FF0000;color:#fff}.tfsd-brand .tfsd-brand-tiktok .tfsd-icon{background:#000;color:#fff}.tfsd-mono .tfsd-icon{background:var(--tfsd-accent,#18315f);color:#fff}.tfsd-shortcode{margin-top:12px}.tfsd-shortcode>*{max-width:100%}.tfsd-floating-dock.is-docked{width:66px;padding:9px;border-radius:999px;background:rgba(255,255,255,.92)}.tfsd-floating-dock.is-docked .tfsd-content{display:none}.tfsd-floating-dock.is-docked .tfsd-open-icon{display:none}.tfsd-floating-dock.is-docked .tfsd-closed-icon{display:flex;align-items:center;justify-content:center}.tfsd-floating-dock.is-docked .tfsd-toggle{width:48px;height:48px;min-height:48px;border-radius:999px;padding:0;margin:0 auto;background:linear-gradient(135deg,var(--tfsd-accent,#18315f),#b8326b);box-shadow:0 10px 30px rgba(0,0,0,.18);font-size:24px}.tfsd-copy.is-copied em::after{content:' ✓'}@media (max-width:767px){.tfsd-floating-dock,.tfsd-floating-dock.tfsd-right,.tfsd-floating-dock.tfsd-left{top:auto;left:16px;right:16px;bottom:16px;width:auto;max-width:none;transform:none}.tfsd-buttons,.tfsd-follow-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.tfsd-icons-only .tfsd-buttons,.tfsd-icons-only .tfsd-follow-buttons{grid-template-columns:repeat(4,1fr)}.tfsd-floating-dock.is-docked{left:auto;right:18px;width:66px}}


/* v1.4.0 fixes: custom docked icon fully replaces default button art; mobile docked position respects left/right setting. */
.tfsd-floating-dock.tfsd-has-docked-image.is-docked{padding:7px;background:rgba(255,255,255,.92);}
.tfsd-floating-dock.tfsd-has-docked-image.is-docked .tfsd-toggle{background:transparent !important;box-shadow:none !important;overflow:hidden;}
.tfsd-floating-dock.tfsd-has-docked-image.is-docked .tfsd-closed-icon{width:48px;height:48px;border-radius:999px;overflow:hidden;background:transparent;}
.tfsd-floating-dock.tfsd-has-docked-image.is-docked .tfsd-closed-icon img{width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width:767px){.tfsd-floating-dock.tfsd-left.is-docked{left:18px;right:auto;width:66px;}.tfsd-floating-dock.tfsd-right.is-docked{right:18px;left:auto;width:66px;}}

/* v1.5.0: centered, single-layer custom dock icon with configurable circle/icon size. */
.tfsd-floating-dock.is-docked{
  width:var(--tfsd-docked-size,76px) !important;
  height:var(--tfsd-docked-size,76px) !important;
  padding:0 !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.96) !important;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.tfsd-floating-dock.is-docked .tfsd-toggle{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:999px !important;
  background:transparent !important;
  box-shadow:none !important;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.tfsd-floating-dock.is-docked .tfsd-closed-icon{
  width:var(--tfsd-docked-icon-size,64px) !important;
  height:var(--tfsd-docked-icon-size,64px) !important;
  border-radius:999px;
  overflow:hidden;
  background:transparent !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.tfsd-floating-dock.is-docked .tfsd-closed-icon img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:999px;
}
.tfsd-floating-dock.is-docked:not(.tfsd-has-docked-image) .tfsd-closed-icon{
  background:linear-gradient(135deg,var(--tfsd-accent,#18315f),#b8326b) !important;
  color:#fff;
  font-size:calc(var(--tfsd-docked-icon-size,64px) * .42);
}
@media (max-width:767px){
  .tfsd-floating-dock.tfsd-left.is-docked{left:18px !important;right:auto !important;width:var(--tfsd-docked-size,76px) !important;height:var(--tfsd-docked-size,76px) !important;}
  .tfsd-floating-dock.tfsd-right.is-docked{right:18px !important;left:auto !important;width:var(--tfsd-docked-size,76px) !important;height:var(--tfsd-docked-size,76px) !important;}
}


/* v1.8.0: separate desktop/mobile positions. */
.tfsd-floating-dock.tfsd-desktop-top-left{top:22px;bottom:auto;left:22px;right:auto;transform:none;}
.tfsd-floating-dock.tfsd-desktop-top-right{top:22px;bottom:auto;right:22px;left:auto;transform:none;}
.tfsd-floating-dock.tfsd-desktop-top-center{top:22px;bottom:auto;left:50%;right:auto;transform:translateX(-50%);}
.tfsd-floating-dock.tfsd-desktop-bottom-left{bottom:22px;top:auto;left:22px;right:auto;transform:none;}
.tfsd-floating-dock.tfsd-desktop-bottom-right{bottom:22px;top:auto;right:22px;left:auto;transform:none;}
.tfsd-floating-dock.tfsd-desktop-bottom-center{bottom:22px;top:auto;left:50%;right:auto;transform:translateX(-50%);}
@media (max-width:767px){
  .tfsd-floating-dock,
  .tfsd-floating-dock.tfsd-desktop-top-left,
  .tfsd-floating-dock.tfsd-desktop-top-right,
  .tfsd-floating-dock.tfsd-desktop-top-center,
  .tfsd-floating-dock.tfsd-desktop-bottom-left,
  .tfsd-floating-dock.tfsd-desktop-bottom-right,
  .tfsd-floating-dock.tfsd-desktop-bottom-center{width:calc(100% - 32px);max-width:380px;}
  .tfsd-floating-dock.tfsd-mobile-top-left{top:16px!important;bottom:auto!important;left:16px!important;right:auto!important;transform:none!important;}
  .tfsd-floating-dock.tfsd-mobile-top-right{top:16px!important;bottom:auto!important;right:16px!important;left:auto!important;transform:none!important;}
  .tfsd-floating-dock.tfsd-mobile-top-center{top:16px!important;bottom:auto!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;}
  .tfsd-floating-dock.tfsd-mobile-bottom-left{bottom:16px!important;top:auto!important;left:16px!important;right:auto!important;transform:none!important;}
  .tfsd-floating-dock.tfsd-mobile-bottom-right{bottom:16px!important;top:auto!important;right:16px!important;left:auto!important;transform:none!important;}
  .tfsd-floating-dock.tfsd-mobile-bottom-center{bottom:16px!important;top:auto!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;}
  .tfsd-floating-dock.is-docked{width:var(--tfsd-docked-size,76px)!important;height:var(--tfsd-docked-size,76px)!important;max-width:none!important;}
}

/* v1.9.0: restored open/close menu icon controls + close icon position inside expanded dock. */
.tfsd-floating-dock{position:fixed;}
.tfsd-floating-dock:not(.is-docked){position:fixed;padding-top:calc(var(--tfsd-menu-button-size,44px) + 18px);padding-bottom:14px;}
.tfsd-floating-dock:not(.is-docked).tfsd-close-bottom-left,
.tfsd-floating-dock:not(.is-docked).tfsd-close-bottom-right,
.tfsd-floating-dock:not(.is-docked).tfsd-close-bottom-center{padding-top:14px;padding-bottom:calc(var(--tfsd-menu-button-size,44px) + 18px);}
.tfsd-floating-dock:not(.is-docked) .tfsd-toggle{
  position:absolute;
  width:var(--tfsd-menu-button-size,44px) !important;
  height:var(--tfsd-menu-button-size,44px) !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:var(--tfsd-menu-radius,16px) !important;
  background:var(--tfsd-menu-bg,var(--tfsd-accent,#18315f)) !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(0,0,0,.16) !important;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}
.tfsd-floating-dock:not(.is-docked) .tfsd-open-icon{display:flex;align-items:center;justify-content:center;width:var(--tfsd-menu-icon-size,22px);height:var(--tfsd-menu-icon-size,22px);font-size:var(--tfsd-menu-icon-size,22px);line-height:1;}
.tfsd-floating-dock:not(.is-docked) .tfsd-open-icon img{width:100%;height:100%;object-fit:contain;display:block;}
.tfsd-floating-dock.tfsd-close-top-left:not(.is-docked) .tfsd-toggle{top:12px;left:12px;right:auto;bottom:auto;transform:none;}
.tfsd-floating-dock.tfsd-close-top-right:not(.is-docked) .tfsd-toggle{top:12px;right:12px;left:auto;bottom:auto;transform:none;}
.tfsd-floating-dock.tfsd-close-top-center:not(.is-docked) .tfsd-toggle{top:12px;left:50%;right:auto;bottom:auto;transform:translateX(-50%);}
.tfsd-floating-dock.tfsd-close-bottom-left:not(.is-docked) .tfsd-toggle{bottom:12px;left:12px;right:auto;top:auto;transform:none;}
.tfsd-floating-dock.tfsd-close-bottom-right:not(.is-docked) .tfsd-toggle{bottom:12px;right:12px;left:auto;top:auto;transform:none;}
.tfsd-floating-dock.tfsd-close-bottom-center:not(.is-docked) .tfsd-toggle{bottom:12px;left:50%;right:auto;top:auto;transform:translateX(-50%);}
@media (max-width:767px){
  .tfsd-floating-dock:not(.is-docked){padding-top:calc(var(--tfsd-menu-button-size,44px) + 16px);}
  .tfsd-floating-dock:not(.is-docked).tfsd-close-bottom-left,
  .tfsd-floating-dock:not(.is-docked).tfsd-close-bottom-right,
  .tfsd-floating-dock:not(.is-docked).tfsd-close-bottom-center{padding-top:14px;padding-bottom:calc(var(--tfsd-menu-button-size,44px) + 16px);}
}

/* v1.10.0 Motion Control Edition: configurable open/close animations with delayed close. */
.tfsd-motion{--tfsd-motion-distance:18px;--tfsd-motion-scale:.92;--tfsd-motion-rotate:7deg;}
.tfsd-motion .tfsd-content,.tfsd-motion .tfsd-toggle,.tfsd-motion .tfsd-btn{transition-duration:var(--tfsd-motion-duration,280ms);transition-timing-function:var(--tfsd-motion-easing,ease-out);}
.tfsd-motion:not(.is-docked) .tfsd-content{transform-origin:center;}
.tfsd-motion[data-tfsd-motion-dir="up"]{--tfsd-motion-x:0;--tfsd-motion-y:var(--tfsd-motion-distance);}
.tfsd-motion[data-tfsd-motion-dir="down"]{--tfsd-motion-x:0;--tfsd-motion-y:calc(var(--tfsd-motion-distance) * -1);}
.tfsd-motion[data-tfsd-motion-dir="left"]{--tfsd-motion-x:var(--tfsd-motion-distance);--tfsd-motion-y:0;}
.tfsd-motion[data-tfsd-motion-dir="right"]{--tfsd-motion-x:calc(var(--tfsd-motion-distance) * -1);--tfsd-motion-y:0;}
.tfsd-motion.is-opening[data-tfsd-open-animation="fade"] .tfsd-content{animation:tfsdFadeIn var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-opening[data-tfsd-open-animation="slide"] .tfsd-content{animation:tfsdSlideIn var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-opening[data-tfsd-open-animation="scale"] .tfsd-content{animation:tfsdScaleIn var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-opening[data-tfsd-open-animation="slide-fade"] .tfsd-content{animation:tfsdSlideFadeIn var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-opening[data-tfsd-open-animation="scale-fade"] .tfsd-content{animation:tfsdScaleFadeIn var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-opening[data-tfsd-open-animation="bounce"] .tfsd-content{animation:tfsdBounceIn var(--tfsd-motion-duration,280ms) cubic-bezier(.2,1.4,.3,1) both;}
.tfsd-motion.is-opening[data-tfsd-open-animation="flip"] .tfsd-content{animation:tfsdFlipIn var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-closing[data-tfsd-close-animation="fade"] .tfsd-content{animation:tfsdFadeOut var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-closing[data-tfsd-close-animation="slide"] .tfsd-content{animation:tfsdSlideOut var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-closing[data-tfsd-close-animation="scale"] .tfsd-content{animation:tfsdScaleOut var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-closing[data-tfsd-close-animation="slide-fade"] .tfsd-content{animation:tfsdSlideFadeOut var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-closing[data-tfsd-close-animation="scale-fade"] .tfsd-content{animation:tfsdScaleFadeOut var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;}
.tfsd-motion.is-closing[data-tfsd-close-animation="bounce"] .tfsd-content{animation:tfsdBounceOut var(--tfsd-motion-duration,280ms) ease-in both;}
.tfsd-motion.is-closing[data-tfsd-close-animation="flip"] .tfsd-content{animation:tfsdFlipOut var(--tfsd-motion-duration,280ms) ease-in both;}
.tfsd-motion.is-opening[data-tfsd-open-animation="none"] .tfsd-content,.tfsd-motion.is-closing[data-tfsd-close-animation="none"] .tfsd-content{animation:none!important;}
.tfsd-stagger.is-opening .tfsd-btn{animation:tfsdItemIn var(--tfsd-motion-duration,280ms) var(--tfsd-motion-easing,ease-out) both;animation-delay:calc(var(--tfsd-item-index,0) * 35ms);}
.tfsd-stagger.is-closing .tfsd-btn{animation:tfsdItemOut calc(var(--tfsd-motion-duration,280ms) * .75) ease-in both;animation-delay:calc(var(--tfsd-item-index,0) * 18ms);}
@keyframes tfsdFadeIn{from{opacity:0}to{opacity:1}}
@keyframes tfsdFadeOut{from{opacity:1}to{opacity:0}}
@keyframes tfsdSlideIn{from{transform:translate(var(--tfsd-motion-x,0),var(--tfsd-motion-y,18px))}to{transform:translate(0,0)}}
@keyframes tfsdSlideOut{from{transform:translate(0,0)}to{transform:translate(var(--tfsd-motion-x,0),var(--tfsd-motion-y,18px))}}
@keyframes tfsdScaleIn{from{transform:scale(var(--tfsd-motion-scale,.92))}to{transform:scale(1)}}
@keyframes tfsdScaleOut{from{transform:scale(1)}to{transform:scale(var(--tfsd-motion-scale,.92))}}
@keyframes tfsdSlideFadeIn{from{opacity:0;transform:translate(var(--tfsd-motion-x,0),var(--tfsd-motion-y,18px))}to{opacity:1;transform:translate(0,0)}}
@keyframes tfsdSlideFadeOut{from{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(var(--tfsd-motion-x,0),var(--tfsd-motion-y,18px))}}
@keyframes tfsdScaleFadeIn{from{opacity:0;transform:scale(var(--tfsd-motion-scale,.92))}to{opacity:1;transform:scale(1)}}
@keyframes tfsdScaleFadeOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(var(--tfsd-motion-scale,.92))}}
@keyframes tfsdBounceIn{0%{opacity:0;transform:translate(var(--tfsd-motion-x,0),var(--tfsd-motion-y,18px)) scale(.88)}70%{opacity:1;transform:translate(0,0) scale(1.04)}100%{opacity:1;transform:translate(0,0) scale(1)}}
@keyframes tfsdBounceOut{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--tfsd-motion-x,0),var(--tfsd-motion-y,18px)) scale(.9)}}
@keyframes tfsdFlipIn{from{opacity:0;transform:perspective(700px) rotateX(var(--tfsd-motion-rotate,7deg)) translate(var(--tfsd-motion-x,0),var(--tfsd-motion-y,18px))}to{opacity:1;transform:perspective(700px) rotateX(0deg) translate(0,0)}}
@keyframes tfsdFlipOut{from{opacity:1;transform:perspective(700px) rotateX(0deg) translate(0,0)}to{opacity:0;transform:perspective(700px) rotateX(calc(var(--tfsd-motion-rotate,7deg) * -1)) translate(var(--tfsd-motion-x,0),var(--tfsd-motion-y,18px))}}
@keyframes tfsdItemIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes tfsdItemOut{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(6px) scale(.97)}}
@media (prefers-reduced-motion:reduce){.tfsd-motion .tfsd-content,.tfsd-motion .tfsd-btn,.tfsd-motion .tfsd-toggle{animation:none!important;transition:none!important;}}


/* v1.10.2 Initial Load Animation Guard + shell/content sequencing.
   The dock is hidden until JS applies the saved/default state, preventing page-load state flashes.
   Shell resizing is intentionally not animated; only inner content animates. */
.tfsd-floating-dock.tfsd-preinit{visibility:hidden!important;transition:none!important;animation:none!important;}
.tfsd-floating-dock.tfsd-preinit *{transition:none!important;animation:none!important;}
.tfsd-floating-dock.tfsd-no-motion,
.tfsd-floating-dock.tfsd-no-motion *{transition:none!important;animation:none!important;}
.tfsd-floating-dock{transition:transform .28s ease!important;}
.tfsd-floating-dock.tfsd-ready{will-change:transform;}
.tfsd-floating-dock:not(.is-docked) .tfsd-content{display:block;}
.tfsd-floating-dock.is-closing .tfsd-content{display:block;pointer-events:none;}
.tfsd-floating-dock.is-opening .tfsd-content{display:block;}
