
.afw-button{
    position:fixed;
    z-index:999999;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-width:var(--afw-size,58px);
    min-height:var(--afw-size,58px);
    padding:0;
    background:var(--afw-bg,#25D366);
    color:var(--afw-text,#fff);
    text-decoration:none !important;
    border:0;
    border-radius:var(--afw-radius,999px);
    box-sizing:border-box;
    line-height:1;
    transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
    -webkit-tap-highlight-color:transparent;
}
.afw-button.afw-has-label{
    padding:0 18px 0 14px;
}
.afw-button.afw-side-right{ right:var(--afw-horizontal,18px); }
.afw-button.afw-side-left{ left:var(--afw-horizontal,18px); }

.afw-button.afw-v-top{ top:var(--afw-vertical,24px); }
.afw-button.afw-v-bottom{ bottom:var(--afw-vertical,24px); }
.afw-button.afw-v-center{
    top:50%;
    transform:translateY(-50%);
}

.afw-button.afw-v-center:hover{
    transform:translateY(-50%) scale(1.04);
}
.afw-button:not(.afw-v-center):hover{
    transform:scale(1.04);
}

.afw-button.afw-has-shadow{
    box-shadow:0 8px 28px rgba(0,0,0,.24);
}
.afw-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:var(--afw-icon-size,30px);
    height:var(--afw-icon-size,30px);
    flex:0 0 var(--afw-icon-size,30px);
    color:var(--afw-icon,#fff);
}
.afw-icon svg{
    width:100%;
    height:100%;
    display:block;
}
.afw-label{
    display:inline-block;
    color:var(--afw-text,#fff);
    font-size:15px;
    font-weight:700;
    line-height:1.15;
    white-space:nowrap;
}

@keyframes afwPulse {
    0%,100% { box-shadow:0 0 0 0 rgba(37,211,102,.36), 0 8px 28px rgba(0,0,0,.24); }
    55%     { box-shadow:0 0 0 13px rgba(37,211,102,0), 0 8px 28px rgba(0,0,0,.24); }
}
.afw-animation-pulse{
    animation:afwPulse 2.2s infinite;
}

@keyframes afwFloat {
    0%,100% { margin-top:0; }
    50%     { margin-top:-6px; }
}
.afw-animation-float{
    animation:afwFloat 2.8s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce){
    .afw-button{
        animation:none !important;
        transition:none !important;
    }
}

@media (max-width: 767px){
    .afw-button.afw-has-label{
        gap:8px;
        padding-left:12px;
        padding-right:14px;
    }
    .afw-label{
        font-size:14px;
    }
}
