/* GENERAL STYLES */
body, html {
  margin: 0;
  padding: 0;
  font-family: 'Poppins', sans-serif;
  scroll-behavior: smooth;
  transition: background 0.3s, color 0.3s;
}

#loader {
  position: fixed;
  width: 100%;
  height: 100vh;
  background: white;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

/* HEADER */
header {
  background: white;
  padding: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  transition: 0.3s;
}

header.sticky {
  position: fixed;
  top: 0;
  width: 100%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

nav a { margin: 0 10px; text-decoration: none; color: black; transition: 0.3s; }

/* Hamburger for mobile */
.nav-toggle { display: none; cursor: pointer; font-size: 24px; }
#nav-links { display: flex; align-items: center; }
#nav-close { display: none; cursor: pointer; font-size: 28px; margin-left: 15px; }

/* DARK MODE */
body.dark {
  background: #111;
  color: white;
}
body.dark header { background: #222; }
body.dark nav a { color: white; }
body.dark .welcome { background: #222; color: white; }
body.dark .room-card { background: #222; color: white; }
body.dark .review-card { background: #222; color: white; }

/* DARK MODE TOGGLE SWITCH */
.dark-mode-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  cursor: pointer;
}

.switch {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 25px;
}

.switch input { display: none; }

.slider {
  position: absolute;
  cursor: pointer;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: #ccc;
  transition: .4s;
  border-radius: 25px;
}

.slider:before {
  position: absolute;
  content: "";
  height: 19px; width: 19px;
  left: 3px; bottom: 3px;
  background-color: white;
  transition: .4s;
  border-radius: 50%;
}

input:checked + .slider {
  background-color: #ff6600;
}

input:checked + .slider:before {
  transform: translateX(25px);
}

/* HERO VIDEO */
.hero { position: relative; width: 100%; height: 80vh; overflow: hidden; }
.hero-video { width: 100%; height: 100%; object-fit: cover; }

/* WELCOME */
.welcome { text-align: center; padding: 40px 20px; background: #f5f5f5; transition: background 0.3s, color 0.3s; }
.welcome h1 { font-size: 3em; margin-bottom: 10px; color: #222; }
.welcome p { font-size: 1.2em; margin-bottom: 20px; color: #555; }
.welcome .cta-button { padding: 12px 25px; background: #ff6600; color: white; text-decoration: none; border-radius: 5px; font-weight: 600; transition: 0.3s; }
.welcome .cta-button:hover { background: #e65c00; }

/* SECTIONS */
.section-title { text-align: center; margin: 40px 0; }
.room-container { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.room-card { width: 300px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); border-radius: 10px; overflow: hidden; text-align: center; background: white; transition: 0.3s; }
.room-card img { width: 100%; }
.room-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.2); }

.gallery { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.gallery img { width: 300px; border-radius: 10px; }

.reviews-container { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.review-card { width: 250px; padding: 15px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); border-radius: 10px; background: white; text-align: center; transition: background 0.3s, color 0.3s; }

/* BOOKING FORM */
.booking-form { display: flex; flex-direction: column; max-width: 400px; margin: 0 auto 40px auto; gap: 15px; }
.booking-form input, .booking-form select, .booking-form button {
  padding: 10px;
  font-size: 1em;
  border-radius: 5px;
  border: 1px solid #ccc;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.booking-form button { background: #ff6600; color: white; border: none; cursor: pointer; transition: 0.3s; }
.booking-form button:hover { background: #e65c00; }

/* FLOAT BUTTONS */
.contact-buttons { position: fixed; bottom: 15px; right: 15px; display: flex; flex-direction: column; gap: 10px; z-index: 100; }
.call-btn, .whatsapp { background: black; color: white; padding: 10px; border-radius: 50%; display: flex; justify-content: center; align-items: center; text-decoration: none; transition: 0.3s; }
.call-btn:hover, .whatsapp:hover { transform: scale(1.1); }
.whatsapp img { width: 20px; height: 20px; }

/* FOOTER */
footer { text-align: center; padding: 15px; background: #222; color: white; margin-top: 30px; }

/* RESPONSIVE */
@media (max-width: 768px) {
  .room-card, .gallery img, .review-card { width: 90%; }
  .welcome h1 { font-size: 2em; }
  .welcome p { font-size: 1em; }

  /* Hamburger menu */
  .nav-toggle { display: block; }
  #nav-links { 
    position: fixed; top: 0; right: -100%; height: 100%; width: 70%; background: #fff; flex-direction: column; padding: 40px 20px; gap: 15px; transition: 0.3s; z-index: 1000;
  }
  #nav-links.active { right: 0; }
  #nav-close { display: block; }

  .hero { height: 50vh; }
}

@media (max-width: 480px) {
  .welcome h1 { font-size: 1.5em; }
  .welcome p { font-size: 0.9em; }
  .booking-form { width: 90%; }
}
