/* ==========================================================================
   1. RESET GENERAL Y CONFIGURACIÓN BASE
   ========================================================================== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    width: 100%;
    overflow-x: hidden;
    font-family: 'Roboto', sans-serif;
    background-color: #ffffff;
    color: #333333;
    line-height: 1.6;
}

/* ==========================================================================
   2. SECCIÓN DE CABECERA (ESTILOS VERTICALES PURIFICADOS)
   ========================================================================== */

/* Contenedor Maestro de la Cabecera */
.cabecera-principal {
  position: relative; /* Permite que los textos y barras floten sobre la foto */
  width: 100%;
  min-height: 450px; /* Mantiene el alto exacto de la imagen que te gustó */
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
}

/* Control absoluto de la foto de fondo (Efecto capa inferior) */
.cabecera-foto-fondo {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  filter: saturate(1.25) contrast(1.05); /* ¡Añade esta línea! */
  object-fit: cover; /* Adapta la foto de forma panorámica perfecta sin deformar */
  object-position: center 38%; /* Enfoca directamente tus hermosas montañas nevadas ocultando techos */
  z-index: 1; /* La mantiene detrás de todo el contenido */
}

/* Barra Negra Superior (Tu Versículo de Protección) */
.barra-aviso {
  position: relative;
  z-index: 2; /* Se sobrepone a la foto de fondo */
  background-color: #000000; /* Fondo negro sólido conforme a tu anotación */
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 20px;
}

.versiculo-contenedor {
  margin: 0 auto 0 0; /* Cambia el último 'auto' por '0' para pegarlo a la izquierda */
}

