/* =====================================================
   HOTEL TRIMURTI — v2 Complete Redesign
   Aesthetic: Warm Editorial Luxury
   Fonts: Playfair Display + DM Sans
===================================================== */
:root{
  --cream:#FAF7F2;--cream-2:#F0EBE0;--cream-3:#E5DDD0;
  --forest:#1A2E22;--forest-2:#243D2E;--forest-3:#2E5038;
  --gold:#C19A3C;--gold-l:#D4AF5A;--gold-d:#9A7828;
  --text:#1C1C1C;--text-m:#505050;--text-l:#8A8A8A;
  --white:#FFFFFF;--border:rgba(0,0,0,.09);--border-g:rgba(193,154,60,.22);
  --serif:'Playfair Display',Georgia,serif;
  --sans:'DM Sans','Helvetica Neue',Arial,sans-serif;
  --ease:cubic-bezier(.25,.46,.45,.94);
  --tr:.4s var(--ease);--fast:.22s ease;
  --sh:0 8px 40px rgba(0,0,0,.10);
  --sh-lg:0 20px 60px rgba(0,0,0,.14);
  --sh-g:0 8px 30px rgba(193,154,60,.18);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--sans);background:var(--cream);color:var(--text);line-height:1.7;overflow-x:hidden}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit;transition:color var(--fast)}
ul{list-style:none}
button{border:none;background:none;font-family:inherit;cursor:pointer}
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:var(--cream-2)}
::-webkit-scrollbar-thumb{background:var(--gold)}

/* PRELOADER */
#preloader{
  position:fixed;inset:0;background:var(--forest);
  z-index:99999;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:1.2rem;
  transition:opacity .7s ease,visibility .7s ease;
}
#preloader.done{opacity:0;visibility:hidden;pointer-events:none}
.pl-logo{font-family:var(--serif);font-size:1.6rem;color:var(--cream);letter-spacing:.3em}
.pl-logo em{color:var(--gold);font-style:normal}
.pl-track{width:80px;height:1.5px;background:rgba(255,255,255,.12);overflow:hidden}
.pl-track::after{content:'';display:block;width:40%;height:100%;background:var(--gold);animation:plRun 1s var(--ease) infinite}
@keyframes plRun{0%{transform:translateX(-100%)}100%{transform:translateX(300%)}}

/* FLOATING WHATSAPP */
.wa-float{
  position:fixed;bottom:2rem;right:2rem;z-index:900;
  width:54px;height:54px;border-radius:50%;
  background:#25D366;box-shadow:0 4px 20px rgba(37,211,102,.4);
  display:flex;align-items:center;justify-content:center;
  transition:transform var(--fast),box-shadow var(--fast);
}
.wa-float:hover{transform:scale(1.1);box-shadow:0 6px 28px rgba(37,211,102,.5)}
.wa-float svg{width:26px;height:26px;fill:#fff}

/* BACK TO TOP */
#backTop{
  position:fixed;bottom:6.5rem;right:2.05rem;z-index:900;
  width:38px;height:38px;background:var(--forest);
  color:var(--gold);font-size:1rem;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--border-g);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:all .3s ease;
}
#backTop.show{opacity:1;visibility:visible;transform:translateY(0)}
#backTop:hover{background:var(--gold);color:var(--forest)}

