/* Base & Utilities */
*, *::before, *::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    min-height: 100vh;
}

/* Marquee Animation */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.animate-marquee {
    animation: marquee 30s linear infinite;
}

/* Wine Cards */
.wine-card {
    will-change: transform;
}

/* Event Cards */
.event-card {
    will-change: transform;
}

/* Scroll Reveal Animations */
/* These are applied via JS only — content is visible by default */
@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 1;
        transform: none;
        transition: opacity 0.7s ease, transform 0.7s ease;
    }

    .reveal[data-reveal] {
        opacity: 0;
        transform: translateY(30px);
        transition: opacity 0.7s ease, transform 0.7s ease;
    }

    .reveal[data-reveal="left"] {
        transform: translateX(-30px);
    }

    .reveal[data-reveal="right"] {
        transform: translateX(30px);
    }

    .reveal[data-reveal="scale"] {
        transform: scale(0.95);
    }
}

/* Mobile Menu */
.mobile-link {
    display: block;
    padding: 0.5rem 0;
    color: #166534;
    font-weight: 500;
    transition: color 0.2s;
}

.mobile-link:hover {
    color: #15803d;
}

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

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

::-webkit-scrollbar-thumb {
    background: #86efac;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #4ade80;
}

/* Focus Styles */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid #22c55e;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Selection */
::selection {
    background: #bbf7d0;
    color: #14532d;
}
