@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Raleway:wght@400;600;700;800&display=swap');

:root {
  --vis-claridad-bg: #FCFBF9;
  --vis-claridad-superficie: #FFFFFF;
  --vis-claridad-enfoque: #0D9488;
  --vis-claridad-enfoque-suave: #F0FDFA;
  --vis-claridad-enfoque-hover: #0F766E;
  --vis-claridad-tinta: #1F2937;
  --vis-claridad-tinta-tenue: #4B5563;
  --vis-claridad-borde: #E5E7EB;
  --vis-claridad-degradado: linear-gradient(135deg, #0D9488 0%, #0F766E 100%);
  
  --font-display: 'Raleway', sans-serif;
  --font-body: 'Poppins', sans-serif;
  
  --vis-relleno-seccion: 10dvh;
  --vis-borde-curvo: 16px;
  --vis-sombra-elevada: 0 10px 25px -5px rgba(13, 148, 136, 0.05), 0 8px 10px -6px rgba(13, 148, 136, 0.05);
}

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

body {
  background-color: var(--vis-claridad-bg);
  color: var(--vis-claridad-tinta);
  font-family: var(--font-body);
  line-height: 1.6;
  font-size: 16px;
  overflow-x: hidden;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--vis-claridad-tinta);
  line-height: 1.25;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s ease;
}

/* Scroll Progress Bar */
.vis-barra-progreso {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  background: var(--vis-claridad-enfoque);
  width: 0;
  animation: vis-llena-progreso linear;
  animation-timeline: scroll();
}

@keyframes vis-llena-progreso {
  to { width: 100%; }
}

/* Animations on scroll */
@keyframes vis-aparicion-suave {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

.vis-revelar {
  animation: vis-aparicion-suave linear both;
  animation-timeline: view();
  animation-range: entry 5% entry 30%;
}

/* Header */
.vis-cabecera-principal {
  background-color: var(--vis-claridad-superficie);
  border-bottom: 1px solid var(--vis-claridad-borde);
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 10px rgba(0,0,0,0.02);
  transition: box-shadow 0.3s ease;
}

.vis-cabecera-principal:focus-within {
  box-shadow: 0 4px 20px rgba(13, 148, 136, 0.08);
}

.vis-cabecera-contenedor {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}

.vis-logotipo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.4rem;
  color: var(--vis-claridad-tinta);
}

.vis-logotipo svg {
  color: var(--vis-claridad-enfoque);
}

.vis-menu-casilla {
  display: none;
}

.vis-menu-icono {
  display: none;
  cursor: pointer;
  flex-direction: column;
  gap: 6px;
  z-index: 1002;
}

.vis-menu-icono span {
  display: block;
  width: 25px;
  height: 3px;
  background-color: var(--vis-claridad-tinta);
  transition: all 0.3s ease;
}

.vis-grupo-navegacion {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.vis-enlace-nav {
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--vis-claridad-tinta-tenue);
  position: relative;
  padding: 0.25rem 0;
}

.vis-enlace-nav::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: var(--vis-claridad-enfoque);
  transition: width 0.3s ease;
}

.vis-enlace-nav:hover {
  color: var(--vis-claridad-enfoque);
}

.vis-enlace-nav:hover::after {
  width: 100%;
}

.vis-enlace-nav-activo {
  color: var(--vis-claridad-enfoque);
}

.vis-enlace-nav-activo::after {
  width: 100%;
}

/* Announcement Bar */
.vis-barra-anuncio {
  background-color: var(--vis-claridad-enfoque-suave);
  border-bottom: 1px solid rgba(13, 148, 136, 0.1);
  padding: 0.5rem 2rem;
  text-align: center;
  font-size: 0.85rem;
  font-weight: 600;
}

.vis-barra-anuncio a {
  color: var(--vis-claridad-enfoque-hover);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.vis-barra-anuncio a:hover {
  text-decoration: underline;
}

/* Hero Section Split */
.vis-seccion-hero {
  display: flex;
  min-height: 80vh;
  background-color: var(--vis-claridad-superficie);
  border-bottom: 1px solid var(--vis-claridad-borde);
  position: relative;
}

.vis-hero-contenido {
  flex: 1 1 55%;
  padding: 4rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 660px;
  margin-left: auto;
}

.vis-hero-etiqueta {
  color: var(--vis-claridad-enfoque);
  text-transform: uppercase;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 1rem;
}

.vis-hero-titulo {
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  margin-bottom: 1.5rem;
  color: var(--vis-claridad-tinta);
}

.vis-hero-descripcion {
  font-size: 1.15rem;
  color: var(--vis-claridad-tinta-tenue);
  margin-bottom: 2.5rem;
}

.vis-hero-imagen {
  flex: 1 1 45%;
  position: relative;
  overflow: hidden;
}

.vis-hero-imagen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* CTA Elements */
.vis-boton-accion {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--vis-claridad-degradado);
  color: white;
  padding: 1rem 2rem;
  border-radius: var(--vis-borde-curvo);
  font-weight: 600;
  font-size: 1rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 10px 15px -3px rgba(13, 148, 136, 0.3);
}

