 /* Global Reset for Overflow */
        html, body {
            width: 100%;
            overflow-x: hidden;
            margin: 0;
            padding: 0;
        }

        /* General Scroll Triggers */
        .reveal-on-scroll {
            opacity: 0;
            transform: translateY(40px);
            transition: all 1s cubic-bezier(0.5, 0, 0, 1);
        }

        .reveal-on-scroll.active {
            opacity: 1;
            transform: translateY(0);
        }

        .slide-left-scroll {
            opacity: 0;
            transform: translateX(-50px);
            transition: all 1s ease-out;
        }

        .slide-left-scroll.active {
            opacity: 1;
            transform: translateX(0);
        }

        .slide-right-scroll {
            opacity: 0;
            transform: translateX(50px);
            transition: all 1s ease-out;
        }

        .slide-right-scroll.active {
            opacity: 1;
            transform: translateX(0);
        }

        /* Staggered Grid Animations */
        .stagger-child {
            opacity: 0;
            transform: translateY(20px);
            transition: all 0.6s ease-out;
        }

        .stagger-parent.active .stagger-child {
            opacity: 1;
            transform: translateY(0);
        }

        .stagger-parent.active .stagger-child:nth-child(1) { transition-delay: 0.1s; }
        .stagger-parent.active .stagger-child:nth-child(2) { transition-delay: 0.2s; }
        .stagger-parent.active .stagger-child:nth-child(3) { transition-delay: 0.3s; }
        .stagger-parent.active .stagger-child:nth-child(4) { transition-delay: 0.4s; }
        .stagger-parent.active .stagger-child:nth-child(5) { transition-delay: 0.5s; }
        .stagger-parent.active .stagger-child:nth-child(6) { transition-delay: 0.6s; }

        /* CIRCULAR REVEAL MENU ANIMATION */
        .menu-overlay {
            clip-path: circle(0px at calc(100% - 3rem) 3rem);
            transition: clip-path 0.8s cubic-bezier(0.77, 0, 0.175, 1), visibility 0.8s;
            visibility: hidden;
            pointer-events: none;
        }

        .menu-overlay.open {
            clip-path: circle(150% at 100% 0);
            visibility: visible;
            pointer-events: auto;
        }

        /* Sidebar Link Animation States */
        .sidebar-link {
            transition: opacity 0.5s ease, transform 0.5s ease, color 0.3s ease;
        }

        .menu-overlay.open .sidebar-link {
            opacity: 1;
            transform: translateY(0);
        }

        .sub-link {
            font-size: 0.5em;
            display: block;
            margin-top: 0.5rem;
            opacity: 0.7;
            font-family: 'Lato', sans-serif;
            letter-spacing: 0.1em;
            text-transform: uppercase;
        }

        .sidebar-link:hover .sub-link {
            color: #FFFFFF;
            opacity: 1;
        }

        /* Sidebar Image Animation */
        .sidebar-image {
            opacity: 0;
            transform: scale(0.9) translateX(-20px);
            transition: all 0.8s cubic-bezier(0.77, 0, 0.175, 1);
        }

        .menu-overlay.open .sidebar-image {
            opacity: 1;
            transform: scale(1) translateX(0);
            transition-delay: 0.4s;
        }

        /* Stagger delays for sidebar items */
        .menu-overlay.open .sidebar-link:nth-child(1) { transition-delay: 0.2s; }
        .menu-overlay.open .sidebar-link:nth-child(2) { transition-delay: 0.3s; }
        .menu-overlay.open .sidebar-link:nth-child(3) { transition-delay: 0.4s; }
        .menu-overlay.open .sidebar-link:nth-child(4) { transition-delay: 0.5s; }
        .menu-overlay.open .sidebar-link:nth-child(5) { transition-delay: 0.6s; }
        .menu-overlay.open .sidebar-link:nth-child(6) { transition-delay: 0.7s; }
        .menu-overlay.open .sidebar-link:nth-child(7) { transition-delay: 0.8s; }
        .menu-overlay.open .sidebar-link:nth-child(8) { transition-delay: 0.9s; }
        .menu-overlay.open .sidebar-link:nth-child(9) { transition-delay: 1.0s; }

        .menu-overlay.open .sidebar-btn {
            transition-delay: 1.1s;
            opacity: 1;
            transform: translateY(0);
        }

        /* Hide Scrollbar */
        .no-scrollbar::-webkit-scrollbar {
            display: none;
        }

        .no-scrollbar {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }

        /* Reserve form dropdown readability */
        select.reserve-occasion {
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
        }

        select.reserve-occasion option {
            color: #051C0C;
            background-color: #FFFFFF;
        }

        /* --- LUXURY BUTTON SYSTEM --- */
        .btn-luxury {
            position: relative;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            font-weight: 700;
            font-size: 0.75rem;
            padding: 1rem 2rem;
            transition: color 0.4s cubic-bezier(0.77, 0, 0.175, 1), border-color 0.4s;
            z-index: 10;
            cursor: pointer;
            white-space: nowrap; /* Prevent text wrap */
        }

        .btn-luxury::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            right: 0;
            z-index: -1;
            transform: scaleX(0);
            transform-origin: right;
            transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
        }

        .btn-luxury:hover::before {
            transform: scaleX(1);
            transform-origin: left;
        }

        /* 1. Solid Bronze (Hovers to Forest) */
        .btn-solid-bronze {
            background-color: #A48E5C;
            color: #FFFFFF;
            border: 1px solid #A48E5C;
        }
        .btn-solid-bronze::before { background-color: #051C0C; }
        .btn-solid-bronze:hover { color: #DBE3D6; border-color: #051C0C; }

        /* 2. Solid Forest (Hovers to Bronze) */
        .btn-solid-forest {
            background-color: #051C0C;
            color: #FFFFFF;
            border: 1px solid #051C0C;
        }
        .btn-solid-forest::before { background-color: #A48E5C; }
        .btn-solid-forest:hover { color: #FFFFFF; border-color: #A48E5C; }

        /* 3. Outline White (Hovers to White Fill + Forest Text) */
        .btn-outline-white {
            background-color: transparent;
            color: #FFFFFF;
            border: 1px solid #FFFFFF;
        }
        .btn-outline-white::before { background-color: #FFFFFF; }
        .btn-outline-white:hover { color: #051C0C; }

        /* 4. Outline Forest (Hovers to Forest Fill + Sage Text) */
        .btn-outline-forest {
            background-color: transparent;
            color: #051C0C;
            border: 1px solid #051C0C;
        }
        .btn-outline-forest::before { background-color: #051C0C; }
        .btn-outline-forest:hover { color: #DBE3D6; }

        /* 5. Outline Bronze (Hovers to Bronze Fill + White Text) */
        .btn-outline-bronze {
            background-color: transparent;
            color: #A48E5C;
            border: 1px solid #A48E5C;
        }
        .btn-outline-bronze::before { background-color: #A48E5C; }
        .btn-outline-bronze:hover { color: #FFFFFF; }


         /* Custom Shimmer Text */
        .text-shimmer {
            background: linear-gradient(to right, #A48E5C 20%, #DBE3D6 50%, #A48E5C 80%);
            background-size: 200% auto;
            color: transparent;
            -webkit-background-clip: text;
            background-clip: text;
            animation: shimmer 4s linear infinite;
        }

        /* Glass Card & Shine */
        .glass-card { background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); }
        .shine-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.1) 50%, rgba(255,255,255,0) 100%); transform: translateX(-100%); transition: transform 0.5s; pointer-events: none; }
        .group:hover .shine-overlay { animation: shine 1.5s; }

        /* Floating Particles */
        .particle { position: absolute; width: 3px; height: 3px; background-color: #A48E5C; border-radius: 50%; opacity: 0; pointer-events: none; }
        
        /* Lightbox */
        .lightbox-overlay { opacity: 0; visibility: hidden; transition: all 0.5s ease; }
        .lightbox-overlay.active { opacity: 1; visibility: visible; }

        /* Custom Cursor */
        body.has-custom-cursor,
        body.has-custom-cursor a,
        body.has-custom-cursor button,
        body.has-custom-cursor [role="button"],
        body.has-custom-cursor .btn-luxury {
            cursor: none !important;
        }

        .lux-cursor {
            position: fixed;
            top: 0;
            left: 0;
            width: 24px;
            height: 24px;
            border-radius: 9999px;
            transform: translate(-50%, -50%);
            pointer-events: none;
            z-index: 99999;
            transition: width 0.2s ease, height 0.2s ease, opacity 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
            border: 1px solid rgba(164, 142, 92, 0.88);
            background: rgba(164, 142, 92, 0.08);
            opacity: 0;
            box-shadow: 0 0 14px rgba(164, 142, 92, 0.22);
        }

        .lux-cursor::before {
            content: "";
            position: absolute;
            inset: -8px;
            border-radius: 9999px;
            border: 1px solid rgba(219, 227, 214, 0.45);
            animation: cursorRipple 1.6s ease-out infinite;
            opacity: 0.6;
        }

        .lux-cursor::after {
            content: "";
            position: absolute;
            top: 50%;
            left: 50%;
            width: 4px;
            height: 4px;
            border-radius: 9999px;
            transform: translate(-50%, -50%);
            background: rgba(219, 227, 214, 0.95);
        }

        .lux-cursor-dot {
            position: fixed;
            top: 0;
            left: 0;
            width: 7px;
            height: 7px;
            border-radius: 9999px;
            transform: translate(-50%, -50%);
            pointer-events: none;
            z-index: 100000;
            background: #A48E5C;
            opacity: 0;
            box-shadow: 0 0 12px rgba(164, 142, 92, 0.9);
            transition: opacity 0.2s ease;
        }

        .lux-cursor-trail {
            position: fixed;
            top: 0;
            left: 0;
            width: 48px;
            height: 48px;
            border-radius: 9999px;
            transform: translate(-50%, -50%);
            pointer-events: none;
            z-index: 99998;
            opacity: 0;
            background: radial-gradient(circle at center, rgba(164, 142, 92, 0.28), rgba(164, 142, 92, 0) 72%);
            filter: blur(2px);
            transition: opacity 0.22s ease;
            scale: var(--trail-scale, 1);
        }

        .lux-cursor.theme-bronze {
            border-color: rgba(164, 142, 92, 0.88);
            background: rgba(164, 142, 92, 0.08);
            box-shadow: 0 0 14px rgba(164, 142, 92, 0.22);
        }

        .lux-cursor.theme-bronze::before {
            border-color: rgba(219, 227, 214, 0.45);
        }

        .lux-cursor-dot.theme-bronze {
            background: #A48E5C;
            box-shadow: 0 0 12px rgba(164, 142, 92, 0.9);
        }

        .lux-cursor-trail.theme-bronze {
            background: radial-gradient(circle at center, rgba(164, 142, 92, 0.28), rgba(164, 142, 92, 0) 72%);
        }

        .lux-cursor.theme-forest {
            border-color: rgba(5, 28, 12, 0.92);
            background: rgba(5, 28, 12, 0.12);
            box-shadow: 0 0 14px rgba(5, 28, 12, 0.28);
        }

        .lux-cursor.theme-forest::before {
            border-color: rgba(5, 28, 12, 0.55);
        }

        .lux-cursor-dot.theme-forest {
            background: #051C0C;
            box-shadow: 0 0 12px rgba(5, 28, 12, 0.85);
        }

        .lux-cursor-trail.theme-forest {
            background: radial-gradient(circle at center, rgba(5, 28, 12, 0.26), rgba(5, 28, 12, 0) 72%);
        }

        .lux-cursor.is-visible,
        .lux-cursor-dot.is-visible,
        .lux-cursor-trail.is-visible {
            opacity: 1;
        }

        .lux-cursor.theme-bronze.is-hover {
            width: 44px;
            height: 44px;
            border-color: rgba(219, 227, 214, 0.95);
            background: rgba(219, 227, 214, 0.12);
            box-shadow: 0 0 0 1px rgba(219, 227, 214, 0.7), 0 0 24px rgba(219, 227, 214, 0.28);
        }

        .lux-cursor.theme-bronze.is-title-hover {
            width: 56px;
            height: 56px;
            border-color: rgba(219, 227, 214, 1);
            background: rgba(219, 227, 214, 0.16);
            box-shadow: 0 0 0 1px rgba(219, 227, 214, 0.9), 0 0 30px rgba(219, 227, 214, 0.35);
        }

        .lux-cursor.theme-bronze.is-pressed {
            width: 18px;
            height: 18px;
            background: rgba(164, 142, 92, 0.2);
            border-color: rgba(164, 142, 92, 1);
            box-shadow: 0 0 0 1px rgba(164, 142, 92, 0.75), 0 0 8px rgba(164, 142, 92, 0.3);
        }

        .lux-cursor.theme-forest.is-hover {
            width: 44px;
            height: 44px;
            border-color: rgba(164, 142, 92, 0.95);
            background: rgba(164, 142, 92, 0.14);
            box-shadow: 0 0 0 1px rgba(164, 142, 92, 0.7), 0 0 24px rgba(164, 142, 92, 0.28);
        }

        .lux-cursor.theme-forest.is-title-hover {
            width: 56px;
            height: 56px;
            border-color: rgba(164, 142, 92, 1);
            background: rgba(164, 142, 92, 0.18);
            box-shadow: 0 0 0 1px rgba(164, 142, 92, 0.9), 0 0 30px rgba(164, 142, 92, 0.35);
        }

        .lux-cursor.theme-forest.is-pressed {
            width: 18px;
            height: 18px;
            background: rgba(5, 28, 12, 0.2);
            border-color: rgba(5, 28, 12, 1);
            box-shadow: 0 0 0 1px rgba(5, 28, 12, 0.8), 0 0 8px rgba(5, 28, 12, 0.34);
        }

        @keyframes cursorRipple {
            0% {
                transform: scale(0.85);
                opacity: 0.7;
            }
            70% {
                transform: scale(1.18);
                opacity: 0.15;
            }
            100% {
                transform: scale(1.28);
                opacity: 0;
            }
        }

        .lux-letter-zoom-title .lux-letter-char {
            display: inline-block;
            transform-origin: center bottom;
            transition: transform 0.12s ease, opacity 0.12s ease;
            will-change: transform, opacity;
        }

        .lux-letter-zoom-title .lux-letter-word {
            display: inline-block;
            white-space: nowrap;
        }

        .back-to-top-btn {
            position: fixed;
            right: 24px;
            bottom: 26px;
            width: 56px;
            height: 56px;
            border-radius: 9999px;
            border: 1px solid rgba(164, 142, 92, 0.6);
            background: linear-gradient(145deg, rgba(5, 28, 12, 0.95), rgba(8, 39, 18, 0.95));
            color: #A48E5C;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            z-index: 70;
            opacity: 0;
            visibility: hidden;
            transform: translateY(18px) scale(0.9);
            transition: all 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.25s ease;
            box-shadow: 0 8px 30px rgba(5, 28, 12, 0.35), 0 0 0 1px rgba(164, 142, 92, 0.22) inset;
            backdrop-filter: blur(8px);
        }

        .whatsapp-float-btn {
            position: fixed;
            right: 24px;
            bottom: 94px;
            width: 56px;
            height: 56px;
            border-radius: 9999px;
            border: 1px solid rgba(37, 211, 102, 0.42);
            background: linear-gradient(145deg, rgba(17, 148, 73, 0.96), rgba(37, 211, 102, 0.96));
            color: #FFFFFF;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 27px;
            z-index: 70;
            box-shadow: 0 10px 28px rgba(17, 148, 73, 0.42), 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
            transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.22s ease, filter 0.22s ease;
            backdrop-filter: blur(8px);
        }

        .whatsapp-float-btn .whatsapp-float-pulse {
            position: absolute;
            inset: 7px;
            border-radius: 9999px;
            border: 1px solid rgba(255, 255, 255, 0.5);
            animation: whatsappPulse 2s ease-out infinite;
        }

        .whatsapp-float-btn i {
            position: relative;
            z-index: 2;
        }

        .whatsapp-float-btn:hover {
            transform: translateY(-4px) scale(1.04);
            box-shadow: 0 14px 34px rgba(17, 148, 73, 0.48), 0 0 0 1px rgba(255, 255, 255, 0.18) inset;
            filter: saturate(1.1);
        }

        @keyframes whatsappPulse {
            0% {
                transform: scale(0.92);
                opacity: 0.6;
            }
            80% {
                transform: scale(1.08);
                opacity: 0;
            }
            100% {
                transform: scale(1.08);
                opacity: 0;
            }
        }

        @media (max-width: 767px) {
            .back-to-top-btn {
                right: 18px;
                bottom: 18px;
            }

            .whatsapp-float-btn {
                right: 18px;
                bottom: 86px;
            }
        }

        .back-to-top-btn i {
            position: relative;
            z-index: 2;
            transition: transform 0.25s ease;
        }

        .back-to-top-btn .back-to-top-pulse {
            position: absolute;
            inset: 8px;
            border-radius: 9999px;
            border: 1px solid rgba(164, 142, 92, 0.28);
            animation: backTopPulse 2s ease-out infinite;
        }

        .back-to-top-btn.is-visible {
            opacity: 1;
            visibility: visible;
            transform: translateY(0) scale(1);
        }

        .back-to-top-btn:hover {
            transform: translateY(-4px) scale(1.04);
            box-shadow: 0 12px 34px rgba(5, 28, 12, 0.45), 0 0 0 1px rgba(219, 227, 214, 0.32) inset;
        }

        .back-to-top-btn:hover i {
            transform: translateY(-2px);
        }

        .back-to-top-btn.theme-forest {
            color: #A48E5C;
            border-color: rgba(164, 142, 92, 0.6);
            background: linear-gradient(145deg, rgba(5, 28, 12, 0.95), rgba(8, 39, 18, 0.95));
        }

        .back-to-top-btn.theme-forest .back-to-top-pulse {
            border-color: rgba(164, 142, 92, 0.28);
        }

        .back-to-top-btn.theme-bronze {
            color: #051C0C;
            border-color: rgba(5, 28, 12, 0.45);
            background: linear-gradient(145deg, rgba(164, 142, 92, 0.96), rgba(190, 170, 118, 0.96));
            box-shadow: 0 8px 30px rgba(164, 142, 92, 0.32), 0 0 0 1px rgba(5, 28, 12, 0.2) inset;
        }

        .back-to-top-btn.theme-bronze .back-to-top-pulse {
            border-color: rgba(5, 28, 12, 0.26);
        }

        @keyframes backTopPulse {
            0% {
                transform: scale(0.92);
                opacity: 0.55;
            }
            80% {
                transform: scale(1.08);
                opacity: 0;
            }
            100% {
                transform: scale(1.08);
                opacity: 0;
            }
        }