/* NAVBAR */
.navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 4rem;transition:all .4s ease;
}
.navbar::before{
  content:'';position:absolute;inset:0;
  background:transparent;transition:all .4s ease;
}
.navbar.sticky{padding:.8rem 4rem;box-shadow:var(--sh)}
.navbar.sticky::before{background:rgba(250,247,242,.96);backdrop-filter:blur(18px)}
.nav-logo{position:relative;z-index:1}
.logo-sub{font-size:.58rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold-l);font-weight:600}
.logo-main{font-family:var(--serif);font-size:1.3rem;font-weight:700;color:var(--cream);letter-spacing:.06em;transition:color .3s}
.navbar.sticky .logo-main{color:var(--forest)}
.navbar.sticky .logo-sub{color:var(--gold-d)}
.nav-links{position:relative;z-index:1;display:flex;align-items:center;gap:2rem}
.nav-link{
  font-size:.7rem;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(250,247,242,.8);
  position:relative;padding-bottom:3px;transition:color .25s;
}
.navbar.sticky .nav-link{color:var(--text-m)}
.nav-link::after{
  content:'';position:absolute;bottom:0;left:0;
  width:0;height:1.5px;background:var(--gold);transition:width .3s;
}
.nav-link:hover,.nav-link.active{color:var(--gold)}
.nav-link:hover::after,.nav-link.active::after{width:100%}
.nav-book{
  position:relative;z-index:1;
  display:inline-flex;align-items:center;gap:.45rem;
  font-size:.68rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--forest);
  background:var(--gold);padding:.6rem 1.4rem;
  transition:background var(--fast),transform var(--fast);
}
.nav-book:hover{background:var(--gold-l);transform:translateY(-1px)}
.nav-book svg{width:13px;height:13px;fill:var(--forest)}
.hamburger{position:relative;z-index:1;display:none;flex-direction:column;gap:5px;padding:4px}
.hamburger span{width:22px;height:1.5px;background:var(--cream);transition:all .3s;display:block}
.navbar.sticky .hamburger span{background:var(--forest)}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* MOBILE DRAWER */
.mob-drawer{
  position:fixed;top:0;right:-100%;width:min(340px,85vw);height:100vh;
  background:var(--forest);z-index:999;
  display:flex;flex-direction:column;
  padding:5.5rem 2.5rem 2.5rem;gap:.2rem;
  transition:right .45s cubic-bezier(.77,0,.175,1);
  border-left:1px solid rgba(255,255,255,.06);
}
.mob-drawer.open{right:0}
.mob-drawer a{
  font-family:var(--serif);font-size:1.45rem;
  color:rgba(250,247,242,.8);
  padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.06);
  transition:color .2s,padding-left .2s;
}
.mob-drawer a:hover{color:var(--gold);padding-left:.4rem}
.mob-book{
  margin-top:1.5rem!important;
  background:var(--gold)!important;color:var(--forest)!important;
  text-align:center;padding:.9rem 0!important;
  font-family:var(--sans)!important;font-size:.72rem!important;
  font-weight:700!important;letter-spacing:.14em;
  text-transform:uppercase;border:none!important;
}
.mob-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.5);
  z-index:998;opacity:0;visibility:hidden;transition:.3s;
}
.mob-overlay.show{opacity:1;visibility:visible}

/* UTILS */
.container{max-width:1160px;margin:0 auto;padding:0 2rem}
.sec{padding:6rem 0}
.sec-sm{padding:3.5rem 0}
.sec-dark{background:var(--forest)}
.sec-cream{background:var(--cream-2)}

.eyebrow{
  display:inline-flex;align-items:center;gap:.7rem;
  font-size:.65rem;font-weight:700;letter-spacing:.3em;
  text-transform:uppercase;color:var(--gold-d);margin-bottom:.8rem;
}
.eyebrow::before{content:'';width:24px;height:1.5px;background:var(--gold-d);flex-shrink:0}
.eyebrow.lt{color:var(--gold-l)}
.eyebrow.lt::before{background:var(--gold-l)}
.sec-title{
  font-family:var(--serif);font-weight:700;
  line-height:1.15;color:var(--text);
  font-size:clamp(1.8rem,3.5vw,2.7rem);
}
.sec-title em{font-style:italic;color:var(--gold-d)}
.on-dark .sec-title{color:var(--cream)}
.on-dark .sec-title em{color:var(--gold-l)}
.on-dark p{color:rgba(240,235,224,.72)}
.on-dark{color:rgba(240,235,224,.72)}
.divider{width:48px;height:2px;background:linear-gradient(90deg,var(--gold),transparent);margin:1rem 0 1.6rem}
.divider.c{margin-left:auto;margin-right:auto}