.versiculo-texto {
  color: #dddddd; /* Letra blanca/gris claro elegante */
  font-style: italic;
  font-size: 0.75rem;
  height: 28px;
  display: flex;
  align-items: center;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Franja superior blanca semitransparente (Tu zona de contacto y sellos) */
.cabecera-corporativa {
  position: relative;
  z-index: 2; /* Se sobrepone a la foto de fondo */
  background-color: rgba(255, 255, 255, 0.40); /* Blanco con 40% de opacidad unificado */
  backdrop-filter: blur(5px); /* Efecto moderno de desenfoque de vidrio */
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 15px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.cabecera-interior {
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: center;
  justify-content: space-between;
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}

@media (min-width: 850px) {
  .cabecera-interior {
    flex-direction: row; /* Alinea horizontalmente en computadoras */
    gap: 20px;
  }
}

/* Imagen del Logotipo */
.marca-logo {
  margin: 0;
}

.marca-imagen {
  display: block;
  width: 200px; /* Tamaño controlado para evitar desbordes */
  height: auto;
}

/* Datos de Contacto Tipográficos Limpios */
.contacto-cabecera {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  color: #111111; /* Texto oscuro para legibilidad sobre el fondo blanco translúcido */
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  font-style: normal;  
}

@media (min-width: 850px) {
  .contacto-cabecera {
    align-items: flex-start; /* Alinea a la izquierda en PC */
  }
}

/* Iconos de contacto limpios optimizados para Font Awesome */
.contacto-icono-limpio {
  display: inline-block;
  width: 20px; /* Un poco más de espacio para que respire el icono */
  margin-right: 6px;
  text-align: center;
  vertical-align: middle; /* Alinea perfectamente el icono con el texto */
  font-size: 1rem; /* Tamaño idóneo para los iconos */
}
/* Enlace contenedor de WhatsApp para mantener formato limpio */
.enlace-whatsapp-cabecera {
  color: inherit; 
  text-decoration: none; 
  display: inline-flex; 
  align-items: center;
}

/* Dibujo específico para el ícono de WhatsApp desde tu carpeta images */
.ico-wssp {
  display: inline-block;
  width: 21px;  
  height: 21px; 
  background-image: url("../images/curahuasi-whatsapp.svg"); /* <-- Aquí se llama a la imagen */
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
}

.ico-tel::before  { content: "📱"; filter: grayscale(100%); opacity: 0.7; }
.ico-mail::before { content: "✉"; opacity: 0.7; }
.ico-web::before  { content: "🌐"; filter: grayscale(100%); opacity: 0.7; }

/* Contenedor de Sellos de Acreditación Oficiales */
.acreditaciones-contenedor {
  display: flex;
  align-items: center;
  gap: 15px;
}
/* 1. ESTILOS BASE PARA TODOS LOS LOGOS (Se mantiene unificado) */
.acreditacion-mincetur, 
.acreditacion-pais, 
.acreditacion-promperu, 
.acreditacion-ytuqueplanes { /* <-- Asegúrate de que esta sea la clase de Y Tú Qué Planes */
  width: auto;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
}

/* 2. CONTROL INDIVIDUAL (Aquí ajustas según lo que necesitas) */

.acreditacion-mincetur {
  height: 75px; /* La más grande, como deseas */
}

.acreditacion-promperu { /* Marca Perú */
  height: 63px; /* Subimos su tamaño para equipararla visualmente */
}

.acreditacion-ytuqueplanes {
  height: 70px; /* A la par con Marca Perú */
}

.acreditacion-pais {
  height: 95px; /* Un poco más pequeña si es un logo muy vertical o cuadrado */
}
/* FIN FIN FIN Contenedor de Sellos de Acreditación Oficiales */

/* Texto Flotante de Bienvenida (Sin cajas blancas, letras integradas en el paisaje) */
.bienvenida-contenido-hero {
  position: relative;
  z-index: 2; /* Se sobrepone a la foto de fondo */
  max-width: 850px;
  margin: 50px auto 1px auto; /* Centra y empuja hacia el área inferior verde de tu foto */
  top: 50px; /* Aumenta este número para bajarlo más (ej. 60px, 80px) */
  transition: top 0.3s ease; /* Opcional: para que el cambio sea suave */    
  padding: 0 20px;
  text-align: center;
  color: #ffffff; /* Texto blanco puro */
  box-sizing: border-box;
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; /* Tipografía principal del bloque */
}

.bienvenida-titulo-seo {
  font-size: 3.0rem;
  font-weight: 700; /* Sans-serif geométrica con grosor marcado */
  margin: 0 0 6px 0;
  letter-spacing: -0.5px;
  text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.9); /* Sombra pesada negra para legibilidad perfecta */
}

.bienvenida-slogan-seo {
  font-size: 1.9rem;
  font-weight: 500; /* Variante Sans-serif geométrica Light (delgada) */
  margin: 0 0 15px 0;
  /*text-transform: uppercase;*/
  letter-spacing: 1.1px; /* Separación expandida elegante para el estilo Light */
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.9);
}

.bienvenida-extracto-seo {
  font-size: 1.1rem;
  line-height: 1.6;
  margin: 0;
}

/* ==========================================================================
   6. TÍTULO GENERAL DEL CATÁLOGO DE PROGRAMAS
   ========================================================================== */
.catalogo-titulo-general {
    font-family: 'BreePeru_Bold', 'Oswald', sans-serif;
    font-size: 2.4rem;
    color: #098d28;
    text-align: center;
    margin: 0 auto 20px auto;
    text-transform: uppercase;
    letter-spacing: 2px;
    width: 100%;
    display: block;
    padding-bottom: 7px;
  /*  border-bottom: 3px solid #098d28; */
}
/* ==========================================================================
   5. CONTENEDOR WEB PRINCIPAL E INTRODUCCIÓN (SEO LOCAL)
   ========================================================================== */
/* Regla maestra para que todo el contenido del main use el 90% */
.contenido-web {
  width: 90%;          /* Ocupa exactamente el 90% de la pantalla solicitado */
  max-width: 1200px;   /* Tope elegante para pantallas gigantes de PC */
  margin: 20px auto 40px auto; /* 20px de margen superior (margin-top), centrado automático a los lados */
  box-sizing: border-box;
}

