:root {
    --background: 0 0% 100%;
    --foreground: 150 10% 15%;
    --card: 0 0% 100%;
    --card-foreground: 150 10% 15%;
    --popover: 0 0% 100%;
    --popover-foreground: 150 10% 15%;
    --primary: 145 63% 32%;
    --primary-foreground: 0 0% 100%;
    --secondary: 85 40% 92%;
    --secondary-foreground: 145 63% 25%;
    --muted: 90 20% 96%;
    --muted-foreground: 150 10% 45%;
    --accent: 145 50% 88%;
    --accent-foreground: 145 63% 25%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 100%;
    --border: 90 20% 88%;
    --input: 90 20% 88%;
    --ring: 145 63% 32%;
    --radius: 0.5rem;
    --fresh-green: 145 63% 32%;
    --fresh-green-light: 145 50% 45%;
    --fresh-green-dark: 145 70% 22%;
}

* {
    border-color: hsl(var(--border));
    box-sizing: border-box;
}

body {
    background-color: hsl(var(--background));
    color: hsl(var(--foreground));
    font-family: 'Inter', system-ui, sans-serif;
    margin: 0;
    padding: 0;
}

.font-display {
    font-family: 'Playfair Display', Georgia, serif;
}

.text-primary {
    color: hsl(var(--primary));
}

.bg-primary {
    background-color: hsl(var(--primary));
}

.text-primary-foreground {
    color: hsl(var(--primary-foreground));
}

.bg-background {
    background-color: hsl(var(--background));
}

.text-foreground {
    color: hsl(var(--foreground));
}

.text-muted-foreground {
    color: hsl(var(--muted-foreground));
}

.bg-muted {
    background-color: hsl(var(--muted));
}

.bg-accent {
    background-color: hsl(var(--accent));
}

.border-border {
    border-color: hsl(var(--border));
}

.hover\:bg-fresh-green-dark:hover {
    background-color: hsl(var(--fresh-green-dark));
}

.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.animate-bounce {
    animation: bounce 1s infinite;
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: .5;
    }
}

@keyframes bounce {
    0%, 100% {
        transform: translateY(-25%);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }
    50% {
        transform: translateY(0);
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}

.fade-in {
    animation: fadeIn 0.7s ease-in;
}

.slide-in-from-bottom {
    animation: slideInFromBottom 0.7s ease-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideInFromBottom {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.mobile-menu {
    display: none;
}

.mobile-menu.active {
    display: block;
}

@media (max-width: 1024px) {
    .desktop-nav {
        display: none;
    }
}

@media (min-width: 1024px) {
    .mobile-menu {
        display: none !important;
    }
}

/* Smooth scroll behavior */
html {
    scroll-behavior: smooth;
}

/* Container */
.container {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

@media (min-width: 640px) {
    .container {
        max-width: 640px;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 768px;
    }
}

@media (min-width: 1024px) {
    .container {
        max-width: 1024px;
    }
}

@media (min-width: 1280px) {
    .container {
        max-width: 1280px;
    }
}

@media (min-width: 1536px) {
    .container {
        max-width: 1536px;
    }
}

