.gcfc-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.submit-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    overflow: hidden;
}

.submit-button:disabled {
    cursor: wait;
}

.submit-button.is-loading {
    color: #0b0b0b;
    background: linear-gradient(110deg, #b78b48 0%, #e5c88e 45%, #b78b48 100%);
    background-size: 220% 100%;
    animation: gcfcButtonShimmer 1.2s linear infinite;
}

.submit-button.is-success {
    color: #07140d;
    border-color: #76d69a;
    background: linear-gradient(135deg, #9ee3b8, #63c78a);
    animation: gcfcSuccessPulse .55s ease both;
    cursor: default;
}

.submit-button.is-error {
    color: #fff;
    border-color: rgba(231, 133, 133, .8);
    background: linear-gradient(135deg, #8f3f3f, #5b2424);
    cursor: pointer;
}

.submit-spinner {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    border: 2px solid rgba(8, 8, 8, .25);
    border-top-color: #080808;
    border-radius: 50%;
    animation: gcfcSpinner .7s linear infinite;
}

.submit-check {
    display: grid;
    width: 23px;
    height: 23px;
    place-items: center;
    border: 1px solid rgba(7, 20, 13, .45);
    border-radius: 50%;
    font-size: 15px;
    font-weight: 800;
    animation: gcfcCheckIn .45s cubic-bezier(.2, .9, .3, 1.35) both;
}

.form-feedback.is-success {
    border-color: rgba(105, 207, 143, .55);
    background: rgba(75, 175, 112, .10);
    color: #b9edcc;
}

.form-feedback.is-error {
    border-color: rgba(231, 133, 133, .55);
    background: rgba(185, 67, 67, .10);
    color: #f0b6b6;
}

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

@keyframes gcfcButtonShimmer {
    to { background-position: -220% 0; }
}

@keyframes gcfcSuccessPulse {
    0% { transform: scale(.98); box-shadow: 0 0 0 0 rgba(99, 199, 138, .35); }
    70% { transform: scale(1.01); box-shadow: 0 0 0 12px rgba(99, 199, 138, 0); }
    100% { transform: scale(1); box-shadow: none; }
}

@keyframes gcfcCheckIn {
    from { transform: scale(.2) rotate(-25deg); opacity: 0; }
    to { transform: scale(1) rotate(0); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .submit-button,
    .submit-spinner,
    .submit-check {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
