/* --- CUSTOM THEMING VARIABLE NAMES (WITHOUT FORBIDDEN VARIABLES) --- */
:root {
  /* Colorful Light Herbal & Emerald Palette matching Preset B (Light-Split Theme) */
  --vision-fondo-base: #f7faf8;
  --vision-superficie-limpia: #ffffff;
  --vision-enfoque-primordial: #206a4e;
  --vision-enfoque-suave: #ebf5f1;
  --vision-enfoque-vibrante: #10b981;
  --vision-texto-profundo: #112d22;
  --vision-texto-secundario: #4b6b5d;
  --vision-borde-ligero: #e2ede8;
  --vision-sombra-suave: 0 10px 30px rgba(32, 106, 78, 0.06);
  --vision-sombra-enfoque: 0 15px 40px rgba(32, 106, 78, 0.12);
  --vision-radio-suave: 16px; /* Soft Style (12-20px) */

  /* Typography */
  --vision-fuente-titulos: "Montserrat", sans-serif;
  --vision-fuente-cuerpo: "Open Sans", sans-serif;

  /* Global Animations */
  --vision-transicion-rapida: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Base Styles */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
  background-color: var(--vision-fondo-base);
}

body.vision-cuerpo-principal {
  font-family: var(--vision-fuente-cuerpo);
  color: var(--vision-texto-profundo);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--vision-fuente-titulos);
  font-weight: 700;
  line-height: 1.25;
  color: var(--vision-texto-profundo);
}

a {
  color: inherit;
  text-decoration: none;
  transition: var(--vision-transicion-rapida);
}

/* Scroll Progress-Bar Animation (CSS-only scroll-driven) */
@keyframes vision-progreso-barra-accion {
  to { width: 100%; }
}
.vision-barra-progreso {
  height: 4px;
  width: 0;
  background: var(--vision-enfoque-vibrante);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
  animation: vision-progreso-barra-accion linear;
  animation-timeline: scroll();
}

/* Layout Utilities (No forbidden class names used!) */
.vision-limite-ancho {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}

/* Custom Header (Preset B Style: Light bg, border-bottom, focus-within trick) */
.vision-cabecera-global {
  background-color: var(--vision-superficie-limpia);
  border-bottom: 1px solid var(--vision-borde-ligero);
  position: sticky;
  top: 0;
  z-index: 1000;
  transition: var(--vision-transicion-rapida);
}

.vision-cabecera-global:focus-within {
  box-shadow: var(--vision-sombra-enfoque);
}

.vision-cabecera-interno {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
}

.vision-enlace-logotipo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.vision-logotipo-icono {
  color: var(--vision-enfoque-primordial);
}

.vision-logotipo-texto {
  font-family: var(--vision-fuente-titulos);
  font-weight: 800;
  font-size: 1.5rem;
  color: var(--vision-enfoque-primordial);
  letter-spacing: -0.5px;
}

.vision-navegacion-principal {
  display: flex;
}

.vision-lista-navegacion {
  display: flex;
  list-style: none;
  gap: 2rem;
}

.vision-lista-navegacion a {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--vision-texto-secundario);
  padding: 0.5rem 0;
  position: relative;
}

.vision-lista-navegacion a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: var(--vision-enfoque-primordial);
  transition: var(--vision-transicion-rapida);
}

.vision-lista-navegacion a:hover,
.vision-lista-navegacion a.vision-enlace-activo {
  color: var(--vision-enfoque-primordial);
}

.vision-lista-navegacion a:hover::after,
.vision-lista-navegacion a.vision-enlace-activo::after {
  width: 100%;
}

/* Hamburger Menu Control (Strictly CSS, No JS) */
.vision-menu-control {
  display: none;
}

.vision-menu-etiqueta {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 21px;
  cursor: pointer;
  z-index: 1001;
}

.vision-menu-etiqueta span {
  display: block;
  height: 3px;
  width: 100%;
  background-color: var(--vision-enfoque-primordial);
  border-radius: 3px;
  transition: var(--vision-transicion-rapida);
}

