/* FULL RESET */
.abb-button,
.abb-button * {
    all: unset;
    display: inline-flex;
    box-sizing: border-box;
    font-family: inherit;
}

/* Wrapper */
.abb-wrapper {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 9999;
}

/* Main Button */
.abb-button {
    position: relative;
    align-items: center;
    gap: 12px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 18px 35px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 600;
    font-size: 16px;
    box-shadow: 0 8px 25px rgba(102, 126, 234, 0.4);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.abb-button:hover {
    transform: translateY(-5px) scale(1.05);
    box-shadow: 0 15px 35px rgba(102, 126, 234, 0.6);
}
.abb-button {
    color: white;               /* обычный текст */
    text-decoration: none;
}

.abb-button:hover,
.abb-button:focus,
.abb-button:active {
    color: white;               /* сохраняем белый при наведении, фокусе и нажатии */
    text-decoration: none;
}
/* Icon & Text */
.abb-icon { font-size: 24px; }
.abb-text { display: block; font-size: inherit; }

/* Glow & ripple */
.abb-wrapper::before,
.abb-wrapper::after,
.abb-button::before,
.abb-button::after {
    content: '';
    position: absolute;
    border-radius: 50px;
}

.abb-wrapper::before,
.abb-wrapper::after {
    top: 50%; left: 50%;
    width: 100%; height: 100%;
    border: 2px solid #667eea;
    transform: translate(-50%, -50%);
    animation: abb-rippleOut 2s infinite ease-out;
    opacity: 0;
}
.abb-wrapper::after { animation-delay: 1s; }

.abb-glow,
.abb-wrapper::before,
.abb-wrapper::after,
.abb-button::before,
.abb-button::after {
    pointer-events: none; /* клики проходят через слои */
    z-index: 0;
}

.abb-button {
    position: relative;
    z-index: 1;
}


@keyframes abb-rippleOut {
    0% { transform: translate(-50%, -50%) scale(1); opacity: 0.8; }
    100% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; }
}

.abb-glow {
    position: absolute; inset: 0;
    border-radius: 50px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    filter: blur(15px); opacity: .6;
    animation: abb-glow 2s ease-in-out infinite;
}

@keyframes abb-glow {
    0%,100% { opacity: .6; transform: scale(1); }
    50% { opacity: .8; transform: scale(1.05); }
}

@media (max-width: 768px) {
    .abb-wrapper { bottom: 20px; right: 20px; }
    .abb-button { padding: 15px 25px; font-size: 14px; }
    .abb-icon { font-size: 20px; }
}
