        :root {
            --soft-white: #FAFAF9;
            --charcoal: #121212;
            --teal: #008B7D;
            --sunset: #F06449;
            --clay: #D6CCC2;
        }

        body {
            font-family: 'Lora', serif;
            background-color: var(--soft-white);
            color: var(--charcoal);
            overflow-x: hidden;
            line-height: 1.7;
        }

        .font-header { font-family: 'Playfair Display', serif; }
        .font-sans { font-family: 'Montserrat', sans-serif; }
        .font-cursive { font-family: 'Great Vibes', cursive; }

        /* Animation & Motion */
        .reveal { opacity: 0; transform: translateY(30px); transition: 1s cubic-bezier(0.2, 1, 0.3, 1); }
        .reveal.active { opacity: 1; transform: translateY(0); }

        /* Overlapping Layers */
        .page-section { position: relative; width: 100%; min-height: 100vh; background: var(--soft-white); z-index: 10; }
        .overlap-top { margin-top: -15vh; border-radius: 60px 60px 0 0; box-shadow: 0 -30px 60px rgba(0,0,0,0.03); }

        /* Journey Planner Sidebar */
        #cart-sidebar {
            transition: transform 0.5s cubic-bezier(0.85, 0, 0.15, 1);
            z-index: 2000;
        }

        /* Interactive Map Hotspots */
        .hotspot {
            position: absolute;
            width: 12px;
            height: 12px;
            background: var(--teal);
            border-radius: 50%;
            cursor: pointer;
            box-shadow: 0 0 0 rgba(0, 139, 125, 0.4);
            animation: pulse 2s infinite;
        }
        @keyframes pulse { 
            0% { box-shadow: 0 0 0 0px rgba(0, 139, 125, 0.7); }
            100% { box-shadow: 0 0 0 15px rgba(0, 139, 125, 0); }
        }

        .btn-luxury {
            display: inline-flex;
            align-items: center;
            padding: 18px 40px;
            background: var(--charcoal);
            color: white;
            font-size: 11px;
            letter-spacing: 3px;
            font-weight: 800;
            text-transform: uppercase;
            border-radius: 100px;
            transition: all 0.4s;
            position: relative;
            overflow: hidden;
        }
        .btn-luxury:hover { transform: translateY(-3px); background: var(--teal); box-shadow: 0 15px 30px rgba(0,0,0,0.1); }

        .custom-scroll::-webkit-scrollbar { width: 4px; }
        .custom-scroll::-webkit-scrollbar-thumb { background: var(--clay); border-radius: 10px; }
        
        /* Glass UI */
        .glass-card {
            background: rgba(255, 255, 255, 0.75);
            backdrop-filter: blur(12px);
            border: 1px solid rgba(255,255,255,0.4);
        }
