/* Contact form notification styles */
.notification-animation {
    animation: slideIn 0.5s forwards;
    opacity: 0;
    transform: translateY(-20px);
}

.notification-animation.fade-out {
    animation: fadeOut 0.5s forwards;
}

@keyframes slideIn {
    0% {
        opacity: 0;
        transform: translateY(-20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeOut {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-20px);
    }
}

/* Form validation styles */
.form-error {
    border-color: #ef4444 !important;
}

.error-message {
    color: #ef4444;
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

.hidden {
    display: none;
}

/* Submit button loading state */
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.fa-spin {
    animation: spin 1s infinite linear;
}

/* Focus and hover effects for form elements */
.contact-form input:focus,
.contact-form textarea:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
    color: #9ca3af;
}

/* Enhance form transition effects */
.contact-form input,
.contact-form textarea,
.contact-form button {
    transition: all 0.3s ease;
}

.contact-form button:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