/* Estilos de formato para el extracto de introducción */
.bienvenida-extracto-seo {
  font-family: 'Roboto', Arial, sans-serif;
  font-size: 1.15rem;  
  line-height: 1.7;    
  color: #333333;      
  text-align: justify;  
  margin-bottom: 30px; 
}
/* ==========================================================================
   FICHA DE PROGRAMA - PARTE 1: ESTRUCTURA GENERAL Y BANNER HERO
   ========================================================================== */
/* Contenedor principal de la ficha del programa */
.ficha-programa {
  width: 100%;
  background-color: #ffffff;
  border-radius: 10px;
  /*overflow: hidden;*/
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.01);
  border: 1px solid #eef2f5;
  margin-bottom: 0;
  padding-bottom: 0;
  box-sizing: border-box;
 
}

/* Banner superior panorámico */
.programa-banner-hero {
  position: relative;
  width: 100%;
  height: 250px;
  overflow: hidden;
  background-color: #111111;
}

.banner-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Textos integrados encima del banner */
.banner-hero-textos {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 20px;
  box-sizing: border-box;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.0));
}

.banner-hero-titulo {
  font-family: 'Montserrat', sans-serif;
  font-size: 2.8rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 5px 0;
  letter-spacing: 1px;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.8);
}

.banner-hero-duracion {
  font-family: 'Roboto', sans-serif;
  font-size: 2rem;
  font-weight: 300;
  color: #ffffff;
  margin: 0;
  letter-spacing: 0.5px;
  text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.8);
}

/* Distribución del cuerpo en tres columnas */
.programa-ficha-cuerpo {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  padding: 10px;
  align-items: flex-start;
  box-sizing: border-box;
}

.ficha-columna {
  flex: 1.2;
  min-width: 300px;
}

.ficha-seccion-titulo {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: #111111;
  margin: 0 0 15px 0;
}
/* ==========================================================================
   FICHA DE PROGRAMA - PARTE 2: INCLUSIONES, NO INCLUYE Y GRILLA CENTRAL
   ========================================================================== */

.ficha-lista-inclusiones li {
  display: flex;
  align-items: center; 
  gap: 12px;           
  margin-bottom: 14px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  color: #333333;
  line-height: 1.4;
  text-align: left;
}

.ficha-item-imagen-lista {
  width: 32px !important;         
  height: 32px !important;        
  object-fit: contain; 
  flex-shrink: 0;      
}
/* Columna Central: Sistema de Cuadrícula de Fotos (Grid) */
.columna-central-contenido {
  flex: 0 1 380px; 
  max-width: 400px; 
  display: grid;
  grid-template-columns: repeat(2, 1fr); 
  gap: 15px; 
  width: 100%;
  box-sizing: border-box;
}
/* Elementos No Incluidos dentro de la Grilla */
.no-incluye-textos-grid {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-right: 5px;
  box-sizing: border-box;
}

.ficha-lista-no-incluye {
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: 'Roboto', sans-serif;
  font-size: 1.0rem;
  color: #333333;
}

.ficha-lista-no-incluye li {
  position: relative;
  padding-left: 15px;
  margin-bottom: 8px;
  line-height: 1.4;
}

.ficha-lista-no-incluye li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #dc3545;
  font-weight: bold;
}

/* Regla Uniforme para las Imágenes de la Galería Central */
.galeria-foto-item-grid {
  width: 100%;
  height: 95px;          
  display: block;
  object-fit: cover;  
  border-radius: 8px; 
  align-self: end;       
}
.precio-lado-izquierdo{
  background-color: #ffffff;
  display: flex;          /* Sube el precio al nivel del texto */
  align-items: baseline;  /* Alinea el texto y el número por su base inferior */
  gap: 10px;              /* Separa el texto "Precio por persona" del "S/. 450" */
  margin-bottom: 0;     /* Espacio controlado hacia abajo */ 
}
.precio-etiqueta-base{
  margin: 0; /* Quita el margen por defecto que los separa verticalmente */
  font-size: 1.5rem;
  font-weight: 700;
}
.precio-moneda{
  font-family: 'Roboto', sans-serif;
  font-size: 1.1rem;
  color: #333333;
  font-weight: bold;
}
.precio-numero{
  font-family: 'Roboto', sans-serif;
  font-size: 2rem;
  color: #333333;
  font-weight: bold;
}
.precio-lado-derecho{
  margin-top: 0;
  padding-top: 0;
}
.precio-condicion-personas {
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0.85rem;
  color: #555555;

  /* ESTA LÍNEA OBLIGA AL "(MÍNIMO 2 PERSONAS)" A SUBIR Y ACERCARSE AL PRECIO */
  margin-top: -15px !important; 
}

