/* ==========================================================
   Gloria Luxury Suites — Shared Component Styles
   Auto-generated. Edit sections here, not in individual HTML files.
========================================================== */


/* ------------------------------------------------------------ */
/* ── Mobile Reserve Bar & Shine Button ── */
/* ------------------------------------------------------------ */

/* Mobile Reserve Bar */
        #mobile-reserve-bar {
            transition: opacity 0.5s ease, transform 0.5s ease, visibility 0.5s ease;
            transform: translateY(0%); visibility: hidden; opacity: 0; z-index: -1;
        }
        nav.scrolled #mobile-reserve-bar { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(100%); }
        .gold-shine-btn { position: relative; overflow: hidden; background-color: #C5A065; }
        .gold-shine-btn::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.45) 50%, rgba(255,255,255,0) 100%); transform: skewX(-20deg); animation: mobileBtnShine 4s infinite; animation-delay: 1s; }
        @keyframes mobileBtnShine { 0% { left: -100%; } 15% { left: 200%; } 100% { left: 200%; } }

/* ------------------------------------------------------------ */
/* ── iPad Mini Footer Overrides ── */
/* ------------------------------------------------------------ */

/* IPAD MINI — BIGGER BUTTON & COMPACT FOOTER */
        @media (min-width: 700px) and (max-width: 1024px) {

            /* Bigger gold bar button */
            #mobile-reserve-bar button { font-size: 17px !important; letter-spacing: 0.24em !important; padding-top: 1rem !important; padding-bottom: 1rem !important; }

            /* Compact footer — 2-column grid, tighter spacing */
            footer .grid.grid-cols-1 { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 1.5rem 3rem !important; margin-bottom: 1.5rem !important; }
            footer h4 { margin-bottom: 0.6rem !important; }
            footer address { margin-bottom: 0.5rem !important; line-height: 1.5 !important; }
            footer .space-y-3 { row-gap: 0.25rem !important; }
            footer .space-y-2 { row-gap: 0.2rem !important; }
            footer .mb-5 { margin-bottom: 0.5rem !important; }
            footer .mt-5 { margin-top: 0.5rem !important; }
            footer .text-xl { font-size: 1rem !important; }
            footer .text-\[15px\] { font-size: 0.82rem !important; }
            footer .font-serif.italic.text-lg { font-size: 0.95rem !important; line-height: 1.4 !important; }
            #footer-legal-bar { flex-direction: row !important; justify-content: space-between !important; align-items: center !important; flex-wrap: wrap !important; gap: 0.5rem 1rem !important; padding-top: 1rem !important; }
            #footer-legal-bar p { order: 1 !important; }
            #footer-legal-bar > div:nth-child(2) { order: 2 !important; display: flex !important; flex-direction: row !important; gap: 0.75rem !important; }
            #footer-legal-bar > div:nth-child(3) { order: 3 !important; }
            #footer-legal-bar .col-span-2 { grid-column: unset !important; }
            footer .lg\:hidden.inline-flex { margin-bottom: 0.4rem !important; }
        }

/* ------------------------------------------------------------ */
/* ── Hide Floats When Calendar Open ── */
/* ------------------------------------------------------------ */

/* Hide WA + scroll-up + reserve bar when modals open */
        body.dp-is-open .scroll-to-top,
        body.dp-is-open #mobile-reserve-bar {
            display: none !important; opacity: 0 !important; pointer-events: none !important;
        }
        



/* ------------------------------------------------------------ */
/* ── Date Picker / Calendar Modal ── */
/* ------------------------------------------------------------ */

