/* ═══════ TOKENS ═══════ */
:root{
  --forest:#1c2b1d;--pine:#2d4a2f;--sage:#4a6b4c;--mist:#8aab8c;
  --gold:#c8a84b;--gold2:#e6c96e;--cream:#f2ece0;--paper:#faf7f1;
  --ink:#161914;--mid:#444840;--soft:#767c70;--line:rgba(200,168,75,.2);
  --green2:#4A7A28;--gold-pale:#FFF8E7;--r:cubic-bezier(.25,.46,.45,.94);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{font-family:'Outfit',sans-serif;background:var(--paper);color:var(--ink);overflow-x:hidden;cursor:none;}
img{display:block;max-width:100%;}
a{text-decoration:none;color:inherit;}
button{font-family:'Outfit',sans-serif;cursor:none;}
::-webkit-scrollbar{width:5px;}::-webkit-scrollbar-track{background:var(--forest);}::-webkit-scrollbar-thumb{background:var(--gold);}

/* CURSOR */
#cursor{position:fixed;width:10px;height:10px;background:var(--gold);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .2s,height .2s;mix-blend-mode:difference;}
#cursor-ring{position:fixed;width:38px;height:38px;border:1.5px solid var(--gold);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);opacity:.6;transition:width .25s,height .25s;}
body:has(a:hover) #cursor,body:has(button:hover) #cursor{width:20px;height:20px;}
body:has(a:hover) #cursor-ring,body:has(button:hover) #cursor-ring{width:60px;height:60px;opacity:.3;}
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");pointer-events:none;z-index:1;opacity:.6;}

/* LOADER */
#loader{position:fixed;inset:0;background:var(--forest);z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;transition:opacity .8s,visibility .8s;}
#loader.done{opacity:0;visibility:hidden;}
.loader-logo{font-family:'Playfair Display',serif;font-size:3rem;color:#fff;letter-spacing:.08em;opacity:0;animation:loaderFade .8s .3s ease forwards;}
.loader-sub{font-size:.65rem;letter-spacing:.35em;text-transform:uppercase;color:rgba(255,255,255,.4);opacity:0;animation:loaderFade .8s .6s ease forwards;}
.loader-bar{width:200px;height:1px;background:rgba(255,255,255,.1);overflow:hidden;}
.loader-fill{height:100%;background:var(--gold);width:0%;animation:loaderBar 1.8s .4s var(--r) forwards;}
@keyframes loaderFade{to{opacity:1;}}
@keyframes loaderBar{to{width:100%;}}

/* NAV */
#nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:1.6rem 4rem;transition:padding .4s,background .4s;}
#nav.solid{background:rgba(250,247,241,.96);backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--line);padding:1rem 4rem;}
.nav-logo{font-family:'Playfair Display',serif;font-size:1.65rem;font-weight:500;color:#fff;letter-spacing:.06em;transition:color .4s;}
#nav.solid .nav-logo{color:var(--pine);}
.nav-menu{display:flex;gap:2rem;list-style:none;align-items:center;}
.nav-menu a{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:rgba(255,255,255,.75);transition:color .3s;}
#nav.solid .nav-menu a{color:var(--mid);}
.nav-menu a:hover{color:var(--gold);}
#nav.solid .nav-menu a:hover{color:var(--pine);}
.nav-book{background:var(--gold)!important;color:var(--ink)!important;padding:.5rem 1.4rem;border-radius:1px;font-weight:600!important;}
.nav-book:hover{background:var(--gold2)!important;}
#nav.solid .nav-book{background:var(--pine)!important;color:#fff!important;}
.ham{display:none;flex-direction:column;gap:6px;background:none;border:none;padding:.4rem;}
.ham span{display:block;width:22px;height:1.5px;background:#fff;transition:all .3s;transform-origin:center;}
#nav.solid .ham span{background:var(--ink);}
.ham.x span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.ham.x span:nth-child(2){opacity:0;}
.ham.x span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

/* MOBILE NAV */
#mob-nav{position:fixed;inset:0;background:var(--forest);z-index:490;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s;}
#mob-nav.open{opacity:1;visibility:visible;}
#mob-nav a{font-family:'Playfair Display',serif;font-size:2rem;color:#fff;transform:translateY(20px);opacity:0;transition:all .4s;}
#mob-nav.open a{transform:none;opacity:1;}
#mob-nav.open a:nth-child(1){transition-delay:.05s;}
#mob-nav.open a:nth-child(2){transition-delay:.1s;}
#mob-nav.open a:nth-child(3){transition-delay:.15s;}
#mob-nav.open a:nth-child(4){transition-delay:.2s;}
#mob-nav.open a:nth-child(5){transition-delay:.25s;}
#mob-nav.open a:nth-child(6){transition-delay:.3s;}
#mob-nav.open a:nth-child(7){transition-delay:.35s;}
#mob-nav a:hover{color:var(--gold2);}
.mob-book{color:var(--gold2)!important;margin-top:1rem!important;}

/* HERO */
#hero{min-height:100svh;position:relative;display:flex;align-items:flex-end;overflow:hidden;}
.hero-slides{position:absolute;inset:0;}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;background-size:cover;background-position:center;}
.hero-slide.active{opacity:1;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,32,20,.35) 0%,rgba(15,25,15,.15) 40%,rgba(10,20,10,.78) 100%);z-index:1;}
.hero-floor{position:relative;z-index:2;width:100%;padding:0 4rem 5rem;display:grid;grid-template-columns:1fr auto;align-items:flex-end;gap:3rem;}
.hero-kicker{display:inline-flex;align-items:center;gap:.8rem;font-size:.63rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold2);font-weight:600;margin-bottom:1.6rem;opacity:0;animation:riseUp .8s .5s var(--r) forwards;}
.hero-kicker::before{content:'';width:28px;height:1px;background:var(--gold);}
.hero-h1{font-family:'Playfair Display',serif;font-size:clamp(3rem,7vw,6.5rem);font-weight:400;line-height:1.04;color:#fff;margin-bottom:1.8rem;opacity:0;animation:riseUp .9s .7s var(--r) forwards;}
.hero-h1 em{font-style:italic;color:var(--gold2);}
.hero-p{font-size:clamp(.88rem,1.5vw,1rem);line-height:1.9;color:rgba(255,255,255,.65);font-weight:300;max-width:500px;margin-bottom:2.5rem;opacity:0;animation:riseUp .9s .9s var(--r) forwards;}
.hero-btns{display:flex;gap:1rem;flex-wrap:wrap;opacity:0;animation:riseUp .9s 1.1s var(--r) forwards;}
.btn-fill{background:var(--gold);color:var(--ink);padding:.85rem 2rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;border:none;border-radius:1px;transition:all .3s;display:inline-flex;align-items:center;gap:.5rem;}
.btn-fill:hover{background:var(--gold2);transform:translateY(-3px);box-shadow:0 12px 28px rgba(200,168,75,.4);}
.btn-line{color:#fff;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;display:inline-flex;align-items:center;gap:.6rem;transition:all .3s;padding:.85rem 0;}
.btn-line:hover{color:var(--gold2);gap:1rem;}
.hero-stats{display:flex;flex-direction:column;gap:1px;opacity:0;animation:riseUp .9s 1.3s var(--r) forwards;}
.hs-item{background:rgba(255,255,255,.07);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);padding:.9rem 1.5rem;text-align:center;min-width:110px;}
.hs-val{font-family:'Playfair Display',serif;font-size:1.55rem;color:var(--gold2);line-height:1;}
.hs-lbl{font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:.3rem;}
.hero-scroll-hint{position:absolute;left:4rem;bottom:2.5rem;z-index:3;writing-mode:vertical-rl;display:flex;align-items:center;gap:.8rem;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.35);}
.scroll-track{width:1px;height:50px;background:rgba(255,255,255,.15);overflow:hidden;}
.scroll-runner{width:100%;height:50%;background:var(--gold);animation:scrollRun 2s ease infinite;}
@keyframes scrollRun{0%{transform:translateY(-100%);}100%{transform:translateY(200%);}}
@keyframes riseUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:none;}}