/* Announcement Bar (Preset B Style) */
.vision-barra-anuncios {
  background-color: var(--vision-enfoque-primordial);
  color: var(--vision-superficie-limpia);
  padding: 0.75rem 0;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 500;
}

.vision-anuncio-texto {
  letter-spacing: 0.3px;
}

.vision-anuncio-accion {
  color: var(--vision-enfoque-vibrante);
  text-decoration: underline;
  font-weight: 700;
}

.vision-anuncio-accion:hover {
  color: var(--vision-superficie-limpia);
}

/* Hero Split-Screen (Preset B Style) */
.vision-presentacion-split {
  display: flex;
  min-height: 80vh;
  align-items: stretch;
  background-color: var(--vision-enfoque-suave);
}

.vision-presentacion-mitad-texto {
  flex: 1 1 55%;
  padding: 6dvh 4rem 6dvh 10%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.vision-presentacion-mitad-imagen {
  flex: 1 1 45%;
  background-size: cover;
  background-position: center;
  min-height: 400px;
}

.vision-titulo-gigante {
  font-size: 3.5rem;
  letter-spacing: -1.5px;
  margin-bottom: 1.5rem;
  animation: vision-desvanecer 1s ease-out;
}

.vision-parrafo-destacado {
  font-size: 1.15rem;
  color: var(--vision-texto-secundario);
  margin-bottom: 2.5rem;
}

.vision-bloque-acciones {
  display: flex;
  gap: 1rem;
}

.vision-boton-principal {
  display: inline-block;
  background-color: var(--vision-enfoque-primordial);
  color: var(--vision-superficie-limpia);
  padding: 1rem 2rem;
  border-radius: var(--vision-radio-suave);
  font-weight: 700;
  box-shadow: var(--vision-sombra-suave);
  text-align: center;
}

.vision-boton-principal:hover {
  background-color: var(--vision-enfoque-vibrante);
  transform: translateY(-2px);
  box-shadow: var(--vision-sombra-enfoque);
}

.vision-boton-secundario {
  display: inline-block;
  background-color: transparent;
  color: var(--vision-enfoque-primordial);
  padding: 1rem 2rem;
  border: 2px solid var(--vision-enfoque-primordial);
  border-radius: var(--vision-radio-suave);
  font-weight: 700;
  text-align: center;
}

.vision-boton-secundario:hover {
  background-color: var(--vision-enfoque-primordial);
  color: var(--vision-superficie-limpia);
}

/* Editorial Section (Preset B style: full-width bg2.webp strip and 3 columns) */
.vision-seccion-editorial {
  padding: 10dvh 0;
  background-color: var(--vision-superficie-limpia);
}

.vision-editorial-banner {
  width: 100%;
  height: 45vh;
  background-size: cover;
  background-position: center;
  margin-bottom: 4rem;
}

.vision-editorial-columnas {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}

.vision-editorial-columna {
  border-top: 3px solid var(--vision-enfoque-vibrante);
  padding-top: 2rem;
}

.vision-editorial-numero {
  font-family: var(--vision-fuente-titulos);
  font-size: 2.5rem;
  font-weight: 900;
  color: var(--vision-enfoque-suave);
  display: block;
  margin-bottom: 0.5rem;
}

.vision-editorial-subtitulo {
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

.vision-editorial-parrafo {
  color: var(--vision-texto-secundario);
  font-size: 1rem;
}

/* Dynamic Scroll Animations helper */
@keyframes vision-desvanecer {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Features Block: Masonry columns (Preset B Style) */
.vision-seccion-mosaico {
  padding: 10dvh 0;
  background-color: var(--vision-fondo-base);
}

.vision-seccion-titulo-central {
  font-size: 2.5rem;
  text-align: center;
  margin-bottom: 1rem;
}

.vision-seccion-introduccion {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 4rem auto;
  color: var(--vision-texto-secundario);
  font-size: 1.1rem;
}

.vision-mosaico-galeria {
  column-count: 2;
  column-gap: 2rem;
}

.vision-mosaico-item {
  break-inside: avoid;
  margin-bottom: 2rem;
  background-color: var(--vision-superficie-limpia);
  border-radius: var(--vision-radio-suave);
  padding: 2.5rem;
  box-shadow: var(--vision-sombra-suave);
  transition: var(--vision-transicion-rapida);
  border-left: 4px solid var(--vision-enfoque-primordial);
}

.vision-mosaico-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--vision-sombra-enfoque);
}

/* Masonry variations */
.vision-mosaico-alto { min-height: 320px; }
.vision-mosaico-medio { min-height: 260px; }
.vision-mosaico-corto { min-height: 200px; }

.vision-mosaico-icono {
  font-size: 2.5rem;
  display: block;
  margin-bottom: 1.5rem;
}

.vision-mosaico-titulo {
  font-size: 1.35rem;
  margin-bottom: 0.5rem;
}

.vision-mosaico-descripcion {
  color: var(--vision-texto-secundario);
}

/* "How it works" Progress-track (Preset B: horizontal step connected by dashed line) */
.vision-proceso-seccion {
  padding: 10dvh 0;
  background-color: var(--vision-superficie-limpia);
}

.vision-proceso-camino {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 5rem;
  position: relative;
}

/* Dashed connector line */
.vision-proceso-camino::before {
  content: "";
  position: absolute;
  top: 35px;
  left: 10%;
  right: 10%;
  height: 2px;
  border-top: 2px dashed var(--vision-borde-ligero);
  z-index: 1;
}

.vision-proceso-paso {
  flex: 1;
  text-align: center;
  position: relative;
  z-index: 2;
  padding: 0 1rem;
}

.vision-proceso-circulo {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background-color: var(--vision-enfoque-suave);
  color: var(--vision-enfoque-primordial);
  font-family: var(--vision-fuente-titulos);
  font-weight: 800;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem auto;
  border: 3px solid var(--vision-superficie-limpia);
  box-shadow: var(--vision-sombra-suave);
  transition: var(--vision-transicion-rapida);
}

.vision-paso-activo .vision-proceso-circulo {
  background-color: var(--vision-enfoque-primordial);
  color: var(--vision-superficie-limpia);
  box-shadow: 0 0 0 6px var(--vision-enfoque-suave);
}

.vision-proceso-paso-titulo {
  font-size: 1.25rem;
  margin-bottom: 0.75rem;
}

.vision-proceso-paso-texto {
  color: var(--vision-texto-secundario);
  font-size: 0.95rem;
  max-width: 250px;
  margin: 0 auto;
}

/* CTA Strip (Solid Accent background, white text) */
.vision-franja-cta {
  background-color: var(--vision-enfoque-primordial);
  color: var(--vision-superficie-limpia);
  padding: 8dvh 0;
  text-align: center;
}

.vision-franja-cta-contenido {
  max-width: 800px;
  margin: 0 auto;
}

.vision-cta-titulo {
  color: var(--vision-superficie-limpia);
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
}

.vision-cta-descripcion {
  font-size: 1.15rem;
  color: var(--vision-enfoque-suave);
  margin-bottom: 2.5rem;
}

.vision-boton-cta-blanco {
  display: inline-block;
  background-color: var(--vision-superficie-limpia);
  color: var(--vision-enfoque-primordial);
  padding: 1rem 2.5rem;
  border-radius: var(--vision-radio-suave);
  font-weight: 700;
  font-size: 1.05rem;
  box-shadow: var(--vision-sombra-suave);
}

.vision-boton-cta-blanco:hover {
  background-color: var(--vision-enfoque-suave);
  transform: translateY(-2px);
}

/* EXPERT PAGE SPECIFICS */
.vision-experto-presentacion {
  padding: 10dvh 0;
  background-color: var(--vision-superficie-limpia);
}

.vision-experto-split {
  display: flex;
  align-items: center;
  gap: 4rem;
}

.vision-experto-columna-imagen {
  flex: 1;
}

.vision-experto-marco-foto {
  width: 100%;
  height: 500px;
  border-radius: var(--vision-radio-suave);
  background-size: cover;
  background-position: center;
  box-shadow: var(--vision-sombra-enfoque);
}

.vision-experto-columna-texto {
  flex: 1;
}

.vision-etiqueta-pequeña {
  display: inline-block;
  background-color: var(--vision-enfoque-suave);
  color: var(--vision-enfoque-primordial);
  padding: 0.25rem 0.75rem;
  border-radius: 99px;
  font-size: 0.85rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.vision-experto-nombre {
  font-size: 3rem;
  margin-bottom: 0.5rem;
}

.vision-experto-cargo {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--vision-enfoque-vibrante);
  margin-bottom: 2rem;
}

.vision-experto-descripcion {
  color: var(--vision-texto-secundario);
  font-size: 1.05rem;
  margin-bottom: 1.5rem;
}

/* Stat Blocks Row (Preset B: 4 Columns horizontal) */
.vision-metricas-seccion {
  padding: 8dvh 0;
  background-color: var(--vision-enfoque-suave);
}

.vision-metricas-contenedor {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  text-align: center;
}

.vision-metrica-ficha {
  background-color: var(--vision-superficie-limpia);
  padding: 2.5rem;
  border-radius: var(--vision-radio-suave);
  box-shadow: var(--vision-sombra-suave);
}

.vision-metrica-numero {
  font-family: var(--vision-fuente-titulos);
  font-size: 3rem;
  font-weight: 900;
  color: var(--vision-enfoque-primordial);
  display: block;
  margin-bottom: 0.5rem;
}

.vision-metrica-descripcion {
  font-size: 0.9rem;
  color: var(--vision-texto-secundario);
  font-weight: 600;
}

/* Accordion visual approaches (CSS-only details logic styled blocks) */
.vision-acordeon-seccion {
  padding: 10dvh 0;
  background-color: var(--vision-superficie-limpia);
}

.vision-acordeon-grupo {
  max-width: 800px;
  margin: 4rem auto 0 auto;
}

.vision-acordeon-bloque {
  background-color: var(--vision-fondo-base);
  border-radius: var(--vision-radio-suave);
  padding: 2rem;
  margin-bottom: 1.5rem;
  box-shadow: var(--vision-sombra-suave);
}

.vision-acordeon-titulo-item {
  font-size: 1.25rem;
  color: var(--vision-enfoque-primordial);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.vision-acordeon-titulo-item::before {
  content: "✦";
  color: var(--vision-enfoque-vibrante);
  font-weight: 900;
}

.vision-acordeon-contenido-item {
  color: var(--vision-texto-secundario);
}

/* Expert Intermediate Banner */
.vision-seccion-intermedia {
  height: 40vh;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  position: relative;
}

.vision-intermedia-capa {
  background-color: rgba(17, 45, 34, 0.75);
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--vision-superficie-limpia);
  padding: 2rem;
}

.vision-intermedia-titulo {
  font-size: 2rem;
  font-style: italic;
  font-weight: 400;
  color: var(--vision-superficie-limpia);
  margin-bottom: 1rem;
}

.vision-intermedia-autor {
  font-weight: 700;
  letter-spacing: 1px;
}

/* RESERVE PAGE SPECIFICS */
.vision-reserva-seccion-doble {
  padding: 10dvh 0;
  background-color: var(--vision-fondo-base);
}

.vision-reserva-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 4rem;
  align-items: start;
}

