/* Isolated native page tools. Only the label moves; the 50px circular link never stretches. */
body.sibo-site .sibo-floating-actions {
    --sibo-floating-control-size: 50px;
    --sibo-floating-label-gap: 10px;
    --sibo-floating-inset: 30px;
    --sibo-floating-duration: .45s;
    position: fixed;
    right: calc(var(--sibo-floating-inset) + env(safe-area-inset-right, 0px));
    bottom: calc(var(--sibo-floating-inset) + env(safe-area-inset-bottom, 0px));
    z-index: 80;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: var(--sibo-floating-control-size);
    pointer-events: none;
}
body.sibo-site .sibo-floating-actions[hidden],
body.sibo-site .sibo-floating-actions .sibo-float-tool[hidden],
body.sibo-site:is(.sibo-mobile-open, .sibo-mega-open, .sibo-search-open) .sibo-floating-actions,
body.sibo-site:has(dialog[open]) .sibo-floating-actions { display: none; }
body.sibo-site .sibo-floating-actions .sibo-float-tool {
    position: relative;
    isolation: isolate;
    display: grid;
    place-items: center;
    flex: 0 0 var(--sibo-floating-control-size);
    box-sizing: border-box;
    width: var(--sibo-floating-control-size);
    height: var(--sibo-floating-control-size);
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 50%;
    background: rgb(53 56 60 / 74%);
    color: #edf1f2;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    box-shadow: inset 0 0 0 1px rgb(255 255 255 / 9%);
    line-height: 1;
    text-decoration: none;
    transform: none;
    animation: none;
    pointer-events: auto;
    transition: color var(--sibo-floating-duration) ease, background-color var(--sibo-floating-duration) ease;
}
/* Transparent bridge exists only while active; hidden labels cannot intercept the page. */
body.sibo-site .sibo-floating-actions .sibo-float-tool--contact::before {
    content: "";
    position: absolute;
    top: 0;
    right: 100%;
    width: var(--sibo-floating-label-gap);
    height: 100%;
    pointer-events: none;
}
body.sibo-site .sibo-floating-actions .sibo-float-tool-label {
    position: absolute;
    right: calc(100% + var(--sibo-floating-label-gap));
    top: 50%;
    z-index: -1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 46px;
    padding: 0 20px;
    border: 1px solid rgb(33 196 184 / 18%);
    border-radius: 999px;
    background: rgb(53 56 60 / 84%);
    color: #edf1f2;
    box-shadow: inset 0 0 14px rgb(33 196 184 / 12%);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    font-family: inherit;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.35;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transform: translate(18px, -50%);
    pointer-events: none;
    transition: opacity var(--sibo-floating-duration) ease, transform var(--sibo-floating-duration) ease,
        visibility 0s linear var(--sibo-floating-duration);
}
body.sibo-site .sibo-floating-actions .sibo-float-tool-icon {
    position: relative;
    display: block;
    width: 23px;
    height: 23px;
    pointer-events: none;
}
body.sibo-site .sibo-floating-actions .sibo-float-tool-ring {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
}
body.sibo-site .sibo-floating-actions .sibo-float-tool-ring circle {
    stroke: var(--sibo-accent, #21c4b8);
    stroke-width: 1.2;
    stroke-linecap: round;
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    opacity: 0;
    transition: stroke-dashoffset var(--sibo-floating-duration) ease, opacity var(--sibo-floating-duration) ease;
}
body.sibo-site .sibo-floating-actions .sibo-float-tool:focus-visible {
    outline: 2px solid var(--sibo-accent, #21c4b8);
    outline-offset: 4px;
    color: var(--sibo-accent, #21c4b8);
}
body.sibo-site .sibo-floating-actions .sibo-float-tool:focus-visible .sibo-float-tool-label {
    opacity: 1;
    visibility: visible;
    transform: translate(0, -50%);
    pointer-events: auto;
    transition-delay: 0s;
}
body.sibo-site .sibo-floating-actions .sibo-float-tool--contact:focus-visible::before { pointer-events: auto; }
body.sibo-site .sibo-floating-actions .sibo-float-tool:focus-visible .sibo-float-tool-ring circle {
    stroke-dashoffset: 0;
    opacity: 1;
}
@media (hover: hover) and (pointer: fine) {
    body.sibo-site .sibo-floating-actions .sibo-float-tool:hover { color: var(--sibo-accent, #21c4b8); }
    body.sibo-site .sibo-floating-actions .sibo-float-tool:hover .sibo-float-tool-label {
        opacity: 1;
        visibility: visible;
        transform: translate(0, -50%);
        pointer-events: auto;
        transition-delay: 0s;
    }
    body.sibo-site .sibo-floating-actions .sibo-float-tool--contact:hover::before { pointer-events: auto; }
    body.sibo-site .sibo-floating-actions .sibo-float-tool:hover .sibo-float-tool-ring circle {
        stroke-dashoffset: 0;
        opacity: 1;
    }
}
@media (max-width: 767px) {
    body.sibo-site .sibo-floating-actions { --sibo-floating-inset: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    body.sibo-site .sibo-floating-actions .sibo-float-tool,
    body.sibo-site .sibo-floating-actions .sibo-float-tool-label,
    body.sibo-site .sibo-floating-actions .sibo-float-tool-ring circle { transition: none; }
}
@media print { body.sibo-site .sibo-floating-actions { display: none; } }
