/* ===== Variables y base ===== */
:root {
  --bg: #f0f4f8;
  --text: #2e3a46;
  --ice: rgba(224,247,250,0.2);
  --ice-strong: rgba(224,247,250,0.35);
  --glass-border: rgba(255,255,255,0.3);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

/* ===== Fondo general (bosque nevado) ===== */
body {
  background: url('assets/bosque-nevado.jpg') center/cover fixed no-repeat;
  color: var(--text);
  font-family: 'Montserrat', sans-serif;
}

/* ===== Header con logo ===== */
#main-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  background: rgba(255,255,255,0.15);
  border-bottom: 1px solid var(--glass-border);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1002;
}

.logo-header {
  height: 50px;
  width: auto;
}

/* ===== Botón circular Menú ===== */
.menu-circle {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 1003;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1px solid var(--glass-border);
  background: rgba(255,255,255,0.2);
  color: #e0f7fa;
  font-size: 22px;
  font-weight: 700;
  cursor: pointer;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 6px 24px rgba(0,0,0,.2);
  transition: .3s;
}
.menu-circle:hover {
  transform: scale(1.05);
  background: rgba(255,255,255,0.35);
}

/* ===== Sidebar ===== */
.sidebar {
  position: fixed;
  top: 0;
  right: -260px;
  width: 260px;
  height: 100%;
  padding: 80px 20px 20px;
  background: rgba(255,255,255,0.15);
  border-left: 1px solid var(--glass-border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: right 0.4s cubic-bezier(0.77, 0, 0.175, 1);
  z-index: 1001;
}
.sidebar.open {
  right: 0;
}
.sidebar ul { list-style: none; }
.sidebar li { margin: 18px 0; }
.sidebar a {
  display: block;
  padding: 10px 12px;
  border-radius: 10px;
  color: #e0f7fa;
  text-decoration: none;
  font-weight: 700;
  transition: .25s;
}
.sidebar a:hover {
  background: var(--ice);
  transform: translateX(6px);
}
/* ===== Animación de los ítems del sidebar ===== */
.sidebar li {
  opacity: 0;
  transform: translateX(20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.sidebar.open li { opacity: 1; transform: translateX(0); }
.sidebar.open li:nth-child(1) { transition-delay: 0.1s; }
.sidebar.open li:nth-child(2) { transition-delay: 0.2s; }
.sidebar.open li:nth-child(3) { transition-delay: 0.3s; }
.sidebar.open li:nth-child(4) { transition-delay: 0.4s; }
.sidebar.open li:nth-child(5) { transition-delay: 0.5s; }

/* ===== Overlay ===== */
#overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 900;
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}
#overlay.active { display: block; opacity: 1; }

/* ===== Hero con foto Cinco Hermanos ===== */
#hero {
  min-height: 100vh;
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  text-align: center;
  color: #fff;
  background: url('assets/cinco-hermanos.jpg') center/cover no-repeat fixed;
}
#hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.35);
  z-index: 0;
}
.hero-content {
  position: relative;
  z-index: 1;
  padding: 0 16px 60px;
}
#hero h2 {
  font-size: clamp(1.1rem, 2.2vw, 1.6rem);
  font-weight: 400;
  margin-bottom: 20px;
  text-shadow: 0 2px 6px rgba(0,0,0,.6);
}
.hero-buttons {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}

/* ===== Botones Glass ===== */
.glass-btn {
  padding: 16px 32px;
  border-radius: 30px;
  border: 1px solid var(--glass-border);
  background: var(--ice);
  color: #e0f7fa;
  font-weight: 700;
  font-size: 1.1rem;
  cursor: pointer;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: background .25s, transform .25s, box-shadow .25s;
}
.glass-btn:hover {
  background: var(--ice-strong);
  transform: scale(1.05);
  box-shadow: 0 10px 24px rgba(0,0,0,.2);
}

/* ===== Secciones ===== */
section { padding: 64px 20px; text-align: center; }
section h1 {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  margin-bottom: 10px;
}
section p {
  max-width: 760px;
  margin: 0 auto 32px;
}

/* ===== Cards Glass ===== */
.card-glass {
  background: rgba(255,255,255,0.15);
  border: 1px solid var(--glass-border);
  border-radius: 16px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 6px 24px rgba(0,0,0,.12);
}

/* ===== Destinos ===== */
.destinos-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(auto-fit,minmax(260px,1fr));
}
.destino { padding: 18px; }
.destino h2 {
  margin-bottom: 10px;
  color: #0f4c5c;
  font-family: 'Playfair Display', serif;
}
.imagenes-destino {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
.placeholder-img {
  width: 110px;
  height: 110px;
  border-radius: 12px;
  background: var(--ice);
  border: 1px dashed var(--glass-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
  transition: .25s;
  cursor: pointer;
}
.placeholder-img:hover {
  transform: scale(1.08);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}

/* ===== Formularios ===== */
.form-glass {
  max-width: 760px;
  margin: 0 auto 26px;
  padding: 16px;
  border-radius: 16px;
  background: rgba(255,255,255,0.15);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.form-group {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  align-items: center;
}
input, select, textarea {
  flex: 1 1 220px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--glass-border);
  background: var(--ice);
  color: var(--text);
  font-size: 14px;
  outline: none;
}
textarea { flex-basis: 100%; resize: vertical; min-height: 120px; }

/* ===== Carrito ===== */
#carrito {
  max-width: 760px;
  margin: 0 auto;
  padding: 18px;
}
#carrito h2 { margin-bottom: 10px; font-family: 'Playfair Display', serif; }
#carrito ul { list-style: none; margin-bottom: 10px; padding: 0; }
#carrito li { padding: 8px 0; border-bottom: 1px dashed var(--glass-border); }
#carrito .total { font-weight: 700; }

/* ===== Reviews ===== */
.muro-reviews {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(auto-fit,minmax(260px,1fr));
  margin-bottom: 28px;
}
.review { padding: 16px; text-align: left; }
.galeria-reviews {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit,minmax(100px,1fr));
  margin-bottom: 20px;
}

