*{margin:0;padding:0;box-sizing:border-box}
body{
font-family:'Arial',sans-serif;
line-height:1.6;
overflow-x:hidden;
transition:background 0.3s,color 0.3s;
}
/* ----- logo ----- */
.logo img {
  height: 50px;   /* Ajusta el tamaño según lo necesites */
  width: auto;
  display: block;
}


/* ----- MODO CLARO ----- */
body.light-mode{
  background:#ffffff;
  color:#222;
}
  body.light-mode .navbar{background:rgba(255,255,255,0.95)}
  body.light-mode .nav-links a{color:#2c5aa0}
  body.light-mode .nav-links a:hover{color:#2c5aa0}
  body.light-mode .hero{color:#fff}
  body.light-mode .about{background:#f9f9f9;color:#222}
  body.light-mode .feature-card{background:#fff;color:#222}
  body.light-mode .rooms{background:#f2f2f2;color:#222}
  body.light-mode .room-card{background:#fff;color:#222}
  body.light-mode .contact{background:linear-gradient(135deg,#eaeaea,#fff);color:#222}
  body.light-mode .modal-content{background:#fff;color:#222}
  body.light-mode .footer{background:#f1f1f1;color:#555}

  /* ----- MODO OSCURO ----- */
body.dark-mode{
  background:#121212;
  color:#eaeaea;
}

  body.dark-mode .navbar{background:rgba(18,18,18,0.95)}
  body.dark-mode .nav-links a{color:#eaeaea}
  body.dark-mode .nav-links a:hover{color:#2c5aa0}
  body.dark-mode .about{background:#1e1e1e;color:#eaeaea}
  body.dark-mode .feature-card{background:#2a2a2a;color:#eaeaea}
  body.dark-mode .rooms{background:#121212;color:#eaeaea}
  body.dark-mode .room-card{background:#2a2a2a;color:#eaeaea}
  body.dark-mode .contact{background:linear-gradient(135deg,#1a1a1a,#2a2a2a);color:#eaeaea}
  body.dark-mode .modal-content{background:#1e1e1e;color:#eaeaea}
  body.dark-mode .footer{background:#0d0d0d;color:#ccc}
  body.dark-mode .hero::before {opacity: 1; /* 👈 aparece suavemente */}


  /* Barra de navegacion Navbar */
.navbar{
  position:fixed;top:0;width:100%;
  backdrop-filter:blur(10px);
  z-index:1000;padding:1rem 0;
  transition:all 0.3s ease;
}

.navbar.scrolled{
  box-shadow:0 2px 20px rgba(0,0,0,0.2);
}

.nav-container{
  max-width:1200px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;
  padding:0 2rem;
}

  .logo{font-size:1.8rem;font-weight:bold;color:#2c5aa0;text-decoration:none}
  .nav-links{display:flex;list-style:none;gap:2rem}
  .nav-links a{text-decoration:none;font-weight:500;transition:color 0.3s ease}
  .menu-toggle {display: none; flex-direction: column; justify-content: space-between; width: 25px; height: 20px; cursor: pointer; z-index: 3000; /* 👈 más alto que el menú */position: relative;}
  .menu-toggle span {display: block; height: 3px; background: currentColor; border-radius: 3px;}

  
  /* Hero */
.hero{
  height:100vh;
  background:linear-gradient(rgba(0,0,0,0.6),rgba(0,0,0,0.6)), url('Fotos/Modo_Claro.webp') center/cover no-repeat;
  display:flex;align-items:center;justify-content:center;text-align:center;position:relative;
}

  .hero::before {content: "";position: absolute;inset: 0;background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('Fotos/Modo_Oscuro.webp') center/cover no-repeat; opacity: 0;transition: opacity 1s ease; /* 👈 transición suave */z-index: 0;}
  .hero-content {position: relative;z-index: 1; /* el texto siempre sobre las fotos */}
  .hero-content{color:white;max-width:800px;padding:2rem;animation:fadeInUp 1s ease-out}
  .hero h1{font-size:3.5rem;margin-bottom:1rem;font-weight:300;letter-spacing:2px}
  .hero-subtitle{font-size:1.5rem;margin-bottom:2rem;opacity:.9}
  .hero-description{font-size:1.1rem;margin-bottom:2rem;opacity:.8;line-height:1.8}
  .ocean-icons{font-size:2rem;margin:1rem 0;letter-spacing:1rem}

  .cta-button{
    display:inline-block;background:linear-gradient(45deg,#2c5aa0,#4f92ff);color:white;
    padding:1rem 2rem;text-decoration:none;border-radius:50px;font-weight:bold;font-size:1.1rem;
    transition:all 0.3s ease;box-shadow:0 4px 15px rgba(44,90,160,0.3);
  }

  .cta-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(44,90,160,0.4)}
  .scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);color:white;opacity:.7;animation:bounce 2s infinite}

  /* Galeria de fotos */
.gallery-slider {padding: 3rem 1rem;text-align: center;}

.gallery-slider .swiper {
  max-width: 1200px; /* límite de ancho */
  margin: 0 auto;   /* centra el carrusel */
}

/* Ajuste en móviles */
@media (max-width: 768px) {
  .gallery-slider img {
    height: 250px;
    object-fit: cover;
  }

  .gallery-slider .swiper {
    max-width: 100%; /* en móviles sí ocupa todo */
  }
}
.light-mode .swiper-button-next,
.light-mode .swiper-button-prev {color: #fff;}

.dark-mode .swiper-button-next,
.dark-mode .swiper-button-prev {color: #fff;}

/* Lightbox Modal */
.lightbox-modal {
  display: none;
  position: fixed;
  z-index: 10000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.9);
  cursor: pointer;
}

.lightbox-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%;
  max-height: 90%;
  border-radius: 10px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

.lightbox-content img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 10px;
}

.lightbox-close {
  position: absolute;
  top: 20px;
  right: 30px;
  color: white;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
  z-index: 10001;
  transition: opacity 0.3s;
}

.lightbox-close:hover {opacity: 0.7;}

/* Botones de navegación del lightbox */
.lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.2);
  color: white;
  border: none;
  font-size: 30px;
  padding: 15px 20px;
  cursor: pointer;
  border-radius: 5px;
  transition: background 0.3s;
  z-index: 10001;
}

.lightbox-nav:hover {background: rgba(255, 255, 255, 0.4);}
.lightbox-prev {left: 20px;}
.lightbox-next {right: 20px;}

/* Contador de imágenes */
.lightbox-counter {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: white;
  font-size: 16px;
  background: rgba(0, 0, 0, 0.5);
  padding: 10px 15px;
  border-radius: 20px;
  z-index: 10001;
}

/* Cursor pointer para imágenes del slider */
.gallery-slider img {
  width: 100%;
  height: 450px;
  object-fit: cover;
  border-radius: 10px;
  cursor: pointer;
  transition: transform 0.3s ease;
}

/* Responsive para lightbox */
@media (max-width: 768px) {
  .lightbox-nav {
    font-size: 24px;
    padding: 10px 15px;
  }
  
  .lightbox-prev {
    left: 10px;
  }
  
  .lightbox-next {
    right: 10px;
  }
  
  .lightbox-close {
    top: 10px;
    right: 15px;
    font-size: 30px;
  }
}

/*Seccion de video*/
.video-highlight {
  padding: 4rem 1rem;
  text-align: center;
  transition: background 0.3s, color 0.3s;
}

.video-highlight .section-title {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

.video-highlight .section-subtitle {
  font-size: 1.2rem;
  margin-bottom: 2rem;
  opacity: 0.8;
}

.video-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  max-width: 1000px; /* Añade esta línea para limitar el ancho */
  margin: 0 auto; /* Centra el video */
}

.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 12px;
}

/* --- Modo claro --- */
body.light-mode .video-highlight {
  background: #ffffffba;
  color: #222;
}

body.light-mode .video-highlight .section-title {
  color: #2c5aa0;
}

/* --- Modo oscuro --- */
body.dark-mode .video-highlight {
  background: #1a1a1a;
  color: #f5f5f5;
}

body.dark-mode .video-highlight .section-title {
  color: #4ea3ff; /* azul elegante en oscuro */
}
/* Sobre Nosotros */
.about{padding:3rem 0}
.container{max-width:1200px;margin:0 auto;padding:0 2rem}

/* Contenedor específico para la sección About */
.about .container {
  max-width: 1800px;
}

.section-title{text-align:center;font-size:2.5rem;color:#2c5aa0;margin-bottom:1rem;font-weight:300}
.section-subtitle{text-align:center;font-size:1.2rem;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}
.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin-top:3rem}
.feature-card{padding:3rem;border-radius:25px;box-shadow:0 12px 40px rgba(0,0,0,0.15);text-align:center;transition:transform .3s ease;}
.feature-card:hover{transform:translateY(-8px)}
.feature-card img {width: 100% !important; height: 300px; object-fit: cover;border-radius: 20px !important;margin: 25px 0 !important;}
.feature-title{font-size:1.6rem;color:#2c5aa0;margin-bottom:2rem}
.feature-card p {font-size: 1.1rem;line-height: 1.6;}

  /* Habitaciones */
  .rooms{padding:5rem 0}
  .rooms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:3rem;margin-top:3rem}
  .room-card{border-radius:15px;overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,0.1); transition:all .3s ease;cursor:pointer;border:none;width:100%;text-align:left;}
  .room-card:hover{transform:translateY(-10px);box-shadow:0 15px 40px rgba(44,90,160,0.3)}
  .room-card.active{transform:scale(1.02);box-shadow:0 20px 50px rgba(44,90,160,0.4)}
  .room-image{height:250px;overflow:hidden}
  .room-image img{width:100%;height:250px;object-fit:cover}
  .room-content{padding:3rem}
  .room-title{font-size:1.4rem;color:#2c5aa0;margin-bottom:1rem}
  .room-amenities{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;font-size:1.1rem}

  /* Contacto */
  .contact{padding:5rem 0}
  .contact-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:3rem;align-items:center}
  .contact-info{text-align:center}
  .contact-item {display: flex; align-items: flex-start; justify-content: center; margin-bottom: 1.5rem;font-size: 1.1rem;line-height: 1.4;}
  .contact-item span {margin-left: 0.8rem; display: flex; align-items: center;}
  .whatsapp-btn{display:inline-block;background:#25d366;color:white;padding:1rem 2rem;text-decoration:none;border-radius:50px;font-weight:bold;margin-top:1.5rem;transition:all .3s ease}
  .whatsapp-btn:hover{background:#22c55e;transform:translateY(-2px)}

  /* Pie de pagina */
.footer{text-align:center;padding:2rem 0}

  /* Animations */
  @keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
  @keyframes bounce{
    0%,20%,50%,80%,100%{transform:translateX(-50%) translateY(0)}
    40%{transform:translateX(-50%) translateY(-10px)}
    60%{transform:translateX(-50%) translateY(-5px)}
  }

  /* Responsive */
@media(max-width:1400px){
  .features-grid{grid-template-columns:repeat(2,1fr);gap:2rem}
}

@media(max-width:768px){
  .menu-toggle {
  display:flex;
}
  .nav-links {
    position: fixed;
    top: 0;
    left: -100%;
    height: 100vh;
    width: 100%;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: left .3s ease;
    background: rgba(255,255,255,0.85); /* 👈 Fondo sólido modo claro */
  }

  body.dark-mode .nav-links {
    background: rgba(18,18,18,0.85); /* 👈 Fondo sólido modo oscuro */
  }

  .nav-links.active {
    left: 0;
  }
  
  .features-grid{grid-template-columns:1fr}
}

  /* Modal */
  .modal{display:none;position:fixed;z-index:2000;left:0;top:0;width:100%;height:100%;overflow:auto;background:rgba(0,0,0,0.9);padding-top:60px}
  .modal-content{margin:5% auto;padding:30px;border:1px solid #333;width:85%;max-width:700px;border-radius:10px;animation:fadeInUp 0.4s ease}
  .modal .close{color:#aaa;float:right;font-size:28px;font-weight:bold}
  .modal .close:hover{color:white;cursor:pointer}
  .modal-room-details{margin-top:1rem}
  .detail-item{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}
  .detail-icon{font-size:1.5rem}
  .detail-text{flex:1}
  .detail-label{font-weight:bold;color:#2c5aa0;margin-bottom:0.2rem}

  /* Swiper en modal de habitaciones */
.modal-room-slider {
  margin: 20px 0;
}

.modal-room-slider .swiper {
  border-radius: 10px;
  overflow: hidden;
}

.modal-room-slider .swiper-slide img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  border-radius: 0;
  margin: 0 !important;
}

.modal-room-slider .swiper-button-next,
.modal-room-slider .swiper-button-prev {
  color: #fff;
  background: rgba(0, 0, 0, 0);
  border-radius: 50%;
  width: 40px;
  height: 40px;
}

.modal-room-slider .swiper-pagination-bullet {
  background: #2c5aa0;
}

/* Responsive para modal slider */
@media (max-width: 768px) {
  .modal-room-slider .swiper-slide img {
    height: 250px !important;
  }
}

  /* Modal responsive para móviles */
@media (max-width: 768px) {
  .modal-content {
    margin: 2% auto;
    padding: 20px;
    width: 95%;
    max-width: none;
    max-height: 90vh;
    overflow-y: auto;
  }
  
  /* Imágenes del modal más pequeñas en móvil */
  .modal-content img {
    height: 200px !important; /* Reducir de 400px a 200px */
    object-fit: cover;
    margin: 10px 0 !important;
  }
  
  /* Título del modal más pequeño */
  .modal-content h2 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
  }
  
  /* Texto más compacto */
  .modal-content p {
    font-size: 0.9rem;
    line-height: 1.4;
    margin-bottom: 1rem;
  }
  
  /* Detalles de habitación más compactos */
  .detail-item {
    gap: 0.5rem;
    margin-bottom: 0.5rem;
  }
  
  .detail-icon {
    font-size: 1.2rem;
  }
  
  .detail-text {
    font-size: 0.9rem;
  }
  
  /* Botón WhatsApp más pequeño */
  .whatsapp-btn {
    padding: 0.8rem 1.5rem;
    font-size: 0.9rem;
  }
}

/* Botón tema */
#themeToggle {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: #2c5aa0;
  border: none;
  border-radius: 50%;
  padding: 25px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
  z-index: 9999;
}

#themeToggle img {width: 50px;height: 50px;pointer-events: none;}

@media (max-width: 768px) {
  #themeToggle {
    padding: 12px;       /* más pequeño */
    bottom: 15px;        /* un poco más arriba */
    right: 15px;
    z-index: 9999;
  }

  #themeToggle img {
    width: 28px;         /* ícono más chico */
    height: 28px;
  }
}
 
  /* Modal Promoción */
  .modal-promo {
      display: none;
      position: fixed;
      z-index: 2000;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      background: rgba(0,0,0,0.6);
      justify-content: center;
      align-items: center;
    }

  .modal-promo-content {
      background: #fff;
      padding: 2rem;
      border-radius: 12px;
      text-align: center;
      max-width: 400px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.3);
      animation: fadeIn 0.5s ease;
    }

  .modal-promo-content h2 {
      margin-bottom: 1rem;
      color: #2c5aa0;
    }

  .modal-promo-content p {
      margin-bottom: 1.5rem;
      font-size: 1.1rem;
    }

  .promo-btn {
      display: inline-block;
      padding: 0.8rem 1.2rem;
      background: #2c5aa0;
      color: #fff;
      border-radius: 8px;
      text-decoration: none;
      font-weight: bold;
      transition: background 0.3s ease;
    }

  .promo-btn:hover {
      background: #1e4073;
    }

  .promo-close {
      position: absolute;
      top: 10px;
      right: 15px;
      font-size: 1.5rem;
      cursor: pointer;
    }

  @keyframes fadeIn {
      from {opacity: 0; transform: scale(0.9);}
      to {opacity: 1; transform: scale(1);}
    }

    /* Ajustes de modal para modo oscuro */
  .modal-promo-content {
      background: #fff; /* fondo blanco por defecto */
      color: #333;      /* texto oscuro */
      position: relative; /* Para que la X se posicione dentro */
    }
  body.dark-mode .modal-promo-content {
      background: #1e1e1e; /* fondo oscuro */
      color: #f5f5f5;      /* texto claro */
    }
  body.dark-mode .modal-promo-content h2 {
      color: #4ea3ff; /* azul claro llamativo */
    }
  body.dark-mode .promo-btn {
      background: #4ea3ff;
    }
  body.dark-mode .promo-btn:hover {
      background: #2c82d3;
    }