.celebrandwab-button {
    --celebrandwab-size: calc(var(--celebrandwab-desktop-size, 50) * 1.28px);
    position: fixed;
    right: max(12px, calc(var(--celebrandwab-desktop-right, 8) * 0.14vw - 4px));
    bottom: min(calc(100vh - var(--celebrandwab-size) - 12px), max(12px, calc(var(--celebrandwab-desktop-bottom, 16) * 1vh)));
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    z-index: 99999;
    transition: none;
    text-decoration: none;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
}

.celebrandwab-button::before {
    content: "";
    position: absolute;
    inset: -10px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 211, 102, 0.35) 0%, rgba(37, 211, 102, 0) 70%);
    filter: blur(10px);
    z-index: -1;
    width: var(--celebrandwab-size);
    height: var(--celebrandwab-size);
    inset: auto 0 0 auto;
}

.celebrandwab-label {
    display: inline-flex;
    align-items: center;
    height: 40px;
    padding: 0 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.98);
    color: #1b2733;
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
    border: 1px solid rgba(27, 39, 51, 0.08);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.14), 0 0 0 1px rgba(255, 255, 255, 0.65) inset;
    backdrop-filter: blur(6px);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    flex: 0 0 auto;
    max-width: min(220px, calc(100vw - var(--celebrandwab-size) - 44px));
    overflow: hidden;
    text-overflow: ellipsis;
    position: relative;
}

.celebrandwab-label::before {
    content: "";
    width: 8px;
    height: 8px;
    margin-right: 10px;
    border-radius: 50%;
    background: #25d366;
    box-shadow: 0 0 0 4px rgba(37, 211, 102, 0.14);
}