.precio-monto-principal{
  display: inline-flex;
    align-items: baseline;
    gap: 2px; /* Une un poco más el "S/." con el "450" si quedan separados */
}
 /* ===================================================
   SISTEMA DE DISEÑO INTERACTIVO PARA RESERVAS Y ENLACES
   =================================================== */
.contenedor-boton-verde-fijo {
    width: 100%;
    margin-top: 20px;
    display: block;
}

.contenedor-boton-negro-fijo {
  width: 100%;
  margin-top: 0;
  padding: 1px 0 30px 0;
  display: flex;         /* <-- Cambiado a flex para poder centrar */
  justify-content: center; /* <-- Centra el botón horizontalmente */
}

/* Enlace web de la cabecera superior libre de subrayados */
.enlace-cabecera-web {
  color: inherit !important;
  text-decoration: none !important;
  transition: opacity 0.2s ease;
}

.enlace-cabecera-web:hover {
  opacity: 0.8;
}
/*====DESPLIEGUE DE ITINERARIO===*/
/* Contenedor para alinear el botón de cierre del itinerario hacia la derecha */
.itinerario-cierre-alineacion {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 15px;
}

/* Enlace o botón para ocultar las actividades detalladas */
.itinerario-btn-ocultar {
    background: none !important;
    border: none !important;
    color: #666666 !important;
    cursor: pointer;
    font-family: sans-serif;
    font-size: 0.85rem;
    text-decoration: none !important;
}

/* Ocultado inicial para bloques ajax de mensajes informativos */
.mensaje-bloque-oculto {
    display: none;
}


/* Oculta el formulario al cargar la página de forma nativa desde el archivo CSS */
.caja-formulario-interactiva {
    display: none;
}

/* Oculta el itinerario al cargar la página de forma nativa desde el archivo CSS */
.caja-modulo-itinerario-oculto {
    display: none;
}

/* 1. Estado inicial del formulario verde: inicia cerrado */
.caja-formulario-interactiva {
    display: none !important;
}

/* El Detonador en CSS: cuando el enlace apunta a este ID, la abre de inmediato */
.caja-formulario-interactiva:target {
    display: block !important;
}

/* 2. Estado inicial del itinerario negro: inicia cerrado */
.caja-modulo-itinerario-oculto {
    display: none !important;
}

/* El Detonador en CSS: cuando el enlace apunta a este ID, la abre de inmediato */
.caja-modulo-itinerario-oculto:target {
    display: block !important;
}
.itinerario-activo {
    display: block !important;
}
/*====FIN DE DESPLIEGUE DE ITINERARIO==*/

/* Estilos base para los botones de control */
.btn-flujo {
  padding: 12px 30px; /* Relleno esbelto arriba/abajo y generoso a los lados */
  color: #ffffff; 
  border: none; 
  border-radius: 6px; 
  font-weight: bold; 
  font-size: 0.95rem; /* Letra ligeramente más esbelta */
  cursor: pointer; 
  text-transform: uppercase;
  transition: background-color 0.2s ease, transform 0.1s ease;
  box-sizing: border-box;
  display: inline-block; /* <-- Cambiado para que respete su propio tamaño */
  font-family: 'Montserrat', sans-serif;
  text-decoration: none !important;
  /* ESTAS DOS LÍNEAS LOGRAN QUE ENCOJA A SU TAMAÑO IDEAL */
  width: auto; 
  align-self: center;
}

.btn-flujo:active {
    transform: scale(0.98);
}

