:root {
  font-size: 62.5%;
  --color-fondo: #f2eee5;
  --color-fondo-arena: #e8e0d0;
  --color-superficie: #fbf8f1;
  --color-superficie-oscura: #111815;
  --color-superficie-oscura-2: #0b110f;
  --color-texto: #1b241f;
  --color-texto-suave: #657069;
  --color-texto-claro: #e9eee9;
  --color-texto-claro-suave: #aeb8b1;
  --color-acento: #c9a967;
  --color-acento-fuerte: #b28c4e;
  --color-borde: rgba(27, 36, 31, .14);
  --color-borde-oscuro: rgba(232, 238, 233, .14);
  --color-exito: #2d8b5c;
  --tipografia-cuerpo: "DM Sans", system-ui, sans-serif;
  --tipografia-titulos: "Manrope", system-ui, sans-serif;
  --tipografia-display: "Playfair Display", Georgia, serif;
  --texto-xs: 1.2rem;
  --texto-sm: 1.4rem;
  --texto-base: 1.55rem;
  --texto-lg: 1.8rem;
  --texto-xl: 2.1rem;
  --texto-2xl: 2.8rem;
  --texto-3xl: 3.8rem;
  --texto-4xl: 5rem;
  /* Escala tipográfica fluida: ratio aproximado 1.25 (major third suavizada). */
  --tipo-label: clamp(1.4rem, .35vw + 1.28rem, 1.7rem);
  --tipo-meta: clamp(1.5rem, .45vw + 1.34rem, 1.9rem);
  --tipo-cuerpo: clamp(1.6rem, .45vw + 1.45rem, 2rem);
  --tipo-cuerpo-lg: clamp(1.9rem, .75vw + 1.65rem, 2.5rem);
  --tipo-subtitulo: clamp(2.2rem, 1vw + 1.85rem, 3.4rem);
  --tipo-titulo-seccion: clamp(3.8rem, 4.4vw, 6.8rem);
  --tipo-dato: clamp(3rem, 3.8vw, 5.4rem);
  --tipo-numero: clamp(1.7rem, 1vw + 1.35rem, 2.5rem);
  --tipo-hero: clamp(5rem, 9vw, 10.5rem);
  --espaciado-1: .6rem;
  --espaciado-2: 1rem;
  --espaciado-3: 1.6rem;
  --espaciado-4: 2.4rem;
  --espaciado-5: 3.2rem;
  --espaciado-6: 4.8rem;
  --espaciado-7: 7.2rem;
  --espaciado-8: 9.6rem;
  --radio-sm: .8rem;
  --radio-md: 1.4rem;
  --radio-lg: 2.2rem;
  --radio-pill: 999px;
  --sombra-suave: 0 1.8rem 5rem rgba(24, 30, 26, .08);
  --sombra-tarjeta: 0 2.8rem 7rem rgba(29, 25, 20, .11);
  --transicion-rapida: 180ms ease;
  --transicion: 320ms cubic-bezier(.2, .8, .2, 1);
  --contenedor: 122rem;
  --cabecera-altura: 8.2rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--color-fondo); color: var(--color-texto); font-family: var(--tipografia-cuerpo); font-size: var(--texto-base); line-height: 1.65; overflow-x: hidden; }