/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--sans);font-size:.7rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
  padding:.82rem 1.9rem;transition:all .22s ease;white-space:nowrap;
}
.btn svg{width:14px;height:14px;flex-shrink:0}
.btn-gold{background:var(--gold);color:var(--forest);border:1.5px solid var(--gold)}
.btn-gold:hover{background:var(--gold-l);border-color:var(--gold-l);transform:translateY(-2px);box-shadow:var(--sh-g)}
.btn-og{background:transparent;color:var(--gold);border:1.5px solid var(--gold)}
.btn-og:hover{background:var(--gold);color:var(--forest)}
.btn-ow{background:transparent;color:var(--cream);border:1.5px solid rgba(250,247,242,.5)}
.btn-ow:hover{border-color:var(--cream);background:rgba(250,247,242,.08)}
.btn-forest{background:var(--forest);color:var(--cream);border:1.5px solid var(--forest)}
.btn-forest:hover{background:var(--forest-2)}
.fill-f{fill:var(--forest)}
.fill-w{fill:#fff}

/* HERO */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;display:flex;align-items:flex-end}
.hero-slides{position:absolute;inset:0}
.hero-slide{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.4s ease;
}
.hero-slide.active{opacity:1}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to right,rgba(26,46,34,.82) 0%,rgba(26,46,34,.42) 55%,rgba(26,46,34,.18) 100%);
}
.hero-content{position:relative;z-index:2;max-width:700px;padding:0 4rem 5rem}
.hero-tag{
  display:flex;align-items:center;gap:.7rem;
  font-size:.65rem;font-weight:700;letter-spacing:.35em;
  text-transform:uppercase;color:var(--gold-l);margin-bottom:1.4rem;
}
.hero-tag::before{content:'';width:28px;height:1.5px;background:var(--gold-l);flex-shrink:0}
.hero-h1{
  font-family:var(--serif);
  font-size:clamp(2.8rem,6.5vw,5.2rem);
  font-weight:700;color:var(--cream);line-height:1.1;margin-bottom:1.1rem;
}
.hero-h1 em{font-style:italic;color:var(--gold-l)}
.hero-sub{font-size:.98rem;color:rgba(240,235,224,.72);max-width:480px;margin-bottom:2.4rem;line-height:1.78}
.hero-btns{display:flex;gap:.9rem;flex-wrap:wrap}
.hero-loc{
  position:absolute;bottom:2.2rem;right:4rem;z-index:2;
  display:flex;align-items:center;gap:.45rem;
  font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;
  color:rgba(240,235,224,.45);
}
.hero-loc svg{width:11px;height:11px;fill:var(--gold)}
.hero-dots{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  z-index:2;display:flex;gap:.5rem;
}
.h-dot{width:22px;height:2px;border-radius:2px;background:rgba(250,247,242,.25);cursor:pointer;transition:all .3s}
.h-dot.active{width:38px;background:var(--gold)}

/* RIBBON */
.ribbon{
  background:var(--forest);padding:1.1rem 4rem;
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
}
.rbn-item{display:flex;align-items:center;gap:.7rem;color:rgba(240,235,224,.7);font-size:.82rem}
.rbn-item svg{width:15px;height:15px;fill:var(--gold);flex-shrink:0}
.rbn-item a:hover{color:var(--gold-l)}
.rbn-sep{width:1px;height:18px;background:rgba(255,255,255,.1)}

