/* Custom Color Palette & Utilities */
:root {
    --plum-50: #f5f3f7;
    --plum-100: #e8e3eb;
    --plum-200: #d1c4d3;
    --plum-600: #7c5c82;
    --plum-700: #5d4e63;
    --plum-800: #4a3f4e;
    --plum-900: #382f3b;
    --amber-400: #fcd34d;
    --amber-500: #f59e0b;
}

/* Tailwind Config Override (simulated via arbitrary values in HTML, but standard classes here for clarity if extended) */
.bg-plum-50 { background-color: var(--plum-50); }
.bg-plum-100 { background-color: var(--plum-100); }
.bg-plum-200 { background-color: var(--plum-200); }
.bg-plum-600 { background-color: var(--plum-600); }
.bg-plum-700 { background-color: var(--plum-700); }
.bg-plum-800 { background-color: var(--plum-800); }
.bg-plum-900 { background-color: var(--plum-900); }
.text-plum-600 { color: var(--plum-600); }
.text-plum-700 { color: var(--plum-700); }
.text-plum-800 { color: var(--plum-800); }
.text-plum-900 { color: var(--plum-900); }
.text-plum-100 { color: var(--plum-100); }
.text-plum-200 { color: var(--plum-200); }
.border-plum-100 { border-color: var(--plum-100); }
.border-plum-300 { border-color: var(--plum-200); }

body {
    font-family: 'Lato', sans-serif;
}

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

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.animate-fade-in-up {
    animation: fadeInUp 0.8s ease-out forwards;
}

/* Smooth Scroll Behavior */
html {
    scroll-behavior: smooth;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 10px;
}
::-webkit-scrollbar-track {
    background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
    background: var(--plum-200);
    border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--plum-600);
}

/* Utility for hiding mobile menu initially */
#mobile-menu {
    display: none;
}
#mobile-menu.active {
    display: block;
    animation: fadeInUp 0.3s ease-out;
}