/* MARQUEE */
.marquee-strip{background:var(--gold);padding:.85rem 0;overflow:hidden;position:relative;z-index:2;}
.marquee-track{display:flex;gap:3rem;align-items:center;animation:marquee 22s linear infinite;white-space:nowrap;min-width:max-content;}
.marquee-track span{font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;font-weight:700;color:var(--ink);}
.marquee-track .dot{width:4px;height:4px;background:var(--ink);border-radius:50%;opacity:.4;flex-shrink:0;}
@keyframes marquee{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* PRIMITIVES */
.s-tag{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;font-weight:700;color:var(--sage);display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem;}
.s-tag::before{content:'';width:24px;height:1px;background:var(--gold);}
.s-h{font-family:'Playfair Display',serif;font-size:clamp(2rem,4.5vw,3.4rem);font-weight:400;line-height:1.12;color:var(--ink);}
.s-h em{font-style:italic;color:var(--pine);}
.s-div{width:44px;height:2px;background:linear-gradient(to right,var(--gold),transparent);margin-top:1.2rem;}
.s-body{font-size:.95rem;line-height:1.9;color:var(--mid);font-weight:300;}
[data-reveal]{opacity:0;transform:translateY(36px);transition:opacity .85s var(--r),transform .85s var(--r);}
[data-reveal].vis{opacity:1;transform:none;}

/* ABOUT */
#about{display:grid;grid-template-columns:1fr 1fr;min-height:90vh;}
.about-visual{position:relative;overflow:hidden;background:url('https://www.ramainnjawhar.com/images/building.jpg') center/cover no-repeat;}
.about-visual::before{content:'';position:absolute;inset:0;background:linear-gradient(to right,transparent 55%,var(--paper));z-index:1;}
.av-number{position:absolute;bottom:3rem;left:3rem;z-index:2;background:var(--pine);color:#fff;padding:1.5rem 2rem;}
.av-number .big{font-family:'Playfair Display',serif;font-size:3.2rem;color:var(--gold2);line-height:1;}
.av-number .sm{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;opacity:.65;margin-top:.3rem;}
.av-float{position:absolute;top:3rem;right:0;z-index:3;background:var(--gold);padding:.6rem 1.6rem .6rem 1.2rem;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink);clip-path:polygon(0 0,100% 0,100% 100%,8% 100%);}
.about-words{padding:7rem 5rem 7rem 4rem;display:flex;flex-direction:column;justify-content:center;}
.about-stats{display:flex;gap:0;margin-top:3rem;border-top:1px solid var(--line);}
.astat{flex:1;padding:1.6rem 1.2rem 1.6rem 0;border-right:1px solid var(--line);}
.astat:last-child{border-right:none;padding-left:1.2rem;}
.astat .n{font-family:'Playfair Display',serif;font-size:2.1rem;color:var(--pine);line-height:1;}
.astat .l{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin-top:.3rem;}

/* AMENITIES */
#experience{background:var(--forest);padding:7rem 4rem;position:relative;overflow:hidden;}
.exp-bg-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Playfair Display',serif;font-size:18rem;font-weight:700;color:rgba(255,255,255,.015);white-space:nowrap;pointer-events:none;}
.exp-header{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:end;margin-bottom:5rem;}
.exp-right{display:flex;flex-direction:column;align-items:flex-end;gap:1.5rem;}
.ci-cards{display:flex;gap:1px;}
.ci-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);padding:1.2rem 1.6rem;text-align:center;}
.ci-card .v{font-family:'Playfair Display',serif;font-size:1.5rem;color:#fff;}
.ci-card .k{font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:.3rem;}
.exp-extra{font-size:.78rem;color:rgba(255,255,255,.3);font-style:italic;}
.amen-bento{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;}
.ab{background:rgba(255,255,255,.035);padding:2rem 1.8rem;transition:background .4s;position:relative;overflow:hidden;}
.ab:hover{background:rgba(255,255,255,.08);}
.ab::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,var(--gold),transparent);transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.ab:hover::after{transform:scaleX(1);}
.ab-icon{font-size:2rem;margin-bottom:1rem;display:block;}
.ab-name{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#fff;margin-bottom:.5rem;}
.ab-desc{font-size:.78rem;color:rgba(255,255,255,.4);line-height:1.65;font-weight:300;}

/* ROOMS */
#rooms{background:var(--cream);padding:7rem 4rem;}
.rooms-intro{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:end;margin-bottom:5rem;}
.rooms-intro-right p{font-size:.9rem;color:var(--mid);line-height:1.9;font-weight:300;}
.rooms-intro-right a{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--pine);border-bottom:1px solid var(--line);padding-bottom:.3rem;transition:all .3s;}
.rooms-intro-right a:hover{color:var(--gold);gap:.9rem;}
.rooms-showcase{display:flex;flex-direction:column;gap:2px;}