/* ABOUT HALF-HALF */
.split-section{display:grid;grid-template-columns:1fr 1fr;min-height:520px}
.split-img{overflow:hidden;position:relative}
.split-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.split-img:hover img{transform:scale(1.04)}
.split-badge{
  position:absolute;bottom:2rem;right:-1.2rem;
  background:var(--gold);color:var(--forest);
  padding:1rem 1.5rem;text-align:center;box-shadow:var(--sh);z-index:1;
}
.split-badge strong{display:block;font-family:var(--serif);font-size:2.2rem;font-weight:700;line-height:1}
.split-badge span{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.split-content{
  background:var(--cream-2);padding:5rem;
  display:flex;flex-direction:column;justify-content:center;
}
.split-content p{color:var(--text-m);line-height:1.85;margin-bottom:1.1rem;font-size:.96rem}
.about-nums{display:flex;gap:2.5rem;margin:2rem 0;flex-wrap:wrap}
.anum strong{display:block;font-family:var(--serif);font-size:2.2rem;color:var(--gold-d);line-height:1;font-weight:700}
.anum span{font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-l);margin-top:.2rem;display:block}

/* ROOMS GRID */
.rooms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.rcard{
  background:var(--white);border:1px solid var(--border);
  overflow:hidden;display:flex;flex-direction:column;
  transition:box-shadow var(--tr),transform var(--tr);
}
.rcard:hover{box-shadow:var(--sh-lg);transform:translateY(-5px)}
.rcard-img{position:relative;overflow:hidden;aspect-ratio:4/3}
.rcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.rcard:hover .rcard-img img{transform:scale(1.06)}
.rcard-price{
  position:absolute;bottom:0;left:0;
  background:var(--forest);color:var(--gold-l);
  font-family:var(--serif);font-size:.95rem;font-weight:700;
  padding:.45rem .9rem;
}
.rcard-tag{
  position:absolute;top:.9rem;right:.9rem;
  background:var(--gold);color:var(--forest);
  font-size:.6rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;padding:.28rem .7rem;
}
.rcard-body{padding:1.5rem;flex:1;display:flex;flex-direction:column}
.rcard-stars{display:flex;gap:2px;margin-bottom:.5rem}
.rcard-stars i{font-size:.62rem;color:var(--gold)}
.rcard-body h3{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:.5rem}
.rcard-body p{font-size:.84rem;color:var(--text-m);line-height:1.75;margin-bottom:1rem;flex:1}
.rcard-amen{display:flex;flex-wrap:wrap;gap:.45rem .85rem;margin-bottom:1.2rem}
.rcard-amen span{display:flex;align-items:center;gap:.32rem;font-size:.73rem;color:var(--text-l)}
.rcard-amen i{color:var(--gold);font-size:.68rem}
.rcard-foot{display:flex;gap:.7rem;border-top:1px solid var(--border);padding-top:1.1rem}
.rcard-foot a{flex:1;text-align:center;font-size:.67rem;padding:.65rem 0}

/* VIDEO SECTION */
.vid-sec{
  position:relative;height:75vh;min-height:460px;
  overflow:hidden;display:flex;align-items:center;justify-content:center;
}
.vid-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  background-attachment:scroll;
}
.vid-overlay{position:absolute;inset:0;background:rgba(26,46,34,.72)}
.vid-inner{position:relative;z-index:2;text-align:center;padding:2rem}
.vid-inner h2{
  font-family:var(--serif);
  font-size:clamp(2rem,4.5vw,3.4rem);
  font-weight:700;color:var(--cream);margin:.6rem 0 1.4rem;line-height:1.15;
}
.vid-inner h2 em{font-style:italic;color:var(--gold-l)}
.vid-inner p{font-size:.95rem;color:rgba(240,235,224,.7);max-width:480px;margin:0 auto 2.5rem}
.play-btn{
  width:70px;height:70px;border-radius:50%;
  background:var(--gold);display:flex;align-items:center;justify-content:center;
  margin:0 auto;position:relative;
  transition:transform .3s,box-shadow .3s;
}
.play-btn:hover{transform:scale(1.1);box-shadow:0 0 0 10px rgba(193,154,60,.2)}
.play-btn::before{
  content:'';position:absolute;inset:-10px;border-radius:50%;
  border:1.5px solid rgba(193,154,60,.35);
  animation:pp 2s ease infinite;
}
.play-btn i{font-size:1.2rem;color:var(--forest);margin-left:4px}
@keyframes pp{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.2);opacity:0}}