/* =============================================
           MODAL CALENDAR
        ============================================= */
        .dp-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; height: 100dvh; background: linear-gradient(135deg, rgba(245, 242, 235, 0.85) 0%, rgba(245, 242, 235, 0.9) 50%, rgba(197, 160, 101, 0.15) 100%); backdrop-filter: blur(12px) saturate(1.1); -webkit-backdrop-filter: blur(12px) saturate(1.1); z-index: 1000; opacity: 0; visibility: hidden; transition: opacity 0.5s ease, visibility 0.5s ease, backdrop-filter 0.5s ease; }
        .dp-overlay.active { opacity: 1; visibility: visible; }
        .dp-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.95); background: #F5F2EB; border: 1px solid rgba(197,160,101,0.3); border-radius: 16px; box-shadow: 0 25px 80px rgba(74,68,62,0.15); z-index: 1001; width: 92vw; max-width: 464px; opacity: 0; visibility: hidden; transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
        .dp-modal.active { opacity: 1; visibility: visible; transform: translate(-50%, calc(-50% + var(--drag-y, 0px))) scale(1); }
        .dp-modal.pull-dragging { transition: none !important; }
        .dp-modal.pull-dismissing { transition: transform 0.38s cubic-bezier(0.4, 0, 1, 1), opacity 0.38s ease !important; }
        .dp-drag-handle { display: none; justify-content: center; align-items: center; padding: 10px 0 2px; cursor: grab; flex-shrink: 0; }
        .dp-drag-handle-pill { width: 36px; height: 4px; border-radius: 2px; background: rgba(197,160,101,0.35); transition: background 0.2s, width 0.2s; }
        .dp-modal-header { padding: 1rem 1.75rem; border-bottom: 1px solid rgba(197,160,101,0.15); display: flex; justify-content: center; align-items: center; position: relative; min-height: 52px; }
        .dp-header-range { font-family: "Playfair Display", serif; font-size: 0.95rem; font-style: italic; color: #4A443E; text-align: center; line-height: 1.3; }
        .dp-header-range strong { color: #C5A065; font-style: normal; font-size: 1.05rem; white-space: nowrap; }
        .dp-modal-close { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid rgba(197,160,101,0.3); border-radius: 50%; color: #B0ACA2; cursor: pointer; transition: all 0.3s; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); }
        .dp-modal-close:hover { border-color: #C5A065; color: #C5A065; }
        .dp-status-bar { padding: 0.85rem 1.75rem; background: rgba(197,160,101,0.08); display: flex; justify-content: center; gap: 3rem; }
        .dp-status-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; color: #B0ACA2; text-transform: uppercase; letter-spacing: 0.15em; font-weight: 700; transition: color 0.3s; }
        .dp-status-item.active { color: #4A443E; } 
        .dp-status-item.done { color: #121212; } 
        .dp-status-icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; font-size: 1.1rem; color: #B0ACA2; transition: color 0.3s; }
        .dp-status-item.active .dp-status-icon { color: #C5A065; }
        .dp-status-item.done .dp-status-icon i { animation: spGoldGlint 8s infinite ease-in-out; }
        .dp-status-icon.dp-icon-swap i { animation: dpIconSwap 0.45s cubic-bezier(0.34,1.56,0.64,1) forwards; }
        @keyframes dpIconSwap { 0% { transform: scale(1); opacity: 1; } 20% { transform: scale(0) rotate(-20deg); opacity: 0; } 50% { transform: scale(0) rotate(20deg); opacity: 0; } 80% { transform: scale(1.3); opacity: 1; color: #FFF5E1; filter: drop-shadow(0 0 10px rgba(197,160,101,0.9)); } 100% { transform: scale(1); opacity: 1; filter: none; } }
        
        .dp-cal-body { padding: 1.5rem 1.75rem; overflow: hidden; position: relative; cursor: grab; user-select: none; }
        .dp-cal-body:active { cursor: grabbing; }
        .dp-cal-anim-wrap { display: flex; flex-direction: column; transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s ease; will-change: transform, opacity; }
        .dp-cal-anim-wrap.slide-out-left { transform: translateX(-100%); opacity: 0; }
        .dp-cal-anim-wrap.slide-out-right { transform: translateX(100%); opacity: 0; }
        .dp-cal-anim-wrap.prepare-left { transform: translateX(-100%); opacity: 0; transition: none !important; }
        .dp-cal-anim-wrap.prepare-right { transform: translateX(100%); opacity: 0; transition: none !important; }
        
        .dp-cal-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.25rem; }
        .dp-cal-btn { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid rgba(197,160,101,0.3); border-radius: 50%; color: #C5A065; cursor: pointer; transition: all 0.3s; }
        .dp-cal-btn:hover { background: #C5A065; color: #F5F2EB; }
        .dp-cal-month { font-family: "Playfair Display", serif; font-size: 1.2rem; font-style: italic; color: #4A443E; }
        .dp-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: 0.5rem; border-bottom: 1px solid rgba(197,160,101,0.15); padding-bottom: 0.5rem; }
        .dp-wd { text-align: center; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.1em; color: #B0ACA2; padding: 0.5rem 0; font-weight: 600; }
        
        /* LOCKED GRID SIZE FOR CALENDAR */
        .dp-days { display: grid; grid-template-columns: repeat(7, 1fr); grid-template-rows: repeat(6, 1fr); gap: 4px; }
        
        .dp-day { width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: transparent; border: 1px solid transparent; border-radius: 12px; cursor: pointer; transition: all 0.2s; min-height: 54px; padding: 4px 0; position: relative; }
        .dp-day:hover:not(.off):not(.season-off):not(.too-soon):not(.fully-booked):not([style*="visibility: hidden"]) { border-color: #C5A065; background: rgba(197,160,101,0.1); }
        .dp-day.off { opacity: 0.25; cursor: default; }
        .dp-day.season-off { opacity: 0.3; cursor: not-allowed; }
        .dp-day.season-off .dp-day-num { text-decoration: line-through; text-decoration-color: #B0ACA2; }
        .dp-day.too-soon { opacity: 0.35; cursor: not-allowed; }
        .dp-day.fully-booked { opacity: 0.3; cursor: not-allowed; background: rgba(197,160,101,0.05); }
        .dp-day.fully-booked .dp-day-num { color: #B0ACA2; text-decoration: line-through; text-decoration-color: rgba(197,160,101,0.5); }
        .dp-day.checkin { background: #C5A065 !important; border-color: #C5A065 !important; }
        .dp-day.checkin .dp-day-num, .dp-day.checkin .dp-day-price { color: #F5F2EB !important; }
        .dp-day.checkout { background: #82CECB !important; border-color: #82CECB !important; }
        .dp-day.checkout .dp-day-num, .dp-day.checkout .dp-day-price { color: #F5F2EB !important; }
        .dp-day.in-range { background: rgba(197,160,101,0.12); border-radius: 6px; }
        .dp-day-num { font-family: "Playfair Display", serif; font-size: 1rem; font-weight: 600; color: #4A443E; line-height: 1; }
        .dp-day.off .dp-day-num, .dp-day.season-off .dp-day-num, .dp-day.too-soon .dp-day-num { color: #B0ACA2; }
        .dp-day-price { font-size: 1.15rem; color: #C5A065; font-weight: 800; margin-top: 4px; line-height: 1; white-space: nowrap; letter-spacing: -0.02em; }
        
        .dp-modal-footer { padding: 1rem 1.75rem; border-top: 1px solid rgba(197,160,101,0.15); display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
        .dp-range-text { display: none; }
        .dp-clear { background: none; border: none; color: #B0ACA2; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.15em; cursor: pointer; font-weight: 700; padding: 0.5rem; } 
        .dp-clear:hover { color: #121212; }
        .dp-confirm { flex: 1; padding: 0.9rem 2rem; background: #C5A065; border: none; border-radius: 8px; color: #121212; font-size: 0.78rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.15em; cursor: pointer; opacity: 0.4; pointer-events: none; transition: all 0.3s; } 
        .dp-confirm.ready { opacity: 1; pointer-events: auto; }
        .dp-confirm.ready:hover { background: #4A443E; color: #F5F2EB; }
        .dp-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2.5rem 0; gap: 1rem; }
        .dp-loading-spinner { width: 32px; height: 32px; border: 2px solid rgba(197,160,101,0.2); border-top-color: #C5A065; border-radius: 50%; animation: dpSpin 0.8s linear infinite; }
        @keyframes dpSpin { to { transform: rotate(360deg); } }
        .dp-loading-text { font-family: "Playfair Display", serif; font-size: 0.9rem; font-style: italic; color: #B0ACA2; }

        /* --- MOBILE CALENDAR STABILITY & HEIGHT LOCK --- */
        @media (max-width: 767px) {
            .dp-modal { 
                width: calc(100% - 16px); 
                max-width: 400px; 
                height: 654px !important; 
                display: flex; 
                flex-direction: column; 
            }
            .dp-drag-handle { display: flex !important; }
            .dp-drag-handle, .dp-modal-header, .dp-status-bar, .dp-modal-footer { flex-shrink: 0; }
            .dp-cal-body { 
                flex: 1; 
                padding: 1rem; 
                display: flex; 
                flex-direction: column; 
                overflow: hidden; 
                position: relative;
                justify-content: center; 
            }
            .dp-confirm { padding: 0.8rem 1.5rem; font-size: 0.72rem; flex: 1; }
            .dp-clear { padding: 0.4rem; font-size: 0.75rem; }
            .dp-header-range { font-size: 0.85rem; }
            .dp-day-price { font-size: 1.05rem; margin-top: 3px; }
        }

/* ------------------------------------------------------------ */
/* ── Suites Selection Panel ── */
/* ------------------------------------------------------------ */

/* =============================================
           SUITES PANEL — FULL SCREEN SLIDE-IN
        ============================================= */
        .suites-panel {
            position: fixed;
            top: 0; left: 0; right: 0; bottom: 0;
            z-index: 300;
            background: #F5F2EB;
            transform: translateX(100%);
            transition: transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
            display: flex;
            flex-direction: column;
            overflow: hidden;
            height: 100vh;
            height: var(--panel-h, 100dvh);
        }
        .suites-panel.active { transform: translateX(0) translateY(0); }
        .suites-panel.pull-dragging { transition: none !important; }
        .suites-panel.pull-dismissing { transition: transform 0.38s cubic-bezier(0.4, 0, 1, 1), opacity 0.38s ease, border-radius 0.38s ease !important; }
        #sp-backdrop {
            display: block !important; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; height: 100dvh;
            background: linear-gradient(135deg, rgba(245, 242, 235, 0.85) 0%, rgba(245, 242, 235, 0.9) 50%, rgba(197, 160, 101, 0.15) 100%);
            backdrop-filter: blur(12px) saturate(1.1); -webkit-backdrop-filter: blur(12px) saturate(1.1);
            z-index: 1000; pointer-events: auto;
            opacity: 0; visibility: hidden; transition: opacity 0.5s ease, visibility 0.5s ease, backdrop-filter 0.5s ease;
        }
        #sp-backdrop.active { opacity: 1; visibility: visible; }
        @media (min-width: 601px) { #sp-backdrop { display: none !important; opacity: 0; visibility: hidden; } }

        @media (max-width: 600px) {
            .suites-panel {
                background: #F5F2EB !important;
                position: fixed !important;
                top: 50% !important; left: 50% !important;
                transform: translate(-50%, -50%) scale(0.95) !important;
                width: calc(100% - 16px) !important; 
                max-width: 400px !important;
                height: 654px !important; 
                max-height: 654px !important; 
                border: 1px solid rgba(197,160,101,0.3) !important;
                border-radius: 16px !important;
                box-shadow: 0 25px 80px rgba(74,68,62,0.15) !important;
                z-index: 1001 !important;
                opacity: 0; visibility: hidden;
                transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
                display: flex !important;
                flex-direction: column !important;
                overflow: hidden !important;
            }
            .suites-panel.active {
                opacity: 1 !important; visibility: visible !important;
                transform: translate(-50%, calc(-50% + var(--drag-y, 0px))) scale(1) !important;
            }
            .sp-drag-handle { 
                display: flex !important; 
                width: 100%; 
                justify-content: center; 
                padding: 12px 0 4px; 
                background: transparent; 
                cursor: grab; 
                flex-shrink: 0; 
            }
            .sp-drag-handle-pill { 
                width: 40px; 
                height: 4px; 
                border-radius: 4px; 
                background: rgba(197,160,101,0.35); 
            }
            .sp-header {
                width: 100% !important; max-width: none !important;
                height: auto !important;
                padding: 0.5rem 0.85rem !important;
                border-bottom: 1px solid rgba(197,160,101,0.15) !important;
                background: transparent !important;
                display: flex !important; justify-content: space-between !important; align-items: center !important;
                flex-shrink: 0;
            }
            .sp-header-dates {
                font-family: "Playfair Display", serif !important; 
                font-size: 0.95rem !important; 
                font-style: italic !important; 
                color: #4A443E !important; 
                background: none !important; border: none !important; padding: 0.05rem 0 !important;
                backdrop-filter: none !important; border-radius: 0 !important;
            }
            .sp-header-dates strong { color: #C5A065 !important; font-style: normal !important; }
            .sp-header-right { position: static !important; transform: none !important; display: flex !important; align-items: center !important; gap: 0.15rem !important; }
            .sp-close {
                position: static !important;
                width: 24px !important; height: 24px !important; border: none !important; background: transparent !important;
                color: #4A3728 !important; backdrop-filter: none !important; border-radius: 0 !important;
                display: flex !important; align-items: center !important; justify-content: center !important; font-size: 0.75rem !important; margin-left: 0.15rem !important;
            }
            .sp-close:hover { color: #C5A065 !important; }
            
            .sp-header-nav { 
                display: flex !important; align-items: center; background: none; border: none; color: #4A3728; 
                font-size: 1rem !important; cursor: pointer; padding: 0.2rem; flex-shrink: 0; transition: opacity 0.2s; 
            }
            .sp-header-nav:hover { opacity: 0.6; }
            .sp-header-counter { 
                display: inline !important; font-family: "Playfair Display", serif !important; font-size: 0.95rem !important; 
                color: #4A3728 !important; font-weight: 600 !important; opacity: 1 !important; 
            }
            
            .sp-viewport {
                width: 100% !important; max-width: none !important; height: auto !important; max-height: none !important;
                flex: 1 !important; border-radius: 0 !important; box-shadow: none !important; overflow: hidden !important;
            }
            .sp-track { height: 100% !important; }
            .sp-card { flex-direction: column !important; height: 100% !important; min-width: 100% !important; overflow: hidden !important; border-radius: 0 !important; }
            
            .sp-card-image { 
                height: 195px !important; width: 100% !important; flex-shrink: 0 !important; border-bottom: 2.5px solid #C5A065; 
            }
            
            .sp-card-info { flex: 1; min-height: 0; background: #F5F2EB; display: flex; flex-direction: column; overflow: hidden; }
            .sp-info-top-wrap { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; position: relative; }
            .sp-info-top { flex: 1; min-height: 0; padding: 0.35rem 0.75rem 0.4rem !important; overflow-y: auto !important; height: auto !important; }
            .sp-inline-counter { display: none !important; }
            .sp-suite-name { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.15 !important; font-size: 1.25rem; flex: 1; margin-top: 0 !important;}
            .sp-suite-name a { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; display: inline !important; }
            .sp-title-row { margin-bottom: 0rem; align-items: flex-start; padding-top: 0.15rem; } 
            .sp-suite-name em { font-size: 0.75em; margin-left: 8px; }
            .sp-suite-desc { display: none !important; }
            
            .sp-features { grid-template-columns: 1.1fr 0.9fr !important; gap: 0.3rem 0.5rem !important; padding-top: 0.35rem; margin-top: 0.15rem; width: 100% !important; }
            .sp-offer-perks { grid-template-columns: 1.1fr 0.9fr !important; gap: 0.3rem 0.5rem !important; margin-top: 0.35rem; padding-top: 0.35rem; width: 100% !important; }
            .sp-feature-item { gap: 0.35rem !important; margin: 0 !important; align-items: center !important; width: 100% !important; }
            .sp-feature-item i { width: 22px !important; height: auto !important; display: flex !important; justify-content: center !important; align-items: center !important; flex-shrink: 0 !important; margin-top: 0 !important; font-size: 1.15rem !important; }
            .sp-feature-item span { white-space: nowrap !important; overflow: visible !important; line-height: 1 !important; flex: 1; min-width: 0; font-size: 0.72rem !important; letter-spacing: 0.05em !important; }

            .sp-offer-perk { gap: 0.35rem !important; margin: 0 !important; align-items: center !important; width: 100% !important; }
            .sp-offer-perk-icon { width: 22px !important; height: 22px !important; display: flex !important; justify-content: center !important; align-items: center !important; flex-shrink: 0 !important; margin-top: 0 !important; }
            .sp-offer-perk span { white-space: nowrap !important; overflow: visible !important; line-height: 1 !important; flex: 1; min-width: 0; font-size: 0.95rem !important; letter-spacing: 0.02em !important; }
            
            .sp-rate-bar { flex-shrink: 0; padding-bottom: 0; border-top: 1px solid rgba(197,160,101,0.2); background: #FDFAF5; display: flex; flex-direction: column; }
            .sp-rate-tiers { display: flex; }
            .sp-rate-tier { flex: 1; padding: 0.7rem 0.5rem 0.7rem 1rem !important; border-right: 1px solid rgba(197,160,101,0.12); gap: 0 !important; opacity: 0.8 !important; }
            .sp-rate-tier.active { opacity: 1 !important; }
            .sp-rate-tier:last-child { border-right: none; }
            .sp-rate-tier-top { margin-bottom: 0; }
            .sp-rate-tier-label { font-size: 0.7rem; line-height: 1; white-space: normal; font-weight: 700; color: #4A3728; }
            .sp-rate-tier.active .sp-rate-tier-label { font-size: 0.75rem; color: #C5A065; }
            .sp-rate-tier-nights { font-size: 0.65rem !important; margin-top: 0; opacity: 1 !important; color: #4A3728 !important; font-weight: 800 !important; }
            .sp-rate-unavail { font-size: 0.8rem !important; color: #B0ACA2 !important; opacity: 0.7; margin-top: 0 !important; line-height: 1 !important; }
            
            .sp-mobile-main-btn {
                display: flex !important; width: 100% !important; padding: 0.7rem 1rem !important; background: #C5A065 !important;
                color: #4A3728 !important; font-family: "Cormorant Garamond", serif; font-size: 0.8rem !important; font-weight: 600 !important; 
                text-transform: uppercase; letter-spacing: 0.15em; justify-content: center; align-items: center; border-radius: 0; text-decoration: none; position: relative; overflow: hidden;
            }
            .sp-mobile-main-btn::after {
                content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%;
                background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.35) 50%, rgba(255,255,255,0) 100%);
                transform: skewX(-20deg); animation: mobileBtnShine 4s infinite 1s;
            }

            .sp-rate-tier-price-row { margin-top: 0; gap: 0.2rem !important; flex-wrap: nowrap !important; align-items: baseline !important; }
            .sp-rate-tier-price { font-size: 1.25rem !important; line-height: 1 !important; color: #4A3728 !important; }
            .sp-rate-tier.active .sp-rate-tier-price { font-size: 1.45rem !important; }
            
            .sp-gold-discount { 
                font-size: 1.5rem !important; font-family: "Playfair Display", serif !important; padding: 0 !important; background: transparent !important; color: #C5A065 !important; border-radius: 0; font-weight: 800 !important; box-shadow: none !important; margin-left: 0.3rem; flex-shrink: 0; line-height: 1;
            }
            
            .sp-rate-tier-per { font-size: 0.85rem !important; margin-top: 4px !important; color: #4A3728 !important; opacity: 1 !important; font-weight: 700 !important; }
            .sp-rate-tier.active .sp-rate-tier-per { font-size: 0.95rem !important; margin-top: 4px !important; }
            
            .sp-cancel-note { padding: 0.75rem 1rem !important; font-size: 0.85rem !important; justify-content: center !important; text-align: center; white-space: nowrap !important; overflow: hidden; letter-spacing: -0.015em; color: #4A3728 !important; flex-shrink: 0; }
            .sp-cancel-note i { color: #C5A065 !important; }
            .sp-cancel-note .sp-desktop-reserve { display: none !important; }
            
            .sp-unavail-note { padding: 1.25rem 0.5rem !important; justify-content: center; text-align: center; flex-wrap: wrap !important; gap: 0.2rem 0.8rem !important; }
            .sp-unavail-label { font-size: 0.7rem !important; white-space: nowrap; opacity: 0.8; }
            .sp-rate-meta-change { font-size: 0.7rem !important; white-space: nowrap; }
            
            .sp-dots-row { display: flex !important; gap: 5px; justify-content: center; align-items: center; padding: 7px 0 5px; flex-shrink: 0; }
            .sp-dot { background: rgba(74,55,40,0.18) !important; width: 6px !important; height: 6px !important; border-radius: 50% !important; }
            .sp-dot.active { background: #C5A065 !important; width: 18px !important; border-radius: 3px !important; }
        }

        .sp-header { flex-shrink: 0; height: auto; min-height: 40px; background: #F5F2EB; border-bottom: 1px solid rgba(197,160,101,0.2); display: flex; align-items: center; justify-content: space-between; padding: 0.35rem 0.75rem; position: relative; }
        .sp-header-dates-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 0.1rem; background: none; border: none; cursor: pointer; padding: 0.15rem 0.25rem; transition: opacity 0.2s; }
        .sp-header-dates-wrap:hover { opacity: 0.7; }
        .sp-header-dates { font-family: "Playfair Display", serif; font-size: 1rem; font-style: italic; color: #4A443E; }
        .sp-header-dates strong { color: #C5A065; font-style: normal; pointer-events: none; }
        .sp-header-change-hint { font-family: "Cormorant Garamond", serif; font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; color: #4A3728; line-height: 1; pointer-events: none; display: block; }
        .sp-header-right { display: flex; align-items: center; gap: 0.1rem; flex-shrink: 0; }
        .sp-header-nav { display: flex; align-items: center; justify-content: center; background: none; border: none; color: #B0ACA2; font-size: 1rem; cursor: pointer; padding: 0.2rem 0.3rem; flex-shrink: 0; transition: color 0.2s; }
        .sp-header-nav:hover { color: #4A3728; }
        .sp-header-counter { display: inline; font-family: "Cormorant Garamond", serif; font-size: 0.85rem; font-weight: 600; color: #B0ACA2; letter-spacing: 0.1em; min-width: 32px; text-align: center; }
        .sp-close { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; background: transparent; border: none; color: #B0ACA2; cursor: pointer; transition: color 0.3s; flex-shrink: 0; font-size: 0.75rem; margin-left: 0.25rem; }
        .sp-close:hover { color: #C5A065; }
        .sp-drag-handle { display: none; justify-content: center; align-items: center; padding: 5px 0 2px; flex-shrink: 0; cursor: grab; touch-action: none; }
        @media (min-width: 1025px) { .sp-drag-handle { display: none !important; } .sp-drag-handle-pill { display: none !important; } }
        .sp-drag-handle-pill { width: 36px; height: 4px; border-radius: 2px; background: rgba(197,160,101,0.35); transition: background 0.2s, width 0.2s; }
        @media (min-width: 601px) and (max-width: 1024px) { .sp-drag-handle { display: flex; } .sp-suite-desc { display: none !important; } }
        .sp-dots-row { display: none; flex-shrink: 0; }
        @media (min-width: 601px) {
            .sp-dots-row { display: flex; gap: 6px; justify-content: center; padding-top: 0.75rem; }
        }
        .sp-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(245,242,235,0.35); transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); cursor: pointer; }
        .sp-dot.active { width: 20px; border-radius: 3px; background: #C5A065; }
        @media (min-width: 1025px) { #spDragHandle { display: none !important; } .sp-mobile-main-btn { display: none !important; } #spDots { display: none !important; } }

        .sp-viewport { flex: 1; overflow: hidden; position: relative; cursor: grab; }
        .sp-viewport.dragging { cursor: grabbing; }
        .sp-track { display: flex; height: 100%; transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1); will-change: transform; }
        .sp-card { min-width: 100%; height: 100%; display: flex; flex-direction: column; }
        @media (min-width: 601px) { .sp-card { flex-direction: row; } }
        @media (min-width: 601px) and (max-width: 1024px) and (orientation: portrait) {
            .sp-card { flex-direction: column !important; }
            .sp-card-image { width: 100% !important; height: 38% !important; border-bottom: 2.5px solid #C5A065; }
            .sp-suite-name { white-space: normal !important; overflow: visible !important; }
            .sp-suite-name a { white-space: normal !important; display: inline !important; }
            .sp-info-top { padding: 0.75rem 1.5rem 0.6rem !important; overflow-y: hidden !important; }
            .sp-suite-desc { display: none !important; }
            .sp-features { gap: 0.35rem 0.8rem !important; padding-top: 0.4rem !important; margin-top: 0.15rem !important; }
            .sp-feature-item i { width: 24px !important; font-size: 1.1rem !important; }
            .sp-feature-item span { font-size: 0.72rem !important; }
            .sp-offer-perks { gap: 0.35rem 0.8rem !important; margin-top: 0.4rem !important; padding-top: 0.4rem !important; }
            .sp-offer-perk-icon { width: 24px !important; height: 24px !important; }
            .sp-offer-perk span { font-size: 0.88rem !important; }
            .sp-rate-tier { padding: 0.6rem 0.75rem !important; }
            .sp-rate-tier-label { font-size: 0.85rem !important; }
            .sp-rate-tier.active .sp-rate-tier-label { font-size: 0.9rem !important; }
            .sp-rate-tier-nights { font-size: 0.68rem !important; }
            .sp-rate-tier-price { font-size: 1.15rem !important; }
            .sp-rate-tier.active .sp-rate-tier-price { font-size: 1.35rem !important; }
            .sp-rate-tier-per { font-size: 0.75rem !important; }
            .sp-rate-tier.active .sp-rate-tier-per { font-size: 0.8rem !important; }
            .sp-cancel-note { padding: 0.6rem 1rem !important; font-size: 0.85rem !important; }
        }
        .sp-card-image { position: relative; overflow: hidden; flex-shrink: 0; width: 100%; height: 58%; }
        @media (max-height: 700px) and (max-width: 600px) { .sp-card-image { height: 52%; } }
        @media (orientation: landscape) and (max-width: 1024px) { .sp-card-image { height: 55% !important; } .sp-card { flex-direction: row !important; } .sp-card-image { width: 45% !important; height: 100% !important; } }
        @media (min-width: 601px) { .sp-card-image { width: 48%; height: 100%; } }
        .sp-card-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.5s ease; }
        .sp-card-image a:hover img { transform: scale(1.05); }
        .sp-card.unavailable .sp-card-image img { filter: grayscale(80%) brightness(0.6); }
        .sp-img-badge { position: absolute; top: 1rem; left: 1rem; background: rgba(15,13,10,0.7); backdrop-filter: blur(8px); color: #F5F2EB; font-family: "Cormorant Garamond", serif; font-size: 0.65rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em; padding: 0.4rem 0.75rem; border-radius: 30px; }
        @media (min-width: 601px) { .sp-img-badge { display: none !important; } }
        .sp-img-reserve { position: absolute; bottom: 1rem; right: 1rem; display: flex; align-items: center; gap: 0.4rem; background: #82CECB; color: #F5F2EB; font-family: "Cormorant Garamond", serif; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; transition: background 0.3s; }
        .sp-img-reserve:hover { background: #4A443E; }
        .sp-img-reserve i { font-size: 1rem; }
        @media (max-width: 600px) { .sp-img-reserve { display: none !important; } }
        @media (min-width: 601px) { .sp-card-image .sp-img-reserve { display: none !important; } .sp-desktop-reserve { display: none !important; } }
        .sp-discover-cta { display: none; }
        @media (max-width: 600px) {
            .sp-img-badge { display: none !important; }
            .sp-discover-cta { 
                display: flex; align-items: center; gap: 0.4rem;
                position: absolute; top: 0.65rem; left: 0.65rem;
                background: rgba(245,242,235,0.55); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
                border: 1px solid rgba(255,255,255,0.4);
                color: #4A443E; font-family: "Cormorant Garamond", serif; font-size: 0.65rem; font-weight: 600;
                letter-spacing: 0.1em; text-transform: uppercase; padding: 0.35rem 0.85rem; border-radius: 30px;
                white-space: nowrap; pointer-events: none;
                animation: spDiscoverPulse 3s ease-in-out infinite;
            }
            .sp-discover-cta i { font-size: 0.8rem; color: #C5A065; animation: spDiscoverArrow 2s ease-in-out infinite; }
            @keyframes spDiscoverPulse { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } }
            @keyframes spDiscoverArrow { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
        }
        /* Gold reserve bar between header and image */
        .sp-reserve-bar { flex-shrink: 0; background: #C5A065; position: relative; overflow: hidden; }
        .sp-reserve-bar::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.45) 50%, rgba(255,255,255,0) 100%); transform: skewX(-20deg); animation: mobileBtnShine 4s infinite; animation-delay: 1.5s; }
        .sp-reserve-bar-btn { display: flex; align-items: center; justify-content: center; gap: 0.5rem; width: 100%; padding: 0.65rem 1.5rem; color: #4A3728; font-family: "Cormorant Garamond", serif; font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.2em; text-decoration: none; position: relative; z-index: 1; }
        .sp-reserve-bar-btn i { font-size: 1rem; }
        .sp-unavail-overlay { position: absolute; inset: 0; background: rgba(15,13,10,0.65); display: flex; align-items: center; justify-content: center; }
        .sp-unavail-text { font-family: "Playfair Display", serif; font-style: italic; font-size: 1.1rem; color: rgba(245,242,235,0.6); }
        .sp-card-info { flex: 1; min-width: 0; min-height: 0; background: #F5F2EB; display: flex; flex-direction: column; overflow: hidden; max-height: 100%; }
        .sp-info-top { flex: 1; min-height: 0; overflow-y: auto; padding: 1.25rem 1.5rem 0.8rem; display: flex; flex-direction: column; justify-content: flex-start; -webkit-overflow-scrolling: touch; }
        @media (min-width: 601px) { .sp-info-top { padding: 2.5rem 2.5rem 1.5rem; justify-content: center; } }
        @media (min-width: 1280px) { .sp-info-top { padding: 3rem 3.5rem 1.5rem; } }
        .sp-info-top::-webkit-scrollbar { width: 4px; }
        .sp-info-top::-webkit-scrollbar-track { background: transparent; }
        .sp-info-top::-webkit-scrollbar-thumb { background: rgba(197,160,101,0.4); border-radius: 4px; }
        .sp-info-top-wrap { flex: 1; min-height: 0; position: relative; overflow: hidden; display: flex; flex-direction: column; }
        .sp-info-top-wrap::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 32px; background: linear-gradient(to bottom, rgba(245,242,235,0), rgba(245,242,235,0.95)); pointer-events: none; z-index: 2; transition: opacity 0.3s; }
        .sp-info-top-wrap.at-bottom::after { opacity: 0; }
        .sp-title-row { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; margin-bottom: 0.1rem; padding-top: 0.2rem; width: 100%; }
        .sp-suite-name { font-family: "Playfair Display", serif; font-size: 1.35rem; line-height: normal; padding-bottom: 4px; color: #4A3728; margin-bottom: 0; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
        @media (min-width: 601px) { .sp-suite-name { font-size: 1.8rem; } }
        @media (min-width: 1280px) { .sp-suite-name { font-size: 2rem; } }
        .sp-suite-name em { color: #C5A065; font-size: 0.8em; margin-left: 8px; }
        .sp-suite-name a { text-decoration: none; color: inherit; transition: opacity 0.3s; display: inline-block; vertical-align: bottom; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
        .sp-suite-name a:hover { opacity: 0.7; }
        .sp-suite-num { font-family: "Playfair Display", serif; font-size: 1.6rem; font-style: italic; color: #C5A065; background: none; border: none; box-shadow: none; padding: 0; margin-left: 0.6rem; flex-shrink: 0; line-height: 1; opacity: 0.85; }
        .sp-inline-counter { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.3rem; flex-shrink: 0; }
        @media (min-width: 601px) { .sp-inline-counter { display: none !important; } }
        .sp-inline-counter button { background: transparent; border: 1px solid rgba(74, 68, 62, 0.15); border-radius: 50%; color: #4A3728; font-size: 1rem; cursor: pointer; padding: 0; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
        .sp-inline-counter button:hover { color: #C5A065; border-color: #C5A065; background: rgba(197, 160, 101, 0.05); transform: scale(1.05); }
        .sp-inline-counter .sp-counter-text { font-family: "Playfair Display", serif; font-size: 0.95rem; font-style: italic; color: #B0ACA2; min-width: 40px; text-align: center; letter-spacing: 0.1em; }
        .sp-inline-counter .sp-counter-text span { color: #4A3728; font-style: normal; font-weight: 600; font-size: 1.1rem; }
        .sp-suite-desc { font-family: "Cormorant Garamond", serif; font-size: 0.95rem; color: rgba(74,55,40,0.65); line-height: 1.4; margin-bottom: 0.2rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
        @media (min-width: 601px) { .sp-suite-desc { font-size: 1.1rem; margin-bottom: 0.3rem; -webkit-line-clamp: 3; } }
        .sp-features { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; padding-top: 0.5rem; border-top: 1px solid rgba(197,160,101,0.15); margin-top: 0.2rem; }
        .sp-feature-item { display: flex; align-items: center; gap: 0.5rem; padding: 0; margin: 0; }
        .sp-feature-item i { font-size: 1.3rem; color: #C5A065; flex-shrink: 0; width: 28px; display: flex; justify-content: center; align-items: center; }
        .sp-feature-item span { font-family: "Cormorant Garamond", serif; font-size: 0.82rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: #4A443E; line-height: 1.2; white-space: nowrap; }
        .sp-feature-item.pool-item i { color: #82CECB; }
        .sp-feature-item.pool-item span { color: #2D7A7D; }
        .sp-feature-item.no-pool i { opacity: 0.4; position: relative; }
        .sp-feature-item.no-pool i::after { content: ''; position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: currentColor; transform: rotate(-45deg); }
        .sp-feature-item i.sp-glint { animation: spGoldGlint 8s infinite ease-in-out; }
        .sp-feature-item.pool-item i.sp-glint { animation: spTealGlint 8s infinite ease-in-out; }
        @keyframes spTealGlint { 0% { color: #82CECB; } 6% { color: #E0FAF9; filter: drop-shadow(0 0 8px rgba(130,206,203,0.8)); transform: scale(1.2); } 12.5%{ color: #82CECB; } 100% { color: #82CECB; } }
        .sp-offer-perks { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin-top: 0.6rem; padding-top: 0.6rem; border-top: 1px solid rgba(197,160,101,0.15); }
        .sp-offer-perk { display: flex; align-items: center; gap: 0.5rem; }
        .sp-offer-perk-icon { width: 30px; height: 30px; border-radius: 50%; background: rgba(197,160,101,0.12); border: 1px solid rgba(197,160,101,0.25); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
        .sp-offer-perk-icon i { color: #C5A065; font-size: 1.05rem; }
        .sp-offer-perk span { font-family: "Cormorant Garamond", serif; font-size: 0.95rem; font-weight: 600; color: #4A443E; line-height: 1.2; }
        .sp-rate-bar { flex-shrink: 0; border-top: 1px solid rgba(197,160,101,0.22); background: #FDFAF5; padding-bottom: env(safe-area-inset-bottom, 0px); }
        .sp-rate-tiers { display: flex; border-bottom: 1px solid rgba(197,160,101,0.15); }
        .sp-rate-tier { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 1rem; gap: 0.2rem; position: relative; border-right: 1px solid rgba(197,160,101,0.12); transition: background 0.25s; cursor: pointer; }
        .sp-rate-tier:last-child { border-right: none; }
        .sp-rate-tier.active { background: rgba(197,160,101,0.09); cursor: default; }
        .sp-rate-tier.active::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: #C5A065; }
        .sp-rate-tier:not(.active):hover { background: rgba(197,160,101,0.05); }
        .sp-rate-tier-top { display: flex; align-items: center; gap: 0.4rem; width: 100%; margin-bottom: 0; }
        .sp-rate-tier-label { font-family: "Playfair Display", serif; font-size: 0.95rem; font-style: italic; color: #B0ACA2; white-space: nowrap; }
        .sp-rate-tier.active .sp-rate-tier-label { color: #C5A065; font-size: 1rem; }
        .sp-gold-discount { display: inline-block; color: #FFFFFF; background: #C5A065; font-family: "Cormorant Garamond", serif; font-weight: 800; font-style: normal; font-size: 1.35rem; padding: 0.2rem 0.5rem; border-radius: 4px; vertical-align: middle; line-height: 1; letter-spacing: 0.05em; position: relative; overflow: hidden; }
        .sp-gold-discount::after { content: ''; position: absolute; top: 0; left: -100%; width: 60%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0) 100%); transform: skewX(-20deg); animation: spShinePill 5s infinite; }
        @keyframes spShinePill { 0% { left: -100%; } 15% { left: 200%; } 100% { left: 200%; } }
        .sp-rate-tier.active .sp-gold-discount { background: #C5A065; color: #F5F2EB; font-size: 1.5rem; }
        .sp-rate-tier-nights { font-family: "Cormorant Garamond", serif; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #C8C2BB; }
        .sp-rate-tier.active .sp-rate-tier-nights { color: rgba(197,160,101,0.7); }
        .sp-rate-tier-price-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.3rem; line-height: 1.1; }
        .sp-rate-tier-price { font-family: "Playfair Display", serif; font-size: 1.25rem; color: #C5C0B8; line-height: 1.1; }
        .sp-rate-tier.active .sp-rate-tier-price { color: #4A3728; font-size: 1.45rem; }
        .sp-rate-tier-per { font-family: "Cormorant Garamond", serif; font-size: 0.75rem; font-style: italic; color: #C8C2BB; line-height: 1.1; }
        .sp-rate-tier.active .sp-rate-tier-per { color: rgba(74,55,40,0.9); font-size: 0.85rem; font-style: normal; font-weight: 600; }
        .sp-rate-unavail { font-family: "Playfair Display", serif; font-style: italic; font-size: 1.1rem; color: #C8C2BB; margin-top: 0.4rem; }
        .sp-rate-meta-change { font-family: "Cormorant Garamond", serif; font-size: 0.85rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.12em; color: #C5A065; cursor: pointer; background: none; border: none; padding: 0; transition: color 0.2s; }
        .sp-rate-meta-change:hover { color: #4A3728; }
        .sp-cancel-note { padding: 1.15rem 1.5rem; display: flex; align-items: center; gap: 0.4rem; font-family: "Cormorant Garamond", serif; font-size: 0.95rem; font-style: italic; color: #75ACA8; border-top: 1px solid rgba(197,160,101,0.12); }
        .sp-cancel-note i { font-size: 1rem; color: #75ACA8; flex-shrink: 0; }
        .sp-unavail-note { padding: 1.15rem 1.5rem; display: flex; align-items: center; gap: 0.75rem; border-top: 1px solid rgba(197,160,101,0.12); }
        .sp-unavail-label { font-family: "Cormorant Garamond", serif; font-size: 0.9rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #4A3728; }
        .sp-btn-reserve { display: flex; align-items: center; justify-content: center; gap: 0.5rem; background: #C5A065; color: #4A3728; font-family: "Cormorant Garamond", serif; font-size: 0.85rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.2em; padding: 0.75rem 2.5rem; text-decoration: none; border: none; border-radius: 0; cursor: pointer; white-space: nowrap; width: auto; position: relative; overflow: hidden; transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
        .sp-btn-reserve::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.45) 50%, rgba(255,255,255,0) 100%); transform: skewX(-20deg); animation: mobileBtnShine 4s infinite; animation-delay: 1s; }
        .sp-btn-reserve i, .sp-btn-reserve span { position: relative; z-index: 1; }
        @media (hover: hover) { .sp-btn-reserve:hover { background: #4A3728; color: #C5A065; } .sp-btn-reserve:hover::after { display: none; } }
        .sp-desktop-reserve { display: none; }
        .desktop-only { display: flex; width: calc(100% - 3rem); justify-content: center; }
        @media (max-width: 600px) { .desktop-only { display: none !important; } .hide-on-mobile { display: none; } }
        @media (min-width: 601px) { .sp-mobile-main-btn { display: none !important; } }

/* ------------------------------------------------------------ */
/* ── Landscape Blocker ── */
/* ------------------------------------------------------------ */

/* --- LANDSCAPE BLOCKER --- */
        #dp-landscape-blocker { display: none; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; height: 100dvh; background: #F5F2EB; z-index: 2147483647; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 2rem; overscroll-behavior: none; }
        #dp-landscape-blocker i { font-size: 3.5rem; color: #C5A065; margin-bottom: 1.5rem; animation: dpRotatePhone 2s infinite ease-in-out; }
        #dp-landscape-blocker h3 { font-family: "Playfair Display", serif; font-size: 1.5rem; color: #4A3728; margin-bottom: 0.5rem; }
        #dp-landscape-blocker p { font-family: "Cormorant Garamond", serif; font-size: 1.1rem; color: #4A443E; max-width: 300px; }
        @keyframes dpRotatePhone { 0% { transform: rotate(-90deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-90deg); } }
        @media screen and (max-width: 950px) and (orientation: landscape) {
            #dp-landscape-blocker { display: flex !important; }
            body { overflow: hidden !important; }
            .dp-modal, .dp-overlay, .suites-panel, #sp-backdrop, #main-nav, #mobile-reserve-bar, .whatsapp-btn, .scroll-to-top { display: none !important; opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
        }

        .date-picker-bar {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 2rem;
        }
        .date-picker-bar-inner {
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }
        .sdb-label {
            display: none;
        }
        .sdb-field { 
            background: transparent;
            border: none;
            border-bottom: 1px solid #C5A065;
            padding: 0.75rem 0;
            color: #4A443E;
            font-family: "Playfair Display", serif;
            font-size: 1.25rem;
            font-style: italic;
            cursor: pointer;
            transition: all 0.3s;
            min-width: 140px;
            text-align: center;
            position: relative;
        }
        .sdb-field::after {
            content: '';
            position: absolute;
            bottom: -1px;
            left: 50%;
            width: 0;
            height: 2px;
            background: #C5A065;
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
            transform: translateX(-50%);
        }
        .sdb-field:hover::after { width: 100%; }
        .sdb-field:hover { color: #C5A065; }
        .sdb-field.empty { color: #B0ACA2; }
        .sdb-divider { color: #C5A065; font-size: 0.875rem; opacity: 0.6; }
        .sdb-info { font-size: 0.85rem; color: #4A443E; font-style: italic; padding-left: 1rem; border-left: 1px solid rgba(197,160,101,0.3); margin-left: 1rem; }
        .sdb-info strong { color: #C5A065; font-style: normal; font-weight: 600; }

        /* DATE PICKER MODAL */
        .dp-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; height: 100dvh; background: linear-gradient(135deg, rgba(245, 242, 235, 0.85) 0%, rgba(245, 242, 235, 0.9) 50%, rgba(197, 160, 101, 0.15) 100%); backdrop-filter: blur(12px) saturate(1.1); -webkit-backdrop-filter: blur(12px) saturate(1.1); z-index: 1000; opacity: 0; visibility: hidden; transition: opacity 0.5s ease, visibility 0.5s ease, backdrop-filter 0.5s ease; }
        .dp-overlay.active { opacity: 1; visibility: visible; }
        .dp-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.95); background: #F5F2EB; border: 1px solid rgba(197,160,101,0.3); border-radius: 16px; box-shadow: 0 25px 80px rgba(74,68,62,0.15); z-index: 1001; width: 92vw; max-width: 464px; opacity: 0; visibility: hidden; transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
        .dp-modal.active { opacity: 1; visibility: visible; transform: translate(-50%, calc(-50% + var(--drag-y, 0px))) scale(1); }
        .dp-modal.pull-dragging { transition: none !important; }
        .dp-modal.pull-dismissing { transition: transform 0.38s cubic-bezier(0.4, 0, 1, 1), opacity 0.38s ease !important; }
        .dp-drag-handle { display: none; justify-content: center; align-items: center; padding: 10px 0 2px; cursor: grab; flex-shrink: 0; }
        .dp-drag-handle-pill { width: 36px; height: 4px; border-radius: 2px; background: rgba(197,160,101,0.35); transition: background 0.2s, width 0.2s; }
        .dp-modal-header { padding: 1rem 1.75rem; border-bottom: 1px solid rgba(197,160,101,0.15); display: flex; justify-content: center; align-items: center; position: relative; min-height: 52px; }
        .dp-header-range { font-family: "Playfair Display", serif; font-size: 0.95rem; font-style: italic; color: #4A443E; text-align: center; line-height: 1.3; }
        .dp-header-range strong { color: #C5A065; font-style: normal; font-size: 1.05rem; white-space: nowrap; }
        .dp-modal-close { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid rgba(197,160,101,0.3); border-radius: 50%; color: #B0ACA2; cursor: pointer; transition: all 0.3s; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); }
        .dp-modal-close:hover { border-color: #C5A065; color: #C5A065; }
        .dp-status-bar { padding: 0.85rem 1.75rem; background: rgba(197,160,101,0.08); display: flex; justify-content: center; gap: 3rem; }
        .dp-status-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; color: #B0ACA2; text-transform: uppercase; letter-spacing: 0.15em; font-weight: 700; transition: color 0.3s; }
        .dp-status-item.active { color: #4A443E; }
        .dp-status-item.done { color: #121212; }
        .dp-status-icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; font-size: 1.1rem; color: #B0ACA2; transition: color 0.3s; }
        .dp-status-item.active .dp-status-icon { color: #C5A065; }
        .dp-status-item.done .dp-status-icon i { animation: spGoldGlint 8s infinite ease-in-out; }
        .dp-status-icon.dp-icon-swap i { animation: dpIconSwap 0.45s cubic-bezier(0.34,1.56,0.64,1) forwards; }
        @keyframes dpIconSwap { 0% { transform: scale(1); opacity: 1; } 20% { transform: scale(0) rotate(-20deg); opacity: 0; } 50% { transform: scale(0) rotate(20deg); opacity: 0; } 80% { transform: scale(1.3); opacity: 1; color: #FFF5E1; filter: drop-shadow(0 0 10px rgba(197,160,101,0.9)); } 100% { transform: scale(1); opacity: 1; filter: none; } }
        @keyframes spGoldGlint { 0% { color: #C5A065; filter: drop-shadow(0 0 0 rgba(197,160,101,0)); transform: scale(1); } 6% { color: #FFF5E1; filter: drop-shadow(0 0 8px rgba(197,160,101,0.8)); transform: scale(1.2); } 12.5%{ color: #C5A065; filter: drop-shadow(0 0 0 rgba(197,160,101,0)); transform: scale(1); } 100% { color: #C5A065; } }

        .dp-cal-body { padding: 1.5rem 1.75rem; overflow: hidden; position: relative; cursor: grab; user-select: none; }
        .dp-cal-body:active { cursor: grabbing; }
        .dp-cal-anim-wrap { display: flex; flex-direction: column; transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s ease; will-change: transform, opacity; }
        .dp-cal-anim-wrap.slide-out-left { transform: translateX(-100%); opacity: 0; }
        .dp-cal-anim-wrap.slide-out-right { transform: translateX(100%); opacity: 0; }
        .dp-cal-anim-wrap.prepare-left { transform: translateX(-100%); opacity: 0; transition: none !important; }
        .dp-cal-anim-wrap.prepare-right { transform: translateX(100%); opacity: 0; transition: none !important; }

        .dp-cal-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.25rem; }
        .dp-cal-btn { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid rgba(197,160,101,0.3); border-radius: 50%; color: #C5A065; cursor: pointer; transition: all 0.3s; }
        .dp-cal-btn:hover { background: #C5A065; color: #F5F2EB; }
        .dp-cal-month { font-family: "Playfair Display", serif; font-size: 1.2rem; font-style: italic; color: #4A443E; }
        .dp-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: 0.5rem; border-bottom: 1px solid rgba(197,160,101,0.15); padding-bottom: 0.5rem; }
        .dp-wd { text-align: center; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.1em; color: #B0ACA2; padding: 0.5rem 0; font-weight: 600; }
        /* LOCKED GRID SIZE FOR CALENDAR */
        .dp-days { display: grid; grid-template-columns: repeat(7, 1fr); grid-template-rows: repeat(6, 1fr); gap: 4px; }
        .dp-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid transparent; border-radius: 50%; cursor: pointer; transition: all 0.2s; min-height: 44px; position: relative; }
        .dp-day:hover:not(.off):not(.season-off):not(.too-soon):not(.fully-booked):not([style*="visibility: hidden"]) { border-color: #C5A065; background: rgba(197,160,101,0.1); }
        .dp-day.off { opacity: 0.25; cursor: default; }
        .dp-day.season-off { opacity: 0.3; cursor: not-allowed; }
        .dp-day.season-off .dp-day-num { text-decoration: line-through; text-decoration-color: #B0ACA2; }
        .dp-day.too-soon { opacity: 0.35; cursor: not-allowed; }
        .dp-day.checkin { background: #C5A065 !important; border-color: #C5A065 !important; }
        .dp-day.checkin .dp-day-num { color: #F5F2EB !important; }
        .dp-day.checkout { background: #82CECB !important; border-color: #82CECB !important; }
        .dp-day.checkout .dp-day-num { color: #F5F2EB !important; }
        .dp-day.in-range { background: rgba(197,160,101,0.12); border-radius: 0; }
        .dp-day-num { font-family: "Playfair Display", serif; font-size: 0.95rem; font-weight: 500; color: #4A443E; }
        .dp-day.off .dp-day-num, .dp-day.season-off .dp-day-num, .dp-day.too-soon .dp-day-num { color: #B0ACA2; }
        .dp-day.fully-booked { opacity: 0.3; cursor: not-allowed; background: rgba(197,160,101,0.05); }
        .dp-day.fully-booked .dp-day-num { color: #B0ACA2; text-decoration: line-through; text-decoration-color: rgba(197,160,101,0.5); }
        .dp-modal-footer { padding: 1rem 1.75rem; border-top: 1px solid rgba(197,160,101,0.15); display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
        .dp-range-text { display: none; }
        .dp-clear { background: none; border: none; color: #B0ACA2; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.15em; cursor: pointer; font-weight: 700; padding: 0.5rem; }
        .dp-clear:hover { color: #121212; }
        .dp-confirm { flex: 1; padding: 0.9rem 2rem; background: #C5A065; border: none; border-radius: 8px; color: #121212; font-size: 0.78rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.15em; cursor: pointer; opacity: 0.4; pointer-events: none; transition: all 0.3s; } 
        .dp-confirm.ready { opacity: 1; pointer-events: auto; }
        .dp-confirm.ready:hover { background: #4A443E; color: #F5F2EB; }
        .dp-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2.5rem 0; gap: 1rem; grid-column: 1/-1; }
        .dp-loading-spinner { width: 32px; height: 32px; border: 2px solid rgba(197,160,101,0.2); border-top-color: #C5A065; border-radius: 50%; animation: dpSpin 0.8s linear infinite; }
        @keyframes dpSpin { to { transform: rotate(360deg); } }
        .dp-loading-text { font-family: "Playfair Display", serif; font-size: 0.9rem; font-style: italic; color: #B0ACA2; }

        /* --- MOBILE CALENDAR STABILITY & HEIGHT LOCK --- */
        @media (max-width: 767px) {
            .dp-modal { 
                width: calc(100% - 16px); 
                max-width: 400px; 
                height: 654px !important; 
                display: flex; 
                flex-direction: column; 
            }
            .dp-drag-handle { display: flex !important; }
            .dp-drag-handle, .dp-modal-header, .dp-status-bar, .dp-modal-footer { flex-shrink: 0; }
            .dp-cal-body { 
                flex: 1; 
                padding: 1rem; 
                display: flex; 
                flex-direction: column; 
                overflow: hidden; 
                position: relative;
                justify-content: center; 
            }
            .dp-confirm { padding: 0.8rem 1.5rem; font-size: 0.72rem; flex: 1; }
            .dp-clear { padding: 0.4rem; font-size: 0.75rem; }
            .dp-header-range { font-size: 0.85rem; }
        }

        

        .suite-trigger {
            border-left: 2px solid transparent;
            padding-left: 1.5rem;
            margin-left: -1.5rem;
            transition: border-color 0.3s ease;
        }
        .suite-trigger:hover {
            border-left-color: rgba(197,160,101,0.3);
        }
        .suite-trigger.in-view {
            border-left-color: #C5A065;
        }

        /* UPDATED: Palm Branch Separator & Title Numbers */
        .suite-divider {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 3rem 0;
            margin: 1rem 0;
            overflow: hidden;
        }
        
        .suite-divider {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 3rem 0;
            margin: 1rem 0;
            overflow: visible;
        }

        /* ── Sun on the Horizon ── */
        .sun-divider {
            width: 100%;
            max-width: 480px;
            height: 100px;
            display: block;
            overflow: visible;
            opacity: 0;
            transition: opacity 1.6s ease;
        }
        .sun-divider.sun-visible { opacity: 1; }
        .sun-divider .horizon { stroke: #C5A065; stroke-width: 0.6px; stroke-linecap: round; fill: none; opacity: 0.3; }
        .sun-divider .sun-face-group { transform-origin: 210px 40px; animation: sunFaceFloat 7s ease-in-out infinite; }
        .sun-divider .ray-long  { fill: #C5A065; }
        .sun-divider .ray-short { fill: #D4B07A; }
        .sun-divider.sun-visible .ray-long  { animation: rayPulse 5s ease-in-out infinite; }
        .sun-divider.sun-visible .ray-short { animation: rayPulse 5s ease-in-out infinite; }
        .sun-divider .r1  { animation-delay: 0s;     }
        .sun-divider .r2  { animation-delay: -0.6s;  }
        .sun-divider .r3  { animation-delay: -1.2s;  }
        .sun-divider .r4  { animation-delay: -1.8s;  }
        .sun-divider .r5  { animation-delay: -2.4s;  }
        .sun-divider .r6  { animation-delay: -3.0s;  }
        .sun-divider .r7  { animation-delay: -3.6s;  }
        .sun-divider .r8  { animation-delay: -4.2s;  }
        .sun-divider .r9  { animation-delay: -0.3s;  }
        .sun-divider .r10 { animation-delay: -0.9s;  }
        .sun-divider .r11 { animation-delay: -1.5s;  }
        .sun-divider .r12 { animation-delay: -2.1s;  }
        .sun-divider .r13 { animation-delay: -2.7s;  }
        .sun-divider .r14 { animation-delay: -3.3s;  }
        .sun-divider .r15 { animation-delay: -3.9s;  }
        .sun-divider .r16 { animation-delay: -4.5s;  }

        @keyframes sunFaceFloat {
            0%,100% { transform: translateY(0) scale(1); }
            50%     { transform: translateY(-2px) scale(1.03); }
        }
        @keyframes rayPulse {
            0%,100% { opacity: 0.7; }
            50%     { opacity: 1.0; }
        }
        @media (max-width: 640px) {
            .sun-divider { max-width: 320px; height: 80px; }
        }

        .suite-number-label {
            font-family: "Playfair Display", serif;
            font-size: 1.5rem; 
            font-weight: 400; 
            color: #B0ACA2; 
            opacity: 0.85; 
            line-height: 1;
            font-style: italic; 
            letter-spacing: 0.05em;
            user-select: none;
        }

        .suite-price-box {
            margin-top: 1.5rem;
            display: none;
            max-width: 500px;
        }
        .suite-price-box.active {
            display: block;
            animation: fadeUp 0.4s ease;
        }
        @keyframes fadeUp {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .suite-offer-header-compact {
            display: flex;
            flex-wrap: wrap;
            align-items: baseline;
            gap: 0.5rem;
            margin-bottom: 0.35rem;
        }
        .suite-offer-name {
            font-family: "Playfair Display", serif;
            font-size: 1.35rem;
            color: #4A443E;
        }
        .suite-offer-tagline {
            font-size: 0.8rem;
            color: #C5A065;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            font-weight: 600;
        }
        .suite-offer-dates {
            font-size: 1rem;
            color: #4A443E;
            font-style: italic;
            margin-bottom: 0.85rem;
        }
        .suite-offer-dates span {
            color: #C5A065;
            font-weight: 500;
        }

        .suite-offer-perks {
            display: flex;
            flex-wrap: wrap;
            gap: 0.6rem;
            margin-bottom: 0.85rem;
        }
        .suite-offer-perk {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            font-size: 0.9rem;
            color: #4A443E;
            background: rgba(197,160,101,0.12);
            padding: 0.45rem 0.85rem;
            border-radius: 20px;
            font-weight: 600;
            transition: all 0.3s;
        }
        .suite-offer-perk:hover {
            background: rgba(197,160,101,0.2);
            transform: translateY(-1px);
        }
        .suite-offer-perk i {
            color: #C5A065;
            font-size: 1rem;
        }

        .suite-offer-description {
            font-size: 1.05rem;
            color: #4A443E;
            font-style: italic;
            line-height: 1.5;
            margin-bottom: 0.6rem;
        }

        .suite-offer-policy {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            font-size: 0.85rem;
            color: #82CECB;
            margin-bottom: 0.35rem;
            font-style: italic;
        }
        .suite-offer-policy i {
            font-size: 0.9rem;
            color: #82CECB;
        }

        .concierge-success-text {
            font-family: "Playfair Display", serif;
            font-size: 1.05rem;
            font-style: italic;
            color: #CC8B65; /* Golden-red, warmer than brand gold */
        }

        .suite-pricing-row {
            display: flex;
            align-items: center;
            gap: 1rem;
            flex-wrap: wrap;
            padding: 1rem 0;
            border-top: 1px solid rgba(197,160,101,0.2);
        }
        .suite-offer-badge {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            border: 1px solid #C5A065;
            color: #C5A065;
            padding: 0.45rem 0.85rem;
            border-radius: 4px;
            font-size: 0.7rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.1em;
        }
        .suite-price-strike {
            font-family: "Playfair Display", serif;
            font-size: 1.2rem;
            color: #4A443E;
            text-decoration: line-through;
            text-decoration-color: #C5A065;
            text-decoration-thickness: 2px;
        }
        .suite-price-arrow {
            color: #C5A065;
            font-size: 1.1rem;
        }
        .suite-price-final {
            font-family: "Playfair Display", serif;
            font-size: 2rem;
            color: #4A443E;
            line-height: 1;
        }
        .suite-price-per-night {
            font-family: "Playfair Display", serif;
            font-size: 1.1rem;
            color: #4A443E;
            font-style: italic;
            padding: 0.3rem 0.6rem;
            background: rgba(197,160,101,0.1);
            border-radius: 4px;
        }

        .suite-cta-row {
            display: flex;
            align-items: center;
            gap: 1.25rem;
            margin-top: 1rem;
        }
        .suite-book-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 1rem 1.75rem;
            background: #82CECB;
            color: #F5F2EB;
            border-radius: 4px;
            font-size: 0.7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            text-decoration: none;
            transition: all 0.3s;
            white-space: nowrap;
        }
        .suite-book-btn:hover {
            background: #4A443E;
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(74,68,62,0.2);
        }
        .suite-cta-or {
            font-family: "Playfair Display", serif;
            font-style: italic;
            font-size: 0.95rem;
            color: #B0ACA2;
        }
        .suite-discover-btn {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            font-size: 0.75rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: #C5A065;
            text-decoration: none;
            transition: all 0.3s;
        }
        .suite-discover-btn:hover {
            color: #4A443E;
        }
        .suite-discover-btn i {
            font-size: 0.8rem;
            transition: transform 0.3s;
        }
        .suite-discover-btn:hover i {
            transform: translateX(4px);
        }
        .suite-unavailable {
            color: #B0ACA2;
            font-size: 1.05rem;
            font-style: italic;
            padding: 0.5rem 0;
        }

        @media (max-width: 640px) {
            .suite-trigger {
                padding-left: 1rem;
                margin-left: -1rem;
            }
            .suite-price-box {
                max-width: 100%;
            }
            .suite-offer-header-compact {
                flex-direction: column;
                align-items: flex-start;
                gap: 0.25rem;
            }
            .suite-offer-name {
                font-size: 1.2rem;
            }
            .suite-offer-perk {
                font-size: 0.8rem;
                padding: 0.4rem 0.7rem;
            }
            .suite-offer-description {
                font-size: 0.95rem;
            }
            .suite-offer-policy {
                font-size: 0.8rem;
            }
            .suite-pricing-row {
                flex-direction: column;
                align-items: flex-start;
                gap: 0.6rem;
            }
            .suite-price-final {
                font-size: 1.65rem;
            }
            .suite-price-per-night {
                font-size: 1rem;
            }
            .suite-cta-row {
                flex-direction: column;
                align-items: stretch;
                gap: 0.85rem;
            }
            .suite-book-btn {
                width: 100%;
                justify-content: center;
                padding: 1.1rem 1.5rem;
            }
            .suite-cta-or {
                text-align: center;
            }
            .suite-discover-btn {
                justify-content: center;
            }
            .suite-divider {
                padding: 1.5rem 0;
            }
            .suite-number-label {
                font-size: 1.25rem;
            }
            .palm-divider {
                width: 160px;
            }
        }

        .suite-offer-perks-luxury {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            margin-top: 1rem;
            padding: 1rem 0;
        }
        .suite-offer-perk-item {
            display: flex;
            align-items: center;
            gap: 0.6rem;
            font-size: 0.95rem;
            color: #4A443E;
        }
        .suite-offer-perk-item::before {
            content: '✦';
            color: #C5A065;
            font-size: 0.7rem;
        }
        
        .suite-pricing-card {
            background: linear-gradient(135deg, rgba(197,160,101,0.08), rgba(197,160,101,0.03));
            border: 1px solid rgba(197,160,101,0.15);
            border-radius: 12px;
            padding: 1.5rem;
            margin-top: 1rem;
        }
        
        .suite-price-comparison {
            margin-bottom: 1rem;
        }
        .suite-price-standard {
            font-size: 0.9rem;
            color: #B0ACA2;
            text-decoration: line-through;
            margin-bottom: 0.25rem;
        }
        .suite-price-preferred {
            display: flex;
            align-items: baseline;
            gap: 0.5rem;
        }
        .suite-price-preferred-label {
            font-size: 0.8rem;
            color: #C5A065;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            font-weight: 600;
        }
        .suite-price-preferred-amount {
            font-family: "Playfair Display", serif;
            font-size: 2.5rem;
            color: #4A443E;
            line-height: 1;
        }
        .suite-price-per-night-small {
            font-size: 0.95rem;
            color: #B0ACA2;
            font-style: italic;
            margin-top: 0.25rem;
        }
        
        .suite-offer-badge-luxury {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            background: transparent;
            border: 1px solid #C5A065;
            color: #C5A065;
            padding: 0.5rem 1rem;
            border-radius: 4px;
            font-size: 0.7rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.15em;
            margin-bottom: 1rem;
        }
        .suite-offer-badge-luxury::before {
            content: '✦';
            font-size: 0.6rem;
        }
        
        .suite-closing-line {
            font-family: "Playfair Display", serif;
            font-style: italic;
            font-size: 0.95rem;
            color: #B0ACA2;
            text-align: center;
            margin-top: 1.25rem;
            padding-top: 1rem;
            border-top: 1px solid rgba(197,160,101,0.1);
        }

        .suite-concierge-line {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            gap: 0.5rem;
            font-family: "Playfair Display", serif;
            font-style: italic;
            font-size: 0.95rem;
            color: #B0ACA2;
            margin-top: 1.25rem;
            padding-top: 1rem;
            border-top: 1px solid rgba(197,160,101,0.1);
            cursor: pointer;
            transition: color 0.3s;
        }
        .suite-concierge-line:hover {
            color: #C5A065;
        }
        .suite-concierge-line i {
            color: #C5A065;
            font-size: 1rem;
            font-style: normal;
            transition: transform 0.3s;
        }
        .suite-concierge-line:hover i {
            transform: scale(1.1);
        }
        .suite-concierge-line.message-sent {
            color: #CC8B65; /* Golden-red to match success message */
            cursor: default;
        }
        .suite-concierge-line.message-sent i {
            color: #CC8B65; /* Golden-red for check icon */
        }

        .concierge-bubble {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) scale(0.95);
            width: 360px;
            max-width: calc(100vw - 2rem);
            background: #F5F2EB;
            border: 1px solid rgba(197,160,101,0.3);
            border-radius: 16px;
            box-shadow: 0 25px 80px rgba(74,68,62,0.15);
            padding: 1rem 1.25rem 1.25rem;
            opacity: 0;
            visibility: hidden;
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
            z-index: 1001;
        }
        .concierge-bubble.active {
            opacity: 1;
            visibility: visible;
            transform: translate(-50%, calc(-50% + var(--drag-y, 0px))) scale(1);
        }
        .concierge-bubble.pull-dragging { transition: none !important; }
        .concierge-bubble.pull-dismissing { transition: transform 0.38s cubic-bezier(0.4, 0, 1, 1), opacity 0.38s ease !important; }
        /* Drag handle — mobile only */
        .concierge-drag-handle { display: none; justify-content: center; align-items: center; padding: 10px 0 4px; cursor: grab; flex-shrink: 0; margin: -1rem -1.25rem 0.5rem; }
        .concierge-drag-handle-pill { width: 36px; height: 4px; border-radius: 2px; background: rgba(197,160,101,0.35); transition: background 0.2s, width 0.2s; }
        @media (max-width: 767px) { .concierge-drag-handle { display: flex !important; } }
        .concierge-bubble-overlay {
            position: fixed;
            inset: 0;
            background: linear-gradient(135deg, 
                rgba(130, 206, 203, 0.15) 0%, 
                rgba(74, 68, 62, 0.35) 50%, 
                rgba(197, 160, 101, 0.12) 100%);
            backdrop-filter: blur(12px) saturate(1.2);
            -webkit-backdrop-filter: blur(12px) saturate(1.2);
            z-index: 1000;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.5s ease, visibility 0.5s ease, backdrop-filter 0.5s ease;
        }
        
        .concierge-bubble-overlay.active {
            opacity: 1;
            visibility: visible;
        }
        
        .concierge-bubble-header {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            margin-bottom: 0.75rem;
            padding-bottom: 0.5rem;
            border-bottom: 1px solid rgba(197,160,101,0.15);
        }
        .concierge-bubble-title {
            font-family: "Playfair Display", serif;
            font-size: 1.15rem;
            font-style: italic;
            color: #4A443E;
        }
        .concierge-bubble-close {
            width: 28px;
            height: 28px;
            display: flex; 
            align-items: center; 
            justify-content: center; 
            background: transparent;
            border: 1px solid rgba(197,160,101,0.2);
            color: #B0ACA2;
            cursor: pointer;
            border-radius: 50%;
            transition: all 0.3s;
        }
        .concierge-bubble-close:hover {
            border-color: #C5A065;
            color: #C5A065;
        }
        .concierge-bubble-room {
            font-size: 0.7rem;
            color: #C5A065;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            margin-bottom: 1rem;
            font-style: normal;
            font-weight: 600;
        }
        .concierge-bubble-field {
            margin-bottom: 0.85rem;
        }
        .concierge-bubble-label {
            display: block;
            font-size: 0.7rem;
            color: #B0ACA2;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            margin-bottom: 0.35rem;
            font-style: normal;
        }
        .concierge-bubble-input {
            width: 100%;
            padding: 0.75rem 0;
            border: none;
            border-bottom: 1px solid rgba(197,160,101,0.3);
            font-family: "Cormorant Garamond", serif;
            font-size: 1rem;
            color: #4A443E;
            background: transparent;
            resize: none;
            transition: border-color 0.3s;
        }
        .concierge-bubble-input:focus {
            outline: none;
            border-bottom-color: #C5A065;
            border-bottom-width: 2px;
        }
        .concierge-bubble-input::placeholder {
            color: #B0ACA2;
            font-style: italic;
        }
        .concierge-bubble-input.error {
            border-bottom-color: #C5A065;
            border-bottom-width: 2px;
            animation: errorShake 0.4s ease;
            color: #C5A065 !important;
            font-style: italic;
        }
        .concierge-bubble-input.error::placeholder {
            color: #C5A065;
            font-style: italic;
        }
        
        @keyframes errorShake {
            0%, 100% { transform: translateX(0); }
            25% { transform: translateX(-4px); }
            75% { transform: translateX(4px); }
        }
        .concierge-bubble-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1rem;
        }
        .concierge-bubble-send {
            width: 100%;
            padding: 0.9rem 1rem;
            margin-top: 0.5rem;
            background: #82CECB;
            color: #F5F2EB;
            border: none;
            border-radius: 4px;
            font-family: "Cormorant Garamond", serif;
            font-size: 0.8rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            cursor: pointer;
            transition: all 0.3s;
        }
        .concierge-bubble-send:hover {
            background: #4A443E;
        }
        .concierge-bubble-note {
            font-size: 0.75rem;
            color: #B0ACA2;
            font-style: italic;
            text-align: center;
            margin-top: 0.75rem;
        }
        /* Thank-you state */
        .concierge-thankyou {
            display: none;
            flex-direction: column;
            align-items: center;
            text-align: center;
            padding: 1.5rem 0 0.5rem;
            gap: 0.85rem;
        }
        .concierge-thankyou.visible { display: flex; }
        .concierge-thankyou-icon {
            font-size: 2.4rem;
            color: #82CECB;
        }
        .concierge-thankyou-title {
            font-family: "Playfair Display", serif;
            font-size: 1.3rem;
            font-style: italic;
            color: #4A443E;
            line-height: 1.3;
        }
        .concierge-thankyou-sub {
            font-family: "Cormorant Garamond", serif;
            font-size: 1rem;
            color: #B0ACA2;
            font-style: italic;
            line-height: 1.5;
        }
        .concierge-thankyou-dismiss {
            margin-top: 0.5rem;
            padding: 0.75rem 2.2rem;
            background: transparent;
            border: 1px solid rgba(197,160,101,0.4);
            border-radius: 4px;
            font-family: "Cormorant Garamond", serif;
            font-size: 0.78rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: #C5A065;
            cursor: pointer;
            transition: all 0.3s;
        }
        .concierge-thankyou-dismiss:hover { background: rgba(197,160,101,0.08); border-color: #C5A065; }
        @media (max-width: 640px) {
            .concierge-bubble {
                width: calc(100vw - 2rem);
                bottom: auto;
                top: 50%;
                transform: translate(-50%, calc(-50% + var(--drag-y, 0px))) scale(0.95);
                max-height: 560px;
            }
            .concierge-bubble.active {
                transform: translate(-50%, calc(-50% + var(--drag-y, 0px))) scale(1);
            }
            .concierge-bubble-row {
                grid-template-columns: 1fr;
                gap: 0;
            }
        }

        /* COOKIE CONSENT BAR - LUXURY SLIM REDESIGN */
        #cookie-bar {
            background: rgba(245, 242, 235, 0.5);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border-top: 1px solid rgba(197, 160, 101, 0.2);
            box-shadow: 0 -4px 20px rgba(74, 68, 62, 0.05), inset 0 1px 1px rgba(255, 255, 255, 0.4);
        }
        .cookie-btn-ghost {
            border: 1px solid #C5A065;
            color: #C5A065;
            background: rgba(255, 255, 255, 0.3); /* More transparent background */
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .cookie-btn-ghost:hover {
            background: rgba(255, 255, 255, 0.7);
            border-color: #4A443E;
            color: #4A443E;
        }
        .cookie-btn-solid {
            background: #82CECB;
            color: #F5F2EB;
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .cookie-btn-solid:hover {
            background: #4A443E;
            transform: translateY(-1px);
        }
        /* ── MOBILE: hide verbose suite cards ── */
        @media (max-width: 767px) {
            .suite-trigger, .suite-divider { display: none !important; }
        }

        /* ── COMPACT LIST ── */
        .suite-compact-list { display: none; }
        @media (max-width: 767px) { .suite-compact-list { display: block; } }
        .suite-compact-under-thumb { display: none; }

        .suite-compact-row {
            display: flex;
            align-items: stretch;
            gap: 0.6rem;
            padding: 0.9rem 0;
            border-bottom: 1px solid rgba(74,68,62,0.08);
            -webkit-tap-highlight-color: transparent;
            position: relative;
            overflow: hidden;
            min-height: 132px;
            contain: layout style;
        }

        /* Room number column */
        .suite-compact-num {
            font-family: "Playfair Display", serif; font-size: 1rem;
            color: #4A443E; font-style: italic;
            flex-shrink: 0; width: 18px; text-align: center;
            display: flex; align-items: center; justify-content: center;
            cursor: pointer; opacity: 0.85;
        }

        /* Image column — just the image, clean */
        .suite-compact-thumb-wrap {
            flex-shrink: 0;
            cursor: pointer;
        }
        .suite-compact-thumb-wrap:active { opacity: 0.85; }
        .suite-compact-thumb {
            width: 128px; height: 132px; border-radius: 6px;
            object-fit: cover; display: block; background: #EAE6DE;
        }

        /* Info column */
        .suite-compact-info {
            flex: 1; min-width: 0;
            display: flex; flex-direction: column;
            padding: 0.1rem 0 0.1rem;
            padding-right: 38px;
        }

        /* TOP ZONE — name + sub, takes all available space */
        .suite-compact-nav-zone {
            flex: 1;
            display: flex; flex-direction: column;
            justify-content: flex-start;
            gap: 0.18rem;
            cursor: pointer;
        }
        .suite-compact-nav-zone:active { opacity: 0.75; }
        .suite-compact-name {
            font-family: "Playfair Display", serif;
            font-size: 1.15rem; color: #000000;
            line-height: 1.2;
            white-space: normal;
        }
        .suite-compact-sub {
            font-family: "Cormorant Garamond", serif;
            font-style: italic; font-size: 1rem;
            color: #000000; line-height: 1.2;
            opacity: 0.55;
        }

/* ------------------------------------------------------------ */
/* ── Scroll To Top Button ── */
/* ------------------------------------------------------------ */

.scroll-to-top { position: fixed; bottom: calc(2rem + 70px); right: 2rem; z-index: 100; width: 50px; height: 50px; background: rgba(130,206,203,0.15); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1.5px solid rgba(255,255,255,0.5); border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 20px rgba(130,206,203,0.2), inset 0 1px 1px rgba(255,255,255,0.3); transition: opacity 0.4s ease, visibility 0.4s ease, box-shadow 0.3s ease, background 0.3s ease; opacity: 0; visibility: hidden; pointer-events: none; }
        .scroll-to-top.visible { opacity: 1; visibility: visible; pointer-events: auto; }
        .scroll-to-top:hover { box-shadow: 0 8px 28px rgba(130,206,203,0.35), inset 0 1px 1px rgba(255,255,255,0.4); background: rgba(130,206,203,0.25); border-color: rgba(255,255,255,0.7); }
        .scroll-to-top i { font-size: 22px; color: white; pointer-events: none; }
        @media (max-width: 1024px) { .scroll-to-top { width: 46px; height: 46px; bottom: calc(2rem + 70px); right: 1.5rem; } .scroll-to-top i { font-size: 20px; } }

/* ------------------------------------------------------------ */
/* ── Footer ── */
/* ------------------------------------------------------------ */

/* FOOTER STYLES */
        footer { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(180deg, #5BC5C8 0%, #2D7A7D 100%) !important; padding-top: 160px !important; padding-bottom: calc(3rem + env(safe-area-inset-bottom, 0px)) !important; opacity: 1 !important; visibility: visible !important; margin-top: 0 !important; z-index: 0; }
        .footer-wave-container { position: absolute; inset: 0 0 auto 0; width: 100%; height: 120px; overflow: hidden; opacity: 1 !important; visibility: visible !important; z-index: 0; pointer-events: none; }
        #footer-wave-canvas { display: block !important; width: 100%; height: 100%; opacity: 1 !important; visibility: visible !important; }
        .footer-gradient-blend { position: absolute; top: 0; left: 0; width: 100%; height: calc(40% + 45px); background: linear-gradient(to bottom, #F5F2EB 0%, rgba(245,242,235,0.92) 20%, rgba(245,242,235,0.7) 50%, rgba(245,242,235,0.3) 75%, rgba(245,242,235,0) 100%); pointer-events: none; z-index: 1; }
        footer .max-w-\[1600px\] { position: relative; z-index: 2; }
        @media (max-width: 768px) { footer { padding-top: 140px !important; } .footer-wave-container { height: 100px; } main { overflow: hidden; } }

/* ------------------------------------------------------------ */
/* ── Cookie Consent Bar ── */
/* ------------------------------------------------------------ */

/* COOKIE CONSENT BAR - LUXURY SLIM REDESIGN */
        #cookie-bar {
            background: rgba(245, 242, 235, 0.5);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border-top: 1px solid rgba(197, 160, 101, 0.2);
            box-shadow: 0 -4px 20px rgba(74, 68, 62, 0.05), inset 0 1px 1px rgba(255, 255, 255, 0.4);
        }
        .cookie-btn-ghost {
            border: 1px solid #C5A065;
            color: #C5A065;
            background: rgba(255, 255, 255, 0.3);
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .cookie-btn-ghost:hover {
            background: rgba(255, 255, 255, 0.7);
            border-color: #4A443E;
            color: #4A443E;
        }
        .cookie-btn-solid {
            background: #82CECB;
            color: #F5F2EB;
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .cookie-btn-solid:hover {
            background: #4A443E;
            transform: translateY(-1px);
        }

/* ── Footer WhatsApp Pulse ── */

@keyframes footerWaPulse {
    0%   { box-shadow: 0 0 0 0 rgba(255,255,255,0.35); }
    70%  { box-shadow: 0 0 0 12px rgba(255,255,255,0); }
    100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
}


/* ------------------------------------------------------------ */
/* ── Missing utilities for cookies/legal/terms (CDN removal) ── */
/* ------------------------------------------------------------ */

.bg-brand-softGrey\/40   { background-color: rgba(176,172,162,0.4); }
.border-collapse          { border-collapse: collapse; }
.flex-wrap                { flex-wrap: wrap; }
.h-6                      { height: 1.5rem; }
.max-w-\[680px\]          { max-width: 680px; }
.max-w-\[860px\]          { max-width: 860px; }
.min-h-screen             { min-height: 100vh; }
.min-w-\[140px\]          { min-width: 140px; }
.mt-12                    { margin-top: 3rem; }
.mt-2                     { margin-top: 0.5rem; }
.p-4                      { padding: 1rem; }
.p-5                      { padding: 1.25rem; }
.p-6                      { padding: 1.5rem; }
.pb-32                    { padding-bottom: 8rem; }
.pr-4                     { padding-right: 1rem; }
.pt-40                    { padding-top: 10rem; }
.space-y-1 > * + *        { margin-top: 0.25rem; }
.space-y-6 > * + *        { margin-top: 1.5rem; }
.text-brand-softGrey      { color: #B0ACA2; }
.w-11                     { width: 2.75rem; }

/* Mobile: hamburger + book pill always clickable */
@media (max-width: 1023px) {
    #mobile-toggle, #book-pill-btn { pointer-events: auto !important; opacity: 1 !important; }
}

/* =============================================
   WECHAT QR MODAL
   ============================================= */
#wechat-qr-modal { display:none; position:fixed; inset:0; z-index:200; background:rgba(0,0,0,0.55); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); align-items:center; justify-content:center; }
#wechat-qr-modal.open { display:flex; }
#wechat-qr-modal .wechat-card { background:#F5F2EB; border-radius:4px; padding:2rem; text-align:center; max-width:240px; width:90%; position:relative; }
#wechat-qr-modal .wechat-card img { width:180px; height:180px; object-fit:contain; margin:0 auto 1rem; display:block; }

/* =============================================
   NAV — ALWAYS VISIBLE, POINTER-EVENTS ACTIVE
   ============================================= */
nav {
    opacity: 1;
    pointer-events: auto;
}
@media (min-width: 1024px) {
    nav:not(.scrolled) .nav-link-item {
        color: #4A443E !important;
        text-shadow: none;
    }
    nav:not(.scrolled) .nav-book-btn {
        background-color: #82CECB !important;
        border-color: #82CECB !important;
        color: #F5F2EB !important;
    }
    nav:not(.scrolled) .nav-book-btn:hover {
        background-color: #4A443E !important;
        border-color: #4A443E !important;
    }
}
