.submit-loading-spinner {
    display: inline-block;
    flex: 0 0 auto;
    width: 1em;
    height: 1em;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: submit-loading-spin 700ms linear infinite;
}

button.is-submit-loading {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    cursor: progress;
}

button.is-submit-loading[data-submit-loading-icon-only="true"] > :not(.submit-loading-spinner):not(.visually-hidden) {
    display: none !important;
}

button.is-submit-loading-disabled,
input.is-submit-loading {
    cursor: progress;
    pointer-events: none;
}

.submit-loading-input-wrapper {
    position: relative;
    display: inline-flex;
    max-width: 100%;
}

.submit-loading-input-wrapper input.is-submit-loading {
    padding-right: 2.5rem !important;
}

.submit-loading-input-wrapper .submit-loading-spinner {
    position: absolute;
    top: 50%;
    right: 0.75rem;
    margin-top: -0.5em;
    pointer-events: none;
}

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

@media (prefers-reduced-motion: reduce) {
    .submit-loading-spinner {
        animation-duration: 1.8s;
    }
}
