/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Button hover effects */
button {
    transition: all 0.3s ease;
}

button:hover {
    transform: translateY(-2px);
}

button:active {
    transform: translateY(0);
}

/* Form input styling */
input, textarea, select {
    transition: all 0.3s ease;
}

input:focus, textarea:focus, select:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
}

.dark input:focus, 
.dark textarea:focus, 
.dark select:focus {
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
}

/* Form validation states */
input:invalid:not(:placeholder-shown) {
    border-color: #ef4444;
}

input:valid:not(:placeholder-shown) {
    border-color: #10b981;
}

/* Success message animation */
@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

#form-success {
    animation: slideIn 0.3s ease;
}

/* FAQ accordion animation */
.faq-icon {
    transition: transform 0.3s ease;
}

/* Contact info hover */
.contact-info-item:hover {
    transform: translateX(8px);
    color: #10b981;
}

/* Link hover */
a {
    transition: color 0.2s ease;
}

/* Textarea resize */
textarea {
    resize: vertical;
    min-height: 120px;
}

/* Custom select dropdown arrow */
select {
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1em;
    padding-right: 2.5rem;
}

.dark select {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
}

/* Placeholder styling */
::placeholder {
    color: #9ca3af;
    opacity: 1;
}

.dark ::placeholder {
    color: #6b7280;
}

/* Loading state for submit button */
button[type="submit"]:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

button[type="submit"]:disabled:hover {
    transform: none;
}