/* VIDEO MODAL */
#vmodal{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,.96);z-index:999999;
  align-items:center;justify-content:center;
}
#vmodal.open{display:flex;pointer-events:all;}
.vm-inner{position:relative;width:90%;max-width:880px;z-index:1000000;}
.vm-close{
  position:absolute;top:-2.8rem;right:0;
  color:rgba(255,255,255,.65);font-size:1.8rem;
  cursor:pointer;transition:color .2s;line-height:1;
}
.vm-close:hover{color:var(--gold)}
.vm-ratio{position:relative;padding-bottom:56.25%;height:0;background:#000}
.vm-ratio iframe{position:absolute;top:0;left:0;inset:0;width:100%;height:100%;border:none;z-index:1;}

/* SERVICES */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.svc-card{
  padding:2.4rem 2rem;background:var(--white);
  border:1px solid var(--border);border-top:3px solid var(--gold);
  transition:all var(--tr);position:relative;overflow:hidden;
}
.svc-card::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(193,154,60,.04),transparent);
  opacity:0;transition:opacity .4s;
}
.svc-card:hover::after{opacity:1}
.svc-card:hover{box-shadow:var(--sh-lg);transform:translateY(-4px)}
.svc-ico{
  width:50px;height:50px;border:1px solid var(--border-g);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1.4rem;transition:all .3s;
}
.svc-card:hover .svc-ico{background:var(--gold);border-color:var(--gold)}
.svc-ico i{font-size:1.05rem;color:var(--gold);transition:color .3s}
.svc-card:hover .svc-ico i{color:var(--forest)}
.svc-card h3{font-family:var(--serif);font-size:1.18rem;font-weight:700;color:var(--text);margin-bottom:.6rem}
.svc-card p{font-size:.85rem;color:var(--text-m);line-height:1.8;margin-bottom:1.1rem}
.svc-link{
  font-size:.67rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold-d);display:inline-flex;align-items:center;gap:.3rem;transition:gap .2s;
}
.svc-link:hover{gap:.6rem;color:var(--gold)}

/* GALLERY PREVIEW */
.gall-prev{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:200px 200px;
  gap:.75rem;
}
.gp-i{overflow:hidden;cursor:pointer;position:relative}
.gp-i:first-child{grid-column:span 2;grid-row:span 2}
.gp-i img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gp-i:hover img{transform:scale(1.06)}
.gp-ov{
  position:absolute;inset:0;background:rgba(26,46,34,.42);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .3s;
}
.gp-i:hover .gp-ov{opacity:1}
.gp-ov i{font-size:1.7rem;color:var(--gold-l)}

/* TESTIMONIALS */
.test-wrap{background:var(--forest);padding:5.5rem 0}
.test-inner{max-width:680px;margin:0 auto;text-align:center;padding:0 2rem}
.test-slide{display:none}
.test-slide.active{display:block;animation:tsFade .5s ease}
@keyframes tsFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.test-q{
  font-family:var(--serif);font-size:1.45rem;font-weight:400;
  font-style:italic;color:var(--cream);line-height:1.72;margin-bottom:2rem;opacity:.92;
}
.test-q::before{
  content:'\201C';font-size:4rem;color:var(--gold);
  display:block;line-height:.4;margin-bottom:.8rem;
}
.test-auth{display:flex;align-items:center;justify-content:center;gap:1rem}
.test-auth img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.test-auth strong{display:block;font-size:.88rem;font-weight:600;color:var(--cream)}
.test-auth span{font-size:.73rem;color:var(--gold-l);letter-spacing:.04em}
.test-ctrl{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2.4rem}
.test-ctrl button{
  width:36px;height:36px;border:1px solid rgba(193,154,60,.3);
  color:var(--gold-l);font-size:.88rem;
  display:flex;align-items:center;justify-content:center;transition:all .2s;
}
.test-ctrl button:hover{background:var(--gold);color:var(--forest);border-color:var(--gold)}
.tdots{display:flex;gap:.4rem}
.tdot{width:5px;height:5px;border-radius:50%;background:rgba(193,154,60,.3);cursor:pointer;transition:.3s}
.tdot.active{background:var(--gold);width:16px;border-radius:3px}

