/* Contact Form Styles */
.alert-container {
    transition: all 0.3s ease-in-out;
    transform: translateY(-10px);
    opacity: 0;
}

.alert-container.show {
    transform: translateY(0);
    opacity: 1;
}

.alert {
    border: none;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    background-color: #d4edda;
    border-left: 4px solid #28a745;
}

.alert-success {
    color: #155724;
}

.alert .fa-check-circle {
    color: #28a745;
    font-size: 1.5rem;
}

.alert-heading {
    color: #155724;
    font-weight: 600;
}

.btn-close {
    opacity: 0.5;
    transition: opacity 0.2s;
}

.btn-close:hover {
    opacity: 1;
}

/* Form submission state */
.contact-form.submitting button[type="submit"] {
    position: relative;
    pointer-events: none;
    opacity: 0.7;
}

.contact-form.submitting button[type="submit"]::after {
    content: "";
    position: absolute;
    width: 1rem;
    height: 1rem;
    border: 2px solid #fff;
    border-radius: 50%;
    border-top-color: transparent;
    animation: spin 0.8s linear infinite;
    margin-left: 0.5rem;
}

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