/* ── Global form submit button loader ───────────────────────── */
button.tp-submit-loading,
.tp-submit-loading[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
}

.tp-submit-loading {
    position: relative;
    pointer-events: none;
    cursor: wait !important;
    opacity: 0.88;
}

.tp-submit-loading .tp-submit-spinner {
    display: inline-block;
    width: 0.95em;
    height: 0.95em;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: tpSubmitSpin 0.65s linear infinite;
    vertical-align: -0.12em;
    margin-right: 0.4em;
    flex-shrink: 0;
}

.tp-submit-loading .tp-submit-label {
    display: inline-flex;
    align-items: center;
    gap: inherit;
}

@keyframes tpSubmitSpin {
    to { transform: rotate(360deg); }
}

input[type="submit"].tp-submit-loading,
input[type="button"].tp-submit-loading {
    color: transparent !important;
    background-image: linear-gradient(currentColor, currentColor),
        conic-gradient(from 0deg, currentColor 0 25%, transparent 25% 100%);
    background-size: 0 0, 1em 1em;
    background-position: center, center;
    background-repeat: no-repeat;
}

input[type="submit"].tp-submit-loading {
    position: relative;
}