/* TEAM */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.tcard{overflow:hidden;text-align:center}
.tcard-img{aspect-ratio:3/4;overflow:hidden}
.tcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s,filter .4s;filter:grayscale(25%)}
.tcard:hover .tcard-img img{transform:scale(1.04);filter:grayscale(0)}
.tcard-info{padding:.9rem;background:var(--cream-2);border-top:2px solid var(--gold)}
.tcard-info h4{font-family:var(--serif);font-size:.98rem;font-weight:700;color:var(--text);margin-bottom:.18rem}
.tcard-info span{font-size:.67rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-d)}

/* CTA BAND */
.cta-band{
  background:var(--gold);padding:4rem;
  display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;
}
.cta-band h2{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;color:var(--forest);line-height:1.2}
.cta-band p{color:rgba(26,46,34,.7);font-size:.9rem;margin-top:.35rem}
.cta-btns{display:flex;gap:.8rem;flex-wrap:wrap}

/* FOOTER */
footer{background:var(--forest);color:rgba(240,235,224,.7)}
.ft-top{padding:5rem 0 3rem;border-bottom:1px solid rgba(255,255,255,.07)}
.ft-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.4fr;gap:3rem}
.ft-logo{display:flex;flex-direction:column;margin-bottom:1.1rem}
.ft-logo-s{font-size:.56rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold-l);font-weight:600}
.ft-logo-m{font-family:var(--serif);font-size:1.45rem;font-weight:700;color:var(--cream);letter-spacing:.06em}
.ft-about p{font-size:.86rem;line-height:1.85;color:rgba(240,235,224,.62);margin-bottom:1.3rem}
.ft-soc{display:flex;gap:.55rem}
.ft-soc a{
  width:32px;height:32px;border:1px solid rgba(193,154,60,.25);
  display:flex;align-items:center;justify-content:center;
  color:rgba(240,235,224,.55);font-size:.8rem;transition:all .2s;
}
.ft-soc a:hover{border-color:var(--gold);color:var(--gold);background:rgba(193,154,60,.08)}
.ft-col h5{
  font-size:.65rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--cream);margin-bottom:1.3rem;padding-bottom:.65rem;
  border-bottom:1px solid rgba(193,154,60,.18);
}
.ft-col ul{display:flex;flex-direction:column;gap:.45rem}
.ft-col ul li a{
  font-size:.84rem;color:rgba(240,235,224,.58);
  transition:all .2s;display:flex;align-items:center;gap:.35rem;
}
.ft-col ul li a::before{
  content:'›';color:var(--gold);opacity:0;
  transform:translateX(-4px);transition:all .2s;font-size:.95rem;
}
.ft-col ul li a:hover{color:var(--gold-l);padding-left:.45rem}
.ft-col ul li a:hover::before{opacity:1;transform:translateX(0)}
.ft-ci{display:flex;align-items:flex-start;gap:.65rem;margin-bottom:.75rem}
.ft-ci i{color:var(--gold);font-size:.8rem;margin-top:.18rem;flex-shrink:0}
.ft-ci span,.ft-ci a{font-size:.83rem;color:rgba(240,235,224,.6);line-height:1.5}
.ft-ci a:hover{color:var(--gold-l)}
.ft-bot{padding:1.3rem 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
.ft-bot p{font-size:.75rem;color:rgba(240,235,224,.38)}
.ft-bot a{color:rgba(240,235,224,.45);transition:.2s}
.ft-bot a:hover{color:var(--gold-l)}

/* PAGE HERO */
.pg-hero{position:relative;height:52vh;min-height:360px;display:flex;align-items:flex-end;overflow:hidden}
.pg-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.pg-hero-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(26,46,34,.82) 0%,rgba(26,46,34,.28) 100%)}
.pg-hero-c{position:relative;z-index:2;padding:0 4rem 3.5rem}
.pg-hero-c h1{font-family:var(--serif);font-size:clamp(2.2rem,5vw,3.8rem);font-weight:700;color:var(--cream);line-height:1.1;margin-bottom:.7rem}
.pg-hero-c h1 em{font-style:italic;color:var(--gold-l)}
.breadcrumb{display:flex;align-items:center;gap:.45rem;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(240,235,224,.45)}
.breadcrumb a{color:var(--gold-l)}
.breadcrumb a:hover{color:var(--cream)}
.breadcrumb span{color:rgba(240,235,224,.28)}

