/* Color Palette & Typography Configuration */
        :root {
            --color-white: #FAFAF8;
            --color-beige: #ECE3D6;
            --color-gray: #BFB7AC;
            --color-olive: #8A9475;
            --color-charcoal: #2B2B2B;
        }

        /* Set default font and background */
        body {
            font-family: 'Inter', sans-serif;
            background-color: var(--color-white);
            color: var(--color-charcoal);
            scroll-behavior: smooth;
        }

        .font-playfair { font-family: 'Playfair Display', serif; }
        .font-lora { font-family: 'Lora', serif; }

        /* Custom Utility Classes */
        .bg-canvas-white { background-color: var(--color-white); }
        .bg-warm-beige { background-color: var(--color-beige); }
        .text-charcoal { color: var(--color-charcoal); }
        .text-olive { color: var(--color-olive); }
        .border-olive { border-color: var(--color-olive); }
        .shadow-soft { box-shadow: 0 10px 30px -10px rgba(138, 148, 117, 0.2); }

        /* Custom Animations */
        @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
        .animate-fade-in { animation: fadeIn 0.8s ease-out forwards; }

        @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
        .animate-fade-in-up { animation: fadeInUp 0.7s ease-out forwards; }

        @keyframes imageZoom { from { transform: scale(1); } to { transform: scale(1.05); } }
        .group:hover .hover-zoom { animation: imageZoom 0.5s forwards; }

        /* Floating Shapes for Hero */
        @keyframes float1 { 0%, 100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-15px) rotate(-1deg); } }
        .float-shape-1 { animation: float1 15s ease-in-out infinite; }
        @keyframes float2 { 0%, 100% { transform: translateY(-10px) rotate(-2deg); } 50% { transform: translateY(10px) rotate(2deg); } }
        .float-shape-2 { animation: float2 10s ease-in-out infinite; }

        /* Scroll Animation (Utility for sections) */
        .on-scroll-fade { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
        .on-scroll-fade.visible { opacity: 1; transform: translateY(0); }

        /* Utility for Page Rendering */
        .page-content { display: none; }
        .page-content.active { display: block; }
        
        /* Modal Backdrop */
        .modal-backdrop {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(43, 43, 43, 0.7);
            z-index: 50;
            display: none;
            align-items: center;
            justify-content: center;
        }

        /* Button Styling */
        .btn-primary {
            background-color: var(--color-olive);
            color: var(--color-white);
            transition: all 0.3s ease;
            box-shadow: 0 5px 15px rgba(138, 148, 117, 0.4);
        }
        .btn-primary:hover {
            background-color: #A6B296; /* Lighter olive */
            box-shadow: 0 8px 20px rgba(138, 148, 117, 0.6);
        }
    