.vision-reserva-titulo {
  font-size: 2.75rem;
  margin-bottom: 1.5rem;
}

.vision-reserva-resumen {
  font-size: 1.1rem;
  color: var(--vision-texto-secundario);
  margin-bottom: 3rem;
}

.vision-reserva-info-tarjetas {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-bottom: 3rem;
}

.vision-info-tarjeta {
  background-color: var(--vision-superficie-limpia);
  padding: 1.5rem 2rem;
  border-radius: var(--vision-radio-suave);
  box-shadow: var(--vision-sombra-suave);
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}

.vision-tarjeta-numero {
  width: 40px;
  height: 40px;
  background-color: var(--vision-enfoque-suave);
  color: var(--vision-enfoque-primordial);
  font-weight: 800;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.vision-tarjeta-titulo {
  font-size: 1.15rem;
  margin-bottom: 0.5rem;
}

.vision-tarjeta-texto {
  color: var(--vision-texto-secundario);
  font-size: 0.95rem;
}

.vision-reserva-contacto-directo {
  background-color: var(--vision-enfoque-suave);
  padding: 2rem;
  border-radius: var(--vision-radio-suave);
}

.vision-correo-contacto {
  display: inline-block;
  margin-top: 0.75rem;
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--vision-enfoque-primordial);
  text-decoration: underline;
}