.vis-boton-accion:hover {
  transform: translateY(-2px);
  box-shadow: 0 15px 20px -3px rgba(13, 148, 136, 0.4);
  color: white;
}

/* Full Width Strip and Editorial Columns */
.vis-banda-imagen-completa {
  width: 100%;
  height: 45vh;
  position: relative;
}

.vis-banda-imagen-completa img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vis-seccion-periodismo {
  padding: var(--vis-relleno-seccion) 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.vis-periodismo-cabecera {
  max-width: 700px;
  margin-bottom: 4rem;
}

.vis-periodismo-cabecera h2 {
  font-size: 2.25rem;
  margin-bottom: 1rem;
}

.vis-periodismo-cabecera p {
  color: var(--vis-claridad-tinta-tenue);
  font-size: 1.1rem;
}

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

.vis-columna-prensa {
  border-top: 3px solid var(--vis-claridad-enfoque);
  padding-top: 1.5rem;
}

.vis-columna-prensa h3 {
  font-size: 1.4rem;
  margin-bottom: 1rem;
}

.vis-columna-prensa p {
  color: var(--vis-claridad-tinta-tenue);
  font-size: 0.95rem;
  line-height: 1.7;
}

/* Features - Masonry Columns */
.vis-seccion-beneficios {
  padding: var(--vis-relleno-seccion) 2rem;
  background-color: var(--vis-claridad-superficie);
  border-top: 1px solid var(--vis-claridad-borde);
  border-bottom: 1px solid var(--vis-claridad-borde);
}

.vis-beneficios-contenedor {
  max-width: 1200px;
  margin: 0 auto;
}

.vis-beneficios-cabecera {
  text-align: center;
  max-width: 650px;
  margin: 0 auto 4rem auto;
}

.vis-beneficios-cabecera h2 {
  font-size: 2.25rem;
  margin-bottom: 1rem;
}

.vis-beneficios-cabecera p {
  color: var(--vis-claridad-tinta-tenue);
}

.vis-masonry-bloques {
  column-count: 3;
  column-gap: 2rem;
}

.vis-masonry-elemento {
  break-inside: avoid;
  margin-bottom: 2rem;
  background: var(--vis-claridad-bg);
  padding: 2.5rem;
  border-radius: var(--vis-borde-curvo);
  box-shadow: var(--vis-sombra-elevada);
  border: 1px solid rgba(13, 148, 136, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.vis-masonry-elemento:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 25px -5px rgba(13, 148, 136, 0.08);
}

.vis-masonry-elemento.destacado {
  background: var(--vis-claridad-enfoque-suave);
  border-left: 4px solid var(--vis-claridad-enfoque);
}

.vis-icono-envoltorio {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: var(--vis-claridad-superficie);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--vis-claridad-enfoque);
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.vis-masonry-elemento h3 {
  font-size: 1.25rem;
  margin-bottom: 1rem;
}

.vis-masonry-elemento p {
  color: var(--vis-claridad-tinta-tenue);
  font-size: 0.95rem;
}

/* "How it works" - Progress Track */
.vis-seccion-progreso {
  padding: var(--vis-relleno-seccion) 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.vis-progreso-cabecera {
  text-align: center;
  max-width: 650px;
  margin: 0 auto 5rem auto;
}

.vis-progreso-cabecera h2 {
  font-size: 2.25rem;
  margin-bottom: 1rem;
}

.vis-pista-progreso {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  gap: 2rem;
}

.vis-pista-progreso::before {
  content: '';
  position: absolute;
  top: 30px;
  left: 10%;
  right: 10%;
  height: 2px;
  border-top: 2px dashed var(--vis-claridad-borde);
  z-index: 1;
}

.vis-paso-progreso {
  flex: 1;
  text-align: center;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.vis-paso-circulo {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: var(--vis-claridad-superficie);
  border: 3px solid var(--vis-claridad-borde);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--vis-claridad-tinta-tenue);
  margin-bottom: 1.5rem;
  box-shadow: var(--vis-sombra-elevada);
  transition: all 0.3s ease;
}

.vis-paso-progreso.activo .vis-paso-circulo {
  border-color: var(--vis-claridad-enfoque);
  color: var(--vis-claridad-enfoque);
  background-color: var(--vis-claridad-enfoque-suave);
  transform: scale(1.1);
}

.vis-paso-progreso h3 {
  font-size: 1.15rem;
  margin-bottom: 0.5rem;
}

.vis-paso-progreso p {
  font-size: 0.9rem;
  color: var(--vis-claridad-tinta-tenue);
  max-width: 240px;
}

/* CTA Strip */
.vis-seccion-cta-accion {
  padding: 6rem 2rem;
  background-color: var(--vis-claridad-enfoque);
  color: white;
  text-align: center;
  position: relative;
}

.vis-cta-contenedor {
  max-width: 800px;
  margin: 0 auto;
}

.vis-seccion-cta-accion h2 {
  font-size: 2.75rem;
  color: white;
  margin-bottom: 1.5rem;
}

.vis-seccion-cta-accion p {
  font-size: 1.2rem;
  margin-bottom: 2.5rem;
  opacity: 0.95;
}

.vis-seccion-cta-accion .vis-boton-accion {
  background: white;
  color: var(--vis-claridad-enfoque);
  box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

.vis-seccion-cta-accion .vis-boton-accion:hover {
  background: var(--vis-claridad-enfoque-suave);
  color: var(--vis-claridad-enfoque-hover);
}

/* Expert Page Specifics */
.vis-expert-fila {
  display: flex;
  align-items: center;
  min-height: 70vh;
  background-color: var(--vis-claridad-superficie);
  border-bottom: 1px solid var(--vis-claridad-borde);
}

.vis-expert-lado-imagen {
  flex: 1 1 50%;
  height: 70vh;
  position: relative;
}

.vis-expert-lado-imagen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vis-expert-lado-bio {
  flex: 1 1 50%;
  padding: 5rem;
  max-width: 650px;
}

.vis-expert-titulo-bio {
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
}

.vis-expert-descripcion-bio {
  font-size: 1.1rem;
  color: var(--vis-claridad-tinta-tenue);
  margin-bottom: 2rem;
}

.vis-seccion-stats {
  padding: 4rem 2rem;
  background-color: var(--vis-claridad-bg);
  border-bottom: 1px solid var(--vis-claridad-borde);
}

.vis-contenedor-stats {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  text-align: center;
}

.vis-bloque-stat h3 {
  font-size: 3rem;
  color: var(--vis-claridad-enfoque);
  font-family: var(--font-display);
  font-weight: 800;
  margin-bottom: 0.5rem;
}

.vis-bloque-stat p {
  color: var(--vis-claridad-tinta-tenue);
  font-weight: 500;
}

/* Accordion Section */
.vis-seccion-acordeon {
  padding: var(--vis-relleno-seccion) 2rem;
  max-width: 1000px;
  margin: 0 auto;
}

.vis-cabecera-acordeon {
  text-align: center;
  margin-bottom: 4rem;
}

.vis-cabecera-acordeon h2 {
  font-size: 2.25rem;
  margin-bottom: 1rem;
}

.vis-contenedor-acordeon {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.vis-item-acordeon {
  background-color: var(--vis-claridad-superficie);
  border: 1px solid var(--vis-claridad-borde);
  border-radius: var(--vis-borde-curvo);
  padding: 2rem;
  box-shadow: var(--vis-sombra-elevada);
}

.vis-item-acordeon h3 {
  font-size: 1.3rem;
  color: var(--vis-claridad-enfoque);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.vis-item-acordeon h3::before {
  content: '✦';
  font-size: 1.1rem;
}

.vis-item-acordeon p {
  color: var(--vis-claridad-tinta-tenue);
  font-size: 1rem;
  line-height: 1.7;
}

/* Reserve Page Split */
.vis-plantilla-dos-columnas {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--vis-relleno-seccion) 2rem;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 4rem;
}

.vis-info-bloques {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.vis-info-tarjeta {
  background-color: var(--vis-claridad-superficie);
  border: 1px solid var(--vis-claridad-borde);
  border-radius: var(--vis-borde-curvo);
  padding: 2.5rem;
  box-shadow: var(--vis-sombra-elevada);
}

.vis-info-tarjeta h3 {
  font-size: 1.4rem;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--vis-claridad-tinta);
}

.vis-info-tarjeta svg {
  color: var(--vis-claridad-enfoque);
}

.vis-lista-puntos {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.vis-lista-puntos li {
  position: relative;
  padding-left: 2rem;
  font-size: 0.95rem;
  color: var(--vis-claridad-tinta-tenue);
}

.vis-lista-puntos li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 6px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--vis-claridad-enfoque);
}

/* Booking Form */
.vis-formulario-envoltura {
  background-color: var(--vis-claridad-superficie);
  border: 1px solid var(--vis-claridad-borde);
  border-radius: var(--vis-borde-curvo);
  padding: 3rem;
  box-shadow: var(--vis-sombra-elevada);
  position: sticky;
  top: 120px;
}

.vis-formulario-envoltura h2 {
  font-size: 1.75rem;
  margin-bottom: 2rem;
  text-align: center;
}

.vis-grupo-campo {
  margin-bottom: 1.5rem;
}

.vis-grupo-campo label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--vis-claridad-tinta);
}

.vis-grupo-campo input,
.vis-grupo-campo textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--vis-claridad-borde);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 0.95rem;
  transition: border-color 0.3s ease;
  background-color: var(--vis-claridad-bg);
}