/* ABOUT PAGE */
.about-2col{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.ai-stack{position:relative;padding-bottom:3rem;padding-right:3rem}
.ai-main{overflow:hidden;aspect-ratio:3/4}
.ai-main img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.ai-stack:hover .ai-main img{transform:scale(1.03)}
.ai-float{
  position:absolute;bottom:0;right:0;
  width:55%;aspect-ratio:4/3;overflow:hidden;
  border:4px solid var(--cream);box-shadow:var(--sh-lg);
}
.ai-float img{width:100%;height:100%;object-fit:cover}
.ai-badge{
  position:absolute;top:2rem;left:-1.5rem;
  background:var(--forest);color:var(--cream);
  padding:1rem 1.2rem;text-align:center;
  border:2px solid var(--gold);z-index:1;
}
.ai-badge strong{display:block;font-family:var(--serif);font-size:2rem;color:var(--gold-l);line-height:1;font-weight:700}
.ai-badge span{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(240,235,224,.65)}
.about-tc p{color:var(--text-m);line-height:1.85;margin-bottom:1.1rem;font-size:.95rem}
.about-vals{display:flex;flex-direction:column;gap:.9rem;margin-top:1.8rem}
.aval{
  display:flex;align-items:flex-start;gap:.9rem;
  padding:.9rem 1.1rem;background:var(--cream-2);
  border-left:3px solid var(--gold);
}
.aval i{color:var(--gold);font-size:.95rem;margin-top:2px;flex-shrink:0}
.aval h4{font-size:.87rem;font-weight:700;color:var(--text);margin-bottom:.18rem}
.aval p{font-size:.81rem;color:var(--text-m);margin-bottom:0}

/* ROOMS PAGE DETAIL */
.room-detail{
  display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center;
  padding:3.5rem 0;border-bottom:1px solid var(--border);
}
.room-detail:last-child{border-bottom:none}
.room-detail.rev .rdi{order:2}
.room-detail.rev .rdc{order:1}
.rdi{overflow:hidden;aspect-ratio:4/3}
.rdi img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.rdi:hover img{transform:scale(1.04)}
.room-price{font-family:var(--serif);font-size:2.4rem;font-weight:700;color:var(--gold-d);line-height:1;margin:1.1rem 0}
.room-price small{font-size:.95rem;color:var(--text-l);font-family:var(--sans);font-weight:400}
.room-feats{display:grid;grid-template-columns:1fr 1fr;gap:.55rem .4rem;margin-bottom:1.5rem}
.room-feats li{display:flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--text-m)}
.room-feats i{color:var(--gold);font-size:.72rem;flex-shrink:0}

/* GALLERY PAGE */
.gall-grid{columns:3;column-gap:.9rem}
.gi{break-inside:avoid;margin-bottom:.9rem;overflow:hidden;cursor:pointer;position:relative}
.gi img{width:100%;display:block;transition:transform .55s}
.gi:hover img{transform:scale(1.04)}
.gi-ov{
  position:absolute;inset:0;background:rgba(26,46,34,.42);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .3s;
}
.gi:hover .gi-ov{opacity:1}
.gi-ov i{font-size:1.6rem;color:var(--gold-l)}

