/* Состояния кнопок: loading, success */

/* Спиннер для состояния загрузки */
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.button-spinner {
    animation: spin 0.8s linear infinite;
    display: inline-block;
}

/* Состояние loading */
.button.is-loading,
.contacts__submit.is-loading,
.ask_button.is-loading {
    pointer-events: none;
    opacity: 0.7;
    cursor: not-allowed;
}

/* Состояние success */
.button.is-success,
.contacts__submit.is-success,
.ask_button.is-success {
    background: linear-gradient(104deg, #27AE60 0%, #2ECC71 61%, #27AE60 100%) !important;
    pointer-events: none;
}

.button.is-success svg path,
.contacts__submit.is-success svg path,
.ask_button.is-success svg path {
    animation: checkmark 0.3s ease-in-out;
}

@keyframes checkmark {
    0% {
        stroke-dasharray: 0, 100;
        stroke-dashoffset: 0;
    }
    100% {
        stroke-dasharray: 100, 0;
        stroke-dashoffset: 0;
    }
}

/* Адаптация для разных размеров кнопок */
.button.is-loading svg,
.button.is-success svg {
    width: 1em;
    height: 1em;
}

.contacts__submit.is-loading svg,
.contacts__submit.is-success svg {
    width: 20px;
    height: 20px;
}

.ask_button.is-loading svg,
.ask_button.is-success svg {
    width: 22px;
    height: 22px;
}