.celebrandwab-icon-wrap {
    width: var(--celebrandwab-size);
    height: var(--celebrandwab-size);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 var(--celebrandwab-size);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.celebrandwab-icon-wrap img {
    width: 32px;
    height: 32px;
    display: block;
}

.celebrandwab-style-desktop-clean .celebrandwab-icon-wrap {
    background: linear-gradient(180deg, #2fe06d 0%, #25d366 100%);
    box-shadow: 0 14px 35px rgba(37, 211, 102, 0.35), 0 8px 18px rgba(0, 0, 0, 0.18);
}

.celebrandwab-style-desktop-clean::before {
    background: radial-gradient(circle, rgba(37, 211, 102, 0.35) 0%, rgba(37, 211, 102, 0) 70%);
}

.celebrandwab-button:hover .celebrandwab-icon-wrap,
.celebrandwab-button:focus .celebrandwab-icon-wrap,
.celebrandwab-button:hover .celebrandwab-label,
.celebrandwab-button:focus .celebrandwab-label {
    transform: translateY(-1px);
}

.celebrandwab-button.celebrandwab-style-desktop-clean:hover .celebrandwab-icon-wrap,
.celebrandwab-button.celebrandwab-style-desktop-clean:focus .celebrandwab-icon-wrap,
.celebrandwab-button.celebrandwab-style-mobile-clean:hover .celebrandwab-icon-wrap,
.celebrandwab-button.celebrandwab-style-mobile-clean:focus .celebrandwab-icon-wrap {
    box-shadow: 0 16px 42px rgba(37, 211, 102, 0.42), 0 10px 22px rgba(0, 0, 0, 0.2);
}

.celebrandwab-button:hover .celebrandwab-label,
.celebrandwab-button:focus .celebrandwab-label {
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(255, 255, 255, 0.7) inset;
}

.celebrandwab-button.celebrandwab-anim-fade {
    animation: celebrandwab-fade-in 0.65s ease both;
}

.celebrandwab-button.celebrandwab-anim-vibrate .celebrandwab-icon-wrap {
    animation: celebrandwab-vibrate 0.65s ease 0.4s 1;
}

.celebrandwab-button.celebrandwab-anim-soft-pulse .celebrandwab-icon-wrap {
    animation: celebrandwab-soft-pulse 2.8s ease-in-out infinite;
}

.celebrandwab-style-desktop-premium .celebrandwab-icon-wrap {
    background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(222,255,235,0.96) 100%);
    border: 1px solid rgba(255,255,255,0.8);
    box-shadow: 0 18px 36px rgba(13, 72, 34, 0.16), inset 0 1px 0 rgba(255,255,255,0.9);
    backdrop-filter: blur(8px);
}

.celebrandwab-style-desktop-premium::before {
    background: radial-gradient(circle, rgba(37, 211, 102, 0.22) 0%, rgba(37, 211, 102, 0) 72%);
}

.celebrandwab-style-desktop-premium .celebrandwab-icon-wrap img {
    filter: brightness(0) saturate(100%) invert(58%) sepia(84%) saturate(499%) hue-rotate(90deg) brightness(92%) contrast(90%);
}

.celebrandwab-style-desktop-pulse .celebrandwab-icon-wrap {
    background: linear-gradient(180deg, #29df6a 0%, #20bf5a 100%);
    box-shadow: 0 16px 38px rgba(37, 211, 102, 0.42), 0 10px 22px rgba(0, 0, 0, 0.18);
}

.celebrandwab-style-desktop-pulse::before {
    background: radial-gradient(circle, rgba(37, 211, 102, 0.45) 0%, rgba(37, 211, 102, 0) 72%);
    animation: celebrandwab-pulse 2.2s ease-out infinite;
}

@media (max-width: 767px) {
    .celebrandwab-button {
        --celebrandwab-size: calc(var(--celebrandwab-mobile-size, 50) * 1.16px);
        right: min(calc(100vw - var(--celebrandwab-size) - 10px), max(10px, calc(var(--celebrandwab-mobile-right, 22) * 1vw)));
        bottom: min(calc(100vh - var(--celebrandwab-size) - 10px), max(10px, calc(var(--celebrandwab-mobile-bottom, 18) * 1vh)));
    }

    .celebrandwab-style-mobile-clean .celebrandwab-icon-wrap {
        background: linear-gradient(180deg, #2fe06d 0%, #25d366 100%);
        box-shadow: 0 14px 35px rgba(37, 211, 102, 0.35), 0 8px 18px rgba(0, 0, 0, 0.18);
        border: 0;
        backdrop-filter: none;
    }

    .celebrandwab-style-mobile-clean::before {
        background: radial-gradient(circle, rgba(37, 211, 102, 0.35) 0%, rgba(37, 211, 102, 0) 70%);
        animation: none;
    }

    .celebrandwab-style-mobile-premium .celebrandwab-icon-wrap {
        background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(222,255,235,0.96) 100%);
        border: 1px solid rgba(255,255,255,0.8);
        box-shadow: 0 18px 36px rgba(13, 72, 34, 0.16), inset 0 1px 0 rgba(255,255,255,0.9);
        backdrop-filter: blur(8px);
    }

    .celebrandwab-style-mobile-premium::before {
        background: radial-gradient(circle, rgba(37, 211, 102, 0.22) 0%, rgba(37, 211, 102, 0) 72%);
        animation: none;
    }

    .celebrandwab-style-mobile-premium .celebrandwab-icon-wrap img {
        filter: brightness(0) saturate(100%) invert(58%) sepia(84%) saturate(499%) hue-rotate(90deg) brightness(92%) contrast(90%);
    }

    .celebrandwab-style-mobile-pulse .celebrandwab-icon-wrap {
        background: linear-gradient(180deg, #29df6a 0%, #20bf5a 100%);
        box-shadow: 0 16px 38px rgba(37, 211, 102, 0.42), 0 10px 22px rgba(0, 0, 0, 0.18);
    }

    .celebrandwab-style-mobile-pulse::before {
        background: radial-gradient(circle, rgba(37, 211, 102, 0.45) 0%, rgba(37, 211, 102, 0) 72%);
        animation: celebrandwab-pulse 2.2s ease-out infinite;
    }

    .celebrandwab-icon-wrap img {
        width: 29px;
        height: 29px;
    }

    .celebrandwab-label {
        height: 36px;
        padding: 0 12px;
        font-size: 13px;
    }
}

@keyframes celebrandwab-pulse {
    0% {
        transform: scale(0.9);
        opacity: 0.85;
    }
    70% {
        transform: scale(1.22);
        opacity: 0;
    }
    100% {
        transform: scale(1.22);
        opacity: 0;
    }
}

@keyframes celebrandwab-fade-in {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes celebrandwab-vibrate {
    0%, 100% {
        transform: translateX(0);
    }
    20% {
        transform: translateX(-2px);
    }
    40% {
        transform: translateX(2px);
    }
    60% {
        transform: translateX(-2px);
    }
    80% {
        transform: translateX(2px);
    }
}

@keyframes celebrandwab-soft-pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

