:root {
    --primary:#d4af37;--primary-hover:#b5952f;--bg-dark:#121212;--bg-card:#1a1a1a;
    --text-main:#f5f5f5;--text-muted:#a0a0a0;--border:#333;
    --font-heading:'Playfair Display',serif;--font-body:'Lato',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg-dark);color:var(--text-main);line-height:1.6;cursor:none}
@media(pointer:coarse){body{cursor:auto}}

/* Navbar */
.navbar{position:fixed;top:0;width:100%;padding:1.5rem 4rem;display:flex;justify-content:space-between;align-items:center;z-index:100;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,0)100%);transition:background .4s,backdrop-filter .4s}
.navbar.scrolled{background:rgba(18,18,18,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.nav-links{display:flex;gap:2rem}
.nav-links a{color:var(--text-main);text-decoration:none;font-size:.85rem;text-transform:uppercase;letter-spacing:2px;transition:color .3s}
.nav-links a:hover,.nav-links a.active-link{color:var(--primary)}
.logo{text-align:center}
.logo h1{font-family:var(--font-heading);font-size:1.8rem;font-weight:400;letter-spacing:3px;margin-bottom:.2rem}
.logo span{font-size:.6rem;letter-spacing:4px;color:var(--text-muted)}
.nav-actions{display:flex;align-items:center;gap:1.5rem}
.back-link{color:var(--text-muted);text-decoration:none;font-size:.85rem;transition:color .3s}.back-link:hover{color:var(--text-main)}
.btn-book{background:var(--primary);color:#000;border:none;padding:.8rem 1.5rem;font-family:var(--font-body);text-transform:uppercase;letter-spacing:1px;font-size:.8rem;font-weight:700;cursor:pointer;transition:background .3s}
.btn-book:hover{background:var(--primary-hover)}

/* Hero */
.hero{position:relative;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:-1}
.hero-content{max-width:800px;padding:0 2rem;margin-top:-5rem}
.subtitle{font-family:var(--font-body);text-transform:uppercase;letter-spacing:4px;font-size:.9rem;color:var(--primary);margin-bottom:1rem}
.title{font-family:var(--font-heading);font-size:4.5rem;font-weight:400;line-height:1.1;margin-bottom:1.5rem}
.description{font-size:1.1rem;color:#e0e0e0;max-width:500px;margin:0 auto}

/* Booking Widget */
.booking-widget{position:absolute;bottom:0;transform:translateY(50%);background:rgba(26,26,26,0.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;padding:1rem 1rem 1rem 2.5rem;box-shadow:0 20px 40px rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.1);z-index:10}
.booking-field{padding-right:2.5rem;display:flex;flex-direction:column;gap:.5rem;position:relative}
.border-left{padding-left:2.5rem;border-left:1px solid var(--border)}
.booking-field label{font-size:.75rem;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted)}
.field-value{display:flex;align-items:center;gap:1rem;cursor:pointer}
.field-value .value{font-family:var(--font-heading);font-size:1.2rem}
.field-value svg{width:1rem;height:1rem;color:var(--primary)}
.date-picker-input{background:transparent;border:none;color:var(--text-main);font-family:var(--font-heading);font-size:1.2rem;outline:none;width:200px;cursor:pointer}
.date-picker-input::placeholder{color:var(--text-main);opacity:1}
.guest-popover{position:absolute;top:calc(100% + 12px);left:0;background:var(--bg-card);border:1px solid var(--border);padding:1.5rem;min-width:240px;box-shadow:0 10px 30px rgba(0,0,0,.4);opacity:0;pointer-events:none;transform:translateY(-8px);transition:all .25s;z-index:50}
.guest-popover.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.guest-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0}
.counter{display:flex;align-items:center;gap:1rem}
.counter-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);color:var(--primary);font-size:1.2rem;cursor:pointer;transition:all .2s}
.counter-btn:hover{background:var(--primary);color:#000}
.counter-value{font-family:var(--font-heading);font-size:1.2rem;min-width:20px;text-align:center}
.btn-search{background:var(--primary);color:#000;border:none;padding:1.5rem 2.5rem;font-family:var(--font-body);text-transform:uppercase;letter-spacing:1px;font-size:.9rem;font-weight:700;cursor:pointer;margin-left:2rem;transition:background .3s}
.btn-search:hover{background:var(--primary-hover)}

/* Content Sections */
.content-section{padding:8rem 4rem 6rem;max-width:1200px;margin:0 auto}
.text-center{text-align:center}
.eyebrow{color:var(--primary);text-transform:uppercase;letter-spacing:3px;font-size:.8rem;display:block;margin-bottom:1rem}
.section-title h2{font-family:var(--font-heading);font-size:2.5rem;font-weight:400;margin-bottom:1.5rem}
.divider{width:60px;height:2px;background:var(--primary);margin:0 auto 4rem}

/* Rooms */
.rooms-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3rem}
.room-card{background:var(--bg-card);border:1px solid var(--border);transition:transform .4s;opacity:0;transform:translateY(40px)}
.room-card:hover{transform:translateY(-10px)!important}
.room-img-wrapper{position:relative;height:350px;overflow:hidden}
.room-carousel{position:relative;width:100%;height:100%}
.carousel-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s}
.carousel-img.active{opacity:1}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.4);border:none;color:#fff;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .3s}
.room-img-wrapper:hover .carousel-btn{opacity:1}
.carousel-btn.prev{left:12px}.carousel-btn.next{right:12px}
.carousel-btn svg{width:18px;height:18px}
.carousel-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px}
.carousel-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.4);transition:background .3s}
.carousel-dot.active{background:var(--primary)}
.price-tag{position:absolute;bottom:0;right:0;background:var(--bg-card);padding:1rem 1.5rem;font-family:var(--font-heading);font-size:1.2rem;color:var(--primary);border-top:1px solid var(--border);border-left:1px solid var(--border);z-index:5}
.room-info{padding:2.5rem}.room-info h3{font-family:var(--font-heading);font-size:1.8rem;font-weight:400;margin-bottom:1rem}
.room-info p{color:var(--text-muted);margin-bottom:2rem}
.room-amenities{display:flex;gap:1.5rem;margin-bottom:2.5rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1rem 0}
.room-amenities span{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#d0d0d0}
.room-amenities svg{width:1rem;height:1rem;color:var(--primary)}
.btn-outline{background:transparent;border:1px solid var(--primary);color:var(--primary);padding:.8rem 2rem;text-transform:uppercase;letter-spacing:2px;font-size:.8rem;cursor:pointer;transition:all .3s;font-family:var(--font-body)}
.btn-outline:hover{background:var(--primary);color:#000}

/* Dining */
.dining-section{padding-top:4rem}
.dining-grid{display:flex;flex-direction:column;gap:4rem}
.dining-card{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--bg-card);border:1px solid var(--border);overflow:hidden;opacity:0;transform:translateY(40px)}
.dining-card.reverse .dining-img{order:2}
.dining-card.reverse .dining-info{order:1}
.dining-img{height:400px;overflow:hidden}
.dining-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.dining-card:hover .dining-img img{transform:scale(1.05)}
.dining-info{padding:3rem;display:flex;flex-direction:column;justify-content:center}
.dining-badge{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:2px;color:var(--primary);border:1px solid var(--primary);padding:.3rem .8rem;margin-bottom:1.5rem;width:fit-content}
.dining-info h3{font-family:var(--font-heading);font-size:2rem;font-weight:400;margin-bottom:1rem}
.dining-info p{color:var(--text-muted);margin-bottom:1.5rem;line-height:1.8}
.dining-meta{display:flex;gap:2rem;margin-bottom:2rem}
.dining-meta span{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#ccc}
.dining-meta svg{width:.9rem;height:.9rem;color:var(--primary)}

/* Spa */
.spa-section{padding:0;max-width:100%}
.spa-hero{position:relative;height:60vh;overflow:hidden;display:flex;align-items:center;justify-content:center}
.spa-hero-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.spa-hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}
.spa-hero-content{position:relative;text-align:center;max-width:600px;padding:0 2rem}
.spa-hero-content h2{font-family:var(--font-heading);font-size:3.5rem;font-weight:400;margin-bottom:1rem}
.spa-hero-content p{color:#ccc;font-size:1.1rem}
.spa-services{display:grid;grid-template-columns:repeat(4,1fr);gap:0;max-width:1200px;margin:-4rem auto 0;position:relative;z-index:5}
.spa-card{background:var(--bg-card);border:1px solid var(--border);padding:2.5rem 2rem;text-align:center;transition:background .3s,transform .3s}
.spa-card:hover{background:#222;transform:translateY(-6px)}
.spa-icon{margin-bottom:1.5rem}.spa-icon svg{width:2.5rem;height:2.5rem;color:var(--primary)}
.spa-card h4{font-family:var(--font-heading);font-size:1.3rem;font-weight:400;margin-bottom:1rem}
.spa-card p{color:var(--text-muted);font-size:.9rem;margin-bottom:1.5rem;line-height:1.7}
.spa-price{color:var(--primary);font-size:.85rem;font-weight:700;letter-spacing:1px;text-transform:uppercase}

/* Footer */
.footer{border-top:1px solid var(--border);padding:4rem 2rem}
.footer-inner{max-width:1200px;margin:0 auto;text-align:center}
.footer .logo h1{font-size:1.5rem;margin-bottom:1.5rem}
.footer-links{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem}
.footer-links a{color:var(--text-muted);text-decoration:none;font-size:.85rem;text-transform:uppercase;letter-spacing:1px;transition:color .3s}
.footer-links a:hover{color:var(--primary)}
.copyright{color:var(--text-muted);font-size:.85rem}

/* Custom Cursor */
.custom-cursor{width:20px;height:20px;border:1px solid var(--primary);border-radius:50%;position:fixed;pointer-events:none;transform:translate(-50%,-50%);transition:width .2s,height .2s,background .2s;z-index:9999;display:none}
@media(pointer:fine){.custom-cursor{display:block}}
.custom-cursor.hovering{width:50px;height:50px;background:rgba(212,175,55,.15)}

/* Responsive */
@media(max-width:1024px){
    .rooms-grid{grid-template-columns:1fr}
    .booking-widget{display:none}
    .dining-card{grid-template-columns:1fr}
    .dining-card.reverse .dining-img{order:0}
    .spa-services{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
    .title{font-size:3.2rem}
    .nav-links{display:none}
    .navbar{padding:1.5rem 2rem}
    .content-section{padding:6rem 2rem 4rem}
    body{cursor:auto}
    .custom-cursor{display:none!important}
    .spa-services{grid-template-columns:1fr}
    .spa-hero-content h2{font-size:2.8rem}
    .back-link{font-size:0.75rem}
}