.btn-flujo-verde {
    background-color: #238553;
}

.btn-flujo-verde:hover {
    background-color: #1a663f;
}

.btn-flujo-negro {
    background-color: #111111;
}

.btn-flujo-negro:hover {
    background-color: #222222;
}
/* ==========================================================================
   FORMULARIO COMPACTO - VERSIÓN PREMIUM HORIZONTAL
   ========================================================================== */
/* Centrado absoluto y nivelación horizontal con los otros títulos */
.caja-precio-detalle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-bottom: 0;
  box-sizing: border-box;
  
  /* ESTA LÍNEA SUBE TODO EL BLOQUE PARA ALINEARLO PERFECTAMENTE CON LA LÍNEA ROJA */
  margin-top: -10px !important; 
}


/* Fuerza a que el precio quede arriba y la condición baje de forma centrada */
.precio-fila-superior {
  display: flex;
  flex-direction: column; /* <-- CAMBIADO A COLUMN */
  align-items: center;
  justify-content: center;
  gap: 4px;              /* Reduce el espacio vertical entre el precio y el texto inferior */
  width: 100%;
}

/* Limpieza de las clases internas antiguas para evitar que se aloquen */
.precio-lado-izquierdo {
  display: flex;
  align-items: center;
  gap: 8px;
  background-color: transparent !important;
  margin-bottom: 0 !important;
}

.precio-etiqueta-base {
  margin: 0 !important;
  font-size: 1.3rem !important;
  font-weight: 700;
  color: #111111;
  white-space: nowrap; /* Impide que el texto se rompa en dos líneas */
}

.precio-monto-principal {
  display: flex;
  align-items: baseline;
  gap: 2px;
}

/* Centrado del texto condicional abajo del precio principal */
.precio-lado-derecho {
  width: 100%;
  text-align: center;
  padding: 0 !important;
  
  /* ESTA LÍNEA FUERZA A TODA LA CAJA DEL TEXTO A SUBIR Y PEGARSE AL PRECIO */
  margin-top: -16px !important; 
  margin-bottom: 0 !important;
}

.precio-condicion-personas {
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0.85rem;
  color: #555555;
}

.precio-adicional {
  color: #238553;
  text-align: center;
  font-weight: bold;
  font-family: 'Montserrat', sans-serif;
  text-transform: uppercase;
  font-size: 0.9rem;
  letter-spacing: 0.5px;
  
  /* ESTA LÍNEA AUMENTA EL AIRE ARRIBA Y EMPUJA EL TEXTO VERDE HACIA EL FORMULARIO */
  margin-top: 15px !important; 
  margin-bottom: -5px !important; /* Acerca sutilmente el texto al borde inferior */
}
/*---INICIO DE DECORACION DEL MENSAJE DE CONFIRMACION DEL FORMULARIO CARGADO POR JS--*/
/*---FIN DE DECORACION DEL MENSAJE DE CONFIRMACION DEL FORMULARIO CARGADO POR JS--*/
.formulario-compacto-caja {
  background-color: #ffffff;
  border: 1px solid #7cb2eb;
  border-top: 1px solid #238553;
  border-radius: 8px;
  padding: 10px;
  margin-top: 12px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  font-family: 'Roboto', sans-serif;
  width: 100%;
  box-sizing: border-box;
}

.campo-compacto-grupo {
  display: flex;
  flex-direction: row; 
  align-items: center;
  justify-content: space-between;
  margin-bottom: 9px;
  gap: 10px;
}

.campo-compacto-grupo label {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  color: #444444;
  white-space: nowrap;
  flex: 0 0 115px;
  text-align: right;
}

.campo-compacto-grupo input {
  padding: 4px 8px;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font-size: 0.85rem;
  color: #333333;
  flex: 1;
  box-sizing: border-box;
  height: 30px;
  background-color: #f8fafc;
  transition: all 0.2s ease;
}

.campo-compacto-grupo select {
  padding: 4px 8px;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font-size: 0.85rem;
  color: #333333;
  flex: 1;
  box-sizing: border-box;
  height: 30px;
  background-color: #f8fafc;
  transition: all 0.2s ease;
}