/* ===== Footer ===== */
#footer {
  padding: 40px 20px;
  text-align: center;
  background: rgba(255,255,255,0.15);
  border-top: 1px solid var(--glass-border);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
#footer h2 {
  font-family: 'Playfair Display', serif;
  margin-bottom: 18px;
}
.redes-sociales {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.red-btn {
  width: 45px;
  height: 45px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  text-decoration: none;
  color: #fff;
  font-size: 20px;
  background: var(--ice);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: .25s;
}
.red-btn:hover { transform: scale(1.1); }
.red-btn.tiktok { background-color: #000; }
.red-btn.instagram { background-color: #E1306C; }
.red-btn.facebook { background-color: #1877F2; }
.red-btn.whatsapp { background-color: #25D366; }

/* ===== Animaciones fade-in ===== */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .8s ease-out, transform .8s ease-out;
}
.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===== Responsive ===== */
@media (max-width: 768px) {
  .hero-buttons { flex-direction: column; }
}

/* ===== Estilo para páginas legales ===== */
.legal-page {
  max-width: 900px;
  margin: 2rem auto;
  padding: 2rem;
  text-align: left;
  line-height: 1.7;
  font-size: 1rem;
}
.legal-page h1 {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  margin-bottom: 1.5rem;
  text-align: center;
}
.legal-page h2 {
  font-size: 1.3rem;
  margin-top: 1.8rem;
  margin-bottom: 0.8rem;
  color: #0f4c5c;
  font-family: 'Playfair Display', serif;
}
.legal-page p {
  margin-bottom: 1rem;
  text-align: justify;
}
.legal-back {
  display: inline-block;
  margin-top: 2rem;
  padding: 12px 24px;
  border-radius: 30px;
  border: 1px solid var(--glass-border);
  background: var(--ice);
  color: #0f4c5c;
  font-weight: 700;
  text-decoration: none;
  transition: background .25s, transform .25s, box-shadow .25s;
}
.legal-back:hover {
  background: var(--ice-strong);
  transform: scale(1.05);
  box-shadow: 0 10px 24px rgba(0,0,0,.2);
}

/* ===== Selector de idioma ===== */
.header-controls { display: flex; align-items: center; gap: 10px; }
.lang-select {
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid var(--glass-border);
  background: rgba(255,255,255,0.2);
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  appearance: none;
}
.lang-select, .menu-circle { height: 38px; }

/* ===== Ajustes personalizados de Contacto ===== */
#contacto input::placeholder,
#contacto textarea::placeholder { color: #fff; opacity: 0.9; }
#contacto input,
#contacto select,
#contacto textarea { color: #fff; }
#contacto select option { color: #000; }
#form-contacto .form-header {
  text-align: center;
  margin-bottom: 16px;
}
#form-contacto .titulo-contacto {
  font-size: 1.9rem;
  margin-bottom: 6px;
  color: #fff;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
#form-contacto .subtitulo-contacto {
  font-size: 1rem;
  color: #fff;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
#form-contacto .form-divider {
  border: none;
  height: 1px;
  background: rgba(255,255,255,0.3);
  margin: 20px auto 25px;
  width: 80%;
}

/* ===== Títulos y subtítulos globales (excepto hero) ===== */
section:not(#hero) h1,
section:not(#hero) h2,
section:not(#hero) p {
  color: #fff !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
/* ===== Labels en formularios ===== */
#form-reserva label,
#form-contacto label {
  color: #fff !important;
  font-weight: 600;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
/* ===== Mensaje de éxito del formulario ===== */
#success-message {
  display: none; /* oculto por defecto */
  margin-top: 18px;
  padding: 12px 18px;
  border-radius: 12px;
  background: rgba(0, 255, 128, 0.15); /* verde suave translúcido */
  border: 1px solid rgba(0, 255, 128, 0.4);
  color: #a8ffcc; /* verde claro para contraste */
  font-weight: 600;
  text-align: center;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  transition: opacity 0.4s ease;
}
/* ===== Mensaje de error del formulario ===== */
#error-message {
  display: none; /* oculto por defecto */
  margin-top: 18px;
  padding: 12px 18px;
  border-radius: 12px;
  background: rgba(255, 0, 0, 0.15); /* rojo suave translúcido */
  border: 1px solid rgba(255, 0, 0, 0.4);
  color: #ffb3b3; /* rojo claro para contraste */
  font-weight: 600;
  text-align: center;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  transition: opacity 0.4s ease;
}
/* ===== Footer: forzar texto en blanco ===== */
#footer,
#footer h1,
#footer h2,
#footer p,
#footer a {
  color: #fff !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
/* ===== Footer: forzar texto en blanco ===== */
#footer,
#footer h1,
#footer h2,
#footer p,
#footer a {
  color: #fff !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}

/* Links del footer con efecto hover */
#footer a {
  transition: color 0.3s ease;
}

#footer a:hover {
  color: #e0f7fa; /* celeste brillante en hover */
}
/* ===== Ajustes para páginas legales ===== */
.legal-page,
.legal-page h1,
.legal-page h2,
.legal-page p {
  color: #fff !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}

/* Botón de volver al inicio */
.legal-back {
  color: #fff !important;
  border-color: rgba(255,255,255,0.4);
}
.legal-back:hover {
  color: #e0f7fa; /* celeste brillante en hover */
  background: rgba(255,255,255,0.2);
}