/* Mobile First */
        .parallax-bg { 
            background-attachment: scroll; 
            background-position: center; 
            background-repeat: no-repeat; 
            background-size: cover; 
        }
        
        .fade-in { 
            opacity: 0; 
            transform: translateY(20px); 
            transition: all 0.6s ease; 
        }
        
        .fade-in.visible { 
            opacity: 1; 
            transform: translateY(0); 
        }
        
        .hover-lift { 
            transition: transform 0.2s ease, box-shadow 0.2s ease; 
        }
        
        .hover-lift:hover { 
            transform: translateY(-4px); 
            box-shadow: 0 8px 25px rgba(0,0,0,0.1); 
        }
        
        .gold-line { 
            position: relative; 
        }
        
        .gold-line::after { 
            content: ''; 
            position: absolute; 
            bottom: -8px; 
            left: 50%; 
            transform: translateX(-50%); 
            width: 40px; 
            height: 2px; 
            background: linear-gradient(90deg, transparent, #D4AF37, transparent); 
        }
        
        .menu-item { 
            border-bottom: 1px dotted #D4AF37; 
            padding-bottom: 6px; 
            margin-bottom: 12px; 
        }
        
        .review-card { 
            background: linear-gradient(135deg, rgba(255,248,220,0.8), rgba(255,255,255,0.9)); 
            backdrop-filter: blur(10px); 
        }
        
        .cookie-banner { 
            position: fixed; 
            bottom: 0; 
            left: 0; 
            right: 0; 
            z-index: 1000; 
            background: rgba(54,69,79,0.95); 
            backdrop-filter: blur(10px); 
            border-top: 1px solid #D4AF37; 
            transform: translateY(100%); 
            transition: transform 0.3s ease; 
        }
        
        .cookie-banner.show { 
            transform: translateY(0); 
        }
        
        .skip-link { 
            position: absolute; 
            top: -40px; 
            left: 6px; 
            z-index: 1000; 
            color: white; 
            background: #000; 
            padding: 8px; 
            text-decoration: none; 
            transition: top 0.3s; 
        }
        
        .skip-link:focus { 
            top: 6px; 
        }
        
        .hidden-field { 
            position: absolute; 
            left: -9999px; 
            opacity: 0; 
            pointer-events: none; 
        }
        
        .rate-limit-warning { 
            animation: shake 0.5s ease-in-out; 
        }
        
        @keyframes shake { 
            0%, 100% { transform: translateX(0); } 
            25% { transform: translateX(-5px); } 
            75% { transform: translateX(5px); } 
        }
        
        /* Enhanced mobile navigation */
        .mobile-menu-overlay {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0,0,0,0.5);
            z-index: 40;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s ease;
        }
        
        .mobile-menu-overlay.show {
            opacity: 1;
            visibility: visible;
        }
        
        .mobile-menu-panel {
            position: fixed;
            top: 0;
            right: 0;
            height: 100vh;
            width: 280px;
            max-width: 90vw;
            background: white;
            z-index: 50;
            transform: translateX(100%);
            transition: transform 0.3s ease;
            box-shadow: -2px 0 10px rgba(0,0,0,0.1);
        }
        
        .mobile-menu-panel.show {
            transform: translateX(0);
        }
        
        /* Mobile optimized typography */
        .hero-title {
            font-size: 2.5rem;
            line-height: 1.1;
        }
        
        .hero-subtitle {
            font-size: 1.25rem;
        }
        
        .section-title {
            font-size: 2rem;
            line-height: 1.2;
        }
        
        /* Tablet & large ecran */
        @media (min-width: 768px) {
            .parallax-bg { 
                background-attachment: fixed; 
            }
            
            .hover-lift:hover { 
                transform: translateY(-8px); 
                box-shadow: 0 20px 40px rgba(0,0,0,0.15); 
            }
            
            .gold-line::after { 
                width: 60px; 
                bottom: -10px; 
            }
            
            .menu-item { 
                padding-bottom: 8px; 
                margin-bottom: 16px; 
            }
            
            .hero-title {
                font-size: 4rem;
            }
            
            .hero-subtitle {
                font-size: 1.5rem;
            }
            
            .section-title {
                font-size: 3rem;
            }
        }
        
        /* Desktop */
        @media (min-width: 1024px) {
            .hero-title {
                font-size: 6rem;
            }
            
            .hero-subtitle {
                font-size: 2rem;
            }
            
            .section-title {
                font-size: 3.5rem;
            }
        }
        
        /* Extra large */
        @media (min-width: 1280px) {
            .hero-title {
                font-size: 8rem;
            }
            
            .hero-subtitle {
                font-size: 3rem;
            }
        }