.etiqueta-pasajeros-titulo {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  color: #444444;
  flex: 0 0 115px;
  text-align: right; /* <-- Cambiado a la derecha */
  padding-right: 5px; /* Sutil separación de las casillas */
}

.selectores-pasajeros-bloque {
  display: flex;
  gap: 8px;
  flex: 1;
}

.selectores-pasajeros-bloque select {
  padding: 4px 6px;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font-size: 0.85rem;
  color: #333333;
  background-color: #f8fafc;
  height: 30px;
  flex: 1;
  box-sizing: border-box;
  transition: all 0.2s ease;
}

.selectores-pasajeros-bloque select:focus {
  outline: none;
  border-color: #238553;
  background-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(35, 133, 83, 0.15);
}

.formulario-compacto-caja form {
  display: flex;
  flex-direction: column;
}

.btn-enviar-compacto {
  background-color: #238553;
  color: #ffffff;
  border: none;
  border-radius: 5px;
  padding: 4px 15px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  width: auto;
  cursor: pointer;
  align-self: center;
  margin-top: 1px;
  height: 38px;
  letter-spacing: 0.5px;
  transition: all 0.2s ease;
  box-shadow: 0 2px 6px rgba(35, 133, 83, 0.2);
}

.btn-enviar-compacto:hover {
  background-color: #1a663f;
  box-shadow: 0 4px 12px rgba(26, 102, 63, 0.3);
}

.btn-enviar-compacto:active {
  transform: scale(0.98);
}

/* PROTECCIÓN MÓVIL AUTOMÁTICA */
@media (max-width: 480px) {
  .campo-compacto-grupo,
  .campo-compacto-grupo-pasajeros {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    margin-bottom: 12px;
  }
  .campo-compacto-grupo label,
  .etiqueta-pasajeros-titulo {
    flex: none;
    width: 100%;
  }
  .selectores-pasajeros-bloque {
    width: 100%;
  }
}
/* Estructura del Formulario (Inicia oculto) */
.caja-formulario-interactiva {
    width: 100%;
    display: block; /* <-- CAMBIADO A BLOCK */
    background-color: #fbfbfb;
    border-radius: 8px;
    box-sizing: border-box;
    border: 1px solid #e2e8f0;
    padding: 30px;
    margin-top: 20px;
    margin-bottom: 20px;
}

/* Estructura del Itinerario (Inicia oculto) */
.caja-modulo-itinerario-oculto {
    width: 100%;
    display: block; /* <-- CAMBIADO A BLOCK */
    background-color: #fbfbfb;
    border-radius: 8px;
    box-sizing: border-box;
    border: 1px solid #e2e8f0;
    padding: 30px;
    margin-top: 20px;
    margin-bottom: 40px;
}

.formulario-titulo-estatico {
    margin-top: 0;
    margin-bottom: 25px;
    font-size: 1.4rem;
    color: #111111;
    border-bottom: 2px solid #238553;
    padding-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-family: 'Montserrat', sans-serif;
}

.borde-itinerario-negro {
    margin-top: 0;
    margin-bottom: 25px;
    font-size: 1.4rem;
    color: #111111;
    border-bottom: 2px solid #111111;
    padding-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-family: 'Montserrat', sans-serif;
}

/* Contenedores de Resumen y Mallas Adaptables */
.badge-datos-esenciales {
    background-color: #f4fbf5;
    border-left: 4px solid #238553;
    padding: 15px;
    margin-bottom: 25px;
    border-radius: 0 4px 4px 0;
    font-family: 'Roboto', sans-serif;
}

.badge-texto-linea {
    margin: 0 0 5px 0;
    font-size: 0.95rem;
    color: #555555;
}

.badge-precio-resaltado {
    color: #238553;
    font-weight: bold;
}

.malla-campos-estaticos {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 25px;
}

.bloque-campo-lineal {
    display: flex;
    flex-direction: column;
}

