:root {
    --primary: #0d6efd;
    --primary-dark: #0b5ed7;
    --bg-dark: #0a0a0f;
    --font-heading: 'Playfair Display', serif;
    --font-body: 'Raleway', sans-serif;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--font-body); font-weight:400; color:#333; overflow-x:hidden; }
h1,h2,h3,h4,h5,h6 { font-family:var(--font-heading); }

.navbar { transition:all .4s ease; padding:1rem 0; background:transparent; }
.navbar.scrolled { background:rgba(10,10,15,.95); backdrop-filter:blur(10px); padding:.5rem 0; box-shadow:0 2px 20px rgba(0,0,0,.3); }
.navbar-brand { font-family:var(--font-heading); font-size:1.5rem; letter-spacing:1px; }
.nav-link { position:relative; padding:.5rem 1rem !important; font-weight:500; font-size:.85rem; text-transform:uppercase; letter-spacing:1px; }
.nav-link::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:0; height:2px; background:var(--primary); transition:width .3s ease; }
.nav-link:hover::after, .nav-link.active::after { width:60%; }
.nav-book-btn { border:2px solid var(--primary) !important; font-weight:600 !important; font-size:.85rem !important; text-transform:uppercase; letter-spacing:1px; }

.hero-section { position:relative; height:100vh; min-height:600px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.hero-slideshow { position:absolute; top:0; left:0; width:100%; height:100%; z-index:0; }
.hero-slideshow .slide { position:absolute; top:0; left:0; width:100%; height:100%; background-size:cover; background-position:center; opacity:0; transition:opacity 1.5s ease-in-out; }
.hero-slideshow .slide.active { opacity:1; }
.hero-overlay { position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(135deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.7) 100%); z-index:1; }
.hero-content { position:relative; z-index:2; padding-top:80px; }
.hero-logo { height:100px; margin-bottom:1rem; }
.hero-sup { font-family:var(--font-heading); font-size:1.1rem; letter-spacing:6px; text-transform:uppercase; opacity:.8; }
.hero-title { font-family:var(--font-heading); font-size:clamp(2.8rem,8vw,6rem); font-weight:700; text-shadow:2px 2px 20px rgba(0,0,0,.5); line-height:1.1; }
.hero-sub { font-size:1.2rem; opacity:.9; font-weight:300; letter-spacing:2px; }
.hero-socials a { width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; border:1px solid rgba(255,255,255,.3); transition:all .3s ease; text-decoration:none; color:#fff; }
.hero-socials a:hover { background:var(--primary); border-color:var(--primary); }
.hero-scroll-indicator { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); z-index:2; text-align:center; color:rgba(255,255,255,.6); font-size:.75rem; text-transform:uppercase; letter-spacing:3px; animation:bounce 2s infinite; }
.hero-scroll-indicator i { display:block; font-size:1.2rem; margin-top:5px; }
@keyframes bounce { 0%,20%,50%,80%,100% { transform:translateX(-50%) translateY(0); } 40% { transform:translateX(-50%) translateY(-10px); } 60% { transform:translateX(-50%) translateY(-5px); } }

.page-banner { position:relative; min-height:50vh; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.page-banner-overlay { position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(135deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.5) 100%); z-index:1; }
.page-banner-content { position:relative; z-index:2; padding-top:80px; }

.info-bar { background:#fff; border-bottom:1px solid rgba(0,0,0,.05); }
.about-img-wrapper { border-radius:1rem; }
.about-exp-box { transform:translate(-20px,-20px); min-width:150px; }

.room-card { transition:all .4s ease; overflow:hidden; border-radius:1rem !important; }
.room-card:hover { transform:translateY(-10px); box-shadow:0 20px 40px rgba(0,0,0,.1) !important; }
.room-img-wrapper { position:relative; overflow:hidden; height:260px; }
.room-img-wrapper img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.room-card:hover .room-img-wrapper img { transform:scale(1.1); }
.room-price-badge { position:absolute; top:15px; right:15px; background:var(--primary); color:#fff; padding:8px 15px; border-radius:30px; font-weight:700; box-shadow:0 4px 15px rgba(13,110,253,.3); }
.room-price-badge small { font-size:.7rem; font-weight:400; }

.amenity-card { transition:all .4s ease; border:1px solid transparent; }
.amenity-card:hover { transform:translateY(-5px); border-color:var(--primary); box-shadow:0 15px 35px rgba(13,110,253,.1) !important; }
.amenity-icon { transition:all .3s ease; }
.amenity-card:hover .amenity-icon { background:var(--primary) !important; }
.amenity-card:hover .amenity-icon i { color:#fff !important; }

.gallery-item { position:relative; display:block; overflow:hidden; border-radius:1rem; cursor:pointer; }
.gallery-item img { width:100%; height:250px; object-fit:cover; transition:transform .6s ease; }
.gallery-item:hover img { transform:scale(1.1); }
.gallery-overlay { position:absolute; top:0; left:0; width:100%; height:100%; background:rgba(13,110,253,.6); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s ease; }
.gallery-item:hover .gallery-overlay { opacity:1; }

.attraction-card { transition:all .3s ease; border:1px solid transparent; }
.attraction-card:hover { border-color:var(--primary); transform:translateX(5px); }

.booking-form-card { border:1px solid rgba(0,0,0,.05); }
.form-control:focus, .form-select:focus { box-shadow:none; border-color:var(--primary) !important; }
.form-control-lg, .form-select-lg { padding:.8rem 1.2rem; font-size:.95rem; }
.btn-primary { background:var(--primary); border:none; font-weight:600; transition:all .3s ease; }
.btn-primary:hover { background:var(--primary-dark); transform:translateY(-2px); box-shadow:0 5px 20px rgba(13,110,253,.3); }
.btn-outline-primary { border-width:2px; font-weight:600; }
.btn-outline-light { border-width:2px; font-weight:600; }

.scroll-top { position:fixed; bottom:30px; right:30px; width:45px; height:45px; background:var(--primary); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; text-decoration:none; opacity:0; visibility:hidden; transition:all .3s ease; z-index:999; box-shadow:0 4px 15px rgba(13,110,253,.3); }
.scroll-top.visible { opacity:1; visibility:visible; }
.scroll-top:hover { background:var(--primary-dark); color:#fff; transform:translateY(-3px); }

footer .text-white-50 { color: rgba(255,255,255,.75) !important; }
footer .text-white-50 a { color: rgba(255,255,255,.75) !important; }
footer .text-white-50 a:hover { color: #fff !important; }

@media (max-width:991.98px) {
    .navbar-collapse { background:rgba(10,10,15,.98); padding:1rem; border-radius:1rem; margin-top:.5rem; }
    .hero-title { font-size:clamp(2.5rem,10vw,4rem); }
    .about-exp-box { transform:translate(-10px,-10px); min-width:120px; padding:1rem !important; }
    .about-exp-box .display-4 { font-size:2.5rem; }
}
@media (max-width:767.98px) {
    .hero-section { min-height:500px; }
    .hero-title { font-size:2.5rem; }
    .hero-sup { font-size:.9rem; letter-spacing:4px; }
}