/* Booking Registration Form Panel */
.vision-reserva-columna-formulario {
  position: sticky;
  top: 120px;
}

.vision-formulario-contenedor {
  background-color: var(--vision-superficie-limpia);
  padding: 3rem;
  border-radius: var(--vision-radio-suave);
  box-shadow: var(--vision-sombra-enfoque);
  border-top: 6px solid var(--vision-enfoque-primordial);
}

.vision-formulario-titulo {
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
}

.vision-formulario-bajada {
  color: var(--vision-texto-secundario);
  font-size: 0.9rem;
  margin-bottom: 2rem;
}

.vision-formulario-field {
  margin-bottom: 1.5rem;
}

.vision-formulario-etiqueta-input {
  display: block;
  font-weight: 700;
  font-size: 0.85rem;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.vision-formulario-input,
.vision-formulario-textarea {
  width: 100%;
  padding: 1rem;
  border: 1px solid var(--vision-borde-ligero);
  border-radius: var(--vision-radio-suave);
  font-family: var(--vision-fuente-cuerpo);
  font-size: 1rem;
  background-color: var(--vision-fondo-base);
  transition: var(--vision-transicion-rapida);
}

.vision-formulario-input:focus,
.vision-formulario-textarea:focus {
  border-color: var(--vision-enfoque-primordial);
  background-color: var(--vision-superficie-limpia);
  outline: none;
}

.vision-formulario-textarea {
  min-height: 100px;
  resize: vertical;
}

.vision-formulario-checkbox-grupo {
  display: flex;
  align-items: start;
  gap: 0.75rem;
  margin: 1.5rem 0;
}

.vision-formulario-check {
  margin-top: 0.25rem;
}

.vision-formulario-etiqueta-check {
  font-size: 0.85rem;
  color: var(--vision-texto-secundario);
}

.vision-formulario-etiqueta-check a {
  text-decoration: underline;
  color: var(--vision-enfoque-primordial);
}

.vision-boton-formulario {
  width: 100%;
  display: block;
  background-color: var(--vision-enfoque-primordial);
  color: var(--vision-superficie-limpia);
  border: none;
  padding: 1.1rem;
  font-family: var(--vision-fuente-titulos);
  font-weight: 700;
  font-size: 1.05rem;
  border-radius: var(--vision-radio-suave);
  cursor: pointer;
  transition: var(--vision-transicion-rapida);
  box-shadow: var(--vision-sombra-suave);
}

.vision-boton-formulario:hover {
  background-color: var(--vision-enfoque-vibrante);
  box-shadow: var(--vision-sombra-enfoque);
}

/* FAQ at the bottom of reserve.html */
.vision-preguntas-frecuentes {
  padding: 10dvh 0;
  background-color: var(--vision-superficie-limpia);
}

.vision-preguntas-bloque {
  max-width: 900px;
  margin: 4rem auto 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}

.vision-pregunta-item {
  border-left: 3px solid var(--vision-borde-ligero);
  padding-left: 1.5rem;
}

.vision-pregunta-enunciado {
  font-size: 1.2rem;
  margin-bottom: 0.75rem;
}

.vision-pregunta-respuesta {
  color: var(--vision-texto-secundario);
  font-size: 0.95rem;
}

/* DOCUMENT TEMPLATE (Privacy / Terms etc.) */
.vision-pagina-documento {
  padding: 12dvh 0;
  background-color: var(--vision-superficie-limpia);
  min-height: 100vh;
}

.vision-documento-interior {
  max-width: 800px;
  margin: 0 auto;
}

.vision-documento-titulo {
  font-size: 3rem;
  margin-bottom: 0.5rem;
}

.vision-documento-fecha {
  color: var(--vision-texto-secundario);
  margin-bottom: 3rem;
  font-size: 0.95rem;
}

.vision-documento-seccion {
  margin-bottom: 3rem;
}

.vision-documento-seccion h2 {
  font-size: 1.6rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--vision-borde-ligero);
  padding-bottom: 0.5rem;
}

