/* Custom styles */
html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Inter', system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.font-serif {
    font-family: 'Playfair Display', Georgia, serif;
}

/* Ensure all text has proper contrast */
.text-gray-600 {
    color: #4b5563;
}

.text-gray-800 {
    color: #1f2937;
}

/* Card hover effects */
.card-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

/* Fade in animations for scroll */
.fade-in {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

@media (prefers-reduced-motion: no-preference) {
    .fade-in {
        opacity: 0;
        transform: translateY(20px);
    }
    
    .fade-in.visible {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Button styles */
button, a {
    transition: all 0.2s ease;
}

/* Form styles */
input, select, textarea {
    font-family: inherit;
}

/* Mobile menu */
#mobile-menu {
    transition: max-height 0.3s ease;
}

#mobile-menu.hidden {
    max-height: 0;
}

#mobile-menu:not(.hidden) {
    max-height: 200px;
}
