/* Base Styles */
html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Lato', sans-serif;
    background-color: #F9F7F2;
    color: #1F2937;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Playfair Display', serif;
}

/* Hero Animations */
.hero-reveal {
    opacity: 0;
    transform: translateY(30px);
    animation: fadeUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.hero-reveal:nth-child(1) { animation-delay: 0.1s; }
.hero-reveal:nth-child(2) { animation-delay: 0.3s; }
.hero-reveal:nth-child(3) { animation-delay: 0.5s; }
.hero-reveal:nth-child(4) { animation-delay: 0.7s; }
.hero-reveal:nth-child(5) { animation-delay: 0.9s; }
.hero-reveal:nth-child(6) { animation-delay: 1.1s; }

@keyframes fadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Scroll Reveal Animations */
.scroll-reveal {
    opacity: 1; /* Default visible for accessibility/no-JS */
    transform: translateY(0);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* When JS is enabled, we add the initial hidden state via JS, 
   but for pure CSS fallback, content is visible */
.no-js .scroll-reveal {
    opacity: 1;
    transform: none;
}

/* Scroll reveal active state (added by JS) */
.js .scroll-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Mobile menu transitions */
#mobile-menu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
}

#mobile-menu.open {
    max-height: 400px;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: #F9F7F2;
}

::-webkit-scrollbar-thumb {
    background: #064E3B;
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: #C5A065;
}

/* Focus styles for accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid #C5A065;
    outline-offset: 2px;
}