.vis-grupo-campo input:focus,
.vis-grupo-campo textarea:focus {
  outline: none;
  border-color: var(--vis-claridad-enfoque);
}

.vis-checkbox-envoltura {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 2rem;
  font-size: 0.85rem;
  color: var(--vis-claridad-tinta-tenue);
}

.vis-checkbox-envoltura input {
  margin-top: 3px;
  cursor: pointer;
}

.vis-boton-formulario {
  width: 100%;
  border: none;
  cursor: pointer;
}

.vis-contacto-enlace {
  display: block;
  text-align: center;
  margin-top: 1.5rem;
  font-size: 0.9rem;
  color: var(--vis-claridad-enfoque-hover);
  font-weight: 500;
}

.vis-contacto-enlace:hover {
  text-decoration: underline;
}

/* FAQ Accordion Section */
.vis-seccion-faq {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 2rem var(--vis-relleno-seccion) 2rem;
}

.vis-seccion-faq h2 {
  text-align: center;
  font-size: 2rem;
  margin-bottom: 3rem;
}

.vis-faq-lista {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.vis-faq-bloque {
  background-color: var(--vis-claridad-superficie);
  border: 1px solid var(--vis-claridad-borde);
  border-radius: var(--vis-borde-curvo);
  padding: 2rem;
}

.vis-faq-bloque h3 {
  font-size: 1.15rem;
  color: var(--vis-claridad-tinta);
  margin-bottom: 0.75rem;
}

.vis-faq-bloque p {
  color: var(--vis-claridad-tinta-tenue);
  font-size: 0.95rem;
  line-height: 1.6;
}

/* Static Pages Layout */
.vis-seccion-estatica {
  max-width: 800px;
  margin: 0 auto;
  padding: var(--vis-relleno-seccion) 2rem;
  min-height: 70vh;
}

.vis-seccion-estatica h1 {
  font-size: 2.5rem;
  margin-bottom: 2rem;
}

.vis-seccion-estatica h2 {
  font-size: 1.5rem;
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}

.vis-seccion-estatica p {
  margin-bottom: 1.5rem;
  color: var(--vis-claridad-tinta-tenue);
  font-size: 1rem;
}

/* Thank you page styles */
.vis-seccion-gracias {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
  padding: var(--vis-relleno-seccion) 2rem;
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.vis-gracias-imagen {
  width: 250px;
  height: 180px;
  border-radius: var(--vis-borde-curvo);
  overflow: hidden;
  margin-bottom: 2.5rem;
  box-shadow: var(--vis-sombra-elevada);
}

.vis-gracias-imagen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vis-seccion-gracias h1 {
  font-size: 3rem;
  margin-bottom: 1.5rem;
}

.vis-seccion-gracias p {
  color: var(--vis-claridad-tinta-tenue);
  font-size: 1.15rem;
  margin-bottom: 2.5rem;
}

/* Footer Section */
.vis-pie-pagina {
  background-color: var(--vis-claridad-tinta);
  color: rgba(255, 255, 255, 0.7);
  padding: 5rem 2rem 2.5rem 2rem;
  border-top: 1px solid var(--vis-claridad-borde);
  font-size: 0.9rem;
}

.vis-pie-contenedor {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.vis-pie-columnas {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 3rem;
}

.vis-pie-identidad {
  max-width: 350px;
}

.vis-pie-identidad .vis-logotipo {
  color: white;
  margin-bottom: 1.5rem;
}

.vis-pie-identidad .vis-logotipo svg {
  color: var(--vis-claridad-enfoque);
}

.vis-pie-enlaces {
  display: flex;
  gap: 4rem;
}

.vis-pie-grupo-links {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.vis-pie-grupo-links h4 {
  color: white;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.vis-pie-grupo-links a:hover {
  color: white;
}

.vis-pie-descargo {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 2rem;
  text-align: center;
}

.vis-pie-descargo p {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.8rem;
  max-width: 800px;
  margin: 0 auto 1.5rem auto;
  line-height: 1.5;
}

.vis-pie-derechos {
  font-size: 0.8rem;
}

/* Cookie Banner */
.vis-banner-cookies {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: var(--vis-claridad-tinta);
  color: white;
  padding: 1.5rem 2rem;
  z-index: 9999;
  display: none;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.15);
}

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

.vis-cookies-texto {
  flex: 1 1 600px;
  font-size: 0.85rem;
  opacity: 0.9;
}

.vis-cookies-botones {
  display: flex;
  gap: 1rem;
}

.vis-cookies-btn {
  padding: 0.6rem 1.5rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.85rem;
  border: none;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

#accept-cookie {
  background-color: var(--vis-claridad-enfoque);
  color: white;
}

#decline-cookie {
  background-color: transparent;
  color: white;
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.vis-cookies-btn:hover {
  opacity: 0.9;
}

/* Responsive Rules */
@media (max-width: 1024px) {
  .vis-plantilla-dos-columnas {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  
  .vis-formulario-envoltura {
    position: static;
  }
}

@media (max-width: 900px) {
  /* Menu Mobile Hamburger */
  .vis-menu-icono {
    display: flex;
  }
  
  .vis-grupo-navegacion {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: var(--vis-claridad-superficie);
    border-bottom: 1px solid var(--vis-claridad-borde);
    flex-direction: column;
    padding: 2rem;
    gap: 1.5rem;
    transform: translateY(-110%);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.3s ease;
    z-index: 1001;
    pointer-events: none;
  }
  
  .vis-menu-casilla:checked ~ .vis-grupo-navegacion {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  
  .vis-menu-casilla:checked ~ .vis-menu-icono span:nth-child(1) {
    transform: rotate(45deg) translate(6px, 6px);
  }
  
  .vis-menu-casilla:checked ~ .vis-menu-icono span:nth-child(2) {
    opacity: 0;
  }
  
  .vis-menu-casilla:checked ~ .vis-menu-icono span:nth-child(3) {
    transform: rotate(-45deg) translate(6px, -6px);
  }
  
  /* Hero Split Mobile */
  .vis-seccion-hero {
    flex-direction: column;
  }
  
  .vis-hero-contenido {
    flex: 1 1 auto;
    padding: 4rem 2rem;
    max-width: 100%;
  }
  
  .vis-hero-imagen {
    height: 40vh;
    flex: 1 1 auto;
  }
  
  /* Press layout */
  .vis-periodismo-columnas {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  
  /* Masonry Feature columns */
  .vis-masonry-bloques {
    column-count: 2;
  }
  
  /* Horizontal progress timeline -> vertical */
  .vis-pista-progreso {
    flex-direction: column;
    gap: 3rem;
    align-items: flex-start;
  }
  
  .vis-pista-progreso::before {
    top: 10%;
    bottom: 10%;
    left: 30px;
    width: 2px;
    height: auto;
    border-left: 2px dashed var(--vis-claridad-borde);
    border-top: none;
  }
  
  .vis-paso-progreso {
    flex-direction: row;
    gap: 2rem;
    text-align: left;
  }
  
  .vis-paso-circulo {
    margin-bottom: 0;
    flex-shrink: 0;
  }
  
  /* Expert bio mobile */
  .vis-expert-fila {
    flex-direction: column;
  }
  
  .vis-expert-lado-imagen {
    height: 40vh;
    width: 100%;
  }
  
  .vis-expert-lado-bio {
    padding: 4rem 2rem;
    width: 100%;
  }
  
  /* Stats row mobile */
  .vis-contenedor-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

@media (max-width: 600px) {
  .vis-masonry-bloques {
    column-count: 1;
  }
  
  .vis-contenedor-stats {
    grid-template-columns: 1fr;
  }
  
  .vis-pie-enlaces {
    flex-direction: column;
    gap: 2rem;
  }
  
  .vis-cookies-contenedor {
    flex-direction: column;
    align-items: flex-start;
  }
}