.sfe-active-form {
    --sfe-primary: #4f46e5;
    --sfe-primary-soft: rgba(79, 70, 229, .12);
    --sfe-error: #dc2626;
    --sfe-error-soft: rgba(220, 38, 38, .08);
    --sfe-border: #d1d5db;
    --sfe-text: #111827;
    --sfe-muted: #6b7280;
    --sfe-radius: 8px;
    --sfe-transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}



.sfe-active-form .elementor-field-group.sfe-field-error .elementor-field {
    border-color: var(--sfe-error) !important;
    box-shadow: 0 0 0 3px var(--sfe-error-soft) !important;
}


.sfe-validation-message {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 500;
}

.sfe-error-msg { color: var(--sfe-error); }

@keyframes sfe-shake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-4px); }
    40% { transform: translateX(4px); }
    60% { transform: translateX(-3px); }
    80% { transform: translateX(3px); }
}

.sfe-shake { animation: sfe-shake .35s ease-in-out; }

.sfe-loading {
    position: absolute;
    right: 11px;
    top: 50%;
    width: 18px;
    height: 18px;
    margin-top: -9px;
    border: 2px solid var(--sfe-border);
    border-top-color: var(--sfe-primary);
    border-radius: 50%;
    animation: sfe-spin .75s linear infinite;
    pointer-events: none;
}

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

.sfe-required-pulse > label .elementor-field-required,
.sfe-required-pulse > label::after {
    color: var(--sfe-error);
    animation: sfe-required-pulse 1.8s ease-in-out infinite;
}

@keyframes sfe-required-pulse {
    0%, 100% { opacity: .55; }
    50% { opacity: 1; }
}



@media (prefers-reduced-motion: reduce) {
    .sfe-active-form * {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* v1.2: feedback mais discreto e acessível */
.sfe-validation-message {
    display: block;
    margin-top: 7px;
    padding: 0;
    font-size: 13px;
}
.sfe-active-form .sfe-field-error .elementor-field:focus {
    box-shadow: 0 0 0 3px var(--sfe-error-soft) !important;
}


.sfe-form-message {
    display: block;
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: var(--sfe-radius);
    font-size: 14px;
    line-height: 1.5;
    font-weight: 500;
}

.sfe-form-message[hidden] {
    display: none !important;
}

.sfe-form-message-error {
    color: var(--sfe-error);
    background: var(--sfe-error-soft);
    border: 1px solid rgba(220, 38, 38, .18);
}


.sfe-browser-validation-disabled input:not([data-sfe-field-enabled="no"]):invalid,
.sfe-browser-validation-disabled textarea:not([data-sfe-field-enabled="no"]):invalid,
.sfe-browser-validation-disabled select:not([data-sfe-field-enabled="no"]):invalid {
    box-shadow: none;
}
