*{margin:0;padding:0;box-sizing:border-box}
:root{
  --ink:#1a1208;--cream:#faf7f2;--saffron:#e8850a;--saffron-l:#fdf3e3;
  --pine:#2d4a35;--pine-l:#e8f0ea;--muted:#7a6e62;--border:#e8e0d5;
  --adark:#0d1a0f;--aside:#111e13;--aside2:#162019;
}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--ink);overflow-x:hidden}

/* ═══ NAV ═══ */
nav{position:fixed;top:0;width:100%;z-index:200;padding:18px 40px;display:flex;align-items:center;justify-content:space-between;transition:all .3s}
nav.scrolled{background:rgba(250,247,242,.97);backdrop-filter:blur(10px);box-shadow:0 1px 20px rgba(0,0,0,.08)}
.nav-logo{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:600;color:#fff;transition:color .3s;text-decoration:none}
nav.scrolled .nav-logo{color:var(--ink)}
.nav-links{display:flex;gap:28px;list-style:none}
.nav-links a{font-size:.85rem;font-weight:500;color:rgba(255,255,255,.9);text-decoration:none;letter-spacing:.05em;transition:color .3s}
nav.scrolled .nav-links a{color:var(--ink)}
.nav-links a:hover,.nav-links a.active{color:var(--saffron)}
.nav-book{background:var(--saffron);color:#fff!important;padding:9px 22px;border-radius:25px}
.nav-book:hover{background:#c97208!important}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:5px}
.hamburger span{width:24px;height:2px;background:#fff;transition:background .3s}
nav.scrolled .hamburger span{background:var(--ink)}

/* ═══ NAV AUTH (Google sign-in + referral) ═══ */
.nav-auth{position:relative;margin-left:8px}
.nav-auth-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 16px;border-radius:25px;font-size:.82rem;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;white-space:nowrap}
nav.scrolled .nav-auth-btn{border-color:var(--border);color:var(--ink);background:var(--saffron-l)}
.nav-auth-btn:hover{background:rgba(255,255,255,.22)}
nav.scrolled .nav-auth-btn:hover{background:#f5e2c4}
.nav-auth-drop{display:none;position:absolute;top:calc(100% + 10px);right:0;background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.18);padding:14px;min-width:200px;flex-direction:column;gap:8px;z-index:250}
.nav-auth-drop.open{display:flex}
.nad-name{font-size:.85rem;font-weight:600;color:var(--ink);padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:2px}
.nav-auth-drop button{background:var(--pine-l);border:none;color:var(--pine);padding:9px 12px;border-radius:10px;font-size:.82rem;cursor:pointer;text-align:left;font-family:'DM Sans',sans-serif;transition:background .2s}
.nav-auth-drop button:hover{background:var(--saffron-l);color:var(--saffron)}

/* ═══ ABOUT PHOTO BOX ═══ */
.about-ph-box{background:#fff}

/* ═══ ABOUT US ═══ */
#about{background:#fff}
.about-content{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin-top:40px}
.about-content .ph-box{background:var(--pine-l);border-radius:16px;min-height:280px;display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--pine)}
@media(max-width:768px){.about-content{grid-template-columns:1fr}}
.mobile-menu{display:none;position:fixed;inset:0;background:rgba(20,14,8,.5);z-index:300}
.mobile-menu.open{display:block}
.mm-panel{position:absolute;top:0;right:0;height:100%;width:82%;max-width:320px;background:var(--cream);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .35s ease;box-shadow:-10px 0 30px rgba(0,0,0,.25)}
.mobile-menu.open .mm-panel{transform:translateX(0)}
.mm-header{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 18px;border-bottom:1px solid var(--border)}
.mm-title{font-family:'Cormorant Garamond',serif;font-size:1.25rem;font-weight:600;color:var(--ink)}
.mob-close{background:none;border:none;color:var(--ink);font-size:1.3rem;cursor:pointer;padding:4px;line-height:1}
.mm-list{flex:1;overflow-y:auto;padding-top:4px}
.mobile-menu a{display:block;padding:15px 22px;font-family:'DM Sans',sans-serif;font-size:1rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--border);transition:color .2s}
.mobile-menu a:hover{color:var(--saffron)}
.mobile-menu a.mm-book{margin:18px 22px 4px;padding:13px;text-align:center;background:var(--saffron);color:#fff;border-radius:25px;border-bottom:none;font-weight:600}
.mm-footer{padding:16px 22px 26px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}
.mm-phone{font-family:'DM Sans',sans-serif;font-weight:600;color:var(--ink);text-decoration:none;font-size:.88rem;display:flex;align-items:center;gap:7px}
.mm-wa{background:var(--pine-l);color:var(--pine);width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:1.1rem;flex-shrink:0}

/* ═══ HERO ═══ */
.hero{height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,#0d2818,#1a3d2a 50%,#0a1f2e)}
#heroBgImg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s}
.hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.hero-pat{position:absolute;inset:0;opacity:.10;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23e8850a'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");background-size:80px 80px}
.hero-content{position:relative;z-index:2;text-align:center;padding:20px}
.hero-eye{font-size:.78rem;font-weight:500;letter-spacing:.2em;color:var(--saffron);text-transform:uppercase;margin-bottom:20px;display:flex;align-items:center;justify-content:center;gap:12px}
.hero-eye::before,.hero-eye::after{content:'';width:40px;height:1px;background:var(--saffron);opacity:.6}
.hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,8vw,6.5rem);font-weight:600;color:#fff;line-height:1.05;margin-bottom:12px}
.hero-title em{font-style:italic;color:var(--saffron)}
.hero-sub{font-size:1rem;color:rgba(255,255,255,.7);margin-bottom:40px;font-weight:300;line-height:1.7;max-width:500px;margin-left:auto;margin-right:auto}
.hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.btn-p{background:var(--saffron);color:#fff;padding:14px 32px;border-radius:30px;text-decoration:none;font-weight:500;font-size:.9rem;transition:all .3s;border:none;cursor:pointer}
.btn-p:hover{background:#c97208;transform:translateY(-2px);box-shadow:0 8px 25px rgba(232,133,10,.4)}
.btn-o{background:transparent;color:#fff;padding:14px 32px;border-radius:30px;text-decoration:none;font-weight:500;font-size:.9rem;border:1.5px solid rgba(255,255,255,.5);transition:all .3s;cursor:pointer}
.btn-o:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.btn-o-light{background:transparent;color:var(--pine);padding:14px 32px;border-radius:30px;text-decoration:none;font-weight:500;font-size:.9rem;border:1.5px solid var(--pine);transition:all .3s;cursor:pointer;display:inline-block}
.btn-o-light:hover{background:var(--pine);color:#fff}
.scroll-hint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.5);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;pointer-events:none}
.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,rgba(255,255,255,.5),transparent);animation:sp 2s ease-in-out infinite}
@keyframes sp{0%,100%{opacity:.5}50%{opacity:1}}

/* ═══ WEATHER BADGE (compact, inside about-strip) ═══ */
.wx-badge{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:50px;padding:8px 16px 8px 10px;cursor:default}
.wx-badge-icon{font-size:1.4rem;line-height:1}
.wx-badge-info{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}
.wx-badge-temp{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:600;color:var(--saffron)}
.wx-badge-lbl{font-size:.68rem;color:rgba(255,255,255,.65);letter-spacing:.04em}

/* ═══ ABOUT STRIP ═══ */
.about-strip{background:var(--pine);padding:50px 40px;display:flex;gap:40px;justify-content:center;flex-wrap:wrap}
.astat{text-align:center;color:#fff}
.astat-num{font-family:'Cormorant Garamond',serif;font-size:2.8rem;font-weight:600;color:var(--saffron);display:block}
.astat-lbl{font-size:.82rem;color:rgba(255,255,255,.7);letter-spacing:.05em;margin-top:4px}

/* ═══ SECTIONS ═══ */
section{padding:90px 40px}
.sec-eye{font-size:.75rem;font-weight:500;letter-spacing:.2em;color:var(--saffron);text-transform:uppercase;margin-bottom:12px}
.sec-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3rem);font-weight:600;color:var(--ink);line-height:1.2;margin-bottom:16px}
.sec-desc{color:var(--muted);font-size:.95rem;line-height:1.7;max-width:550px}
.sec-hdr{margin-bottom:50px}

/* ═══ ROOMS ═══ */
#rooms{background:var(--cream)}
.rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.room-card{background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--border);transition:all .3s}
.room-card:hover{transform:translateY(-6px);box-shadow:0 20px 50px rgba(0,0,0,.12)}
.room-img-wrap{height:220px;overflow:hidden;position:relative;background:#1a3d2a;cursor:zoom-in}
.room-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.room-img-wrap:hover img{transform:scale(1.08)}
.room-img-wrap .room-emoji{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:3.5rem}
.room-badge{position:absolute;top:14px;left:14px;background:var(--pine);color:#fff;font-size:.72rem;font-weight:500;padding:5px 12px;border-radius:20px}
.room-body{padding:22px}
.room-name{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;margin-bottom:6px}
.room-desc{font-size:.85rem;color:var(--muted);line-height:1.6;margin-bottom:14px}
.room-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.rtag{background:var(--pine-l);color:var(--pine);font-size:.73rem;padding:4px 10px;border-radius:20px;font-weight:500}
.room-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding-top:14px}
.room-price{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:600}
.room-price span{font-family:'DM Sans',sans-serif;font-size:.76rem;color:var(--muted);font-weight:400}

/* ═══ PACKAGES ═══ */
#packages{background:var(--saffron-l)}
.pkg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:24px}
.pkg-card{background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--border);transition:all .3s;display:flex;flex-direction:column}
.pkg-card:hover{transform:translateY(-6px);box-shadow:0 20px 50px rgba(0,0,0,.12)}
.pkg-card.featured{border:2px solid var(--saffron)}
.pkg-img-wrap{height:180px;overflow:hidden;position:relative;background:#0a1f2e;cursor:zoom-in}
.pkg-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pkg-img-wrap:hover img{transform:scale(1.08)}
.pkg-img-wrap .pkg-emoji{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:3rem}
.pkg-hdr{padding:20px 22px 0;position:relative;overflow:hidden}
.pkg-tag{display:inline-block;background:var(--saffron-l);color:var(--saffron);font-size:.72rem;font-weight:600;padding:4px 12px;border-radius:20px;letter-spacing:.05em;margin-bottom:10px;text-transform:uppercase}
.pkg-tag.hot{background:#fff0f0;color:#e03030}
.pkg-name{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;margin-bottom:4px}
.pkg-nights{font-size:.82rem;color:var(--muted);margin-bottom:14px}
.pkg-includes{padding:0 22px;list-style:none;margin-bottom:16px;flex:1}
.pkg-includes li{font-size:.83rem;color:var(--ink);padding:6px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}
.pkg-includes li::before{content:'✓';color:var(--pine);font-weight:700;font-size:.78rem;flex-shrink:0}
.pkg-foot{padding:16px 22px 22px;display:flex;align-items:center;justify-content:space-between;background:var(--cream)}
.pkg-price{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:600;line-height:1}
.pkg-price-lbl{font-family:'DM Sans',sans-serif;font-size:.73rem;color:var(--muted);font-weight:400;display:block}

/* ═══ GALLERY ═══ */
#gallery{background:var(--cream)}
.gallery-grid{columns:3;column-gap:12px;margin-top:50px}
.gal-item{break-inside:avoid;margin-bottom:12px;border-radius:12px;overflow:hidden;cursor:zoom-in;position:relative;display:block}
.gal-item img{width:100%;display:block;transition:transform .4s}
.gal-item:hover img{transform:scale(1.05)}
.gal-item .gal-overlay{position:absolute;inset:0;background:rgba(0,0,0,0);transition:background .3s;display:flex;align-items:center;justify-content:center}
.gal-item:hover .gal-overlay{background:rgba(0,0,0,.3)}
.gal-item .gal-zoom{color:#fff;font-size:1.5rem;opacity:0;transform:scale(.7);transition:all .3s}
.gal-item:hover .gal-zoom{opacity:1;transform:scale(1)}
.gal-empty{background:var(--pine-l);min-height:160px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--pine);font-size:.85rem;border-radius:12px;margin-bottom:12px}
.gal-empty span{font-size:2rem}
/* FIX 3 — Complete flip card implementation */
.gal-flip{transform-style:preserve-3d;transition:transform .55s cubic-bezier(.4,0,.2,1);position:relative}
.gal-flip-front,.gal-flip-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:12px;overflow:hidden}
.gal-flip-back{transform:rotateY(180deg);background:var(--pine);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#fff;font-size:.9rem;padding:16px;text-align:center}
.gal-item:hover .gal-flip{transform:rotateY(180deg)}
@media(max-width:600px){.gallery-grid{columns:2}}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:1000;display:none;align-items:center;justify-content:center;flex-direction:column;gap:16px}
.lightbox.open{display:flex}
.lightbox img{max-width:90vw;max-height:80vh;border-radius:12px;object-fit:contain}
.lb-close{position:absolute;top:20px;right:24px;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;line-height:1}
.lb-nav{display:flex;gap:16px}
.lb-nav button{background:rgba(255,255,255,.15);border:none;color:#fff;padding:10px 22px;border-radius:30px;cursor:pointer;font-size:.9rem;transition:background .2s}
.lb-nav button:hover{background:rgba(255,255,255,.3)}
.lb-caption{color:rgba(255,255,255,.7);font-size:.85rem;text-align:center}

/* Compact lightbox — for small contextual photos (e.g. review photos)
   that shouldn't blow up to full-screen size like gallery/room photos */
.lightbox-compact img{max-width:min(420px,82vw);max-height:55vh}

/* ═══ BOOKING ═══ */
#booking{background:var(--pine);position:relative;overflow:hidden}
#booking::before{content:'';position:absolute;top:-50px;right:-50px;width:300px;height:300px;border-radius:50%;background:rgba(232,133,10,.08)}
#booking .sec-title{color:#fff}
#booking .sec-desc{color:rgba(255,255,255,.7)}
#booking .sec-eye{color:var(--saffron)}
.booking-form{background:#fff;border-radius:20px;padding:40px;max-width:min(700px,100%);margin:40px auto 0;position:relative;z-index:1}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fg{display:flex;flex-direction:column;gap:6px}
.fg.full{grid-column:1/-1}
.fg label{font-size:.78rem;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.fg input,.fg select,.fg textarea{padding:12px 16px;border:1.5px solid var(--border);border-radius:10px;font-family:'DM Sans',sans-serif;font-size:.9rem;color:var(--ink);background:var(--cream);transition:border .2s;outline:none}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--saffron);background:#fff}
.fg textarea{resize:vertical;min-height:90px}
.form-submit{width:100%;margin-top:20px;background:var(--saffron);color:#fff;padding:15px;border:none;border-radius:30px;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s}
.form-submit:hover{background:#c97208;transform:translateY(-2px)}
.form-success{display:none;text-align:center;padding:40px 20px}
.form-success .si{font-size:3rem;margin-bottom:14px}
.form-success h3{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:var(--pine);margin-bottom:8px}
.form-success p{color:var(--muted);font-size:.88rem}

/* ═══ CONTACT ═══ */
#contact{background:#fff}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;margin-top:50px}
.ci-item{display:flex;gap:14px;margin-bottom:24px;align-items:flex-start}
.ci-icon{width:42px;height:42px;background:var(--saffron-l);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.ci-text h4{font-weight:600;font-size:.88rem;margin-bottom:3px}
.ci-text p{font-size:.83rem;color:var(--muted);line-height:1.6}
.ci-text a{color:var(--saffron);text-decoration:none}
.wa-btn{display:inline-flex;align-items:center;gap:10px;background:#25D366;color:#fff;padding:13px 26px;border-radius:30px;text-decoration:none;font-weight:500;font-size:.88rem;transition:all .3s;margin-top:8px}
.wa-btn:hover{background:#1dab52;transform:translateY(-2px)}
.map-ph{background:var(--pine-l);border-radius:16px;height:280px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--pine);font-size:.88rem;border:1px solid var(--border)}
.map-ph span{font-size:2.5rem}
.map-leaflet-wrap{border-radius:16px;overflow:hidden;border:1px solid var(--border);height:320px;position:relative;box-shadow:0 6px 24px rgba(0,0,0,.06)}
.map-leaflet-wrap .leaflet-container{height:100%;width:100%;font-family:'DM Sans',sans-serif;background:var(--pine-l)}
.map-leaflet-wrap .leaflet-popup-content{font-size:.85rem;color:var(--ink)}
.map-leaflet-wrap .leaflet-popup-content b{color:var(--pine)}
.map-directions-link{position:absolute;bottom:12px;right:12px;background:var(--saffron);color:#fff;font-size:.78rem;font-weight:600;padding:8px 16px;border-radius:20px;text-decoration:none;z-index:500;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.mini-map-wrap{border-radius:14px;overflow:hidden;border:1px solid var(--border);height:220px;margin-top:10px}
.mini-map-wrap .leaflet-container{height:100%;width:100%;background:var(--pine-l)}

/* ═══ FOOTER ═══ */
footer{background:var(--ink);padding:50px 40px 30px;color:rgba(255,255,255,.7)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:40px}
.footer-brand{font-family:'Cormorant Garamond',serif;font-size:1.6rem;color:#fff;font-weight:600;margin-bottom:10px}
.footer-tag{font-size:.83rem;line-height:1.5;color:rgba(255,255,255,.5)}
.footer-col h4{font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:14px}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:9px}
.footer-col ul li a{color:rgba(255,255,255,.6);text-decoration:none;font-size:.83rem;transition:color .2s}
.footer-col ul li a:hover{color:var(--saffron)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:22px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.footer-bottom p{font-size:.78rem;color:rgba(255,255,255,.3)}
.admin-trigger-btn{background:none;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.4);padding:7px 16px;border-radius:20px;font-size:.75rem;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s}
.admin-trigger-btn:hover{border-color:var(--saffron);color:var(--saffron)}

/* ═══ TOAST ═══ */
.toast{position:fixed;bottom:30px;right:30px;background:var(--pine);color:#fff;padding:14px 20px;border-radius:12px;font-size:.86rem;transform:translateY(100px);opacity:0;transition:all .4s;z-index:9999;max-width:280px;box-shadow:0 8px 30px rgba(0,0,0,.3)}
.toast.show{transform:translateY(0);opacity:1}

/* ═══════════════════════════════════
   ADMIN PANEL — SIDEBAR LAYOUT
═══════════════════════════════════ */
#adminOverlay{display:none;position:fixed;inset:0;z-index:500;background:var(--adark)}
#adminOverlay.open{display:flex}

/* SIDEBAR */
.admin-sidebar{width:240px;flex-shrink:0;background:var(--aside);display:flex;flex-direction:column;border-right:1px solid #1e3020;height:100vh;overflow-y:auto}
.admin-sidebar-logo{padding:24px 20px 16px;border-bottom:1px solid #1e3020}
.admin-sidebar-logo h2{font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:#fff;font-weight:600;line-height:1.2}
.admin-sidebar-logo p{font-size:.73rem;color:rgba(255,255,255,.4);margin-top:3px}
.sidebar-nav{padding:12px 0;flex:1}
.snav-item{display:flex;align-items:center;gap:10px;padding:11px 20px;color:rgba(255,255,255,.6);font-size:.85rem;cursor:pointer;transition:all .2s;border-left:3px solid transparent}
.snav-item:hover{background:rgba(255,255,255,.04);color:#fff}
.snav-item.active{background:rgba(232,133,10,.1);color:var(--saffron);border-left-color:var(--saffron)}
.snav-item .sni{font-size:1rem;width:20px;text-align:center}
.sidebar-footer{padding:16px 20px;border-top:1px solid #1e3020}
.admin-close-btn{width:100%;background:rgba(255,255,255,.07);border:none;color:rgba(255,255,255,.6);padding:10px;border-radius:10px;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:.83rem;transition:all .2s}
.admin-close-btn:hover{background:rgba(255,80,80,.15);color:#ff7070}

/* ADMIN MAIN */
.admin-main{flex:1;overflow-y:auto;padding:30px}

/* LOGIN */
.admin-login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--adark)}
.admin-login-box{background:var(--aside);border-radius:16px;padding:40px;max-width:360px;width:100%;text-align:center;border:1px solid #1e3020}
.admin-login-box h2{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:#fff;margin-bottom:6px}
.admin-login-box p{color:rgba(255,255,255,.5);font-size:.83rem;margin-bottom:24px}
.a-input{width:100%;background:#1a261a;border:1px solid #2d4a2d;color:#fff;padding:12px 16px;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:.88rem;outline:none;margin-bottom:10px;transition:border .2s}
.a-input:focus{border-color:var(--saffron)}
.a-login-btn{width:100%;background:var(--saffron);color:#fff;border:none;padding:13px;border-radius:30px;font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:500;cursor:pointer;margin-top:6px;transition:all .2s}
.a-login-btn:hover{background:#c97208}
.a-err{color:#e06060;font-size:.8rem;margin-top:6px;display:none}
.a-back{background:none;border:none;color:rgba(255,255,255,.3);font-size:.8rem;margin-top:14px;cursor:pointer;font-family:'DM Sans',sans-serif}
.a-back:hover{color:rgba(255,255,255,.6)}

/* ════ PAGE HEADER (rooms.html / packages.html) ════ */
.page-hero{background:var(--pine);padding:90px 24px 50px;text-align:center}
.page-hero .sec-eye{color:var(--saffron)}
.page-hero h1{font-family:'Cormorant Garamond',serif;color:#fff;font-size:clamp(2.2rem,5vw,3.3rem);font-weight:600;margin-bottom:10px}
.page-hero p{color:rgba(255,255,255,.75);font-size:.95rem;max-width:560px;margin:0 auto}
.page-body{max-width:1240px;margin:0 auto;padding:50px 24px 80px}
.listing-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:32px}
.listing-search{flex:1;min-width:220px;max-width:340px;position:relative}
.listing-search input{width:100%;padding:12px 16px 12px 40px;border-radius:25px;border:1px solid var(--border);background:#fff;font-family:'DM Sans',sans-serif;font-size:.88rem;outline:none;transition:border .2s}
.listing-search input:focus{border-color:var(--saffron)}
.listing-search::before{content:'🔍';position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:.85rem;opacity:.5}
.listing-sort select{padding:11px 16px;border-radius:25px;border:1px solid var(--border);background:#fff;font-family:'DM Sans',sans-serif;font-size:.85rem;color:var(--ink);outline:none;cursor:pointer}
.listing-empty{text-align:center;padding:60px 20px;color:var(--muted)}

/* ════ LOGIN PAGE (customer-facing, light theme) ════ */
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--cream) 0%,var(--pine-l) 100%);padding:110px 20px 60px}
.login-card{background:#fff;border-radius:22px;max-width:400px;width:100%;padding:42px 36px;box-shadow:0 20px 60px rgba(26,18,8,.1);border:1px solid var(--border);text-align:center}
.login-card .li-icon{font-size:2.4rem;margin-bottom:10px}
.login-card h1{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-weight:600;color:var(--ink);margin-bottom:6px}
.login-card .li-sub{color:var(--muted);font-size:.85rem;margin-bottom:28px}
.login-tabs{display:flex;background:var(--cream);border-radius:25px;padding:4px;margin-bottom:24px}
.login-tab{flex:1;padding:9px;border:none;background:none;border-radius:21px;font-family:'DM Sans',sans-serif;font-size:.84rem;font-weight:500;color:var(--muted);cursor:pointer;transition:all .2s}
.login-tab.active{background:var(--saffron);color:#fff}
.login-field{margin-bottom:14px;text-align:left}
.login-field label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:6px;font-weight:500}
.login-field input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--border);font-family:'DM Sans',sans-serif;font-size:.9rem;outline:none;transition:border .2s}
.login-field input:focus{border-color:var(--saffron)}
.login-submit{width:100%;background:var(--saffron);color:#fff;border:none;padding:13px;border-radius:25px;font-family:'DM Sans',sans-serif;font-size:.92rem;font-weight:600;cursor:pointer;margin-top:6px;transition:all .2s}
.login-submit:hover{background:#c97208}
.login-divider{display:flex;align-items:center;gap:10px;margin:22px 0;color:var(--muted);font-size:.78rem}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.login-google{width:100%;background:#fff;border:1px solid var(--border);padding:12px;border-radius:25px;display:flex;align-items:center;justify-content:center;gap:10px;font-family:'DM Sans',sans-serif;font-size:.88rem;font-weight:500;color:var(--ink);cursor:pointer;transition:all .2s}
.login-google:hover{background:var(--cream);border-color:var(--saffron)}
.login-msg{font-size:.8rem;margin-top:14px;display:none;border-radius:8px;padding:9px 12px}
.login-msg.err{display:block;background:#fdeaea;color:#c0392b}
.login-msg.ok{display:block;background:var(--pine-l);color:var(--pine)}
.login-foot{margin-top:22px;font-size:.82rem;color:var(--muted)}
.login-foot a{color:var(--saffron);font-weight:600;text-decoration:none}
.login-user-box{display:none;text-align:center}
.login-user-box img{width:74px;height:74px;border-radius:50%;margin-bottom:14px;border:3px solid var(--saffron-l)}
.login-user-box h3{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--ink);margin-bottom:2px}
.login-user-box p{color:var(--muted);font-size:.85rem;margin-bottom:18px}
.login-ref-box{background:var(--saffron-l);border-radius:12px;padding:14px;margin-bottom:18px;text-align:left}
.login-ref-box .lr-lbl{font-size:.74rem;color:var(--muted);margin-bottom:4px}
.login-ref-box .lr-val{font-family:'DM Sans',sans-serif;font-weight:600;color:var(--saffron);font-size:.92rem;word-break:break-all}

/* ADMIN CARDS */
.admin-stat-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-bottom:28px}
.astat-card{background:var(--aside);border-radius:12px;padding:18px;border:1px solid #1e3020}
.astat-card-num{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--saffron);font-weight:600}
.astat-card-lbl{font-size:.75rem;color:rgba(255,255,255,.5);margin-top:3px}

/* ADMIN SECTIONS */
.admin-panel{display:none}
.admin-panel.active{display:block}
.admin-panel-title{font-family:'Cormorant Garamond',serif;font-size:1.6rem;color:#fff;margin-bottom:6px}
.admin-panel-sub{font-size:.82rem;color:rgba(255,255,255,.4);margin-bottom:22px}
.acard{background:var(--aside);border-radius:14px;padding:22px;border:1px solid #1e3020;margin-bottom:18px}
.acard h3{color:#fff;font-size:.95rem;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}

/* TABLES */
.a-table{width:100%;border-collapse:collapse}
.a-table th{text-align:left;font-size:.72rem;color:rgba(255,255,255,.35);font-weight:500;padding:9px 12px;border-bottom:1px solid #1e3020;text-transform:uppercase;letter-spacing:.05em}
.a-table td{padding:11px 12px;font-size:.82rem;color:rgba(255,255,255,.75);border-bottom:1px solid #111e13}
.a-table tr:hover td{background:rgba(255,255,255,.02)}
.st-badge{padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:600}
.st-new{background:rgba(232,133,10,.2);color:var(--saffron)}
.st-confirmed{background:rgba(45,74,53,.4);color:#4aaa65}
.st-cancelled{background:rgba(180,30,30,.2);color:#e06060}
.a-action-btn{background:rgba(255,255,255,.08);border:none;color:rgba(255,255,255,.7);padding:4px 10px;border-radius:10px;font-size:.72rem;cursor:pointer;margin-right:4px;font-family:'DM Sans',sans-serif;transition:background .2s}
.a-action-btn:hover{background:rgba(255,255,255,.15)}
.a-action-btn.confirm{background:rgba(45,74,53,.3);color:#4aaa65}
.a-action-btn.cancel{background:rgba(150,30,30,.2);color:#e06060}
.a-action-btn.del{background:rgba(150,30,30,.2);color:#e06060}

/* ADD FORMS */
.add-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.afg{display:flex;flex-direction:column;gap:5px}
.afg.full{grid-column:1/-1}
.afg label{font-size:.73rem;color:rgba(255,255,255,.45);font-weight:500;text-transform:uppercase;letter-spacing:.04em}
.afg input,.afg select,.afg textarea{background:#1a261a;border:1px solid #2d4a2d;color:#fff;padding:10px 14px;border-radius:9px;font-family:'DM Sans',sans-serif;font-size:.85rem;outline:none;transition:border .2s}
.afg input:focus,.afg select:focus,.afg textarea:focus{border-color:var(--saffron)}
.afg textarea{resize:vertical;min-height:70px}
.add-btn{background:var(--saffron);color:#fff;border:none;padding:11px 24px;border-radius:25px;font-family:'DM Sans',sans-serif;font-size:.88rem;font-weight:500;cursor:pointer;margin-top:14px;transition:all .2s}
.add-btn:hover{background:#c97208}

/* PHOTO UPLOAD */
.photo-drop{border:2px dashed #2d4a2d;border-radius:14px;padding:30px;text-align:center;cursor:pointer;transition:all .3s;background:rgba(45,74,53,.08)}
.photo-drop:hover,.photo-drop.drag{border-color:var(--saffron);background:rgba(232,133,10,.06)}
.photo-drop input[type=file]{display:none}
.photo-drop-icon{font-size:2.5rem;margin-bottom:10px}
.photo-drop p{color:rgba(255,255,255,.5);font-size:.85rem}
.photo-drop span{color:var(--saffron);font-weight:500}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:16px}
.photo-thumb{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:1;background:#1a261a}
.photo-thumb img{width:100%;height:100%;object-fit:cover}
.photo-thumb-del{position:absolute;top:5px;right:5px;background:rgba(0,0,0,.7);border:none;color:#ff7070;width:24px;height:24px;border-radius:50%;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.photo-thumb-del:hover{background:rgba(200,0,0,.8)}
.photo-thumb-lbl{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.5);color:rgba(255,255,255,.7);font-size:.65rem;padding:4px 6px;text-align:center}
.toggle-form-btn{background:rgba(255,255,255,.07);border:1px solid #2d4a2d;color:rgba(255,255,255,.7);padding:8px 18px;border-radius:20px;font-size:.8rem;cursor:pointer;font-family:'DM Sans',sans-serif;margin-bottom:16px;transition:all .2s}
.toggle-form-btn:hover{background:rgba(232,133,10,.1);border-color:var(--saffron);color:var(--saffron)}
.comp-row{background:#1a261a;border:1px solid #2d4a2d;border-radius:12px;padding:16px;margin-bottom:12px}
.comp-row-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.comp-row-grid input[type=file]{padding:8px;font-size:.78rem}
.comp-row-foot{display:flex;align-items:center;justify-content:space-between}
.comp-row-foot label{color:rgba(255,255,255,.7);font-size:.8rem;display:flex;align-items:center;gap:7px}
.comp-row-remove{background:none;border:none;color:#e25c5c;font-size:.78rem;cursor:pointer}

/* ITEM CARDS in admin */
.admin-item-card{background:#162019;border:1px solid #1e3020;border-radius:12px;padding:14px 16px;margin-bottom:10px;display:flex;align-items:center;gap:12px}
.aic-img{width:56px;height:56px;border-radius:8px;object-fit:cover;background:#1a3d2a;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;overflow:hidden}
.aic-img img{width:100%;height:100%;object-fit:cover}
.aic-info{flex:1}
.aic-name{color:#fff;font-size:.9rem;font-weight:600;margin-bottom:2px}
.aic-sub{color:rgba(255,255,255,.45);font-size:.76rem}
.aic-price{color:var(--saffron);font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;margin-right:10px}
.aic-actions{display:flex;gap:6px;align-items:center}

@media(max-width:768px){
  nav{padding:16px 20px}
  .nav-links{display:none}
  .hamburger{display:flex}
  section{padding:70px 20px}
  .form-grid,.contact-grid,.footer-grid,.add-form-grid{grid-template-columns:1fr}
  .gallery-grid{columns:2}
  .about-strip{gap:24px;padding:40px 20px}
  .admin-sidebar{width:200px}
  .admin-stat-row{grid-template-columns:1fr 1fr}
}

/* ══════════════════════════════════════
   PACKAGE DETAIL PAGE  (package-detail.html)
   ══════════════════════════════════════ */
.pd-wrap{max-width:1100px;margin:0 auto;padding:100px 24px 80px;display:grid;grid-template-columns:1fr 360px;gap:36px;align-items:start}
.pd-main{}
.pd-badge-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.pd-badge{background:var(--saffron-l);color:var(--saffron);font-size:.75rem;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.04em}
.pd-nights{color:var(--muted);font-size:.88rem}
.pd-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3rem);font-weight:600;color:var(--ink);margin-bottom:4px}
.pd-locs{color:var(--muted);font-size:.9rem;margin-bottom:20px}

/* Photo slider */
.pd-slider{position:relative;border-radius:18px;overflow:hidden;background:var(--pine-l);margin-bottom:24px}
.pd-slider-track{display:flex;transition:transform .4s ease}
.pd-slide{min-width:100%;height:380px;flex-shrink:0}
.pd-slide img{width:100%;height:100%;object-fit:cover;display:block}
.pd-slide video{width:100%;height:100%;object-fit:cover;display:block}
.pd-slide-empty{width:100%;height:380px;display:flex;align-items:center;justify-content:center;font-size:4rem;color:var(--pine)}
.pd-arr{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.45);color:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.pd-arr.prev{left:12px}
.pd-arr.next{right:12px}
.pd-dots{display:flex;justify-content:center;gap:6px;padding:10px 0}
.pd-dot{width:7px;height:7px;border-radius:50%;background:var(--border);border:none;cursor:pointer;transition:background .2s}
.pd-dot.active{background:var(--saffron)}

/* Tabs */
.pd-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:28px;overflow-x:auto}
.pd-tab{padding:11px 20px;font-size:.88rem;font-weight:500;color:var(--muted);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s;background:none;border-top:none;border-left:none;border-right:none;font-family:'DM Sans',sans-serif}
.pd-tab.active{color:var(--saffron);border-bottom-color:var(--saffron)}
.pd-panel{display:none}
.pd-panel.active{display:block}

/* Overview */
.pd-section-title{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;color:var(--ink);margin-bottom:14px;padding-left:14px;border-left:3px solid var(--saffron)}
.pd-overview-text{color:var(--muted);line-height:1.8;font-size:.95rem;white-space:pre-line;font-feature-settings:"kern" 1,"liga" 1}
.pd-hotel-card{display:flex;gap:16px;background:var(--cream);border:1px solid var(--border);border-radius:14px;padding:16px;margin-top:20px}
.pd-hotel-img{width:90px;height:80px;border-radius:10px;object-fit:cover;background:var(--pine-l);display:flex;align-items:center;justify-content:center;font-size:1.8rem;flex-shrink:0}
.pd-hotel-name{font-weight:600;color:var(--ink);font-size:.95rem;margin-bottom:2px}
.pd-hotel-loc{color:var(--muted);font-size:.8rem;margin-bottom:8px}
.pd-hotel-amen{display:flex;flex-wrap:wrap;gap:6px}
.pd-hotel-tag{background:var(--pine-l);color:var(--pine);font-size:.72rem;padding:3px 10px;border-radius:12px}

/* Itinerary */
.pd-day-card{display:flex;gap:18px;margin-bottom:24px}
.pd-day-num{width:42px;height:42px;background:var(--pine);color:#fff;border-radius:50%;font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.pd-day-body{flex:1}
.pd-day-title{font-weight:600;color:var(--ink);font-size:1rem;margin-bottom:10px}
.pd-day-acts{list-style:none;display:flex;flex-direction:column;gap:9px}
.pd-day-acts li{color:var(--muted);font-size:.88rem;line-height:1.65;padding-left:18px;position:relative}
.pd-day-acts li::before{content:'›';position:absolute;left:0;color:var(--pine);font-weight:700}

/* Inclusions / Exclusions */
.inc-exc-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.inc-box,.exc-box{background:var(--cream);border-radius:14px;padding:20px}
.inc-box h4{color:var(--pine);font-size:.9rem;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:7px}
.exc-box h4{color:#c0392b;font-size:.9rem;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:7px}
.inc-list,.exc-list{list-style:none;display:flex;flex-direction:column;gap:9px}
.inc-list li{font-size:.85rem;color:var(--ink);padding-left:22px;position:relative}
.inc-list li::before{content:'✓';position:absolute;left:0;color:var(--pine);font-weight:700}
.exc-list li{font-size:.85rem;color:var(--ink);padding-left:22px;position:relative}
.exc-list li::before{content:'✕';position:absolute;left:0;color:#c0392b;font-weight:700}

/* Terms accordion */
.pd-term{border:1px solid var(--border);border-radius:10px;margin-bottom:8px;overflow:hidden}
.pd-term-hd{background:var(--saffron-l);padding:12px 16px;font-size:.85rem;font-weight:600;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between}
.pd-term-bd{padding:12px 16px;font-size:.84rem;color:var(--muted);line-height:1.6;display:none}
.pd-term-bd.open{display:block}

/* Sticky sidebar */
.pd-sidebar{position:sticky;top:90px}
.pd-price-box{background:#fff;border:1px solid var(--border);border-radius:18px;padding:24px;box-shadow:0 6px 30px rgba(0,0,0,.07);margin-bottom:18px}
.pd-orig-price{font-size:.9rem;color:var(--muted);text-decoration:line-through}
.pd-curr-price{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:600;color:var(--ink);margin:4px 0}
.pd-per{font-family:'DM Sans',sans-serif;font-size:.8rem;color:var(--muted);font-weight:400}
.pd-enq-btn{display:block;background:var(--saffron);color:#fff;text-align:center;padding:14px;border-radius:25px;font-weight:600;font-size:.95rem;text-decoration:none;margin:18px 0;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;width:100%}
.pd-wa-btn{display:block;background:#25d366;color:#fff;text-align:center;padding:12px;border-radius:25px;font-weight:600;font-size:.9rem;text-decoration:none}
.pd-info-row{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--muted);margin-bottom:10px}
.pd-info-row svg,.pd-info-row span.ic{color:var(--pine);font-size:1rem}
.pd-incl-box{background:var(--cream);border:1px solid var(--border);border-radius:14px;padding:18px}
.pd-incl-box h4{font-size:.8rem;font-weight:600;color:var(--ink);text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px}
.pd-incl-icons{display:flex;gap:16px;flex-wrap:wrap}
.pd-incl-icon{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:.72rem;color:var(--muted);text-align:center}
.pd-incl-icon span.em{font-size:1.6rem}
.pd-help-box{background:var(--pine-l);border-radius:14px;padding:18px}
.pd-help-box h4{color:var(--pine);font-weight:600;font-size:.9rem;margin-bottom:8px}
.pd-help-box p,.pd-help-box a{font-size:.82rem;color:var(--muted);display:block;margin-bottom:4px;text-decoration:none}

/* ── Book Now tab: summary + UPI/QR + call/WA ── */
.pd-book-summary{background:var(--cream);border:1px solid var(--border);border-radius:16px;padding:20px 22px;margin-bottom:22px;font-size:.88rem;color:var(--ink);line-height:1.9}
.pd-book-summary div{padding:3px 0}

.pd-book-upi{background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px 24px;margin-bottom:20px;text-align:center;box-shadow:0 6px 26px rgba(20,14,8,.06);position:relative;overflow:hidden}
.pd-book-upi::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--saffron),#f5b54a)}
.pd-book-upi-title{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:600;color:var(--ink);margin-bottom:18px}

.pd-book-qr-img{width:190px;height:190px;object-fit:contain;border-radius:14px;border:2px solid var(--saffron-l);background:#fff;padding:10px;display:none;margin:0 auto 14px}
.pd-book-qr-fallback{font-size:.85rem;color:var(--muted);padding:50px 10px;background:var(--saffron-l);border-radius:14px;margin-bottom:14px}

.pd-book-upi-id{display:inline-flex;align-items:center;gap:8px;background:var(--saffron-l);color:var(--saffron);font-weight:700;font-size:.95rem;padding:9px 18px;border-radius:25px;margin-bottom:10px;letter-spacing:.01em;word-break:break-all}
.pd-book-upi-hint{font-size:.78rem;color:var(--muted);line-height:1.6;max-width:320px;margin:0 auto}

.pd-book-wa-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:#25d366;color:#fff;text-align:center;padding:15px;border-radius:25px;font-weight:600;font-size:.92rem;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;margin-bottom:12px;transition:all .25s ease}
.pd-book-wa-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(37,211,102,.38)}

.pd-book-call-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--saffron-l);color:var(--saffron);text-align:center;padding:13px;border-radius:25px;font-weight:600;font-size:.88rem;text-decoration:none;margin-bottom:16px;transition:all .25s ease}
.pd-book-call-btn:hover{background:var(--saffron);color:#fff;transform:translateY(-2px)}

.pd-book-footnote{font-size:.78rem;color:var(--muted);text-align:center;line-height:1.6;padding-top:8px;border-top:1px solid var(--border)}

@media(max-width:600px){
  .pd-book-upi{padding:22px 16px}
  .pd-book-qr-img{width:160px;height:160px}
  .pd-book-upi-id{font-size:.85rem;padding:8px 14px}
}

@media(max-width:900px){
  .pd-wrap{grid-template-columns:1fr;padding-top:85px}
  .pd-sidebar{position:static}
  .inc-exc-grid{grid-template-columns:1fr}
}
@media(max-width:600px){.pd-slide,.pd-slide-empty{height:240px}}


/* ══════════════════════════════════════
   ADMIN.HTML  (standalone admin page)
   ══════════════════════════════════════ */
.sa-wrap{display:flex;min-height:100vh;padding-top:65px}
.sa-sidebar{width:240px;background:var(--adark);min-height:calc(100vh - 65px);position:sticky;top:65px;flex-shrink:0;overflow-y:auto}
.sa-logo{padding:24px 22px 18px;border-bottom:1px solid #1e3020}
.sa-logo-t{color:#fff;font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600}
.sa-logo-s{color:rgba(255,255,255,.4);font-size:.72rem}
.sa-nav{padding:14px 0}
.sa-nav-item{display:flex;align-items:center;gap:10px;padding:12px 22px;color:rgba(255,255,255,.6);font-size:.85rem;cursor:pointer;transition:all .2s;border:none;background:none;font-family:'DM Sans',sans-serif;width:100%;text-align:left}
.sa-nav-item:hover,.sa-nav-item.active{background:rgba(232,133,10,.1);color:var(--saffron)}
.sa-main{flex:1;background:var(--aside);overflow-y:auto}
.sa-panel{display:none;padding:32px}
.sa-panel.active{display:block}
.sa-panel-title{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:600;color:#fff;margin-bottom:6px}
.sa-panel-sub{color:rgba(255,255,255,.45);font-size:.85rem;margin-bottom:28px}

/* Package full-form in admin */
.pkg-form-section{background:var(--aside2);border:1px solid #1e3020;border-radius:14px;padding:22px;margin-bottom:18px}
.pkg-form-section h3{color:var(--saffron);font-size:.9rem;font-weight:600;margin-bottom:16px;text-transform:uppercase;letter-spacing:.05em}
.day-row{background:#1a261a;border:1px solid #2d4a2d;border-radius:12px;padding:16px;margin-bottom:12px}
.day-row-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.day-num-badge{background:var(--pine);color:#fff;width:30px;height:30px;border-radius:50%;font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.day-title-inp{flex:1;background:#1a261a;border:1px solid #2d4a2d;color:#fff;padding:8px 12px;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:.85rem;outline:none}
.day-acts-inp{width:100%;background:#1a261a;border:1px solid #2d4a2d;color:#fff;padding:10px 14px;border-radius:9px;font-family:'DM Sans',sans-serif;font-size:.83rem;outline:none;resize:vertical;min-height:80px;line-height:1.6}
.sa-pkg-list-item{background:var(--aside2);border:1px solid #1e3020;border-radius:12px;padding:16px;display:flex;gap:14px;align-items:center;margin-bottom:12px}
.sa-pkg-thumb{width:68px;height:54px;border-radius:8px;object-fit:cover;background:#1a3d2a;display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0;overflow:hidden}
.sa-pkg-thumb img{width:100%;height:100%;object-fit:cover}
.ph-box{
    width:80px;
    height:80px;
    background:var(--pine-l);
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
}

/* ══════════════════════════════════════════════════════
   PREMIUM UPGRADE — Navbar + Package/Room Detail Pages
   (Purely additive: refines existing classes, nothing removed)
   ══════════════════════════════════════════════════════ */

/* ─── Navbar: glass, depth, refined motion ─── */
nav{
  padding:16px 40px;
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease, backdrop-filter .35s ease;
}
nav.scrolled{
  background:rgba(250,247,242,.78);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  box-shadow:0 1px 0 rgba(232,133,10,.08), 0 12px 32px rgba(20,14,8,.07);
  padding:13px 40px;
  border-bottom:1px solid rgba(232,133,10,.08);
}
.nav-logo{letter-spacing:.01em;position:relative}
.nav-links a{position:relative;padding:4px 2px}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:-6px;width:0;height:2px;
  background:linear-gradient(90deg,var(--saffron),#f0a73a);border-radius:2px;
  transition:width .3s cubic-bezier(.4,0,.2,1);
}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-book{
  box-shadow:0 6px 18px rgba(232,133,10,.35);
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.nav-book:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(232,133,10,.45)}
.nav-auth-btn{backdrop-filter:blur(6px)}
.nav-auth-drop{box-shadow:0 18px 50px rgba(20,14,8,.22);border:1px solid var(--border)}

/* ─── Breadcrumb refinement ─── */
.pd-wrap ~ *, body > div[style*="background:var(--cream)"]{ }

/* ─── Title block ─── */
.pd-badge{
  background:linear-gradient(135deg,var(--saffron-l),#fbe6c4);
  box-shadow:0 2px 8px rgba(232,133,10,.18);
  letter-spacing:.06em;
}
.pd-title{letter-spacing:-.01em}
.pd-locs{display:flex;align-items:center;gap:6px}
.pd-locs::before{content:'📍';font-size:.85em}

/* ─── Slider: cinematic, glassy controls ─── */
.pd-slider{
  border-radius:22px;
  box-shadow:0 18px 50px rgba(20,14,8,.14), 0 2px 8px rgba(20,14,8,.06);
  margin-bottom:18px;
}
.pd-slide img,.pd-slide video{transition:transform .6s ease}
.pd-slider:hover .pd-slide img{transform:scale(1.03)}
.pd-slider::after{
  content:'';position:absolute;inset:0;pointer-events:none;border-radius:22px;
  background:linear-gradient(180deg,rgba(0,0,0,0) 70%,rgba(0,0,0,.22) 100%);
  z-index:2;
}
/* FIX B5 (verified, no change needed): .pd-arr already has position:absolute
   (base rule above) and z-index:3 here, which sits above .pd-slider::after's
   z-index:2. .pd-slider already has position:relative via its base
   overflow:hidden rule, so the arrows correctly stack above the gradient. */
.pd-arr{
  width:44px;height:44px;
  background:rgba(255,255,255,.16);
  backdrop-filter:blur(10px) saturate(160%);
  -webkit-backdrop-filter:blur(10px) saturate(160%);
  border:1px solid rgba(255,255,255,.35);
  transition:all .25s ease;
  z-index:3;
}
.pd-arr:hover{background:rgba(232,133,10,.85);border-color:rgba(232,133,10,.85);transform:translateY(-50%) scale(1.08)}
.pd-dots{padding:14px 0 4px}
.pd-dot{width:8px;height:8px;transition:all .25s ease}
.pd-dot.active{width:22px;border-radius:5px;box-shadow:0 2px 6px rgba(232,133,10,.4)}

/* ─── Tabs: premium segmented pill control ─── */
.pd-tabs{
  border-bottom:none;
  background:var(--cream);
  border:1px solid var(--border);
  border-radius:16px;
  padding:6px;
  gap:4px;
  margin-bottom:32px;
  box-shadow:inset 0 1px 3px rgba(20,14,8,.04);
}
.pd-tab{
  border-radius:11px;
  padding:10px 18px;
  border-bottom:none!important;
  margin-bottom:0;
  transition:all .25s cubic-bezier(.4,0,.2,1);
}
.pd-tab:hover{color:var(--ink);background:rgba(232,133,10,.08)}
.pd-tab.active{
  color:#fff!important;
  background:linear-gradient(135deg,var(--saffron),#d97606);
  box-shadow:0 4px 14px rgba(232,133,10,.35);
}
.pd-panel{animation:pdFadeIn .35s ease}
@keyframes pdFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ─── Section titles ─── */
.pd-section-title{border-left-width:4px;border-radius:2px}

/* ─── Hotel card ─── */
.pd-hotel-card{
  border-radius:16px;
  box-shadow:0 4px 16px rgba(20,14,8,.05);
  transition:transform .25s ease,box-shadow .25s ease;
}
.pd-hotel-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(20,14,8,.09)}
.pd-hotel-tag{font-weight:600}

/* ─── Day cards ─── */
.pd-day-card{
  background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 20px;
  box-shadow:0 4px 14px rgba(20,14,8,.04);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.pd-day-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(20,14,8,.09);border-color:rgba(232,133,10,.25)}
.pd-day-num{box-shadow:0 4px 10px rgba(45,74,53,.3)}

/* ─── Inclusions/Exclusions ─── */
.inc-box,.exc-box{
  border:1px solid var(--border);
  box-shadow:0 4px 14px rgba(20,14,8,.04);
}
.inc-box{background:linear-gradient(160deg,#fff,var(--pine-l))}
.exc-box{background:linear-gradient(160deg,#fff,#fdeeec)}
.inc-list li,.exc-list li{transition:transform .2s ease}
.inc-list li:hover,.exc-list li:hover{transform:translateX(3px)}

/* ─── Customize components ─── */
#pdComponents > div{
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease!important;
}
#pdComponents > div:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(20,14,8,.08);
  border-color:rgba(232,133,10,.3)!important;
}

/* ─── Terms accordion ─── */
.pd-term{border-radius:14px;transition:box-shadow .25s ease}
.pd-term-hd{
  border-radius:14px;
  font-weight:600;
  transition:background .25s ease;
}
.pd-term-hd span{transition:transform .25s ease;display:inline-block}
.pd-term-hd:hover{background:#f5e2c4}
.pd-term-bd.open ~ .pd-term-hd span,
.pd-term:has(.pd-term-bd.open) .pd-term-hd span{transform:rotate(180deg)}
.pd-term-bd{background:#fff;line-height:1.75}

/* ─── Sticky sidebar: premium glass price card ─── */
.pd-sidebar{top:110px}
.pd-price-box{
  border-radius:22px;
  border:1px solid rgba(232,133,10,.12);
  box-shadow:0 20px 50px rgba(20,14,8,.1), 0 2px 10px rgba(20,14,8,.04);
  position:relative;
  overflow:hidden;
}
.pd-price-box::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--saffron),#f0a73a,var(--saffron));
}
.pd-curr-price{letter-spacing:-.01em}
.pd-enq-btn{
  box-shadow:0 8px 22px rgba(232,133,10,.32);
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
}
.pd-enq-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(232,133,10,.42)}
.pd-wa-btn{
  box-shadow:0 6px 16px rgba(37,211,102,.28);
  transition:transform .25s ease,box-shadow .25s ease;
}
.pd-wa-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(37,211,102,.38)}
.pd-info-row{padding:6px 0}
.pd-incl-box{
  border-radius:16px;
  box-shadow:0 4px 14px rgba(20,14,8,.04);
}
.pd-incl-icon{transition:transform .2s ease}
.pd-incl-icon:hover{transform:translateY(-3px)}
.pd-help-box{
  border-radius:16px;
  background:linear-gradient(160deg,var(--pine-l),#dcebe1);
  box-shadow:0 4px 14px rgba(20,14,8,.04);
}
.pd-help-box a{transition:color .2s ease}
.pd-help-box a:hover{color:var(--saffron)}

/* ─── Room detail extras (view-room.html) ─── */
.room-tags{display:flex;flex-wrap:wrap;gap:8px}
.rtag{
  background:var(--pine-l);color:var(--pine);font-size:.78rem;font-weight:600;
  padding:6px 14px;border-radius:20px;transition:transform .2s ease,box-shadow .2s ease;
}
.rtag:hover{transform:translateY(-2px);box-shadow:0 4px 10px rgba(45,74,53,.18)}
.mini-map-wrap{border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(20,14,8,.08)}

/* ─── Page entrance polish ─── */
.pd-main,.pd-sidebar{animation:pdRise .5s cubic-bezier(.2,.7,.3,1) both}
.pd-sidebar{animation-delay:.08s}
@keyframes pdRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:900px){
  .pd-sidebar{top:auto}
  .pd-tabs{flex-wrap:nowrap}
}

/* ══════════════════════════════════════════════════════
   PREMIUM UPGRADE PART 2 — Full Site Polish
   (Hero, Sections, Cards, Gallery, Lightbox, Forms, Mobile)
   ══════════════════════════════════════════════════════ */

/* ─── Hero ─── */
.hero-bg{background:linear-gradient(135deg,#0a1f14,#1a3d2a 45%,#0a1828 100%)}
.hero-eye{animation:fadeUp .7s ease both}
.hero-title{animation:fadeUp .8s .08s ease both;text-shadow:0 6px 30px rgba(0,0,0,.25)}
.hero-sub{animation:fadeUp .8s .16s ease both}
.hero-ctas{animation:fadeUp .8s .24s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.btn-p,.btn-o{position:relative;overflow:hidden}
.btn-p::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.25),transparent);transform:translateX(-120%);transition:transform .6s ease}
.btn-p:hover::after{transform:translateX(120%)}

/* ─── About strip ─── */
.about-strip{background:linear-gradient(135deg,var(--pine),#1f3a2a)}
.astat{transition:transform .25s ease}
.astat:hover{transform:translateY(-4px)}
.astat-num{text-shadow:0 4px 14px rgba(232,133,10,.3)}

/* ─── Section headers ─── */
.sec-eye{display:flex;align-items:center;gap:10px}
.sec-eye::before{content:'';width:clamp(16px,3vw,30px);height:1px;background:var(--saffron);opacity:.7}

/* ─── Room & Package cards ─── */
.room-card,.pkg-card{
  box-shadow:0 4px 16px rgba(20,14,8,.05);
  transition:transform .35s cubic-bezier(.2,.8,.3,1), box-shadow .35s ease, border-color .35s ease;
}
.room-card:hover,.pkg-card:hover{
  box-shadow:0 24px 56px rgba(20,14,8,.14);
  border-color:rgba(232,133,10,.25);
}
.room-badge{box-shadow:0 4px 10px rgba(45,74,53,.3);backdrop-filter:blur(4px)}
.room-img-wrap::after,.pkg-img-wrap::after{
  content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.28) 100%);
  opacity:0;transition:opacity .35s ease;pointer-events:none;
}
.room-img-wrap:hover::after,.pkg-img-wrap:hover::after{opacity:1}
.pkg-card.featured{box-shadow:0 0 0 1px var(--saffron),0 16px 40px rgba(232,133,10,.15)}
.pkg-card.featured .pkg-hdr::before{
  content:'★ FEATURED';position:absolute;top:14px;right:-32px;background:var(--saffron);color:#fff;
  font-size:.62rem;font-weight:700;letter-spacing:.05em;padding:4px 38px;transform:rotate(35deg);box-shadow:0 4px 10px rgba(0,0,0,.15);
}
.pkg-card{position:relative}
.room-price,.pkg-price{letter-spacing:-.01em}
.rtag{transition:transform .2s ease,box-shadow .2s ease}
.rtag:hover{transform:translateY(-2px);box-shadow:0 4px 10px rgba(45,74,53,.18)}

/* ─── Gallery ─── */
.gal-item{box-shadow:0 4px 16px rgba(20,14,8,.06);border-radius:14px}
.gal-item .gal-overlay{backdrop-filter:blur(0px);transition:background .35s ease,backdrop-filter .35s ease}
.gal-item:hover .gal-overlay{backdrop-filter:blur(1px)}
.gal-item .gal-zoom{
  background:rgba(255,255,255,.18);backdrop-filter:blur(8px);
  width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
}
.gal-empty{background:linear-gradient(160deg,var(--pine-l),#dcebe1)}

/* ─── Full Gallery Popup ─── */
.gal-popup{display:none;position:fixed;inset:0;background:rgba(13,18,10,.82);backdrop-filter:blur(6px);z-index:500;padding:30px 16px}
.gal-popup.open{display:flex;align-items:flex-start;justify-content:center}
.gal-popup-inner{background:var(--cream);border-radius:20px;max-width:1100px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:lbIn .25s ease}
.gal-popup-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border);flex-shrink:0}
.gal-popup-head h3{font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--ink);margin:0}
.gal-popup-close{background:var(--pine-l);border:none;color:var(--pine);width:36px;height:36px;border-radius:50%;font-size:1rem;cursor:pointer;transition:background .2s,transform .2s}
.gal-popup-close:hover{background:var(--saffron);color:#fff;transform:rotate(90deg)}
.gal-popup-grid{overflow-y:auto;padding:24px;columns:3;column-gap:12px}
@media(max-width:700px){.gal-popup-grid{columns:2}}
@media(max-width:460px){.gal-popup-grid{columns:1}}

/* ─── Lightbox ─── */
.lightbox{backdrop-filter:blur(6px)}
.lightbox img{box-shadow:0 20px 60px rgba(0,0,0,.5);animation:lbIn .3s ease}
@keyframes lbIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.lb-close{transition:transform .2s ease,color .2s ease;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08)}
.lb-close:hover{transform:rotate(90deg);background:rgba(232,133,10,.25);color:var(--saffron)}
.lb-nav button{backdrop-filter:blur(8px);transition:transform .2s ease,background .2s ease}
.lb-nav button:hover{transform:translateY(-2px)}

/* ─── Booking form ─── */
.booking-form{
  box-shadow:0 30px 70px rgba(20,14,8,.25);
  border:1px solid rgba(255,255,255,.06);
}
#booking::after{
  content:'';position:absolute;bottom:-80px;left:-80px;width:260px;height:260px;border-radius:50%;
  background:rgba(255,255,255,.04);
}
.fg input,.fg select,.fg textarea{transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}
.fg input:focus,.fg select:focus,.fg textarea:focus{box-shadow:0 0 0 3px rgba(232,133,10,.12)}
.form-submit{box-shadow:0 10px 26px rgba(232,133,10,.32)}
.form-submit:hover{box-shadow:0 14px 32px rgba(232,133,10,.42)}

/* ─── Contact ─── */
.ci-item{transition:transform .2s ease}
.ci-item:hover{transform:translateX(4px)}
.ci-icon{box-shadow:0 4px 12px rgba(232,133,10,.15)}
.wa-btn{box-shadow:0 8px 20px rgba(37,211,102,.3)}
.wa-btn:hover{box-shadow:0 12px 26px rgba(37,211,102,.4)}

/* ─── Login page ─── */
.login-submit{box-shadow:0 8px 20px rgba(232,133,10,.3)}
.login-submit:hover{box-shadow:0 12px 26px rgba(232,133,10,.4)}
.login-google:hover{box-shadow:0 4px 14px rgba(20,14,8,.08)}

/* ─── Refined scrollbar (desktop) ─── */
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--cream)}
::-webkit-scrollbar-thumb{background:#d9cdb8;border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:var(--saffron)}

/* ─── Selection color ─── */
::selection{background:rgba(232,133,10,.25);color:var(--ink)}

/* ─── Mobile responsiveness refinements ─── */
@media(max-width:768px){
  .hero-title{letter-spacing:-.01em}
  .room-card:hover,.pkg-card:hover{transform:translateY(-3px)}
  .booking-form{padding:28px 22px;border-radius:16px}
  .pkg-card.featured .pkg-hdr::before{font-size:.56rem;padding:3px 32px;top:12px;right:-30px}
  .gallery-grid{column-gap:8px}
  .gal-item{margin-bottom:8px}
}
@media(max-width:480px){
  .hero-ctas{flex-direction:column;width:100%;padding:0 20px}
  .hero-ctas .btn-p,.hero-ctas .btn-o{width:100%;text-align:center}
  .about-strip{gap:18px}
  .astat-num{font-size:2.2rem}
}

/* ══════════════════════════════════════
   LIVE REVIEWS SECTION
   ══════════════════════════════════════ */
#reviews{background:var(--cream)}
.rev-strip-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:10px 4px 18px;scroll-snap-type:x proximity}
.rev-strip{display:flex;gap:22px}
.rev-card{
  scroll-snap-align:start;
  flex:0 0 300px;background:#fff;border:1.5px solid var(--border);border-radius:18px;
  overflow:hidden;box-shadow:0 8px 24px rgba(20,14,8,.08);
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
  display:flex;flex-direction:column;
}
.rev-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(20,14,8,.14);border-color:var(--saffron)}
.rev-card-body{padding:22px;display:flex;flex-direction:column;gap:14px;flex:1;align-items:center;text-align:center}
.rev-photo-wrap{
  width:90px;height:90px;flex-shrink:0;overflow:hidden;cursor:pointer;position:relative;
  border-radius:14px;border:2px solid var(--pine-l);box-shadow:0 4px 12px rgba(20,14,8,.1);
}
.rev-photo-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.rev-photo-wrap:hover img{transform:scale(1.08)}
.rev-stars{color:var(--saffron);font-size:1.05rem;letter-spacing:2px}
.rev-msg-box{background:var(--pine-l);border-radius:12px;padding:14px 16px;width:100%}
.rev-msg{color:var(--ink);font-size:.92rem;line-height:1.65;flex:1;margin:0}
.rev-who{display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);padding-top:14px;width:100%;justify-content:center}
.rev-avatar{
  width:42px;height:42px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--pine),#3d6b4a);color:#fff;font-weight:600;font-size:.85rem;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.rev-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.rev-name{font-weight:600;color:var(--ink);font-size:.88rem}
.rev-loc{color:var(--muted);font-size:.76rem}

/* Write a review form */
.rev-form-box{
  max-width:600px;margin:24px auto 0;background:#fff;border:1px solid var(--border);
  border-radius:18px;padding:26px;box-shadow:0 12px 36px rgba(20,14,8,.08);
}
.rev-stars-pick{display:flex;gap:8px;justify-content:center;font-size:1.8rem;cursor:pointer}
.rev-stars-pick span{color:var(--border);transition:color .15s ease,transform .15s ease}
.rev-stars-pick span.active{color:var(--saffron);transform:scale(1.1)}
.rev-form-box .form-submit{max-width:260px;margin:18px auto 0;display:block}
.rev-photo-row{display:flex;align-items:center;gap:14px;margin-top:4px}
.rev-photo-preview{width:54px;height:54px;border-radius:50%;object-fit:cover;border:2px solid var(--pine);display:none;flex-shrink:0}
.rev-photo-label{display:inline-flex;align-items:center;gap:6px;background:var(--pine-l);color:var(--pine);padding:9px 16px;border-radius:20px;font-size:.82rem;cursor:pointer;font-weight:500}
.rev-photo-label:hover{background:#dcebe0}
.rev-photo-row input[type=file]{display:none}

@media(max-width:600px){
  .rev-card{flex:0 0 260px}
  .rev-card-body{padding:20px}
  .rev-form-box{padding:20px}
}

/* New class for mobile sticky bar — hidden by default, shown only inside the
   max-width:768px block below. Does not affect any existing selector. */
.pd-mobile-stickybar{display:none}

/* ============================================================
   AUDIO NARRATION — floating button + section highlight
   New classes only; does not touch any existing selector/rule.
   Works on all screen sizes (desktop + mobile).
   ============================================================ */
.narrate-fab{
  position:fixed;
  right:20px;
  bottom:24px;
  width:56px;height:56px;
  border-radius:50%;
  border:none;
  background:linear-gradient(135deg,var(--pine,#2d6a4f),#1b4332);
  color:#fff;
  font-size:1.5rem;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(20,14,8,.25);
  z-index:600;
  transition:transform .2s cubic-bezier(.2,.8,.3,1),box-shadow .2s ease;
  -webkit-tap-highlight-color:transparent;
}
.narrate-fab:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(20,14,8,.3)}
.narrate-fab:active{transform:scale(.93)}
.narrate-fab.narrating{
  background:linear-gradient(135deg,var(--saffron,#e8850a),#b8690a);
  animation:narratePulse 1.6s ease-in-out infinite;
}
@keyframes narratePulse{
  0%,100%{box-shadow:0 8px 24px rgba(232,133,10,.35),0 0 0 0 rgba(232,133,10,.4)}
  50%{box-shadow:0 8px 24px rgba(232,133,10,.45),0 0 0 10px rgba(232,133,10,0)}
}

.narrate-block{
  border-radius:14px;
  transition:background .35s ease,box-shadow .35s ease;
}
.narrate-block.narrate-active,
.pd-day-card.narrate-active{
  background:rgba(232,133,10,.07);
  box-shadow:0 0 0 2px rgba(232,133,10,.35),0 8px 24px rgba(232,133,10,.12);
}
.pd-day-card.narrate-active{padding-bottom:6px}

/* Keep the FAB clear of the mobile sticky bar */
@media(max-width:768px){
  .narrate-fab{
    bottom:calc(86px + env(safe-area-inset-bottom));
    width:50px;height:50px;
    font-size:1.3rem;
  }
}

/* ============================================================
   MOBILE-ONLY FIXES — view-room.html & view-package.html
   Scope: max-width:768px ONLY. Desktop/tablet untouched.
   ============================================================ */
@media(max-width:768px){

  /* ---- Remove default blue/grey tap flash for app-like feel ---- */
  .pd-wrap, .pd-mobile-stickybar{
    -webkit-tap-highlight-color:transparent;
  }
  .pd-enq-btn,.pd-wa-btn,.pd-dl-btn,#pdCallBtn,#pdDlBtn,#pdBookWaBtn,
  .pd-tab,.pd-arr,.pd-msb-btn,.room-tags .rtag,.pd-day-card{
    -webkit-tap-highlight-color:transparent;
  }

  /* ---- Layout: single column stack ---- */
  .pd-wrap{
    display:flex;
    flex-direction:column;
    grid-template-columns:unset;
    padding:80px 16px 110px; /* bottom space for sticky bar */
    gap:22px;
    max-width:100%;
    overflow-x:hidden;
  }
  .pd-main{order:1;width:100%;min-width:0;animation:pdMobFadeUp .5s cubic-bezier(.2,.8,.3,1) both}
  .pd-sidebar{order:2;width:100%;min-width:0;position:static;top:auto;animation:pdMobFadeUp .5s cubic-bezier(.2,.8,.3,1) .06s both}

  @keyframes pdMobFadeUp{
    from{opacity:0;transform:translateY(10px)}
    to{opacity:1;transform:translateY(0)}
  }

  /* ---- Photo slider ---- */
  .pd-slider{
    width:100%;height:260px;border-radius:18px;margin-bottom:18px;
    box-shadow:0 10px 30px rgba(20,14,8,.1);
  }
  .pd-slide,.pd-slide-empty,.pd-slider-track,.pd-slide img,.pd-slide video{height:260px!important}
  .pd-slide img,.pd-slide video{width:100%;object-fit:cover;display:block}
  .pd-slider-track{scroll-snap-type:x mandatory}
  .pd-slide{scroll-snap-align:center}
  .pd-arr{
    width:38px;height:38px;font-size:1.1rem;
    background:rgba(255,255,255,.85);
    backdrop-filter:blur(6px);
    box-shadow:0 4px 14px rgba(0,0,0,.18);
    transition:transform .15s ease,background .2s ease;
  }
  .pd-arr:active{transform:scale(.88);background:#fff}
  .pd-dots{margin-top:10px}
  .pd-dot{transition:width .25s ease,background .25s ease,opacity .25s ease}

  /* ---- Title / text blocks don't overflow ---- */
  .pd-title{font-size:1.5rem;word-break:break-word;letter-spacing:-.2px}
  .pd-overview-text,.pd-locs{font-size:.94rem;line-height:1.7}

  /* ---- Amenity / room tags wrap properly ---- */
  .room-tags{display:flex;flex-wrap:wrap;gap:8px;width:100%}
  .room-tags .rtag{
    flex:0 1 auto;white-space:nowrap;
    transition:transform .15s ease;
  }
  .room-tags .rtag:active{transform:scale(.95)}

  /* ---- Tabs: horizontally scrollable, no wrap, smooth snap ---- */
  .pd-tabs{
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
    gap:6px;
    margin:0 -16px 22px;
    padding:2px 16px 8px;
    border-bottom:1.5px solid var(--border);
  }
  .pd-tabs::-webkit-scrollbar{display:none}
  .pd-tab{
    flex:0 0 auto;
    scroll-snap-align:start;
    white-space:nowrap;
    padding:10px 18px;
    font-size:.85rem;
    min-height:44px;
    display:flex;
    align-items:center;
    border-radius:20px;
    transition:background .2s ease,color .2s ease,transform .12s ease;
  }
  .pd-tab:active{transform:scale(.96)}
  .pd-tab.active{
    background:rgba(232,133,10,.1);
  }
  .pd-panel{animation:pdMobFadeUp .35s ease both}

  /* ---- Day-wise itinerary cards stack ---- */
  .pd-day-card{
    flex-direction:column;
    gap:12px;
    margin-bottom:20px;
    border-radius:16px;
    box-shadow:0 6px 22px rgba(20,14,8,.07);
    transition:box-shadow .25s ease;
  }
  .pd-day-card:active{box-shadow:0 3px 12px rgba(20,14,8,.1)}
  .pd-day-card img,.pd-day-card video{width:100%;height:auto;border-radius:14px 14px 0 0}

  /* ---- Package includes icons: horizontal scroll with snap ---- */
  .pd-incl-icons{
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    gap:16px;
    padding:4px 2px 6px;
    scrollbar-width:none;
  }
  .pd-incl-icons::-webkit-scrollbar{display:none}
  .pd-incl-icons > *{flex:0 0 auto;scroll-snap-align:start}

  /* ---- Sidebar price/help boxes full width, softer & rounder ---- */
  .pd-price-box,.pd-help-box,.pd-incl-box{
    width:100%;
    padding:20px;
    border-radius:20px;
    box-shadow:0 8px 28px rgba(20,14,8,.08);
  }

  /* ---- Touch targets: full width, min 48px, soft press feedback ---- */
  .pd-enq-btn,.pd-wa-btn,.pd-dl-btn,#pdCallBtn,#pdDlBtn,#pdBookWaBtn{
    width:100%;
    min-height:48px;
    padding:14px;
    font-size:.92rem;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    transition:transform .15s cubic-bezier(.2,.8,.3,1),box-shadow .2s ease,filter .2s ease;
  }
  .pd-enq-btn:active,.pd-wa-btn:active,.pd-dl-btn:active,
  #pdCallBtn:active,#pdDlBtn:active,#pdBookWaBtn:active{
    transform:scale(.97);
    filter:brightness(.96);
  }

  /* ---- Payment / UPI QR box centered, gentle frame ---- */
  #pdQrWrap,#pdPayBox,#tab-booking img#pdQrImg,#pdQrFallback{
    margin-left:auto;
    margin-right:auto;
  }
  #pdQrImg,#pdQrFallback{
    width:150px!important;
    height:150px!important;
    max-width:100%;
    border-radius:14px;
    box-shadow:0 6px 18px rgba(20,14,8,.08);
  }

  /* ---- Bottom sticky bar: glassy, animated entrance ---- */
  .pd-mobile-stickybar{
    display:flex;
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:500;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(14px) saturate(160%);
    -webkit-backdrop-filter:blur(14px) saturate(160%);
    border-top:1px solid rgba(20,14,8,.06);
    box-shadow:0 -10px 32px rgba(20,14,8,.14);
    padding:12px 16px;
    padding-bottom:calc(12px + env(safe-area-inset-bottom));
    align-items:center;
    gap:14px;
    border-radius:18px 18px 0 0;
    animation:pdMsbSlideUp .5s cubic-bezier(.2,.8,.3,1) .15s both;
  }
  @keyframes pdMsbSlideUp{
    from{opacity:0;transform:translateY(100%)}
    to{opacity:1;transform:translateY(0)}
  }
  .pd-mobile-stickybar .pd-msb-price{
    flex:0 0 auto;
    font-family:'Cormorant Garamond',serif;
    font-weight:600;
    font-size:1.2rem;
    color:var(--ink);
    line-height:1.1;
  }
  .pd-mobile-stickybar .pd-msb-price small{
    display:block;
    font-family:'DM Sans',sans-serif;
    font-size:.65rem;
    color:var(--muted);
    font-weight:400;
    letter-spacing:.2px;
  }
  .pd-mobile-stickybar .pd-msb-btn{
    flex:1 1 auto;
    min-height:48px;
    border:none;
    border-radius:25px;
    background:linear-gradient(135deg,var(--saffron),#d4760a);
    color:#fff;
    font-weight:700;
    font-size:.92rem;
    letter-spacing:.3px;
    cursor:pointer;
    text-decoration:none;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 6px 18px rgba(232,133,10,.32);
    transition:transform .15s cubic-bezier(.2,.8,.3,1),box-shadow .2s ease;
  }
  .pd-mobile-stickybar .pd-msb-btn:active{
    transform:scale(.96);
    box-shadow:0 3px 10px rgba(232,133,10,.3);
  }

  /* ---- Smooth section transitions overall ---- */
  .pd-help-box a{transition:transform .15s ease}
  .pd-help-box a:active{transform:scale(.97)}
}

/* ══════════════════════════════════════════════════════════
   🎨 GOD-LEVEL PREMIUM UPGRADE — styles.css additions
══════════════════════════════════════════════════════════ */

/* Gallery grid fix for flip cards */
#gallery .gallery-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; columns: unset; }
#gallery .gal-item { break-inside: unset; margin-bottom: 0; aspect-ratio: 4/3; }
#gallery .gal-flip { aspect-ratio: 4/3; position: relative; }
@media(max-width:600px){ #gallery .gallery-grid { grid-template-columns: repeat(2,1fr); } }

/* Glassmorphism override */
.room-card { background: rgba(255,255,255,0.76); backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%); border: 1px solid rgba(255,255,255,0.6); box-shadow: 0 8px 32px rgba(26,18,8,0.10); transform-style: preserve-3d; }
.pkg-card { background: rgba(255,255,255,0.76); backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%); border: 1px solid rgba(255,255,255,0.6); box-shadow: 0 8px 32px rgba(26,18,8,0.10); transform-style: preserve-3d; }
/* ─── FIX B1: perspective on parent grids so 3D transform-style renders ─── */
.rooms-grid,.pkg-grid{perspective:1200px}

/* Section bg overrides for glass visibility */
#rooms { background: linear-gradient(135deg, #f0ebe2 0%, #e8f0ea 100%) !important; }
#packages { background: linear-gradient(135deg, #fdf3e3 0%, #eaf0ec 100%) !important; }

/* Astat ring layout */
.about-strip .astat { min-width: 90px; }


/* ══════════════════════════════════════════════════════════════
   MASTER UPGRADE PATCH — All 45 improvements applied
   Grouped additions below (targeted fixes applied inline above)
══════════════════════════════════════════════════════════════ */

/* ─── FIX 7: pd-slider-track mobile — disable JS animation on scroll-snap ─── */
@media(max-width:768px){
  .pd-slider-track{transition:none}
}

/* ─── FIX 8: SPACING + RADIUS TOKENS ─── */
:root{
  --space-xs:8px;--space-sm:16px;--space-md:24px;--space-lg:40px;--space-xl:90px;
  --radius-sm:10px;--radius-md:16px;--radius-lg:22px;
}

/* ─── FIX 10: focus-visible global accessibility ─── */
:focus-visible{outline:2px solid var(--saffron);outline-offset:3px;border-radius:4px}
button:focus-visible,a:focus-visible{outline:2px solid var(--saffron);outline-offset:3px;border-radius:4px}

/* ─── FIX 11: will-change only on hover ─── */
.room-card:hover,.pkg-card:hover,.gal-item:hover{will-change:transform}

/* ─── FIX 12: broken image fallback ─── */
img:not([src]),img[src=""]{visibility:hidden}

/* ─── FIX 13: Hero bottom fade into next section ─── */
.hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(to bottom,transparent,rgba(250,247,242,.95));mix-blend-mode:normal;z-index:3;pointer-events:none}

/* ─── FIX 15: About strip stat dividers ─── */
.astat+.astat{border-left:1px solid rgba(255,255,255,.12);padding-left:40px}
@media(max-width:480px){
  .astat+.astat{border-left:none;padding-left:0;border-top:1px solid rgba(255,255,255,.1);padding-top:18px}
}

/* ─── FIX 17: Reviews strip edge fade mask ─── */
.rev-strip-wrap{
  -webkit-mask-image:linear-gradient(to right,transparent 0%,black 5%,black 95%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,black 5%,black 95%,transparent 100%);
}
/* ─── FIX B3: restore Safari touch scroll under mask-image by forcing a GPU layer ─── */
.rev-strip-wrap{-webkit-transform:translateZ(0)}

/* ─── FIX 18: Lightbox counter ─── */
.lb-counter{position:absolute;top:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.5);font-size:.75rem;letter-spacing:.12em;font-family:'DM Sans',sans-serif;background:rgba(0,0,0,.3);padding:4px 14px;border-radius:20px;backdrop-filter:blur(6px)}

/* ─── FIX 19: Price box shimmer animation ─── */
.pd-price-box::before,.pd-book-upi::before{background:linear-gradient(90deg,var(--saffron),#f0a73a,var(--saffron));background-size:200%;animation:shimmerLine 3s linear infinite}
@keyframes shimmerLine{0%{background-position:200% center}100%{background-position:-200% center}}

/* ─── FIX 20: Footer social icons ─── */
.footer-social{display:flex;gap:10px;margin-top:14px}
.footer-social a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);text-decoration:none;font-size:.95rem;transition:background .2s,transform .2s,color .2s}
.footer-social a:hover{background:var(--saffron);border-color:var(--saffron);color:#fff;transform:translateY(-3px)}

/* ─── FIX 21: narrate-fab tooltip ─── */
/* FIX B4: removed `position:relative` here — .narrate-fab is already
   position:fixed (see rule above), which is itself a valid positioning
   context for ::after. Re-declaring relative was overriding fixed and
   breaking the FAB's viewport-pinned placement. */
.narrate-fab::after{content:'Listen';position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);background:rgba(20,14,8,.85);color:#fff;font-size:.72rem;white-space:nowrap;padding:5px 12px;border-radius:20px;opacity:0;pointer-events:none;transition:opacity .2s ease;font-family:'DM Sans',sans-serif}
.narrate-fab:hover::after{opacity:1}
@media(max-width:768px){.narrate-fab::after{display:none}}

/* ─── FIX 24: text-wrap balance for headings ─── */
.sec-title,.hero-title,.pd-title,.room-name,.pkg-name,.admin-panel-title,.sa-panel-title{text-wrap:balance}

/* ─── FIX 25: font-variant-numeric for price/stat numbers ─── */
.room-price,.pkg-price,.pd-curr-price,.pd-orig-price,.astat-num,.aic-price{font-variant-numeric:lining-nums tabular-nums}

/* ─── FIX 29: touch-action on horizontal scroll containers ─── */
.rev-strip-wrap,.pd-incl-icons{touch-action:pan-x}
.pd-tabs{touch-action:pan-x pan-y}

/* ─── FIX 31: Toast mobile position (above sticky bar) ─── */
@media(max-width:768px){
  .toast{bottom:90px;right:16px;left:16px;max-width:unset;text-align:center}
}

/* ─── FIX 32: Admin sidebar collapse on small screens ─── */
@media(max-width:640px){
  .admin-sidebar,.sa-sidebar{width:100%;min-height:auto;position:static;flex-direction:row;overflow-x:auto}
  .snav-item,.sa-nav-item{flex-direction:column;font-size:.68rem;padding:10px 14px;gap:4px}
  .admin-main,.sa-main{overflow-y:unset}
}

/* ─── FIX 33: pd-day-card media coverage on mobile ─── */
@media(max-width:768px){
  .pd-day-card img,.pd-day-card video{width:100%;height:180px;object-fit:cover;border-radius:12px;display:block}
}

/* ─── FIX 34: Mobile nav safe area ─── */
@media(max-width:768px){
  nav{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
}

/* ─── FIX 35: content-visibility for off-screen heavy sections ─── */
/* FIX B6: removed `footer` from this rule — content-visibility:auto was
   collapsing footer height to 0 until scrolled into view, which broke
   bottom-offset fixed elements (back-to-top, narrate-fab, toast) that
   rely on layout further up the page being stable. */
#gallery,#reviews,#booking,#contact{content-visibility:auto;contain-intrinsic-size:0 500px}

/* ─── FIX 36: Reserve scrollbar gutter to prevent layout shift ─── */
html{scrollbar-gutter:stable}

/* ─── FIX 37: Image rendering optimization ─── */
.gal-item img,.room-img-wrap img,.pkg-img-wrap img{image-rendering:auto;decoding:async}

/* ─── FIX 38: Scroll progress bar ─── */
.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--saffron),#f0a73a);z-index:2000;width:0%;transition:width .1s linear;border-radius:0 2px 2px 0}

/* ─── FIX 39: Skeleton loader ─── */
.skeleton{background:linear-gradient(90deg,var(--border) 25%,#f0ebe2 50%,var(--border) 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s infinite;border-radius:8px}
@keyframes skeletonShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skeleton-card{height:320px;border-radius:16px}
.skeleton-text{height:14px;margin-bottom:8px;border-radius:4px}
.skeleton-text.short{width:60%}

/* ─── FIX 40: Scroll-triggered reveal base styles ─── */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .65s cubic-bezier(.2,.8,.3,1),transform .65s cubic-bezier(.2,.8,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}

/* ─── FIX 41: Nav book button attention pulse ─── */
.nav-book{animation:navAttention 3s ease-in-out 6s 3}
@keyframes navAttention{
  0%,100%{box-shadow:0 6px 18px rgba(232,133,10,.35)}
  50%{box-shadow:0 6px 18px rgba(232,133,10,.35),0 0 0 8px rgba(232,133,10,.15)}
}

/* ─── FIX 42: Hero image Ken Burns ─── */
#heroBgImg{filter:blur(20px);transform:scale(1.05);transition:filter 1.2s ease,opacity 1s ease,transform 1.2s ease}
#heroBgImg.loaded{filter:blur(0);transform:scale(1);opacity:1;animation:kenBurns 18s ease-in-out infinite alternate}
@keyframes kenBurns{from{transform:scale(1)}to{transform:scale(1.07) translate(1%,.5%)}}

/* ─── FIX 43: Stat counter CSS prep ─── */
.astat-num[data-count]{transition:all .1s}

/* ─── FIX 44: Review photo ring on hover ─── */
.rev-photo-wrap{transition:border-color .2s ease,box-shadow .2s ease}
.rev-photo-wrap:hover{border-color:var(--saffron);box-shadow:0 0 0 3px rgba(232,133,10,.2)}

/* ─── FIX 45: Back to top button ─── */
.back-to-top{position:fixed;bottom:90px;left:24px;width:44px;height:44px;border-radius:50%;background:var(--cream);border:1px solid var(--border);color:var(--ink);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(10px);transition:all .3s ease;z-index:400;box-shadow:0 4px 16px rgba(20,14,8,.12)}
.back-to-top.visible{opacity:1;transform:translateY(0)}
.back-to-top:hover{background:var(--saffron);color:#fff;border-color:var(--saffron);transform:translateY(-3px)}
@media(max-width:768px){
  .back-to-top{bottom:calc(80px + env(safe-area-inset-bottom));left:16px;width:40px;height:40px;font-size:.95rem}
}

/* ══════════════════════════════════════════════════════════════
   UPGRADE PATCH v2 — 3D + Typography + Polish
   ══════════════════════════════════════════════════════════════ */

/* ── 3D1: Card tilt on hover (room/pkg cards) ──
   JS sets --rx/--ry per mouse position; see HTML CHANGES v2 → H4. */
.room-card,.pkg-card{
  transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition:transform .4s ease,box-shadow .4s ease;
}
.room-card:hover,.pkg-card:hover{
  box-shadow:0 30px 60px rgba(20,14,8,.18),0 0 0 1px rgba(232,133,10,.15);
}

/* ── 3D2: Stat counter ring depth ── */
.astat{
  position:relative;
  padding:22px 28px;
  border-radius:18px;
  transition:transform .35s ease,box-shadow .35s ease;
}
.astat::before{
  content:'';position:absolute;inset:0;border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  transform:translateZ(0);
  pointer-events:none;
}
.astat:hover{
  transform:translateY(-6px) scale(1.03);
  box-shadow:0 20px 40px rgba(0,0,0,.2);
}

/* ── 3D3: Floating nav logo depth ── */
.nav-logo{
  text-shadow:
    0 1px 0 rgba(255,255,255,.15),
    0 -1px 0 rgba(0,0,0,.3),
    0 2px 4px rgba(0,0,0,.2);
}
nav.scrolled .nav-logo{
  text-shadow:
    0 1px 0 rgba(255,255,255,.4),
    0 2px 6px rgba(20,14,8,.15);
}

/* ── 3D4: Hero title depth ── */
.hero-title{
  text-shadow:
    0 2px 4px rgba(0,0,0,.3),
    0 8px 20px rgba(0,0,0,.2),
    0 20px 40px rgba(0,0,0,.15);
}

/* ── 3D5: Room image parallax prep (opposite-direction shift vs card tilt) ── */
.room-img-wrap{transform-style:preserve-3d}
.room-img-wrap img{
  transition:transform .6s cubic-bezier(.2,.8,.3,1);
  transform:translateZ(0);
}
.room-card:hover .room-img-wrap img{
  transform:scale(1.08) translateZ(20px);
}

/* ── 3D6: Featured package ribbon — raised 3D look ── */
.pkg-card.featured .pkg-hdr::before{
  box-shadow:0 4px 12px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.2);
}

/* ── 3D7: Lightbox entrance from depth instead of flat scale ── */
@keyframes lbIn{
  from{
    opacity:0;
    transform:perspective(600px) translateZ(-60px) scale(.94);
  }
  to{
    opacity:1;
    transform:perspective(600px) translateZ(0) scale(1);
  }
}

/* ── 3D8: Booking form floating depth ── */
.booking-form{
  transform:perspective(1000px) rotateX(1deg);
  transform-origin:top center;
  transition:transform .4s ease,box-shadow .4s ease;
}
.booking-form:hover,.booking-form:focus-within{
  transform:perspective(1000px) rotateX(0deg);
  box-shadow:0 40px 80px rgba(20,14,8,.3),0 0 0 1px rgba(255,255,255,.08);
}

/* ── 3D9: Gallery item stacked-paper depth ── */
.gal-item{position:relative}
.gal-item::before,.gal-item::after{
  content:'';position:absolute;border-radius:14px;
  background:var(--pine-l);transition:transform .3s ease;
  z-index:-1;
}
.gal-item::before{
  inset:0;transform:translate(4px,4px);opacity:.5;
}
.gal-item::after{
  inset:0;transform:translate(8px,8px);opacity:.25;
}
.gal-item:hover::before{transform:translate(6px,6px)}
.gal-item:hover::after{transform:translate(12px,12px)}

/* ── 3D10: Footer brand emboss ── */
.footer-brand{
  background:linear-gradient(135deg,#fff 0%,var(--saffron) 50%,#fff 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  filter:drop-shadow(0 2px 4px rgba(232,133,10,.3));
}

/* ── T1: Optical sizing on Cormorant Garamond headings ── */
.sec-title,.hero-title,.pd-title,.room-name,.pkg-name,.footer-brand,.nav-logo{font-optical-sizing:auto}

/* ── T2: Hero eyebrow responsive tracking ── */
.hero-eye{letter-spacing:clamp(.08em,.2vw + .05em,.2em)}

/* ── T3: Section title — smaller floor on mobile ── */
.sec-title{font-size:clamp(1.6rem,4vw,3rem)}

/* ── T4: Room name 2-line clamp ── */
.room-name{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ── T5: Review message 5-line clamp ── */
.rev-msg{
  display:-webkit-box;
  -webkit-line-clamp:5;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ── T6: Currency symbol size contrast (requires class="currency" span — see H5) ── */
.room-price .currency,.pkg-price .currency,.pd-curr-price .currency{
  font-size:.65em;
  vertical-align:super;
  font-weight:400;
  opacity:.7;
}

/* ── T7: Package name overflow fix ── */
.pkg-name{font-size:clamp(1.1rem,2.5vw,1.4rem)}

/* ── T8: Editorial drop cap on overview's first paragraph ── */
.pd-overview-text p:first-child::first-letter{
  font-family:'Cormorant Garamond',serif;
  font-size:3.2em;
  font-weight:700;
  color:var(--saffron);
  float:left;
  line-height:.85;
  margin-right:6px;
  margin-top:4px;
}

/* ── T9: Active nav link weight ── */
.nav-links a.active{
  color:var(--saffron);
  font-weight:600;
}

/* ── T10: Admin panel title bottom separator ── */
.admin-panel-title,.sa-panel-title{
  padding-bottom:14px;
  border-bottom:1px solid #1e3020;
  margin-bottom:20px;
}

/* ── V1: Saffron focus glow on form inputs ── */
.fg input:focus,.fg select:focus,.fg textarea:focus,.login-field input:focus{
  box-shadow:0 0 0 3px rgba(232,133,10,.15),0 0 20px rgba(232,133,10,.08);
}

/* ── V2: Room badge pulse (requires class="available" — see H6) ── */
.room-badge.available{animation:badgePulse 3s ease-in-out infinite}
@keyframes badgePulse{
  0%,100%{box-shadow:0 4px 10px rgba(45,74,53,.3)}
  50%{box-shadow:0 4px 10px rgba(45,74,53,.3),0 0 0 4px rgba(45,74,53,.12)}
}

/* ── V3: Subtle noise texture on cream sections ── */
#rooms,#gallery,#contact{
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  background-size:200px 200px;
}

/* ── V4: Booking section diagonal line overlay ── */
#booking::before{
  background-image:repeating-linear-gradient(
    45deg,
    rgba(255,255,255,.02) 0px,
    rgba(255,255,255,.02) 1px,
    transparent 1px,
    transparent 12px
  );
}

/* ── V5: Active tab bottom accent underline ── */
.pd-tab{position:relative}
.pd-tab.active::after{
  content:'';
  position:absolute;
  bottom:-2px;left:50%;
  transform:translateX(-50%);
  width:20px;height:2px;
  background:var(--saffron);
  border-radius:2px;
}

/* ── V6: Editorial lightbox caption ── */
.lb-caption{
  font-family:'Cormorant Garamond',serif;
  font-size:1rem;
  font-style:italic;
  color:rgba(255,255,255,.6);
  letter-spacing:.03em;
  max-width:500px;
  text-align:center;
}

/* ── V7: Contact icon hover rotate ── */
.ci-icon{
  transition:transform .3s ease,background .3s ease,box-shadow .3s ease;
}
.ci-item:hover .ci-icon{
  transform:rotate(-8deg) scale(1.1);
  background:var(--saffron);
  box-shadow:0 8px 20px rgba(232,133,10,.3);
}

/* ── V8: Admin table row striping ── */
.a-table tbody tr:nth-child(even) td{
  background:rgba(255,255,255,.015);
}

/* ── V9: Toast success/error/info variants ── */
.toast.success{background:var(--pine)}
.toast.error{background:#c0392b}
.toast.info{background:#1a6fa8}

/* ── V10: Package includes-count badge (requires .pkg-includes-count span in HTML) ── */
.pkg-includes-count{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--pine);color:#fff;
  font-size:.65rem;font-weight:700;
  width:20px;height:20px;border-radius:50%;
  margin-left:6px;vertical-align:middle;
}

/* ── M1: Hero title on very small screens ── */
@media(max-width:380px){
  .hero-title{font-size:2.2rem;line-height:1.1}
  .hero-eye{font-size:.68rem}
}

/* ── M2: Booking form padding on small screens ── */
@media(max-width:480px){
  .booking-form{padding:24px 18px}
}

/* ── M3: Footer grid column order on mobile
   NOTE: requires a `.footer-brand-col` wrapper class around the first
   footer column in the HTML — not present in the uploaded index.html
   (that file is a generic placeholder, not the live site markup), so
   this rule is inert until that markup exists. See note at end of reply. */
@media(max-width:768px){
  .footer-grid{grid-template-columns:1fr;gap:28px}
  .footer-brand-col{order:1}
  .footer-col:nth-child(2){order:2}
  .footer-col:nth-child(3){order:3}
}

/* ── M4: Gallery popup grid padding on mobile ── */
@media(max-width:700px){
  .gal-popup-grid{padding:16px;column-gap:8px}
}

/* ── M5: About content image min-height on mobile ── */
@media(max-width:768px){
  .about-content .ph-box{min-height:200px}
}

/* ── P1: Layer promotion for always-animating fixed elements ──
   (cards already get promoted via P3's contain + their own hover
   transition; these four are fixed/animated regardless of hover) */
.scroll-progress,.narrate-fab,.back-to-top,.toast{
  will-change:opacity,transform;
}

/* ── P3: Contain paint on cards so hover doesn't trigger full repaints ── */
.room-card,.pkg-card,.rev-card,.gal-item{
  contain:layout style;
}

/* ── P4: Drop expensive backdrop-filter on reduced-motion / low-res displays ── */
@media(prefers-reduced-motion:reduce),(max-resolution:1dppx){
  .nav-auth-drop,.pd-arr,.narrate-fab,.lb-close,.pd-mobile-stickybar,.gal-popup{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}

/* ─── FIX 9: prefers-reduced-motion — MUST BE LAST ─── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important;animation-iteration-count:1!important}
  #heroBgImg.loaded{animation:none}
}