/* LIGHTBOX */
#lightbox{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.93);
  z-index:9999;align-items:center;justify-content:center;
}
#lightbox.open{display:flex}
#lightbox img{max-width:90vw;max-height:88vh;object-fit:contain;box-shadow:var(--sh-lg)}
.lb-close{
  position:absolute;top:1.4rem;right:2rem;
  color:rgba(255,255,255,.6);font-size:2rem;cursor:pointer;
  line-height:1;transition:color .2s;
}
.lb-close:hover{color:var(--gold)}

/* CONTACT */
.ct-layout{display:grid;grid-template-columns:1fr 1.8fr;gap:2.5rem}
.ct-card{background:var(--forest);padding:2.5rem;color:rgba(240,235,224,.75)}
.ct-card h3{font-family:var(--serif);font-size:1.45rem;font-weight:700;color:var(--cream);margin-bottom:1.6rem;padding-bottom:.9rem;border-bottom:1px solid rgba(193,154,60,.18)}
.ct-item{margin-bottom:1.3rem}
.ct-label{font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-l);margin-bottom:.3rem}
.ct-val{font-size:.88rem;line-height:1.55}
.ct-val a{color:rgba(240,235,224,.75);transition:.2s}
.ct-val a:hover{color:var(--gold-l)}
.ct-soc{display:flex;gap:.55rem;margin-top:1.4rem}
.ct-soc a{
  width:34px;height:34px;border:1px solid rgba(193,154,60,.25);
  display:flex;align-items:center;justify-content:center;
  color:rgba(240,235,224,.55);font-size:.8rem;transition:all .2s;
}
.ct-soc a:hover{border-color:var(--gold);color:var(--gold)}
.map-box{height:100%;min-height:400px;border:1px solid var(--border);overflow:hidden}
.map-box iframe{width:100%;height:100%;border:none;display:block;min-height:400px}

/* SCROLL REVEAL */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}
.reveal.in{opacity:1;transform:none}

/* RESPONSIVE */
@media(max-width:1024px){
  .navbar{padding:1.2rem 2rem}.navbar.sticky{padding:.8rem 2rem}
  .rooms-grid{grid-template-columns:repeat(2,1fr)}
  .ft-grid{grid-template-columns:1fr 1fr}
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .gall-prev{grid-template-columns:repeat(3,1fr);grid-template-rows:auto}
}
@media(max-width:768px){
  .navbar{padding:1rem 1.5rem}.navbar.sticky{padding:.7rem 1.5rem}
  .nav-links,.nav-book{display:none}
  .hamburger{display:flex}
  .hero-content{padding:0 1.5rem 4rem}
  .hero-btns{flex-direction:column;align-items:flex-start}
  .hero-loc{display:none}
  .ribbon{padding:.8rem 1.5rem;gap:1rem}
  .rbn-sep{display:none}
  .split-section{grid-template-columns:1fr}
  .split-content{padding:3rem 1.5rem}
  .split-badge{display:none}
  .about-2col{grid-template-columns:1fr}
  .ai-float,.ai-badge{display:none}
  .rooms-grid,.svc-grid{grid-template-columns:1fr}
  .gall-prev{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .gall-grid{columns:2}
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .ft-grid{grid-template-columns:1fr}
  .room-detail{grid-template-columns:1fr}
  .room-detail.rev .rdi,.room-detail.rev .rdc{order:unset}
  .ct-layout{grid-template-columns:1fr}
  .cta-band{padding:2.5rem 1.5rem;text-align:center;justify-content:center}
  .pg-hero-c{padding:0 1.5rem 2.5rem}
  .sec{padding:4rem 0}
  .ft-grid{gap:2rem}
  .ft-bot{flex-direction:column;text-align:center}
}
@media(max-width:480px){
  .gall-grid{columns:1}
  .team-grid{grid-template-columns:1fr 1fr}
  .hero-h1{font-size:2.4rem}
  .about-nums{gap:1.5rem}
}