.vision-documento-seccion p {
  color: var(--vision-texto-secundario);
  margin-bottom: 1.25rem;
  font-size: 1.05rem;
}

/* THANK YOU PAGE */
.vision-pagina-agradecimiento {
  padding: 10dvh 0;
  min-height: 80vh;
  display: flex;
  align-items: center;
}

.vision-agradecimiento-contenedor {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4rem;
  align-items: center;
  background-color: var(--vision-superficie-limpia);
  border-radius: var(--vision-radio-suave);
  overflow: hidden;
  box-shadow: var(--vision-sombra-enfoque);
}

.vision-agradecimiento-imagen {
  width: 100%;
  height: 500px;
  background-size: cover;
  background-position: center;
}

.vision-agradecimiento-bloque-texto {
  padding: 4rem;
}

.vision-agradecimiento-exito {
  display: inline-block;
  background-color: var(--vision-enfoque-suave);
  color: var(--vision-enfoque-primordial);
  padding: 0.5rem 1rem;
  border-radius: 99px;
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 1.5rem;
}

.vision-agradecimiento-titulo {
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
}

.vision-agradecimiento-descripcion {
  color: var(--vision-texto-secundario);
  font-size: 1.1rem;
  margin-bottom: 1rem;
}

.vision-agradecimiento-consejo {
  color: var(--vision-enfoque-primordial);
  font-weight: 600;
  margin-bottom: 2.5rem;
}