/* Individual Room Row */
.room-row{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.room-row:nth-child(even) .room-img-side{order:2;}
.room-row:nth-child(even) .room-info-side{order:1;}
.room-img-side{position:relative;overflow:hidden;min-height:400px;}

/* Room image slideshow */
.room-slider{position:relative;width:100%;height:100%;min-height:400px;}
.room-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .6s ease;}
.room-slide.active{opacity:1;}
.room-slide-btns{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:.4rem;z-index:3;}
.room-slide-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.4);border:none;cursor:pointer;transition:background .3s;}
.room-slide-dot.active{background:var(--gold);}
.room-slider-prev,.room-slider-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.4);color:#fff;border:none;width:36px;height:36px;border-radius:50%;font-size:1.1rem;cursor:pointer;z-index:3;transition:background .3s;display:flex;align-items:center;justify-content:center;}
.room-slider-prev{left:.8rem;}
.room-slider-next{right:.8rem;}
.room-slider-prev:hover,.room-slider-next:hover{background:var(--gold);}

.room-ac-flag{position:absolute;top:1.4rem;left:1.4rem;background:var(--gold);color:var(--ink);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:.35rem .8rem;z-index:2;}
.room-price-pill{position:absolute;bottom:1.4rem;right:1.4rem;background:var(--forest);color:var(--gold2);font-family:'Playfair Display',serif;font-size:.95rem;padding:.5rem 1.1rem;z-index:2;}
.room-info-side{padding:3.5rem 3rem;background:#fff;display:flex;flex-direction:column;justify-content:center;}
.room-num{font-family:'Playfair Display',serif;font-size:4rem;font-weight:700;color:var(--line);line-height:1;margin-bottom:.6rem;}
.room-name{font-family:'Playfair Display',serif;font-size:1.65rem;color:var(--ink);margin-bottom:.4rem;}
.room-dim{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin-bottom:1.2rem;}
.room-desc{font-size:.9rem;line-height:1.85;color:var(--mid);font-weight:300;margin-bottom:1.6rem;}
.room-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.8rem;}
.chip{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--pine);background:rgba(45,74,47,.08);padding:.3rem .7rem;border-radius:1px;}
.room-actions{display:flex;gap:.8rem;flex-wrap:wrap;}
.btn-book-room{display:inline-flex;align-items:center;gap:.5rem;background:var(--gold);color:var(--ink);padding:.75rem 1.6rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;border:none;border-radius:1px;transition:all .3s;}
.btn-book-room:hover{background:var(--gold2);transform:translateY(-2px);}
.btn-wa-room{display:inline-flex;align-items:center;gap:.5rem;background:var(--pine);color:#fff;padding:.75rem 1.6rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;border-radius:1px;transition:all .3s;}
.btn-wa-room:hover{background:var(--sage);}
.rooms-note{font-size:.75rem;color:var(--soft);text-align:center;margin-top:2.5rem;font-style:italic;}
.loading-rooms{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:5rem;color:var(--soft);}

/* GALLERY */
#gallery{background:var(--forest);padding:7rem 4rem;}
.gal-header{margin-bottom:3rem;}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);auto-rows:220px;gap:6px;}
.gi{position:relative;overflow:hidden;cursor:pointer;border-radius:1px;}
.gi:nth-child(1){grid-column:span 2;grid-row:span 2;}
.gi:nth-child(4){grid-column:span 2;}
.gi img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--r);}
.gi:hover img{transform:scale(1.08);}
.gi-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.5),transparent);opacity:0;transition:opacity .3s;}
.gi:hover .gi-shade{opacity:1;}
.gi-caption{position:absolute;bottom:.8rem;left:.8rem;right:.8rem;color:#fff;font-size:.75rem;font-weight:500;opacity:0;transition:opacity .3s;z-index:2;}
.gi:hover .gi-caption{opacity:1;}
.gal-loading{display:flex;justify-content:center;align-items:center;height:400px;}

/* DESTINATIONS */
#destinations{padding:7rem 4rem;background:var(--forest);}
.dst-header{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:end;margin-bottom:4rem;}
.dst-header .s-tag{color:var(--mist);}
.dst-header .s-h{color:#fff;}
.dst-header .s-h em{color:var(--gold2);}
.dst-header .s-div{background:linear-gradient(to right,var(--gold2),transparent);}
.dst-header-right p{font-size:.88rem;color:rgba(255,255,255,.45);line-height:1.85;font-weight:300;}
.dest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.dest-card{border-radius:10px;overflow:hidden;position:relative;height:260px;cursor:pointer;transition:transform .35s;}
.dest-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.4);}
.dest-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s ease;}
.dest-card:hover .dest-bg{transform:scale(1.08);}
.dest-fog{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82) 0%,transparent 55%);}
.dest-info{position:absolute;bottom:0;left:0;right:0;padding:1.2rem;}
.dest-tag{display:inline-block;font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold2);background:rgba(0,0,0,.35);padding:.18rem .55rem;border-radius:10px;margin-bottom:.4rem;}
.dest-name{font-family:'Playfair Display',serif;color:#fff;font-size:1.05rem;margin-bottom:.3rem;}
.dest-dist{color:var(--gold2);font-size:.75rem;}

/* REVIEWS */
#reviews{background:linear-gradient(135deg,var(--forest) 0%,#1a321c 50%,var(--pine) 100%);padding:8rem 4rem;position:relative;overflow:hidden;text-align:center;}
.t-ornament{font-family:'Playfair Display',serif;font-size:28rem;font-weight:700;color:rgba(255,255,255,.025);position:absolute;top:50%;left:50%;transform:translate(-50%,-58%);pointer-events:none;line-height:1;}
.reviews-header .s-tag{justify-content:center;color:var(--mist);}
.reviews-header .s-h{color:#fff;}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem;text-align:left;}
.review-card{background:rgba(255,255,255,.05);border:1px solid rgba(200,168,75,.12);border-radius:10px;padding:1.8rem;transition:all .35s;}
.review-card:hover{border-color:rgba(200,168,75,.3);transform:translateY(-3px);}
.review-stars{color:var(--gold);font-size:1rem;margin-bottom:.8rem;}
.review-text{color:rgba(255,255,255,.7);font-size:.9rem;line-height:1.7;font-style:italic;margin-bottom:1.2rem;}
.review-author{display:flex;align-items:center;gap:.8rem;}
.review-avatar{width:42px;height:42px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-weight:700;color:var(--ink);font-size:1rem;flex-shrink:0;}
.review-name{color:#fff;font-weight:600;font-size:.9rem;}
.review-role{color:var(--mist);font-size:.75rem;}
.btn-review{display:inline-flex;align-items:center;gap:.6rem;background:#fff;color:var(--ink);padding:.8rem 1.8rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;border-radius:1px;transition:all .3s;}
.btn-review:hover{background:var(--gold2);}
.btn-form{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.25);color:#fff;padding:.8rem 1.8rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;transition:all .3s;border-radius:1px;}
.btn-form:hover{background:rgba(255,255,255,.08);}

/* CONTACT */
#contact{padding:7rem 4rem;background:var(--paper);}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:5rem;margin-top:3.5rem;align-items:start;}
.contact-info{display:flex;flex-direction:column;gap:1.8rem;}
.contact-item{display:flex;gap:1rem;align-items:flex-start;}
.contact-icon{width:48px;height:48px;background:var(--pine);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;}
.contact-detail h4{font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink);margin-bottom:.35rem;}
.contact-detail p,.contact-detail a{color:var(--mid);font-size:.88rem;line-height:1.65;font-weight:300;}
.contact-detail a:hover{color:var(--gold);}
.contact-socials{display:flex;gap:.5rem;margin-top:.5rem;}
.soc-btn{width:38px;height:38px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:all .3s;border-radius:1px;}
.soc-btn:hover{background:var(--gold);border-color:var(--gold);}
.contact-form-card{background:#fff;border-radius:4px;padding:2.5rem;box-shadow:0 20px 60px rgba(0,0,0,.08);}
.contact-form-card h3{font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--ink);margin-bottom:1.5rem;font-weight:400;}
.cf-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.2rem;}
.cf-group label{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--soft);}
.cf-group input,.cf-group select,.cf-group textarea{border:1.5px solid #e5dfd4;border-radius:2px;padding:.8rem 1rem;font-family:'Outfit',sans-serif;font-size:.9rem;color:var(--ink);transition:all .3s;outline:none;background:var(--paper);}
.cf-group input:focus,.cf-group select:focus,.cf-group textarea:focus{border-color:var(--pine);background:#fff;}
.cf-group textarea{resize:vertical;min-height:100px;}
.btn-send{width:100%;background:var(--pine);color:#fff;border:none;padding:.9rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;border-radius:1px;transition:background .3s;}
.btn-send:hover{background:var(--sage);}

/* LOCATION */
#location{padding:7rem 4rem;background:var(--cream);}
.loc-wrap{display:grid;grid-template-columns:1fr 1fr;margin-top:3.5rem;border-radius:4px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.12);}
.loc-map-panel iframe{width:100%;height:100%;min-height:500px;border:none;display:block;filter:saturate(.8);}
.loc-info-panel{background:var(--pine);padding:4rem 3.5rem;display:flex;flex-direction:column;justify-content:center;}
.loc-info-panel .s-tag{color:var(--mist);}
.loc-info-panel .s-h{color:#fff;}
.loc-info-panel .s-h em{color:var(--gold2);}
.loc-rows{display:flex;flex-direction:column;gap:1.4rem;margin-top:2rem;}
.loc-row{display:flex;gap:1rem;align-items:flex-start;color:rgba(255,255,255,.7);}
.loc-icon{font-size:1rem;flex-shrink:0;margin-top:.05rem;}
.loc-text{font-size:.85rem;line-height:1.65;font-weight:300;}
.loc-text strong{display:block;color:#fff;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.2rem;font-weight:700;}
.btn-dir{margin-top:2.2rem;display:inline-flex;align-items:center;gap:.6rem;background:var(--gold);color:var(--ink);padding:.85rem 1.8rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;border-radius:1px;transition:all .3s;width:fit-content;}
.btn-dir:hover{background:var(--gold2);}

/* FOOTER */
footer{background:var(--ink);color:rgba(255,255,255,.55);}
.ft-main{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.4fr;gap:3rem;padding:5rem 4rem 4rem;border-bottom:1px solid rgba(255,255,255,.05);}
.ft-brand-logo{font-family:'Playfair Display',serif;font-size:1.8rem;color:#fff;font-weight:500;display:block;margin-bottom:.9rem;}
.ft-brand p{font-size:.82rem;line-height:1.85;max-width:240px;font-weight:300;}
.ft-social{display:flex;gap:.6rem;margin-top:1.5rem;}
.soc{width:34px;height:34px;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.4);font-size:.78rem;font-weight:700;transition:all .3s;border-radius:1px;}
.soc:hover{border-color:var(--gold);color:var(--gold);}
.ft-col h4,.ft-main>div>h4{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:#fff;font-weight:700;margin-bottom:1.4rem;}
.ft-links{list-style:none;display:flex;flex-direction:column;gap:.55rem;}
.ft-links a{color:rgba(255,255,255,.4);font-size:.82rem;font-weight:300;transition:color .3s;}
.ft-links a:hover{color:var(--gold2);}
.ft-contact{display:flex;flex-direction:column;gap:.8rem;}
.fc{display:flex;gap:.75rem;align-items:flex-start;font-size:.82rem;font-weight:300;line-height:1.55;}
.fc-i{opacity:.5;flex-shrink:0;margin-top:.1rem;}
.ft-bottom{padding:1.4rem 4rem;display:flex;justify-content:space-between;align-items:center;font-size:.72rem;flex-wrap:wrap;gap:.8rem;}
.ftb-links{display:flex;gap:1.3rem;}
.ftb-links a{color:rgba(255,255,255,.25);transition:color .3s;}
.ftb-links a:hover{color:#fff;}

/* MODALS */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:2000;display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(8px);}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal{background:#fff;border-radius:8px;width:100%;max-width:700px;max-height:92vh;overflow-y:auto;position:relative;transform:translateY(30px) scale(.96);transition:transform .35s;box-shadow:0 40px 80px rgba(0,0,0,.4);}
.modal-overlay.open .modal{transform:none;}
.modal-dark{background:#2B1F0A;}
.modal-header{padding:2rem 2rem 1rem;border-bottom:1px solid rgba(200,168,75,.15);display:flex;justify-content:space-between;align-items:flex-start;}
.modal-title{font-family:'Playfair Display',serif;font-size:1.5rem;color:var(--ink);}
.modal-dark .modal-title{color:#fff;}
.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--soft);transition:all .3s;padding:.2rem;line-height:1;}
.modal-close:hover{transform:rotate(90deg);}
.modal-dark .modal-close{color:rgba(255,255,255,.5);}
.modal-body{padding:1.5rem 2rem 2rem;}
.booking-steps{display:flex;margin-bottom:2rem;position:relative;}
.booking-steps::before{content:'';position:absolute;top:16px;left:16px;right:16px;height:2px;background:rgba(200,168,75,.2);}
.step{display:flex;flex-direction:column;align-items:center;gap:.4rem;flex:1;position:relative;z-index:1;}
.step-num{width:32px;height:32px;border-radius:50%;background:rgba(200,168,75,.15);border:2px solid rgba(200,168,75,.3);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:var(--soft);transition:all .3s;}
.step.active .step-num{background:var(--gold);border-color:var(--gold);color:#1A1208;}
.step.done .step-num{background:var(--green2);border-color:var(--green2);color:#fff;}
.step-label{font-size:.7rem;color:var(--soft);text-transform:uppercase;letter-spacing:.08em;}
.step.active .step-label{color:var(--gold);}
.bk-step{display:none;}
.bk-step.active{display:block;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.bk-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;}
.bk-group label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:rgba(255,255,255,.45);}
.bk-group input,.bk-group select{border:1.5px solid rgba(200,168,75,.2);border-radius:4px;padding:.8rem 1rem;font-family:'Outfit',sans-serif;font-size:.9rem;color:#fff;background:rgba(255,255,255,.07);outline:none;width:100%;transition:border-color .3s;}
.bk-group input:focus,.bk-group select:focus{border-color:var(--gold);}
.bk-group select option{background:#1A1208;color:#fff;}
.dark-textarea{background:rgba(255,255,255,.07)!important;border:1.5px solid rgba(200,168,75,.2)!important;border-radius:4px;padding:.8rem 1rem;font-family:'Outfit',sans-serif;font-size:.9rem;color:#fff;resize:vertical;min-height:80px;outline:none;width:100%;transition:border-color .3s;}
.dark-textarea:focus{border-color:var(--gold)!important;}
.dark-select{background:rgba(255,255,255,.07)!important;border:1.5px solid rgba(200,168,75,.2)!important;border-radius:4px!important;color:#fff!important;}
.room-select-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;}
.room-select-card{border:2px solid rgba(200,168,75,.2);border-radius:8px;padding:1rem;cursor:pointer;transition:all .3s;}
.room-select-card:hover,.room-select-card.selected{border-color:var(--gold);background:rgba(200,168,75,.08);}
.rsc-name{font-weight:700;color:#fff;font-size:.9rem;margin-bottom:.2rem;}
.rsc-price{color:var(--gold2);font-weight:700;font-size:1rem;}
.rsc-features{color:rgba(255,255,255,.4);font-size:.75rem;margin-top:.3rem;}
.booking-summary{background:rgba(255,248,231,.08);border:1px solid rgba(200,168,75,.25);border-radius:8px;padding:1.4rem;margin-bottom:1.5rem;}
.summary-row{display:flex;justify-content:space-between;margin-bottom:.6rem;font-size:.9rem;}
.summary-row.total{border-top:1px solid rgba(200,168,75,.25);padding-top:.6rem;margin-top:.3rem;font-weight:700;}
.summary-row .label{color:rgba(255,255,255,.45);}
.summary-row .val{color:#fff;font-weight:600;}
.pay-label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.4);margin-bottom:.8rem;}
.payment-methods{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1.5rem;}
.pay-method{border:2px solid rgba(200,168,75,.2);border-radius:8px;padding:.65rem 1.2rem;cursor:pointer;font-size:.85rem;font-weight:500;color:rgba(255,255,255,.6);transition:all .3s;display:flex;align-items:center;gap:.5rem;}
.pay-method:hover,.pay-method.selected{border-color:var(--gold);color:#fff;background:rgba(200,168,75,.1);}
.bk-notice{background:rgba(74,122,40,.12);border:1px solid rgba(74,122,40,.25);border-radius:6px;padding:1rem;font-size:.82rem;color:rgba(255,255,255,.55);margin-bottom:1rem;}
.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;}
.btn-modal-next{background:var(--gold);color:#1A1208;border:none;padding:.75rem 2rem;border-radius:2px;font-weight:700;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .3s;}
.btn-modal-next:hover{background:var(--gold2);}
.btn-modal-back{background:none;border:1px solid rgba(200,168,75,.2);color:rgba(255,255,255,.5);padding:.75rem 1.5rem;border-radius:2px;cursor:pointer;font-size:.72rem;transition:all .3s;}
.btn-modal-back:hover{border-color:var(--gold);color:#fff;}
.success-anim{text-align:center;padding:2rem 1rem;}
.success-icon{font-size:4rem;margin-bottom:1rem;animation:bounceIn .6s ease;}
.success-title{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--ink);margin-bottom:.8rem;}
.success-text{color:var(--soft);line-height:1.7;}
.booking-id{background:var(--gold-pale);border:1px solid var(--gold);padding:.8rem 1.5rem;border-radius:4px;font-weight:700;color:#1A1208;font-size:1.1rem;margin:1rem auto;display:inline-block;letter-spacing:.1em;}
@keyframes bounceIn{0%{transform:scale(0);}60%{transform:scale(1.2);}100%{transform:scale(1);}}

/* LIGHTBOX */
.lb{position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:800;display:none;align-items:center;justify-content:center;}
.lb.open{display:flex;}
.lb img{max-width:90vw;max-height:88vh;object-fit:contain;border-radius:2px;}
.lb-x,.lb-p,.lb-n{position:absolute;background:rgba(255,255,255,.08);border:none;color:#fff;border-radius:1px;transition:background .2s;}
.lb-x{top:1.5rem;right:1.5rem;font-size:1.5rem;padding:.4rem .85rem;line-height:1;}
.lb-p{left:1rem;top:50%;transform:translateY(-50%);font-size:1.4rem;padding:.75rem 1rem;}
.lb-n{right:1rem;top:50%;transform:translateY(-50%);font-size:1.4rem;padding:.75rem 1rem;}
.lb-x:hover,.lb-p:hover,.lb-n:hover{background:rgba(255,255,255,.2);}

/* FLOATING */
.wa-float{position:fixed;bottom:2rem;left:2rem;z-index:999;background:#25D366;color:#fff;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 8px 25px rgba(37,211,102,.4);transition:all .35s;animation:waPulse 2.5s infinite;}
.wa-float:hover{transform:scale(1.15);}
@keyframes waPulse{0%,100%{box-shadow:0 8px 25px rgba(37,211,102,.4);}50%{box-shadow:0 8px 40px rgba(37,211,102,.7);}}
#btt{position:fixed;bottom:2rem;right:2rem;width:46px;height:46px;background:var(--gold);border:none;border-radius:50%;color:var(--ink);font-size:1.2rem;cursor:pointer;z-index:998;opacity:0;transform:translateY(20px);transition:all .35s;}
#btt.visible{opacity:1;transform:none;}

/* SPINNER */
.spinner{width:36px;height:36px;border:3px solid rgba(200,168,75,.2);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;}
.spinner.white{border-color:rgba(255,255,255,.2);border-top-color:#fff;}
@keyframes spin{to{transform:rotate(360deg);}}

/* TOAST */
.toast{position:fixed;bottom:2rem;right:2rem;background:var(--ink);color:#fff;padding:1rem 1.5rem;border-radius:4px;border-left:4px solid var(--gold);font-size:.88rem;z-index:5000;transform:translateY(100px);opacity:0;transition:all .35s;max-width:320px;}
.toast.show{transform:none;opacity:1;}
.toast.success{border-color:var(--green2);}
.toast.error{border-color:#e74c3c;}

/* ═══ RESPONSIVE ═══ */
@media(max-width:1200px){
  .amen-bento{grid-template-columns:repeat(4,1fr);}
  .dest-grid{grid-template-columns:repeat(2,1fr);}
  .reviews-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:1024px){
  #nav{padding:1rem 2.5rem;}
  #nav.solid{padding:.8rem 2.5rem;}
  .hero-floor{padding:0 2.5rem 4rem;}
  #about{grid-template-columns:1fr;}
  .about-visual{min-height:55vw;}
  .about-visual::before{display:none;}
  .about-words{padding:4rem 2.5rem;}
  .exp-header{grid-template-columns:1fr;}
  .amen-bento{grid-template-columns:repeat(3,1fr);}
  #rooms,#gallery,#destinations,#reviews,#contact,#location,#experience{padding:5rem 2.5rem;}
  .rooms-intro{grid-template-columns:1fr;}
  .room-row{grid-template-columns:1fr;}
  .room-row:nth-child(even) .room-img-side,.room-row:nth-child(even) .room-info-side{order:0;}
  .room-img-side{min-height:280px;}
  .contact-layout{grid-template-columns:1fr;}
  .loc-wrap{grid-template-columns:1fr;}
  .ft-main{grid-template-columns:1fr 1fr;padding:3.5rem 2.5rem 3rem;}
  .ft-bottom{padding:1.3rem 2.5rem;}
  .gal-grid{grid-template-columns:repeat(3,1fr);}
  .hero-stats{flex-direction:row;}
}
@media(max-width:768px){
  body{cursor:auto;}
  #cursor,#cursor-ring{display:none;}
  #nav{padding:.9rem 1.4rem;}
  #nav.solid{padding:.75rem 1.4rem;}
  .nav-menu{display:none;}
  .ham{display:flex;}
  .hero-floor{grid-template-columns:1fr;padding:0 1.4rem 3.5rem;}
  .hero-stats{flex-direction:row;flex-wrap:wrap;}
  .hero-scroll-hint{display:none;}
  .amen-bento{grid-template-columns:repeat(2,1fr);}
  .gal-grid{grid-template-columns:repeat(2,1fr);}
  .gal-grid .gi:nth-child(1){grid-column:span 2;}
  .dest-grid{grid-template-columns:1fr 1fr;}
  .reviews-grid{grid-template-columns:1fr;}
  .ft-main{grid-template-columns:1fr;padding:3rem 1.4rem;gap:2rem;}
  .ft-bottom{padding:1.2rem 1.4rem;flex-direction:column;text-align:center;}
  #rooms,#gallery,#destinations,#reviews,#contact,#location,#experience{padding:3.8rem 1.4rem;}
  .form-row{grid-template-columns:1fr;}
  .room-select-cards{grid-template-columns:1fr;}
  .dst-header{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .hero-h1{font-size:2.5rem;}
  .amen-bento{grid-template-columns:1fr;}
  .dest-grid{grid-template-columns:1fr;}
  .gal-grid{grid-template-columns:1fr 1fr;auto-rows:160px;}
}