.etiqueta-campo-fija {
    font-weight: bold;
    margin-bottom: 8px;
    font-size: 0.9rem;
    color: #444444;
    font-family: 'Roboto', sans-serif;
}

.entrada-campo-fija {
    padding: 12px 15px;
    border: 1px solid #cccccc;
    border-radius: 5px;
    font-size: 1rem;
    font-family: inherit;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.2s ease;
}

.entrada-campo-fija:focus {
    border-color: #238553;
    outline: none;
}

.fondo-blanco {
    background-color: #ffffff;
}

.fila-pasajeros-doble {
    display: flex;
    gap: 15px;
    width: 100%;
}

.flex-uno {
    flex: 1;
}

.fila-casilla-check {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
}

.check-entrada-fija {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.etiqueta-check-fija {
    font-size: 0.95rem;
    font-family: 'Roboto', sans-serif;
    color: #333333;
    cursor: pointer;
}

.contenedor-boton-envio-derecha {
    display: flex;
    justify-content: flex-end;
}

.btn-enviar-reserva {
    background-color: #238553;
    color: white;
    padding: 14px 35px;
    border: none;
    border-radius: 5px;
    font-size: 1rem;
    font-weight: bold;
    cursor: pointer;
    text-transform: uppercase;
    transition: background-color 0.2s ease;
}

.btn-enviar-reserva:hover {
    background-color: #1a663f;
}

/* Estilos específicos del itinerario */
.itinerario-lista-contenido {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.itinerario-dia-item {
    display: block;
    border-left: 3px solid #111111;
    padding-left: 15px;
    margin-bottom: 10px;
}

.itinerario-dia-titulo {
    margin: 0 0 8px 0;
    font-size: 1.1rem;
    color: #111111;
    font-weight: bold;
}

.itinerario-dia-descripcion {
    margin: 0;
    font-size: 0.95rem;
    color: #555555;
    line-height: 1.6;
}
/* ==========================================================================
   OPTIMIZACIÓN DE GALERÍAS ADAPTATIVAS INDEPENDIENTES (REPLICAS)
   ========================================================================== */

/* Adaptación del Grid Central para la Réplica de 6 Fotos */
.replica-galeria-6 {
  grid-template-columns: repeat(2, 1fr);
}

/* Adaptación del Grid Central para la Réplica de 8 Fotos */
.replica-galeria-8 {
  grid-template-columns: repeat(2, 1fr);
}

/* Control estructural interno de la grilla extendida */
.columna-central-contenido.replica-galeria-6 {
  max-width: 400px;
}

.columna-central-contenido.replica-galeria-8 {
  max-width: 400px;
}
/* ==========================================================================
   CAJA CONTENEDORA DE LIQUIDACIÓN DE PRECIOS DINÁMICA
   ========================================================================== */

.liquidacion-precio-caja {
  width: 100%;
  background-color: #f8fafc;
  border-left: 3px solid #238553;
  padding: 10px;
  margin-top: 12px;
  margin-bottom: 12px;
  box-sizing: border-box;
  border-radius: 0 6px 6px 0;
}

/* Filas individuales de Subtotales (Adultos / Niños) */
.liquidacion-fila {
  display: flex;
  justify-content: space-between;
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  color: #555555;
  margin-bottom: 5px;
}
/* Fila del Total Acumulado Estimado */
.liquidacion-total {
  display: flex;
  justify-content: space-between;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: #111111;
  border-top: 1px dashed #cbd5e1;
  padding-top: 6px;
  margin-top: 6px;
}

/* ==========================================================================
   INTERFAZ ASÍNCRONA DE RESPUESTA Y MENSAJE DE ÉXITO (AJAX)
   ========================================================================== */

.mensaje-exito-ajax-bloque {
  width: 100%;
  text-align: center;
  padding: 20px 10px;
  font-family: 'Montserrat', sans-serif;
  box-sizing: border-box;
}
/* Icono emoji animado de felicitación */
.exito-icono-decorativo {
  font-size: 2.8rem;
  margin-bottom: 12px;
}

/* Título de reserva recibida exitosamente */
.exito-titulo-notificacion {
  color: #1cc904;
  font-size: 0.95rem;
  margin-top: 0;
  margin-bottom: 8px;
  text-transform: uppercase;
  font-weight: 700;
}

/* Párrafo explicativo del envío de copia al cliente */
.exito-descripcion-texto {
  font-family: 'Roboto', sans-serif;
  font-size: 0.88rem;
  color: #4b5563;
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: 18px;
}

/* Botón estilizado para restablecer el formulario limpio */
.btn-retorno-formulario {
  background-color: #fffd7e;
  color: #475569;
  border: 1px solid #a566fe;
  border-radius: 4px;
  padding: 6px 5px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  transition: all 0.2s ease;
}

.btn-retorno-formulario:hover {
  background-color: #6dfba2;
  color: #1e293b;
}
/* ==========================================================================
   OPTIMIZACIONES MÓVILES EXCLUSIVAS PARA ELEMENTOS DE RESERVA
   ========================================================================== */

@media (max-width: 480px) {
  .replica-galeria-6 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .replica-galeria-8 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .liquidacion-precio-caja {
    margin-top: 15px;
    margin-bottom: 15px;
  }
}

/* ==========================================================================
   22. BOTÓN FLOTANTE DE WHATSAPP ACCESIBLE
   ========================================================================== */
.whatsapp-enlace-fijo {
    position: fixed;
    bottom: 25px;
    right: 25px;
    width: 60px;
    height: 60px;
    background-color: #25d366;
    color: #ffffff;
    border-radius: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    z-index: 9999;
    text-decoration: none;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 0.3s ease;
}

.whatsapp-enlace-fijo:hover {
    background-color: #20ba5a;
    transform: scale(1.1);
}

.whatsapp-icono-svg {
    width: 32px;
    height: 32px;
    fill: #ffffff;
}
/* ==========================================================================
   FIN DE CONTENEDOR WEB PRINCIPAL E INTRODUCCIÓN (SEO LOCAL)
   ========================================================================== */
.pie-pagina {
    width: 100%;
    background: #098d28;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 15px 15px;
    margin-top: 0;
}

.pie-contenedor {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
}

.pie-columna {
    width: 340px;
    padding: 5px 10px;
}

.pie-subtitulo {
    color: #ffffff;
    font-family: 'Oswald', sans-serif;
    font-size: 1.2rem;
    margin-bottom: 10px;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    padding-bottom: 6px;
}

.pie-texto {
    color: #ffffff;
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    line-height: 1.5;
  text-align: justify;
}

.pie-enlace {
    color: #ffffff;
    text-decoration: none;
    transition: text-decoration 0.2s ease;
}

.pie-enlace:hover {
    text-decoration: underline;
}

.pasarela-marcas {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;
}

.pasarela-fila {
    display: flex;
    gap: 30px;
    align-items: center;
}

.pasarela-imagen {
    height: 30px;
    width: auto;
    object-fit: contain;
    filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.2));
    transition: transform 0.2s ease;
}

.pasarela-imagen:hover {
    transform: scale(1.05);
}

.pie-direccion {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-style: normal;
    color: #ffffff;
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
}

.pie-contacto-linea {
    display: block;
}

.pie-cierre {
    width: 100%;
    margin-top: 10px;
    padding-top: 5px;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    display: flex;
    justify-content: center;
    padding-bottom: 0;
}

.libro-reclamaciones {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.libro-icono {
    font-size: 1.8rem;
    color: #ffffff;
    text-decoration: none;
}

.libro-enlace {
    color: #ffffff;
    text-decoration: none;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    font-size: 0.95rem;
    transition: text-decoration 0.2s ease;
}

.libro-enlace:hover {
    text-decoration: underline;
}

.copyright-bloque {
    width: 100%;
    background: #000000;
    color: #888888;
    text-align: center;
    padding: 10px 10px;
}

.copyright-texto {
    font-size: 0.85rem;
    font-family: 'Roboto', sans-serif;
    margin: 0;
}
