:root{
  --bg:#050505;
  --panel:#0b0b0b;
  --panel2:#121212;
  --gold:#c5a059;
  --gold2:#e5c583;
  --text:#f5f0e7;
  --muted:#9e978d;
  --line:rgba(197,160,89,0.22);
}
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family: 'Poppins', Arial, sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
img{display:block;width:100%}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.inner{width:min(1240px,calc(100% - 80px));margin:auto}

.topbar{
  position:absolute;top:0;left:0;width:100%;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:32px 5.7%;
  transition:top 0.3s ease;
}
.logo{display:flex;align-items:center;gap:13px}
.logo-img{height:140px;width:auto;display:block}
.footer-logo-img{height:160px;width:auto;display:block}
nav{display:flex;align-items:center;gap:35px}
nav a{font-size:14px;font-weight:600;letter-spacing:.06em;transition:color 0.2s}
nav a:hover, nav a.active-nav{color:var(--gold2)}
.gold-btn{
  border:0;background:linear-gradient(135deg,#c59b43,#efd184);
  color:#1b1408;padding:16px 28px;font-weight:600;
  letter-spacing:.08em;font-size:12px;
  transition:all 0.3s ease;
}
.gold-btn:hover{
  background:linear-gradient(135deg,#d5ab53,#ffd994);
  box-shadow:0 0 15px rgba(239,209,132,0.3);
}
.menu-toggle{display:none;background:none;color:#fff;border:0;font-size:28px}

.hero{
  min-height:800px;position:relative;
  background:url("../images/hero_bg.jpg") center/cover no-repeat;
  overflow:visible;
  transition: background-image 0.8s ease-in-out;
}
.hero-dark{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(5,9,10,.85) 0%,rgba(5,9,10,.6) 36%,rgba(5,9,10,.1) 72%,rgba(5,9,10,.2) 100%),
    linear-gradient(0deg,rgba(5,9,10,.9) 0%,transparent 50%);
}
.hero-content{
  position:absolute;z-index:3;left:12.7%;top:240px;
  max-width:1100px
}
.hero-content h1{
  font-family:"Poppins", sans-serif;
  font-size:82px;line-height:.92;font-weight:700;
  letter-spacing:-.015em;margin:0 0 24px
}
.hero-content p{
  font-size:16px;line-height:1.8;color:#eee8dd;margin:0 0 32px;
  letter-spacing:0.04em;
  max-width:550px;
}
.hero-actions{display:flex;align-items:center;gap:32px}
.watch-btn{
  border:0;background:none;color:#fff;font-size:12px;
  letter-spacing:.08em;
  display:flex;
  align-items:center;
}
.watch-btn span{
  display:inline-grid;place-items:center;width:40px;height:40px;
  border:1px solid #ffffff90;border-radius:50%;margin-right:12px;font-size:10px;
  transition:all 0.3s ease;
}
.watch-btn:hover span{
  border-color:var(--gold2);
  color:var(--gold2);
  box-shadow:0 0 10px rgba(229,197,131,0.4);
}

.hero-rail{
  position:absolute;z-index:3;left:5.6%;top:246px;
  display:flex;flex-direction:column;
}
.hero-rail::before{
  content:'';position:absolute;left:43px;top:22px;bottom:22px;width:1px;
  background:#ffffff47;z-index:0;
}
.rail-item{
  position:relative;height:44px;display:flex;align-items:center;gap:14px;
  cursor:pointer;
}
.rail-num{
  width:26px;text-align:right;font-size:14px;font-weight:600;color:#8e8d88;
  transition:color 0.3s ease, font-size 0.3s ease;
}
.rail-item.active .rail-num{color:#fff;font-size:20px}
.rail-dot{
  position:relative;z-index:1;width:7px;height:7px;border-radius:50%;
  background:#ffffff47;transition:background 0.3s ease, transform 0.3s ease;
}
.rail-item.active .rail-dot{background:var(--gold);transform:scale(1.5)}

.booking-bar{
  position:absolute;z-index:6;left:50%;bottom:-34px;transform:translateX(-50%);
  width:min(1140px,90%);
  display:grid;grid-template-columns:1fr 1fr 1fr auto;
  background:rgba(11,11,11,0.9);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(197,160,89,0.35);
  border-radius:6px;padding:12px;box-shadow:0 16px 40px rgba(0,0,0,0.7)
}
.booking-bar label{
  display:flex;align-items:center;gap:15px;padding:10px 22px;
  border-right:1px solid rgba(255,255,255,.08)
}
.field-icon svg{color:var(--gold);display:block}
.field-copy{display:block;flex:1}
.field-copy small{display:block;color:#bca970;font-size:10px;letter-spacing:.1em;margin-bottom:6px;font-weight:600}
.booking-bar input,.booking-bar select{
  width:100%;border:0;background:transparent;color:white;
  font-size:13px;outline:0;color-scheme:dark;
  font-weight:500;
}
.booking-bar .gold-btn{border-radius:3px;padding:16px 36px}

.curated{
  background:
    radial-gradient(circle at 20% 40%,rgba(197,160,89,0.06),transparent 38%),
    #050505;
  padding:140px 0 100px
}
.section-title-row{
  display:flex;align-items:end;justify-content:space-between;margin-bottom:32px
}
.section-title-row h2,.gallery h2,.contact h2{
  font-family:"Poppins", sans-serif;font-size:42px;font-weight:600;margin:0;letter-spacing:-0.01em;
}
.section-title-row a{
  color:var(--gold);font-size:12px;letter-spacing:.08em;font-weight:600;
  transition:color 0.2s;
}
.section-title-row a:hover{
  color:var(--gold2);
}
.curated-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.curated-card{
  background:#0b0b0b;border:1px solid rgba(197,160,89,0.12);
  border-radius:5px;overflow:hidden;
  transition:transform 0.15s ease, border-color 0.3s, box-shadow 0.3s;
}
.curated-card:hover{
  border-color:var(--gold);
  box-shadow:0 15px 30px rgba(0,0,0,0.6);
}
.curated-card img{
  height:200px;object-fit:cover;
  transition:transform 0.3s ease;
}
.curated-card:hover img{
  transform:scale(1.05);
}
.card-copy{padding:20px 20px 24px}
.gold-icon svg{color:var(--gold);display:block}
.card-copy h3{font-size:13px;letter-spacing:.06em;margin:12px 0 8px;color:#f0eadf;font-weight:600}
.card-copy p{font-size:13px;line-height:1.7;color:#d2cbc0;margin:0}

.hospitality{
  min-height:420px;display:grid;grid-template-columns:1fr 1.05fr;
  background:#050505;
  overflow:hidden;
}
.hospitality-copy{
  padding:80px 10%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    linear-gradient(rgba(10,10,10,0.72),rgba(10,10,10,0.72)),
    url("../images/marble_bg.jpg") center/cover no-repeat;
  border-right:1px solid var(--line);
}
.hospitality-copy h2{
  font-family:"Poppins", sans-serif;font-size:48px;font-weight:600;margin:0 0 24px;line-height:1.1;
}
.hospitality-copy p{font-size:14px;line-height:1.9;color:#d3ccc0;margin-bottom:32px}
.outline-btn{
  display:inline-block;border:1px solid var(--gold);color:var(--gold);
  padding:14px 24px;font-size:12px;letter-spacing:.08em;font-weight:600;
  transition:all 0.3s ease;
  width:fit-content;
}
.outline-btn:hover{
  background:var(--gold);
  color:#111;
}
.hospitality-image img{height:100%;min-height:420px;object-fit:cover}

.amenities{
  display:grid;grid-template-columns:repeat(4,1fr);
  background:#080808;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:32px 5.7%
}
.amenity{
  min-height:70px;display:flex;align-items:center;justify-content:center;gap:18px;
  border-right:1px solid rgba(210,173,92,.18)
}
.amenity:last-child{border-right:0}
.amenity>span svg{color:var(--gold);display:block}
.amenity strong{
  display:block;color:var(--gold);font-size:12px;letter-spacing:.06em;margin-bottom:6px;font-weight:600;
}
.amenity small{font-size:11px;color:#dbd5cb}

.extra-section{padding:100px 0;background:#0a0a0a}
.muted{font-size:13px;color:#8f8b83}
.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.room-grid article{
  background:#111111;border:1px solid rgba(197,160,89,0.15);
  border-radius:6px;overflow:hidden;
  transition:transform 0.15s ease, border-color 0.3s, box-shadow 0.3s;
  display:flex;flex-direction:column;height:100%;
}
.room-grid article:hover{
  border-color:var(--gold);
  box-shadow:0 15px 30px rgba(0,0,0,0.6);
}
.room-grid img{height:240px;object-fit:cover;transition:transform 0.3s ease}
.room-grid article:hover img{
  transform:scale(1.05);
}
.room-grid .room-details{padding:24px;display:flex;flex-direction:column;flex:1}
.room-grid h3{font:600 24px "Poppins", sans-serif;margin:0 0 8px;color:#fff}
.room-grid p.card-summary{
  font-size:13px;line-height:1.65;color:#d2cbc0;margin:0 0 16px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.room-grid button{background:none;border:0;color:var(--gold);font-size:11px;font-weight:600;transition:color 0.2s}
.room-grid button:hover{color:var(--gold2)}

.gallery{padding:100px 0;background:#efeae2;color:#151515}

.gallery-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:16px;margin-top:32px}
.gallery-grid img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:opacity 0.3s}
.gallery-grid img:hover{opacity:0.9}

.contact{padding:100px 0;background:#080808}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.contact p{font-size:14px;line-height:1.8;color:#bcb4a8}
.contact-info{color:#dfd6c7!important;line-height:2.2!important;font-size:15px!important}
.contact form,.modal-box form{display:grid;gap:12px}
.contact input,.contact textarea,.modal-box input,.modal-box textarea{
  background:#161616;border:1px solid rgba(197,160,89,0.15);padding:16px;color:#fff;outline:0;
  transition:border-color 0.3s;font-size:13px;
}
.contact input:focus,.contact textarea:focus,.modal-box input:focus,.modal-box textarea:focus{
  border-color:var(--gold);
}
#contactStatus,#inquiryStatus{color:var(--gold);font-size:12px;font-weight:500}

footer{background:#030303}
.footer-logo{transform:none;transform-origin:left center}
.footer-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px;
  padding:70px 0 50px;
}
.footer-brand p{margin-top:20px;font-size:13px;line-height:1.9;color:var(--muted);max-width:300px}
.footer-social{display:flex;gap:14px;margin-top:24px}
.footer-social a{
  width:34px;height:34px;display:grid;place-items:center;border-radius:50%;
  border:1px solid rgba(197,160,89,0.25);color:var(--gold);transition:.2s;
}
.footer-social a:hover{background:var(--gold);color:#0b0b0b;border-color:var(--gold)}
.footer-col h4{
  font-size:12px;letter-spacing:.1em;color:var(--gold);margin:0 0 20px;
  text-transform:uppercase;font-weight:600;
}
.footer-col a,.footer-col p{
  display:block;font-size:13px;color:var(--muted);margin:0 0 13px;line-height:1.7;
  transition:color 0.2s;
}
.footer-col a:hover{color:var(--gold2)}
.footer-bottom-wrap{border-top:1px solid rgba(197,160,89,0.14)}
.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;
  padding:24px 0;font-size:12px;color:#777;
}
.footer-bottom a{color:var(--gold);font-weight:600;transition:color 0.2s}
.footer-bottom a:hover{color:var(--gold2)}

.modal{display:none;position:fixed;z-index:99999;inset:0;place-items:center;padding:20px}
.modal.open{display:grid !important}
.modal-overlay{position:absolute;inset:0;background:#000c;backdrop-filter:blur(7px)}
.modal-box{
  position:relative;width:min(600px,100%);padding:40px;background:#0b0b0b;
  border:1px solid rgba(197,160,89,0.35)
}
.modal-box h2{font:600 42px "Poppins", sans-serif;margin:0 0 12px}
.modal-box p{font-size:13px;color:#b9b0a3;line-height:1.8}
.close-modal{position:absolute;right:16px;top:12px;background:none;border:0;color:#fff;font-size:32px}
.date-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

@media(max-width:900px){
  .topbar{padding:20px 5%}
  .menu-toggle{display:block;z-index:22}
  nav{
    position:fixed;inset:0;background:#050505;flex-direction:column;
    justify-content:center;transform:translateX(100%);transition:.3s;font-size:18px;z-index:21
  }
  nav.open{transform:none}
  nav a{font-size:16px}
  .hero-content{left:12%;top:200px}
  .booking-bar{grid-template-columns:1fr 1fr}
  .booking-bar .gold-btn{grid-column:1/3}
  .curated-grid{grid-template-columns:1fr 1fr}
  .hospitality{grid-template-columns:1fr}
  .hospitality-image img{height:360px}
  .amenities{grid-template-columns:1fr 1fr}
  .amenity:nth-child(2){border-right:0}
  .room-grid{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr}
  .gallery-grid img{height:auto}
  .contact-inner{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:40px}
}
@media(max-width:600px){
  .inner{width:calc(100% - 32px)}
  .hero{min-height:760px}
  .hero-content{left:5%;right:5%;width:90%;top:175px}
  .hero-content h1{font-size:6.8vw;white-space:nowrap}
  .hero-rail{display:none}
  .booking-bar{grid-template-columns:1fr;bottom:14px;width:92%}
  .booking-bar label{border-right:0;border-bottom:1px solid #ffffff10;padding:8px 10px}
  .booking-bar .gold-btn{grid-column:auto}
  .curated{padding-top:65px}
  .curated-grid{grid-template-columns:1fr}
  .curated-card img{height:240px}
  .hospitality-copy{padding:48px 8%}
  .amenities{grid-template-columns:1fr}
  .amenity{border-right:0;border-bottom:1px solid rgba(197,160,89,0.16)}
  .footer-grid{grid-template-columns:1fr;gap:36px;padding:50px 0 30px}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:10px}
  .date-row{grid-template-columns:1fr}
  .sticky-banner {
    flex-direction: column;
    padding: 8px 36px 8px 12px;
    font-size: 11px;
    gap: 4px;
    text-align: left;
    align-items: flex-start;
  }
  .sticky-banner a {
    margin-left: 0;
  }
  .sticky-banner .close-banner-btn {
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
  }
}

/* Text Animate Effect */
.animate-line {
  display: block;
  overflow: visible;
}
.animate-word {
  display: inline-block;
  opacity: 0;
  filter: blur(10px);
  transform: translateY(30px);
  animation: blurInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  animation-delay: calc(var(--word-idx) * 0.08s + 0.2s);
}

@keyframes blurInUp {
  to {
    opacity: 1;
    filter: blur(0px);
    transform: translateY(0);
  }
}

/* Sticky Banner Styling */
.sticky-banner {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  background: linear-gradient(90deg, #c5a059, #e5c583);
  color: #050505;
  text-align: center;
  padding: 10px 24px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.05em;
  z-index: 1000;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
  transition: all 0.3s ease;
}
.sticky-banner a {
  text-decoration: underline;
  color: #050505;
  font-weight: 700;
  margin-left: 5px;
}
.sticky-banner a:hover {
  color: #222;
}
.sticky-banner .close-banner-btn {
  background: none;
  border: none;
  color: #050505;
  font-size: 20px;
  cursor: pointer;
  position: absolute;
  right: 20px;
  display: flex;
  align-items: center;
  line-height: 1;
}

/* Card Detail Modal Styling */
.card-detail-box {
  width: min(720px, 92vw);
  max-height: 88vh;
  overflow-y: auto;
  padding: 0 !important;
  border-radius: 8px;
  background: #0b0b0b;
  border: 1px solid rgba(197,160,89,0.4);
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.95);
}

.card-detail-image-wrap {
  width: 100%;
  height: 320px;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(197, 160, 89, 0.2);
}

.card-detail-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card-detail-content {
  padding: 32px 36px 36px;
}

.card-detail-subtitle {
  display: block;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
  font-weight: 600;
}

.card-detail-content h2 {
  font-family: "Poppins", sans-serif;
  font-size: 34px;
  font-weight: 600;
  color: #fff;
  margin: 0 0 20px;
  line-height: 1.25;
}

.card-detail-desc p {
  font-size: 14px;
  line-height: 1.85;
  color: #d2cbc0;
  margin-bottom: 18px;
}

.card-detail-desc p:last-child {
  margin-bottom: 0;
}

.card-detail-actions {
  margin-top: 32px;
  padding-top: 22px;
  border-top: 1px solid rgba(197, 160, 89, 0.2);
  display: flex;
  justify-content: flex-end;
}

.room-grid article, .curated-card {
  cursor: pointer;
}

.card-click-hint {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--gold);
  transition: transform 0.25s ease, color 0.25s ease;
}

.room-grid article:hover .card-click-hint,
.curated-card:hover .card-click-hint {
  color: var(--gold2);
  transform: translateX(4px);
}

/* Audio Banner & YouTube Player inside Modal */
.card-audio-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(90deg, rgba(197,160,89,0.25), rgba(11,11,11,0.9));
  border-bottom: 1px solid rgba(197, 160, 89, 0.35);
  padding: 12px 24px;
  font-size: 13px;
  color: var(--gold);
  font-weight: 500;
}

.equalizer-bar {
  display: inline-flex;
  align-items: flex-end;
  gap: 3px;
  height: 16px;
}

.equalizer-bar span {
  width: 3px;
  background: var(--gold);
  border-radius: 2px;
  animation: eqBounce 0.8s infinite ease-in-out alternate;
}

.equalizer-bar span:nth-child(1) { height: 60%; animation-delay: 0.1s; }
.equalizer-bar span:nth-child(2) { height: 100%; animation-delay: 0.3s; }
.equalizer-bar span:nth-child(3) { height: 45%; animation-delay: 0.2s; }
.equalizer-bar span:nth-child(4) { height: 85%; animation-delay: 0.4s; }

@keyframes eqBounce {
  0% { transform: scaleY(0.2); }
  100% { transform: scaleY(1); }
}

.youtube-player-frame {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  background: #000;
}

.youtube-player-frame iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}