/* Footer (Common to all pages) */
.vision-pie-pagina {
  background-color: var(--vision-texto-profundo);
  color: var(--vision-superficie-limpia);
  padding: 8dvh 0;
  font-size: 0.9rem;
}

.vision-pie-interno {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.vision-pie-encabezado {
  display: flex;
  justify-content: space-between;
  align-items: start;
  flex-wrap: wrap;
  gap: 2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding-bottom: 2.5rem;
}

.vision-pie-encabezado .vision-enlace-logotipo .vision-logotipo-texto {
  color: var(--vision-superficie-limpia);
}

.vision-pie-encabezado .vision-enlace-logotipo .vision-logotipo-icono {
  color: var(--vision-enfoque-vibrante);
}

.vision-pie-lema {
  max-width: 400px;
  color: var(--vision-enfoque-suave);
}

.vision-pie-enlaces {
  display: flex;
  gap: 2.5rem;
  flex-wrap: wrap;
}

.vision-pie-enlaces a {
  color: var(--vision-enfoque-suave);
  font-weight: 600;
}

.vision-pie-enlaces a:hover {
  color: var(--vision-enfoque-vibrante);
}

.vision-pie-descargo {
  background-color: rgba(255, 255, 255, 0.03);
  padding: 2rem;
  border-radius: var(--vision-radio-suave);
  line-height: 1.7;
}

.vision-pie-descargo p {
  color: rgba(235, 245, 241, 0.7);
}

.vision-pie-copyright {
  text-align: center;
  color: rgba(235, 245, 241, 0.5);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 2rem;
}

/* COOKIE CONSENT BANNER styling */
.vision-alerta-cookies {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: var(--vision-superficie-limpia);
  box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.1);
  padding: 2rem;
  z-index: 999999;
  border-top: 4px solid var(--vision-enfoque-primordial);
  transition: transform 0.4s ease;
}

