/* ---- Floating components wrapper ---- */
.floating-speed-dial-wrapper {
    position: fixed;
    bottom: 80px;
    right: 50px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    z-index: 120;
    gap: 14px;
}

/* ---- Single floating button (1 service) ---- */
.floating-speed-dial-single {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 63px;
    height: 63px;
    cursor: pointer;
    filter: drop-shadow(0 3px 8px rgba(var(--bs-black-rgb), .22));
    transition: transform .15s, filter .15s;
    text-decoration: none;
}

.floating-speed-dial-single:hover {
    transform: scale(1.1);
    filter: drop-shadow(0 6px 16px rgba(var(--bs-black-rgb), .3));
}

.floating-speed-dial-single img {
    height: 61px;
    width: auto;
    display: block;
}

/* ---- Speed dial overlay (2+ services) ---- */
.floating-speed-dial-overlay {
    position: fixed;
    inset: 0;
    background: rgba(var(--bs-black-rgb), .5);
    z-index: 119;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s;
}

.floating-speed-dial-overlay.floating-speed-dial-overlay-visible {
    opacity: 1;
    pointer-events: auto;
}

/* ---- Speed dial container ---- */
.floating-speed-dial {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
    position: relative;
    z-index: 121;
}

.floating-speed-dial-items {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
}

/* ---- Speed dial item ---- */
.floating-speed-dial-item {
    opacity: 0;
    transform: translateY(14px) scale(.85);
    transition: opacity .2s, transform .2s;
    pointer-events: none;
    cursor: pointer;
}

.floating-speed-dial-item.floating-speed-dial-item-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.floating-speed-dial-circle {
    width: 63px;
    height: 63px;
    display: flex;
    align-items: center;
    justify-content: center;
    filter: drop-shadow(0 3px 8px rgba(var(--bs-black-rgb), .22));
    transition: transform .15s, filter .15s;
}

.floating-speed-dial-circle:hover {
    transform: scale(1.1);
    filter: drop-shadow(0 6px 16px rgba(var(--bs-black-rgb), .3));
}

.floating-speed-dial-circle img {
    height: 61px;
    width: auto;
    display: block;
}

/* ---- Speed dial trigger button ---- */
.floating-speed-dial-trigger {
    width: 63px;
    height: 63px;
    border-radius: 50%;
    background: var(--bs-white);
    box-shadow: 0 4px 18px rgba(var(--bs-black-rgb), .26);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform .2s, box-shadow .2s;
    position: relative;
}

.floating-speed-dial-trigger:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 22px rgba(var(--bs-black-rgb), .32);
}

.floating-speed-dial-bubble-icon {
    font-size: 1.4rem;
    color: #475569;
    transition: opacity .18s, transform .18s;
}

.floating-speed-dial-close-icon {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: rotate(-45deg) scale(.7);
    transition: opacity .18s, transform .18s;
    color: #475569;
    font-size: 1.1rem;
}

/* ---- Speed dial open state ---- */
.floating-speed-dial.floating-speed-dial-open .floating-speed-dial-bubble-icon {
    opacity: 0;
    transform: scale(.6);
}

.floating-speed-dial.floating-speed-dial-open .floating-speed-dial-close-icon {
    opacity: 1;
    transform: rotate(0deg) scale(1);
}
