form.is-submitting {
    cursor: progress;
}

form.is-submitting button[type="submit"],
form.is-submitting input[type="submit"],
form.is-submitting button:not([type]) {
    cursor: wait;
}

button.is-loading,
input[type="submit"].is-loading {
    position: relative;
    pointer-events: none;
}

button.is-loading::after {
    content: '';
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-left: .65em;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    vertical-align: -.15em;
    animation: b2sme-submit-spin .7s linear infinite;
}

input[type="submit"].is-loading {
    opacity: .72;
}

@keyframes b2sme-submit-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    button.is-loading::after {
        animation-duration: 1.5s;
    }
}