body.sin-desplazamiento { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { border: 0; }
:focus-visible { outline: .25rem solid var(--color-acento); outline-offset: .3rem; }

.enlace-salto { position: fixed; left: 1rem; top: 1rem; z-index: 200; transform: translateY(-200%); background: var(--color-acento); color: var(--color-superficie-oscura-2); padding: .8rem 1.2rem; border-radius: .8rem; font-weight: 800; }
.enlace-salto:focus { transform: translateY(0); }
.contenedor { width: min(var(--contenedor), calc(100% - 3.2rem)); margin-inline: auto; }
.seccion { padding: 8.4rem 0; }
.seccion--oscura { background: var(--color-superficie-oscura); color: var(--color-texto-claro); }
.seccion--arena { background: var(--color-fondo-arena); }
.etiqueta, .micro-etiqueta { display: inline-flex; align-items: center; gap: .8rem; font-size: 1.15rem; line-height: 1.2; letter-spacing: .16em; text-transform: uppercase; font-weight: 800; }
.etiqueta::before { content: ""; display: inline-block; width: 2.8rem; height: 1px; background: currentColor; opacity: .6; }
.etiqueta--oscura { color: #5c675f; }
.cabecera-seccion { max-width: 76rem; margin-bottom: 4.8rem; }
.cabecera-seccion h2, .manifiesto h2, .contacto h2 { margin: 1.6rem 0 0; font-family: var(--tipografia-titulos); font-size: clamp(4rem, 6vw, 7.2rem); line-height: .98; letter-spacing: -.045em; font-weight: 800; }
.cabecera-seccion h2 em, .manifiesto h2 em, .contacto h2 em { font-family: var(--tipografia-display); font-weight: 600; letter-spacing: -.02em; }
.cabecera-seccion > p { max-width: 54rem; color: var(--color-texto-suave); font-size: 1.7rem; margin: 1.6rem 0 0; }
.cabecera-seccion--clara > p { color: var(--color-texto-claro-suave); }
.texto-destacado { font-size: clamp(2rem, 2.1vw, 2.7rem); line-height: 1.35; letter-spacing: -.02em; }
.texto-enlace { display: inline-flex; align-items: center; gap: .8rem; margin-top: 1.4rem; color: var(--color-acento-fuerte); font-weight: 800; font-size: 1.35rem; text-transform: uppercase; letter-spacing: .09em; }

.boton { min-height: 4.8rem; display: inline-flex; align-items: center; justify-content: center; gap: 1.2rem; border-radius: var(--radio-pill); padding: 1.15rem 1.8rem; font-weight: 800; font-size: 1.3rem; line-height: 1.1; transition: transform var(--transicion-rapida), background var(--transicion-rapida), color var(--transicion-rapida), border-color var(--transicion-rapida), box-shadow var(--transicion-rapida); }
.boton:hover { transform: translateY(-2px); }
.boton--primario { background: var(--color-acento); color: #121611; box-shadow: 0 1.4rem 3.3rem rgba(201, 169, 103, .22); }
.boton--primario:hover { background: #d5b879; }
.boton--claro { background: #f4f1e8; color: #151b17; }
.boton--vidrio { color: #fff; border: 1px solid rgba(255, 255, 255, .36); background: rgba(255, 255, 255, .1); backdrop-filter: blur(12px); }
.boton--pequeno { min-height: 4.2rem; padding: 1rem 1.4rem; }
.boton--ancho { width: 100%; }

.encabezado { position: fixed; inset: 0 0 auto; z-index: 100; transition: background var(--transicion), border-color var(--transicion), box-shadow var(--transicion); }
.encabezado--transparente { color: #fff; }
.encabezado--compacto { background: rgba(11, 17, 15, .94); border-bottom: 1px solid rgba(255,255,255,.1); box-shadow: 0 1rem 3rem rgba(0,0,0,.12); backdrop-filter: blur(16px); }
.nav-principal { min-height: var(--cabecera-altura); display: flex; align-items: center; justify-content: space-between; gap: 2rem; position: relative; }
.nav-principal__marca { display: inline-flex; align-items: center; gap: 1rem; min-width: 0; }
.nav-principal__marca-simbolo { width: 4rem; height: 4rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); font-family: var(--tipografia-titulos); font-weight: 800; letter-spacing: .12em; font-size: 1.15rem; }
.nav-principal__marca-texto { font-family: var(--tipografia-titulos); font-size: 1.1rem; font-weight: 700; line-height: 1.1; letter-spacing: .03em; text-transform: uppercase; }
.nav-principal__marca-texto small { color: var(--color-acento); font-size: .88em; font-weight: 600; }
.nav-principal__alternar { display: none; width: 4.6rem; height: 4.6rem; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; align-items: center; justify-content: center; flex-direction: column; gap: .45rem; cursor: pointer; }
.nav-principal__alternar-linea { width: 1.8rem; height: 1px; background: currentColor; transition: transform var(--transicion), opacity var(--transicion); }
.nav-principal__panel { display: flex; align-items: center; gap: 2.3rem; }
.nav-principal__enlaces { display: flex; align-items: center; gap: 2.2rem; }
.nav-principal__enlaces a { font-size: 1.22rem; font-weight: 700; color: rgba(255,255,255,.86); transition: color var(--transicion-rapida); }
.nav-principal__enlaces a:hover { color: var(--color-acento); }
.nav-principal__cabecera-movil, .nav-principal__fondo { display: none; }

.hero { position: relative; min-height: max(76rem, 100svh); display: flex; align-items: flex-end; overflow: hidden; color: #fff; }
.hero__fondo, .hero__velo { position: absolute; inset: 0; }
.hero__fondo img { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; transform: scale(1.02); }
.hero__velo { background: linear-gradient(180deg, rgba(7, 12, 10, .44) 0%, rgba(7,12,10,.15) 28%, rgba(7,12,10,.62) 72%, rgba(7,12,10,.91) 100%), linear-gradient(90deg, rgba(7,12,10,.38), transparent 52%); }
.hero__contenido { position: relative; z-index: 2; padding: 14rem 0 6.6rem; }
.hero__meta { font-size: clamp(1.15rem, 1.25vw, 1.45rem); letter-spacing: .15em; line-height: 1.35; text-transform: uppercase; font-weight: 800; color: rgba(255,255,255,.82); }
.hero__pre-titulo { margin: 1.8rem 0 0; max-width: 62rem; font-size: clamp(2rem, 2.25vw, 2.8rem); line-height: 1.25; color: rgba(255,255,255,.92); }
.hero__titulo { margin: 1.2rem 0 0; max-width: 100%; font-family: var(--tipografia-titulos); font-size: clamp(5.4rem, 11vw, 11.5rem); font-weight: 800; line-height: .86; letter-spacing: -.07em; }
.hero__titulo em { font-family: var(--tipografia-display); font-weight: 600; font-size: .72em; margin-left: .1em; color: var(--color-acento); }
.hero__descripcion { max-width: 68rem; margin: 2.2rem 0 0; font-size: clamp(1.7rem, 1.7vw, 2.05rem); line-height: 1.55; color: rgba(255,255,255,.9); }
.hero__acciones { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.8rem; }
.hero__datos { margin-top: 5.6rem; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1.2rem; max-width: 72rem; }
.hero__datos div { padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.22); }
.hero__datos strong { display: block; font-family: var(--tipografia-titulos); font-size: clamp(2.8rem, 3vw, 4.1rem); line-height: 1; letter-spacing: -.04em; }
.hero__datos span { display: block; margin-top: .6rem; font-size: 1.15rem; text-transform: uppercase; letter-spacing: .09em; color: rgba(255,255,255,.65); }

.manifiesto__rejilla { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 8rem; align-items: end; }
.manifiesto__texto { max-width: 64rem; color: var(--color-texto-claro-suave); }
.manifiesto__texto .texto-destacado { color: #e8eee9; margin: 0 0 2rem; }
.manifiesto__texto p:last-child { font-size: 1.55rem; }
.caracteristicas { margin-top: 7rem; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--color-borde-oscuro); }
.caracteristica { min-height: 21rem; padding: 2.3rem 2rem 0 0; display: grid; grid-template-columns: auto 1fr; gap: 1.3rem; border-right: 1px solid var(--color-borde-oscuro); }
.caracteristica:not(:first-child) { padding-left: 2rem; }
.caracteristica:last-child { border-right: 0; }
.caracteristica__numero { color: var(--color-acento); font-size: 1.3rem; line-height: 1.2; font-weight: 800; letter-spacing: .1em; }
.caracteristica h3 { margin: 0; font-size: 1.8rem; line-height: 1.2; font-family: var(--tipografia-titulos); }
.caracteristica p { margin: 1rem 0 0; color: var(--color-texto-claro-suave); font-size: 1.5rem; line-height: 1.6; }

.experiencia-visual { background: var(--color-superficie); }
.experiencia-visual__rejilla { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(24rem, .85fr); grid-template-rows: repeat(2, minmax(28rem, 32rem)); gap: 1.8rem; }
.imagen-tarjeta { position: relative; min-height: 0; overflow: hidden; border-radius: var(--radio-lg); background: #333; }
.imagen-tarjeta img, .imagen-tarjeta video { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 700ms cubic-bezier(.2,.7,.2,1); }
.imagen-tarjeta--grande img { object-position: center 58%; }
.imagen-tarjeta--vertical img { object-position: center 42%; }
.imagen-tarjeta--lake img { object-position: center 62%; }
.imagen-tarjeta:hover img { transform: scale(1.04); }
.imagen-tarjeta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 34%, rgba(5,8,7,.76) 100%); }
.imagen-tarjeta figcaption { position: absolute; z-index: 2; left: 2rem; right: 2rem; bottom: 2rem; color: #fff; }
.imagen-tarjeta figcaption span { display: block; font-size: 1.15rem; line-height: 1.3; letter-spacing: .14em; font-weight: 800; color: rgba(255,255,255,.72); }
.imagen-tarjeta figcaption strong { display: block; margin-top: .7rem; font-family: var(--tipografia-display); font-size: clamp(2.4rem, 3.3vw, 4.4rem); line-height: .98; font-weight: 600; }
.imagen-tarjeta--grande { grid-row: 1 / 3; }
.imagen-tarjeta--lake { grid-column: 2; }

.promesa__rejilla { display: grid; grid-template-columns: .95fr 1.05fr; gap: 8rem; align-items: start; }
.promesa__contenido { max-width: 62rem; }
.promesa__contenido .texto-destacado { margin: 0 0 2rem; }
.promesa__contenido p:not(.texto-destacado) { font-size: 1.6rem; color: #5e675f; }

.montanas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.montana { background: rgba(255,255,255,.38); border: 1px solid var(--color-borde); border-radius: var(--radio-lg); padding: 3rem; }
.montana__cabecera { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--color-borde); }
.montana__cabecera span { font-size: clamp(1.15rem, 1.2vw, 1.4rem); letter-spacing: .12em; line-height: 1.3; font-weight: 800; }
.montana__cabecera strong { font-family: var(--tipografia-titulos); font-size: clamp(3.8rem, 4.5vw, 5.8rem); line-height: .95; letter-spacing: -.06em; }
.montana > p { margin: 2rem 0 2.4rem; color: #5c675f; font-size: 1.65rem; line-height: 1.55; }
.montana__datos { margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.montana__datos div { padding-top: 1rem; border-top: 1px solid var(--color-borde); }
.montana__datos dt { font-size: 1.1rem; line-height: 1.3; text-transform: uppercase; letter-spacing: .1em; color: #7c857f; font-weight: 800; }
.montana__datos dd { margin: .55rem 0 0; font-size: 1.5rem; line-height: 1.35; font-weight: 700; }

.itinerario .cabecera-seccion { max-width: 74rem; }
.itinerario__lista { border-top: 1px solid var(--color-borde-oscuro); }
.dia { border-bottom: 1px solid var(--color-borde-oscuro); }
.dia__encabezado { width: 100%; display: grid; grid-template-columns: 5rem 10rem minmax(0, 1fr) 3rem; align-items: center; gap: 1.3rem; padding: 2rem 0; background: transparent; color: inherit; cursor: pointer; text-align: left; }
.dia__numero { color: var(--color-acento); font-family: var(--tipografia-titulos); font-weight: 800; font-size: 1.5rem; }
.dia__fecha { color: #94a097; font-size: 1.2rem; letter-spacing: .09em; font-weight: 800; }
.dia__titulo { font-family: var(--tipografia-titulos); font-weight: 700; font-size: clamp(1.8rem, 2.1vw, 2.55rem); line-height: 1.2; }
.dia__icono { width: 3rem; height: 3rem; display: grid; place-items: center; border: 1px solid var(--color-borde-oscuro); border-radius: 50%; color: var(--color-acento); transition: transform var(--transicion), background var(--transicion), color var(--transicion); }
.dia--activo .dia__icono { transform: rotate(45deg); background: rgba(201,169,103,.1); }
.dia__cuerpo { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 420ms cubic-bezier(.2,.8,.2,1); }
.dia__cuerpo > div { overflow: hidden; }
.dia--activo .dia__cuerpo { grid-template-rows: 1fr; }
.dia__grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 5rem; padding: 0 0 2.6rem 15.6rem; }
.dia__grid h3 { margin: .8rem 0 1.1rem; font-size: clamp(2rem, 2.3vw, 3rem); line-height: 1.08; font-family: var(--tipografia-titulos); }
.dia__grid p { max-width: 66rem; color: var(--color-texto-claro-suave); font-size: 1.55rem; margin: 0; }
.micro-etiqueta { color: var(--color-acento); }
.dia__grid aside { border-left: 1px solid var(--color-borde-oscuro); padding-left: 2rem; display: grid; align-content: start; gap: .45rem; }
.dia__grid aside span { margin-top: .8rem; color: #89948c; font-size: 1.1rem; line-height: 1.3; letter-spacing: .1em; font-weight: 800; }
.dia__grid aside strong { font-size: 1.45rem; }

.incluye__rejilla { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--color-borde); border-left: 1px solid var(--color-borde); }
.incluye__tarjeta { padding: 2.6rem; min-height: 21rem; border-right: 1px solid var(--color-borde); border-bottom: 1px solid var(--color-borde); background: rgba(255,255,255,.18); }
.incluye__tarjeta i { color: var(--color-acento-fuerte); font-size: 2.5rem; }
.incluye__tarjeta h3 { margin: 1.3rem 0 .7rem; font-family: var(--tipografia-titulos); font-size: 1.85rem; }
.incluye__tarjeta p { margin: 0; font-size: 1.5rem; line-height: 1.55; color: #69736c; }
.incluye__nota { margin-top: 1.8rem; padding: 1.6rem 1.8rem; border-radius: var(--radio-md); background: rgba(255,255,255,.35); color: #69736c; font-size: 1.35rem; line-height: 1.5; }
.incluye__nota strong { color: var(--color-texto); }

.equipamiento__rejilla { display: grid; grid-template-columns: .9fr 1.1fr; gap: 7rem; align-items: start; }
.equipamiento__rejilla .cabecera-seccion { margin-bottom: 0; }
.equipamiento__items { display: grid; grid-template-columns: repeat(2,1fr); gap: 0; border-top: 1px solid var(--color-borde); border-left: 1px solid var(--color-borde); }
.equipo { min-height: 19rem; padding: 2rem; border-right: 1px solid var(--color-borde); border-bottom: 1px solid var(--color-borde); }
.equipo span { color: var(--color-acento-fuerte); font-size: 1.1rem; line-height: 1.3; font-weight: 800; letter-spacing: .1em; }
.equipo h3 { margin: 1rem 0 .7rem; font-family: var(--tipografia-titulos); font-size: 1.8rem; }
.equipo p { margin: 0; color: #69736c; font-size: 1.5rem; line-height: 1.55; }

.galeria { background: var(--color-superficie); }
.galeria__mosaico { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(20rem, 26rem)); gap: 1.8rem; grid-auto-flow: dense; }
.galeria__pieza { margin: 0; overflow: hidden; border-radius: var(--radio-lg); background: #3c3f3b; }
.galeria__pieza img, .galeria__pieza video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 700ms cubic-bezier(.2,.7,.2,1); }
.galeria__pieza:nth-child(1) img { object-position: center 58%; }
.galeria__pieza:nth-child(2) img { object-position: center 38%; }
.galeria__pieza:nth-child(3) img { object-position: center 28%; }
.galeria__pieza:nth-child(4) video { object-position: center; }
.galeria__pieza:hover img { transform: scale(1.04); }
.galeria__pieza:hover video { transform: scale(1.04); }
.galeria__pieza--ancha { grid-column: span 2; }
.galeria__pieza--alta { grid-row: span 2; }
.galeria__pieza--recorte img { object-position: 50% 72%; }
.galeria__pieza--recorte-vertical img { object-position: 50% 38%; }
.galeria__pieza:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; }
.galeria__pieza:nth-child(2) { grid-column: 3; grid-row: 1 / 3; }
.galeria__pieza:nth-child(3) { grid-column: 4; grid-row: 1; }
.galeria__pieza:nth-child(4) { grid-column: 4; grid-row: 2; }
.galeria__pieza:nth-child(5) { grid-column: 1; grid-row: 3; }
.galeria__pieza:nth-child(6) { grid-column: 2 / 5; grid-row: 3; }
.galeria__pieza { cursor: zoom-in; }
.galeria__pieza img, .galeria__pieza video { object-position: 50% 50%; }
.galeria__pieza:nth-child(1) img { object-position: 50% 58%; }
.galeria__pieza:nth-child(2) img { object-position: 50% 50%; }
.galeria__pieza:nth-child(3) img { object-position: 50% 42%; }
.galeria__pieza:nth-child(5) img { object-position: 50% 58%; }
.galeria__pieza:nth-child(6) img { object-position: 50% 50%; }

.visor { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: 2.4rem; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity var(--transicion), visibility var(--transicion); }
.visor--abierto { opacity: 1; visibility: visible; pointer-events: auto; }
.visor__fondo { position: absolute; inset: 0; background: rgba(4,8,6,.88); backdrop-filter: blur(14px); }
.visor__dialogo { position: relative; z-index: 1; width: min(118rem, 100%); height: min(88svh, 82rem); display: grid; grid-template-columns: 5.6rem minmax(0, 1fr) 5.6rem; align-items: center; gap: 1.5rem; }
.visor__contenido { min-width: 0; min-height: 0; height: 100%; display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 1.5rem; align-items: center; }
.visor__media { min-height: 0; height: 100%; display: grid; place-items: center; }
.visor__media img, .visor__media video { display: block; width: 100%; height: 100%; max-height: 76svh; object-fit: contain; border-radius: var(--radio-md); box-shadow: 0 2rem 7rem rgba(0,0,0,.34); background: #080d0b; }
.visor__titulo { margin: 0; color: rgba(255,255,255,.82); text-align: center; font-size: var(--tipo-meta); line-height: 1.4; }
.visor__cerrar, .visor__flecha { display: grid; place-items: center; width: 5rem; height: 5rem; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; cursor: pointer; transition: background var(--transicion-rapida), transform var(--transicion-rapida), border-color var(--transicion-rapida); }
.visor__cerrar { position: absolute; z-index: 2; top: -1rem; right: -1rem; font-size: 3.2rem; font-weight: 300; line-height: 1; }
.visor__flecha { font-size: 4rem; font-weight: 300; line-height: 1; }
.visor__flecha--anterior { justify-self: start; }
.visor__flecha--siguiente { justify-self: end; }
.visor__cerrar:hover, .visor__flecha:hover, .visor__cerrar:focus-visible, .visor__flecha:focus-visible { background: var(--color-acento); border-color: var(--color-acento); color: #111815; transform: scale(1.06); }
body.visor-abierto { overflow: hidden; }

.faq__rejilla { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8rem; align-items: start; }
.faq__lista { border-top: 1px solid var(--color-borde-oscuro); }
.faq__item { border-bottom: 1px solid var(--color-borde-oscuro); }
.faq__item summary { list-style: none; cursor: pointer; padding: 1.8rem 0; display: flex; align-items: center; justify-content: space-between; gap: 2rem; font-family: var(--tipografia-titulos); font-size: 1.7rem; font-weight: 700; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: '+'; font-size: 2rem; color: #7f8982; transition: transform var(--transicion-rapida); }
.faq__item[open] summary::after { transform: rotate(45deg); }
.faq__item p { margin: 0; padding: 0 4rem 2.3rem 0; color: var(--color-texto-claro-suave); font-size: 1.55rem; line-height: 1.6; }

.contacto { background: #ece5d7; }
.contacto__envoltura { display: grid; grid-template-columns: 1fr 1fr; gap: 7rem; align-items: start; }
.contacto__contenido { padding-top: .5rem; }
.contacto__contenido > p { max-width: 56rem; color: #5f6962; font-size: 1.7rem; }
.contacto__beneficios { margin-top: 2.2rem; display: grid; gap: .8rem; }
.contacto__beneficios span { display: inline-flex; gap: .8rem; align-items: center; color: #536057; font-size: 1.35rem; font-weight: 700; }
.contacto__beneficios i { color: var(--color-acento-fuerte); }
.contacto__nota { margin-top: 4rem; padding-top: 2rem; border-top: 1px solid var(--color-borde); display: grid; gap: .6rem; }
.contacto__nota span { font-size: 1rem; letter-spacing: .17em; font-weight: 800; }
.contacto__nota small { color: #7a817b; font-size: 1.2rem; }
.contacto__envoltura { grid-template-columns: minmax(0, 78rem); justify-content: center; text-align: center; }
.contacto__contenido { padding-top: 0; max-width: 78rem; margin-inline: auto; }
.contacto__contenido > p { margin-inline: auto; }
.contacto__beneficios { justify-content: center; }
.contacto__nota { justify-items: center; }
.contacto__cta { display: grid; justify-items: center; gap: 1.4rem; max-width: 62rem; margin: 3.8rem auto 0; padding: 3.6rem 3rem; border: 1px solid rgba(27,36,31,.14); border-radius: var(--radio-lg); background: rgba(255,255,255,.42); }
.contacto__cta-etiqueta { color: var(--color-acento-fuerte); font-size: var(--tipo-label); font-weight: 800; letter-spacing: .14em; }
.contacto__cta h3 { margin: 0; font-family: var(--tipografia-titulos); font-size: var(--tipo-subtitulo); line-height: 1.1; }
.contacto__cta p { max-width: 48rem; margin: 0; color: #5f6962; font-size: var(--tipo-cuerpo); }
.boton--whatsapp { background: #1fae63; color: #fff; box-shadow: 0 1.4rem 3.3rem rgba(31,174,99,.2); }
.boton--whatsapp:hover { background: #168d4f; }
.formulario { background: var(--color-superficie); padding: 3rem; border-radius: var(--radio-lg); box-shadow: var(--sombra-tarjeta); }
.formulario__cabecera { display: grid; gap: .65rem; padding-bottom: 1.8rem; margin-bottom: 2rem; border-bottom: 1px solid var(--color-borde); }
.formulario__cabecera span { color: var(--color-acento-fuerte); font-size: 1rem; letter-spacing: .17em; font-weight: 800; }
.formulario__cabecera strong { font-family: var(--tipografia-titulos); font-size: 2rem; }
.formulario__grupo { display: grid; gap: .65rem; margin-bottom: 1.4rem; }
.formulario__fila { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.formulario label { font-size: 1.2rem; font-weight: 800; }
.formulario label span { color: #8a908b; font-weight: 400; }
.formulario input, .formulario textarea { width: 100%; border: 1px solid var(--color-borde); border-radius: 1.1rem; padding: 1.2rem 1.25rem; background: #fffdf8; color: var(--color-texto); }
.formulario input { min-height: 4.8rem; }
.formulario textarea { resize: vertical; min-height: 13rem; }
.formulario input:focus, .formulario textarea:focus { border-color: var(--color-acento-fuerte); outline: none; box-shadow: 0 0 0 .3rem rgba(201,169,103,.17); }
.formulario__error { min-height: 1.35rem; color: #9f3d32; font-size: 1.1rem; }
.formulario__estado { min-height: 2rem; margin: 1rem 0 0; color: #5b655d; font-size: 1.2rem; }

.whatsapp-flotante { position: fixed; right: 1.6rem; bottom: 1.6rem; z-index: 90; display: inline-flex; align-items: center; gap: .9rem; min-height: 5rem; padding: 1rem 1.25rem; background: #1fae63; color: #fff; border-radius: var(--radio-pill); box-shadow: 0 1.6rem 3.8rem rgba(0,0,0,.22); font-size: 1.25rem; font-weight: 800; transition: transform var(--transicion-rapida), box-shadow var(--transicion-rapida); }
.whatsapp-flotante:hover { transform: translateY(-3px); box-shadow: 0 2rem 4.8rem rgba(0,0,0,.27); }
.whatsapp-flotante i { font-size: 2.2rem; }

.pie { background: var(--color-superficie-oscura-2); color: var(--color-texto-claro); padding: 5rem 0 2rem; }
.pie__principal { display: grid; grid-template-columns: 1.1fr .8fr .8fr; gap: 4rem; padding-bottom: 3.4rem; border-bottom: 1px solid var(--color-borde-oscuro); }
.pie__marca-bloque { display: flex; gap: 1.4rem; align-items: center; }
.pie__marca { width: 5.4rem; height: 5.4rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.3); font-family: var(--tipografia-titulos); font-size: 1.4rem; font-weight: 800; letter-spacing: .1em; }
.pie__marca-bloque div { display: grid; gap: .2rem; }
.pie__marca-bloque strong { font-family: var(--tipografia-titulos); font-size: 1.25rem; }
.pie__marca-bloque span { color: var(--color-texto-claro-suave); font-size: 1.15rem; }
.pie__enlaces { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1.4rem; align-content: start; }
.pie__enlaces a { color: #c8d0ca; font-size: 1.25rem; transition: color var(--transicion-rapida); }
.pie__enlaces a:hover { color: var(--color-acento); }
.pie__cta { display: grid; justify-items: start; align-content: start; gap: 1rem; }
.pie__cta span { font-size: 1rem; letter-spacing: .16em; font-weight: 800; color: var(--color-acento); }
.pie__cta a { font-family: var(--tipografia-titulos); font-size: 1.65rem; font-weight: 700; }
.pie__inferior { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-top: 2rem; color: #7f8a83; font-size: 1.05rem; }
.pie__inferior a:hover { color: var(--color-texto-claro); }

.revelable { opacity: 0; transform: translateY(2.2rem); transition: opacity 760ms ease, transform 760ms cubic-bezier(.2,.8,.2,1); }
.revelable--visible { opacity: 1; transform: none; }
.entrada-suave { animation: entrada 900ms cubic-bezier(.2,.8,.2,1) both; }
@keyframes entrada { from { opacity: 0; transform: translateY(1.8rem); } to { opacity: 1; transform: none; } }

@media (max-width: 1199px) {
  .contenedor { width: min(var(--contenedor), calc(100% - 4rem)); }
  .nav-principal__alternar { display: inline-flex; }
  .nav-principal__panel { position: fixed; inset: 0 0 0 auto; width: min(43rem, 88vw); height: 100dvh; padding: 2rem; background: rgba(11,17,15,.98); box-shadow: -2rem 0 5rem rgba(0,0,0,.28); display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 2rem; transform: translateX(105%); transition: transform var(--transicion); z-index: 105; }
  .nav-principal__panel--abierto { transform: translateX(0); }
  .nav-principal__fondo { display: block; position: fixed; inset: 0; z-index: 102; background: rgba(4,7,6,.6); opacity: 0; visibility: hidden; transition: opacity var(--transicion), visibility var(--transicion); }
  .nav-principal__fondo--visible { opacity: 1; visibility: visible; }
  .nav-principal__cabecera-movil { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1.8rem; border-bottom: 1px solid rgba(255,255,255,.1); }
  .nav-principal__menu-etiqueta { color: var(--color-acento); font-size: 1rem; letter-spacing: .15em; font-weight: 800; }
  .nav-principal__cerrar { width: 4.5rem; height: 4.5rem; border-radius: 50%; display: grid; place-items: center; color: #fff; background: rgba(255,255,255,.08); cursor: pointer; }
  .nav-principal__enlaces { display: grid; gap: .8rem; }
  .nav-principal__enlaces a { padding: 1.35rem 1rem; border-radius: 1rem; color: #e7ece8; font-size: 1.7rem; border: 1px solid transparent; }
  .nav-principal__enlaces a:hover { color: var(--color-acento); background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.08); }
  .nav-principal__cta { margin-top: auto; width: 100%; min-height: 5.2rem; }
  .manifiesto__rejilla, .promesa__rejilla, .equipamiento__rejilla, .faq__rejilla { grid-template-columns: 1fr; gap: 5rem; }
  .caracteristicas { grid-template-columns: repeat(2,1fr); }
  .caracteristica:nth-child(2) { border-right: 0; }
  .experiencia-visual__rejilla { grid-template-columns: 1fr 1fr; grid-template-rows: 31rem 31rem; gap: 1.4rem; }
  .imagen-tarjeta--grande { grid-row: 1; grid-column: 1 / 3; }
  .imagen-tarjeta--lake { grid-column: auto; }
  .montanas { grid-template-columns: 1fr; }
  .incluye__rejilla { grid-template-columns: 1fr 1fr; }
  .galeria__mosaico { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(21rem, 28rem)); gap: 1.4rem; }
  .galeria__pieza:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; }
  .galeria__pieza:nth-child(2) { grid-column: 1; grid-row: 3 / 5; }
  .galeria__pieza:nth-child(3) { grid-column: 2; grid-row: 3; }
  .galeria__pieza:nth-child(4) { grid-column: 2; grid-row: 4; }
  .galeria__pieza:nth-child(5), .galeria__pieza:nth-child(6) { grid-column: span 2; grid-row: auto; }
  .galeria__pieza--ancha { grid-column: span 2; }
  .pie__principal { grid-template-columns: 1fr 1fr; }
  .pie__cta { justify-items: end; text-align: right; }
}

@media (max-width: 767px) {
  :root { --texto-base: 1.5rem; }
  .contenedor { width: min(var(--contenedor), calc(100% - 2.4rem)); }
  .seccion { padding: 7rem 0; }
  .nav-principal { min-height: 7.2rem; }
  .nav-principal__marca-simbolo { width: 3.7rem; height: 3.7rem; font-size: 1rem; }
  .nav-principal__marca-texto { font-size: 1rem; }
  .hero { min-height: 82svh; }
  .hero__contenido { padding: 12rem 0 5.4rem; }
  .hero__meta { font-size: 1.05rem; letter-spacing: .11em; }
  .hero__pre-titulo { margin-top: 1.3rem; font-size: clamp(1.8rem, 5vw, 2.2rem); max-width: 34rem; }
  .hero__titulo { margin-top: 1rem; font-size: clamp(4.8rem, 16vw, 8rem); }
  .hero__descripcion { margin-top: 1.7rem; font-size: 1.65rem; line-height: 1.55; }
  .hero__acciones { margin-top: 2rem; display: grid; grid-template-columns: 1fr; }
  .hero__datos { margin-top: 4rem; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .hero__datos strong { font-size: 2.8rem; }
  .cabecera-seccion h2, .manifiesto h2, .contacto h2 { font-size: clamp(3.6rem, 12vw, 5.6rem); }
  .cabecera-seccion { margin-bottom: 3.5rem; }
  .manifiesto__rejilla { gap: 3.2rem; }
  .manifiesto__texto .texto-destacado { font-size: 2rem; }
  .caracteristicas { grid-template-columns: 1fr; margin-top: 5rem; }
  .caracteristica, .caracteristica:not(:first-child) { min-height: auto; padding: 2rem 0; border-right: 0; border-bottom: 1px solid var(--color-borde-oscuro); }
  .caracteristica:last-child { border-bottom: 0; }
  .experiencia-visual__rejilla { grid-template-columns: 1fr; grid-template-rows: 38rem 30rem 30rem; gap: 1.2rem; }
  .imagen-tarjeta--grande, .imagen-tarjeta--lake { grid-column: auto; grid-row: auto; }
  .imagen-tarjeta figcaption strong { font-size: 2.8rem; }
  .promesa__rejilla { gap: 2.5rem; }
  .promesa__contenido .texto-destacado { font-size: 2rem; }
  .montana { padding: 2.2rem; }
  .montana__cabecera { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; }
  .montana__cabecera strong { font-size: clamp(3.8rem, 13vw, 5rem); }
  .montana__datos { grid-template-columns: 1fr; gap: 1rem; }
  .dia__encabezado { grid-template-columns: 3.6rem 5.8rem minmax(0,1fr) 2.8rem; gap: .7rem; padding: 1.7rem 0; }
  .dia__fecha { font-size: 1rem; }
  .dia__titulo { font-size: 1.65rem; }
  .dia__icono { width: 2.8rem; height: 2.8rem; }
  .dia__grid { grid-template-columns: 1fr; gap: 2.2rem; padding: 0 0 2.2rem; }
  .dia__grid h3 { font-size: 2.2rem; }
  .dia__grid aside { border-left: 0; border-top: 1px solid var(--color-borde-oscuro); padding: 1.5rem 0 0; }
  .incluye__rejilla { grid-template-columns: 1fr; }
  .incluye__tarjeta { min-height: auto; padding: 2.2rem; }
  .equipamiento__items { grid-template-columns: 1fr; }
  .galeria__mosaico { grid-template-columns: 1fr; grid-template-rows: repeat(6, minmax(24rem, 32rem)); grid-auto-rows: auto; gap: 1.2rem; }
  .galeria__pieza--ancha { grid-column: auto; }
  .galeria__pieza--alta { grid-row: auto; }
  .galeria__pieza:nth-child(n) { grid-column: auto; grid-row: auto; }
  .formulario__fila { grid-template-columns: 1fr; }
  .formulario { padding: 2rem; }
  .faq__rejilla { gap: 3.2rem; }
  .faq__item summary { font-size: 1.6rem; padding: 1.6rem 0; }
  .faq__item p { font-size: 1.45rem; padding-right: 2rem; }
  .contacto__cta { margin-top: 3rem; padding: 2.6rem 1.8rem; }
  .pie__principal { grid-template-columns: 1fr; gap: 2.6rem; }
  .pie__cta { justify-items: start; text-align: left; }
  .pie__inferior { flex-direction: column; align-items: flex-start; }
  .whatsapp-flotante { right: 1.2rem; bottom: 1.2rem; min-height: 4.7rem; padding-inline: 1.05rem; }
  .whatsapp-flotante span { display: none; }
}

/* Aplicación semántica de la escala fluida en todos los niveles de contenido. */
.etiqueta, .micro-etiqueta,
.texto-enlace, .boton,
.nav-principal__marca-simbolo, .nav-principal__marca-texto,
.nav-principal__enlaces a, .hero__meta,
.imagen-tarjeta figcaption span, .dia__fecha,
.dia__grid aside span, .equipo span,
.contacto__nota span, .formulario__cabecera span,
.formulario label, .pie__cta span { font-size: var(--tipo-label); }

.hero__pre-titulo, .hero__datos span,
.dia__numero, .montana__cabecera span,
.pie__enlaces a, .pie__inferior { font-size: var(--tipo-meta); }

.hero__descripcion, .cabecera-seccion > p,
.manifiesto__texto p:last-child, .caracteristica p,
.promesa__contenido p:not(.texto-destacado), .montana > p,
.dia__grid p, .incluye__tarjeta p, .equipo p,
.faq__item p, .contacto__contenido > p { font-size: var(--tipo-cuerpo); }

.texto-destacado { font-size: var(--tipo-cuerpo-lg); }

.caracteristica h3, .imagen-tarjeta figcaption strong,
.dia__titulo, .dia__grid h3, .incluye__tarjeta h3,
.equipo h3, .faq__item summary, .formulario__cabecera strong,
.pie__cta a { font-size: var(--tipo-subtitulo); }

.cabecera-seccion h2, .manifiesto h2, .contacto h2 {
  font-size: var(--tipo-titulo-seccion);
}

.hero__titulo { font-size: var(--tipo-hero); }

.hero__datos strong, .montana__cabecera strong {
  font-size: var(--tipo-dato);
}

.caracteristica__numero, .dia__numero { font-size: var(--tipo-numero); }
.montana__datos dd { font-size: var(--tipo-cuerpo); }

.montana__datos dt { font-size: var(--tipo-label); }
.incluye__nota, .formulario__estado, .whatsapp-flotante { font-size: var(--tipo-label); }
.formulario__error { font-size: var(--tipo-label); }
.dia__grid aside strong { font-size: var(--tipo-cuerpo); }
.contacto__beneficios span, .contacto__nota small,
.pie__marca-bloque strong, .pie__marca-bloque span { font-size: var(--tipo-cuerpo); }
.pie__marca { font-size: var(--tipo-meta); }
.formulario input, .formulario textarea { font-size: var(--tipo-cuerpo); }

/* Footer: composición estable en desktop, tablet y móvil. */
.pie__principal {
  grid-template-columns: minmax(24rem, 1.25fr) minmax(18rem, .9fr) minmax(20rem, .85fr);
  gap: clamp(3rem, 5vw, 7rem);
  align-items: start;
}
.pie__marca-bloque { min-width: 0; }
.pie__enlaces { min-width: 0; }
.pie__cta { min-width: 0; justify-items: start; text-align: left; }
.pie__cta a { display: inline-flex; align-items: center; gap: .8rem; line-height: 1.2; }
.pie__inferior { flex-wrap: wrap; }

.whatsapp-flotante {
  width: 5.8rem;
  height: 5.8rem;
  min-height: 5.8rem;
  padding: 0;
  justify-content: center;
  border-radius: 50%;
  animation: whatsapp-pulso 2.8s ease-in-out infinite;
}
.whatsapp-flotante i { font-size: 2.7rem; line-height: 1; }
.whatsapp-flotante:hover, .whatsapp-flotante:focus-visible {
  animation-play-state: paused;
  transform: translateY(-3px) scale(1.05);
}
@keyframes whatsapp-pulso {
  0%, 68%, 100% { box-shadow: 0 1.6rem 3.8rem rgba(0,0,0,.22), 0 0 0 0 rgba(31,174,99,.42); }
  82% { box-shadow: 0 1.6rem 3.8rem rgba(0,0,0,.22), 0 0 0 1.2rem rgba(31,174,99,0); }
}

@media (max-width: 1199px) {
  .pie__principal { grid-template-columns: minmax(22rem, 1.1fr) minmax(16rem, .9fr); gap: 3.5rem; }
  .pie__cta { grid-column: 1 / -1; justify-items: start; text-align: left; padding-top: 1rem; }
}

@media (max-width: 767px) {
  .pie__principal { grid-template-columns: 1fr; gap: 3rem; padding-bottom: 3rem; }
  .pie__marca-bloque { align-items: flex-start; }
  .pie__enlaces { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; }
  .pie__cta { grid-column: auto; padding-top: .5rem; }
  .pie__cta a { font-size: var(--tipo-cuerpo-lg); }
  .pie__inferior { gap: .8rem; }
  .whatsapp-flotante { width: 5.4rem; height: 5.4rem; min-height: 5.4rem; }
  .whatsapp-flotante i { font-size: 2.5rem; }
}

@media (max-width: 767px) {
  .hero__titulo { font-size: clamp(5rem, 16vw, 7.8rem); }
  .montana__cabecera strong { font-size: clamp(3.8rem, 13vw, 5.2rem); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .revelable { opacity: 1; transform: none; }
}

@media (max-width: 767px) {
  .visor { padding: 1.2rem; }
  .visor__dialogo { width: 100%; height: min(84svh, 68rem); grid-template-columns: 4.2rem minmax(0, 1fr) 4.2rem; gap: .5rem; }
  .visor__contenido { gap: 1rem; }
  .visor__media img, .visor__media video { max-height: 72svh; border-radius: var(--radio-sm); }
  .visor__cerrar, .visor__flecha { width: 4rem; height: 4rem; }
  .visor__cerrar { top: -1.4rem; right: -.4rem; font-size: 2.6rem; }
  .visor__flecha { font-size: 3rem; }
}
