/* ===== BASE ===== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; margin: 0; padding: 0; }

/* ===== SECTION UTILITIES ===== */
.section-label {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #1a5c3a;
    background: #d5ebde;
    padding: 6px 14px;
    border-radius: 100px;
}

.section-heading {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 800;
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.1;
    color: #0a2719;
    letter-spacing: -0.02em;
}

.body-text {
    font-size: 1.0625rem;
    line-height: 1.75;
    color: #3d2e1e;
}

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

.stat-label {
    font-size: 12px;
    line-height: 1.4;
    letter-spacing: .02em;
}

/* ===== HERO ANIMATIONS ===== */
.hero-subtitle {
    opacity: 0;
    animation: fadeUp .8s ease forwards;
    animation-delay: .2s;
}
.hero-title {
    opacity: 0;
    animation: fadeUp .8s ease forwards;
    animation-delay: .4s;
}
.hero-body {
    opacity: 0;
    animation: fadeUp .8s ease forwards;
    animation-delay: .6s;
}
.hero-ctas {
    opacity: 0;
    animation: fadeUp .8s ease forwards;
    animation-delay: .8s;
}

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

/* ===== SCROLL REVEAL (below-fold only) ===== */
.reveal-up,
.reveal-left,
.reveal-right {
    opacity: 1; /* visible by default — JS enhances with animation */
    transition: opacity .7s ease, transform .7s ease;
}
.reveal-left  { transform: translateX(-32px); }
.reveal-right { transform: translateX(32px); }

.reveal-up.revealed,
.reveal-left.revealed,
.reveal-right.revealed {
    opacity: 1;
    transform: translate(0, 0);
}

/* Reduced motion: never animate */
@media (prefers-reduced-motion: reduce) {
    .reveal-up,
    .reveal-left,
    .reveal-right {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hero-subtitle,
    .hero-title,
    .hero-body,
    .hero-ctas {
        opacity: 1;
        animation: none;
    }
}

/* ===== MOBILE NAV ===== */
#mobile-menu {
    animation: slideDown .25s ease;
}
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ===== MENU CARD HOVER ===== */
.menu-card {
    transform: translateY(0);
}
.menu-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(10, 39, 25, .25);
}
