/* Animations */
[data-animate] {
    opacity: 0;
    transform: translateY(30px);
    transition: var(--transition-smooth);
}

[data-animate].animated {
    opacity: 1;
    transform: translateY(0);
}

/* Form Styles */
input:focus,
select:focus,
textarea:focus {
    border-color: var(--accent) !important;
}

/* Responsive Grid System */
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1024px) {
    .grid-4 { grid-template-columns: repeat(2, 1fr); }
    .grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .section {
        padding: 60px 0;
    }

    .grid-2, .grid-3, .grid-4 {
        grid-template-columns: 1fr !important;
        gap: 30px !important;
    }

    [style*="grid-column"] {
        grid-column: span 1 !important;
    }

    h1 { font-size: 2rem !important; }
    h2 { font-size: 1.8rem !important; }
    h3 { font-size: 1.5rem !important; }
    
    .container {
        padding: 0 1.5rem !important;
    }

    /* Fix for large fixed heights */
    [style*="height: 500px"], [style*="height: 400px"] {
        height: auto !important;
        aspect-ratio: 4/3;
    }
    
    .hero {
        height: auto !important;
        padding: 120px 0 80px !important;
    }
}