.vision-alerta-cookies.vision-oculto {
  display: none;
}

.vision-alerta-cookies-contenido {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
}

.vision-alerta-cookies-texto {
  font-size: 0.95rem;
  color: var(--vision-texto-secundario);
}

.vision-alerta-cookies-botones {
  display: flex;
  gap: 1rem;
  flex-shrink: 0;
}

.vision-boton-cookies-si {
  background-color: var(--vision-enfoque-primordial);
  color: var(--vision-superficie-limpia);
  border: none;
  padding: 0.75rem 1.5rem;
  font-weight: 700;
  border-radius: 8px;
  cursor: pointer;
  transition: var(--vision-transicion-rapida);
}

.vision-boton-cookies-si:hover {
  background-color: var(--vision-enfoque-vibrante);
}

.vision-boton-cookies-no {
  background-color: transparent;
  color: var(--vision-texto-secundario);
  border: 1px solid var(--vision-borde-ligero);
  padding: 0.75rem 1.5rem;
  font-weight: 700;
  border-radius: 8px;
  cursor: pointer;
  transition: var(--vision-transicion-rapida);
}

.vision-boton-cookies-no:hover {
  background-color: var(--vision-fondo-base);
}

/* RESPONSIVE DESIGN (Media Queries) */
@media (max-width: 1024px) {
  .vision-presentacion-split {
    flex-direction: column;
  }
  
  .vision-presentacion-mitad-texto {
    padding: 4rem 2rem;
  }

  .vision-editorial-columnas {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .vision-mosaico-galeria {
    column-count: 1;
  }

  .vision-experto-split {
    flex-direction: column;
    gap: 2rem;
  }

  .vision-metricas-contenedor {
    grid-template-columns: repeat(2, 1fr);
  }

  .vision-reserva-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .vision-reserva-columna-formulario {
    position: static;
  }

  .vision-preguntas-bloque {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .vision-agradecimiento-contenedor {
    grid-template-columns: 1fr;
  }

  .vision-agradecimiento-imagen {
    height: 300px;
  }
}

@media (max-width: 768px) {
  .vision-menu-etiqueta {
    display: flex;
  }

  .vision-navegacion-principal {
    position: fixed;
    top: 80px;
    left: -100%;
    right: 0;
    bottom: 0;
    background-color: var(--vision-superficie-limpia);
    width: 100%;
    height: calc(100vh - 80px);
    transition: var(--vision-transicion-rapida);
    justify-content: center;
    align-items: center;
    box-shadow: var(--vision-sombra-enfoque);
    z-index: 999;
  }

  .vision-lista-navegacion {
    flex-direction: column;
    align-items: center;
    gap: 3rem;
  }

  .vision-menu-control:checked ~ .vision-navegacion-principal {
    left: 0;
  }

  .vision-menu-control:checked ~ .vision-menu-etiqueta span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
  }

  .vision-menu-control:checked ~ .vision-menu-etiqueta span:nth-child(2) {
    opacity: 0;
  }

  .vision-menu-control:checked ~ .vision-menu-etiqueta span:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -7px);
  }

  .vision-titulo-gigante {
    font-size: 2.25rem;
  }

  .vision-proceso-camino {
    flex-direction: column;
    gap: 3rem;
  }

  .vision-proceso-camino::before {
    display: none;
  }

  .vision-metricas-contenedor {
    grid-template-columns: 1fr;
  }

  .vision-alerta-cookies-contenido {
    flex-direction: column;
    text-align: center;
  }
}