/* LetsHoming · web oficial
   Idea de composición: una galería de arquitectura. Mucho aire, una sola pieza protagonista (The Living Space),
   rejilla de 12 columnas con bloques desplazados, líneas finas en vez de tarjetas y esquinas rectas. */

:root {
  /* Color: piedra, marfil y negro suave; un único acento, el bronce de la luz interior de la casa */
  --marfil: #f5f2ec;
  --blanco: #fbfaf7;
  --piedra-1: #ebe6dd;
  --piedra-2: #dcd5c9;
  --piedra-3: #b5ac9e;
  --gris: #6a655d;
  --grafito: #45413b;
  --negro: #191816;
  --negro-2: #24221f;
  --luz: #96713f;
  --luz-clara: #d6b684;
  --en-oscuro: #b9b2a6;
  --error: #a03a26;
  --error-claro: #f0a898;

  /* Tipografía */
  --display: "Cormorant", "Cormorant Garamond", Garamond, "Times New Roman", serif;
  --texto: "Hanken Grotesk", "Helvetica Neue", Arial, system-ui, sans-serif;

  /* Medidas */
  --margen: clamp(20px, 5vw, 80px);
  --nav: 72px;
  --suave: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--nav); -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--marfil); color: var(--negro); font: 400 17px/1.6 var(--texto); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
p, h1, h2, h3, h4, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--luz); outline-offset: 4px; }
::selection { background: var(--negro); color: var(--marfil); }

.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.saltar { position: fixed; left: 12px; top: -80px; z-index: 100; background: var(--negro); color: var(--marfil); padding: 12px 18px; text-decoration: none; }
.saltar:focus { top: 12px; }
.cont { width: min(100% - 2 * var(--margen), 1400px); margin-inline: auto; }

/* ---------- Tipos ---------- */
h1, h2, h3, h4 { font-weight: 400; text-wrap: balance; }
em { font-style: italic; }
.ante { font: 500 12px/1.2 var(--texto); letter-spacing: .22em; text-transform: uppercase; color: var(--gris); }
.ante--claro { color: var(--en-oscuro); }
.ante--suave { margin-top: 44px; }
.titulo { font: 400 clamp(38px, 5.4vw, 84px)/1.02 var(--display); letter-spacing: -.015em; margin-top: 22px; }
.entrada { font-size: clamp(17px, 1.35vw, 20px); line-height: 1.6; color: var(--grafito); max-width: 56ch; }
.flecha { width: 18px; height: 18px; flex: none; transition: transform .4s var(--suave); }

/* ---------- Botones ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 14px; padding: 17px 26px; border: 1px solid transparent; border-radius: 0;
       font: 500 12.5px/1.2 var(--texto); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; cursor: pointer; background: none;
       transition: background .35s var(--suave), color .35s var(--suave), border-color .35s var(--suave); }
.btn:hover .flecha { transform: translateX(5px); }
.btn--solido { background: var(--negro); color: var(--marfil); }
.btn--solido:hover { background: var(--grafito); }
.btn--linea { border-color: rgba(25, 24, 22, .32); color: var(--negro); }
.btn--linea:hover { background: var(--negro); border-color: var(--negro); color: var(--marfil); }
.btn--demo { padding: 24px 30px; gap: 22px; font-size: 13.5px; min-width: min(100%, 290px); justify-content: space-between; }
.btn--claro { background: var(--marfil); color: var(--negro); }
.btn--claro:hover { background: var(--luz-clara); }
.btn--oscuro { background: var(--negro); color: var(--marfil); }
.btn--oscuro:hover { background: var(--luz); }
.btn[disabled] { opacity: .55; cursor: wait; }

/* ---------- Navegación ---------- */
.nav { position: fixed; inset: 0 0 auto; z-index: 50; height: var(--nav); transition: background .5s, border-color .5s, transform .5s var(--suave); border-bottom: 1px solid transparent; }
.nav--solida { background: rgba(245, 242, 236, .86); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); border-bottom-color: rgba(25, 24, 22, .09); }
.nav__in { height: 100%; width: min(100% - 2 * var(--margen), 1560px); margin-inline: auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; }
.marca { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; font: 500 25px/1 var(--display); letter-spacing: .005em; justify-self: start; }
.marca__ico { width: 24px; height: 24px; }
.nav__menu { display: flex; gap: clamp(22px, 3vw, 44px); }
.nav__menu a { position: relative; text-decoration: none; font: 500 12.5px/1 var(--texto); letter-spacing: .16em; text-transform: uppercase; padding: 10px 0; }
.nav__menu a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .45s var(--suave); }
.nav__menu a:hover::after, .nav__menu a[aria-current]::after { transform: scaleX(1); }
.nav__fin { display: flex; align-items: center; gap: 26px; justify-self: end; }
.idiomas { display: flex; align-items: center; gap: 8px; font: 500 12.5px/1 var(--texto); letter-spacing: .14em; color: var(--gris); }
.idiomas a { text-decoration: none; padding: 8px 2px; color: var(--gris); }
.idiomas a:hover { color: var(--negro); }
.idiomas a[aria-current] { color: var(--negro); box-shadow: 0 1px 0 currentColor; }
.btn--nav { padding: 13px 20px; }
.nav__boton { display: none; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; position: relative; margin-right: -10px; }
.nav__boton i, .nav__boton i::before { position: absolute; left: 10px; right: 10px; height: 1.5px; background: var(--negro); transition: transform .4s var(--suave), top .4s var(--suave); }
.nav__boton i { top: 18px; }
.nav__boton i::before { content: ""; left: 0; right: 0; top: 8px; }
.nav__boton[aria-expanded="true"] i { top: 22px; transform: rotate(45deg); }
.nav__boton[aria-expanded="true"] i::before { top: 0; transform: rotate(-90deg); }

.movil { position: fixed; inset: 0; z-index: 45; background: var(--marfil); padding: calc(var(--nav) + 6vh) var(--margen) 40px; display: flex; flex-direction: column; justify-content: space-between; overflow-y: auto;
         opacity: 0; transition: opacity .4s; }
.movil.es-abierto { opacity: 1; }
.movil nav { display: grid; gap: 4px; }
.movil nav a { font: 400 clamp(44px, 13vw, 72px)/1.1 var(--display); text-decoration: none; letter-spacing: -.015em; padding: 6px 0; transform: translateY(24px); opacity: 0; transition: transform .7s var(--suave), opacity .7s; }
.movil.es-abierto nav a { transform: none; opacity: 1; }
.movil nav a:nth-child(2) { transition-delay: .06s; }
.movil nav a:nth-child(3) { transition-delay: .12s; }
.movil nav a:nth-child(4) { transition-delay: .18s; }
.movil__pie { display: grid; gap: 22px; padding-top: 32px; border-top: 1px solid var(--piedra-2); }

/* ---------- Hero · The Living Space ---------- */
.hero { position: relative; height: 290vh; }
.hero--estatico { height: auto; }
.hero__fijo { position: sticky; top: 0; height: 100vh; height: 100svh; min-height: 560px; overflow: hidden; --texto-op: 1; --firma-op: 0; --velo-op: 0; }
.ls { position: absolute; inset: 0; }
.ls__rejilla { position: absolute; inset: 0; opacity: .55;
  background-image: linear-gradient(to right, rgba(25, 24, 22, .055) 1px, transparent 1px), linear-gradient(to bottom, rgba(25, 24, 22, .055) 1px, transparent 1px);
  background-size: 88px 88px; background-position: center;
  -webkit-mask-image: radial-gradient(ellipse 75% 70% at 62% 50%, #000 0%, transparent 78%); mask-image: radial-gradient(ellipse 75% 70% at 62% 50%, #000 0%, transparent 78%); }
.ls__lienzo { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1.4s ease; }
.ls--viva .ls__lienzo { opacity: 1; }
.ls--viva .ls__rejilla { opacity: 0; transition: opacity 1.4s ease; }
.hero--dentro .hero__texto, .hero--dentro .ls__fases, .hero--dentro .hero__scroll { visibility: hidden; }
.ls__alt { position: absolute; right: 2%; bottom: 14%; width: min(64%, 980px); color: var(--negro); }
.ls__alt path { stroke-dasharray: 1; animation: ls-trazo 1.3s var(--suave) var(--d, 0s) both; }
.ls__alt-luz { color: var(--luz-clara); opacity: .5; animation: ls-aparece 1.6s ease var(--d, 3s) both; }
@keyframes ls-trazo { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes ls-aparece { from { opacity: 0; } }

.hero__velo { position: absolute; inset: 0; pointer-events: none; opacity: var(--texto-op);
  background: linear-gradient(90deg, var(--marfil) 0%, rgba(245, 242, 236, .86) 26%, rgba(245, 242, 236, 0) 56%); }
.hero__fijo::after { content: ""; position: absolute; inset: 0; background: var(--marfil); opacity: var(--velo-op); pointer-events: none; }

.hero__texto { position: absolute; z-index: 2; left: var(--margen); bottom: clamp(84px, 15vh, 170px); width: min(100% - 2 * var(--margen), 720px); opacity: var(--texto-op); }
.hero__texto > * { animation: sube 1.1s var(--suave) both; }
.hero__texto > :nth-child(2) { animation-delay: .1s; }
.hero__texto > :nth-child(3) { animation-delay: .22s; }
.hero__texto > :nth-child(4) { animation-delay: .34s; }
@keyframes sube { from { opacity: 0; transform: translateY(26px); } }
.sobre { display: flex; align-items: center; gap: 14px; font: 500 12px/1 var(--texto); letter-spacing: .26em; text-transform: uppercase; color: var(--grafito); }
.sobre__raya { width: 44px; height: 1px; background: currentColor; }
.hero h1 { font: 400 clamp(46px, 6.5vw, 108px)/.96 var(--display); letter-spacing: -.022em; margin: 26px 0 28px; }
.hero__sub { font-size: clamp(16.5px, 1.3vw, 19.5px); color: var(--grafito); max-width: 46ch; }
.hero__acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 38px; }

.ls__fases { position: absolute; z-index: 2; right: var(--margen); bottom: 38px; display: flex; gap: 28px; opacity: var(--texto-op); }
.ls__fases li { font: 500 11px/1 var(--texto); letter-spacing: .2em; text-transform: uppercase; color: var(--piedra-3); padding-top: 12px; border-top: 1px solid var(--piedra-2); min-width: 86px; transition: color .6s, border-color .6s; }
.ls__fases span { margin-right: 10px; }
.ls__fases li.es-hecha { color: var(--gris); border-top-color: var(--gris); }
.ls__fases li.es-activa { color: var(--negro); border-top-color: var(--negro); }

.ls__firma { position: absolute; z-index: 3; inset: 0; display: grid; place-content: center; justify-items: center; gap: 18px; text-align: center; padding: 0 var(--margen); opacity: var(--firma-op); pointer-events: none;
             transform: translateY(calc((1 - var(--firma-op)) * 28px)); }
.ls__firma .marca__ico { width: 34px; height: 34px; }
.ls__firma-marca { font: 400 clamp(56px, 10.5vw, 172px)/.9 var(--display); letter-spacing: -.03em; }
.ls__firma-lema { font: italic 400 clamp(19px, 2.1vw, 30px)/1.3 var(--display); color: var(--grafito); }

.hero__scroll { position: absolute; z-index: 2; left: var(--margen); bottom: 34px; display: flex; align-items: center; gap: 14px; font: 500 11px/1 var(--texto); letter-spacing: .2em; text-transform: uppercase; color: var(--gris); opacity: var(--texto-op); }
.hero__scroll i { width: 1px; height: 30px; background: var(--piedra-2); position: relative; overflow: hidden; }
.hero__scroll i::after { content: ""; position: absolute; inset: 0; background: var(--negro); animation: cae 2.4s var(--suave) infinite; }
@keyframes cae { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(100%); } }
.hero--estatico .hero__scroll, .hero--estatico .ls__firma { display: none; }

/* ---------- Aparición al hacer scroll ---------- */
.js .rv { opacity: 0; transform: translateY(30px); transition: opacity 1.1s ease, transform 1.2s var(--suave); transition-delay: calc(var(--i, 0) * 90ms); }
.js .rv.es-visto { opacity: 1; transform: none; }

/* ---------- Nosotros ---------- */
.sobre-nos { padding: clamp(110px, 16vw, 230px) 0 clamp(90px, 12vw, 180px); }
.manifiesto { font: 400 clamp(29px, 4.3vw, 66px)/1.12 var(--display); letter-spacing: -.012em; margin-top: 30px; max-width: 24ch; max-width: min(100%, 1180px); text-wrap: pretty; }
.manifiesto em { color: var(--luz); }
.sobre-nos__malla { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 24px; row-gap: clamp(40px, 6vw, 90px); margin-top: clamp(64px, 9vw, 130px); }
.sobre-nos__img--a { grid-column: 1 / span 7; }
.sobre-nos__texto { grid-column: 9 / span 4; align-self: end; display: grid; gap: 22px; color: var(--grafito); }
.sobre-nos__img--b { grid-column: 7 / span 4; margin-top: clamp(-60px, -4vw, -20px); }
.sobre-nos__img--b .marco { aspect-ratio: 4 / 5; }
.sobre-nos figcaption, .guest__pie { font-size: 13px; color: var(--gris); margin-top: 14px; }
.guest__pie { margin-top: 44px; padding-top: 16px; border-top: 1px solid var(--piedra-2); }
.marco { overflow: hidden; aspect-ratio: 16 / 10; background: var(--piedra-1); }
.marco img { width: 100%; height: 116%; object-fit: cover; transform: translate3d(0, calc(var(--py, 0) * 1px - 7%), 0); filter: saturate(.86); will-change: transform; }
.pilares { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 24px; margin-top: clamp(80px, 11vw, 170px); }
.pilares > div { border-top: 1px solid var(--negro); padding-top: 22px; }
.pilares dt { font: 400 clamp(30px, 3.2vw, 48px)/1 var(--display); letter-spacing: -.01em; }
.pilares dd { margin-top: 14px; color: var(--grafito); max-width: 30ch; }

/* ---------- Soluciones ---------- */
.soluciones__cabeza { padding-bottom: clamp(70px, 9vw, 130px); }
.soluciones__cabeza .entrada { margin-top: 30px; }
.prod__cabeza { display: grid; gap: 26px; }
.prod__num { font: 500 12.5px/1 var(--texto); letter-spacing: .22em; text-transform: uppercase; display: flex; align-items: center; gap: 16px; }
.prod__num span { font: italic 400 26px/1 var(--display); letter-spacing: 0; text-transform: none; }
.prod__titulo { font: 400 clamp(40px, 6.2vw, 100px)/.98 var(--display); letter-spacing: -.02em; max-width: 14ch; }

/* 01 · Homing3D: oscuro, arquitectónico */
.h3d { background: var(--negro); color: var(--marfil); padding: clamp(96px, 12vw, 180px) 0; }
.h3d .prod__num span, .h3d .prod__titulo em { color: var(--luz-clara); }
.visor { margin-top: clamp(48px, 6vw, 90px); }
.visor__escena { position: relative; width: min(100%, 84vh * 16 / 9); margin-inline: auto; aspect-ratio: 16 / 9; overflow: hidden; background: var(--negro-2); }
.vista { position: absolute; top: 0; bottom: 0; left: 50%; height: 100%; aspect-ratio: 16 / 9; transform: translateX(-50%) scale(calc(1.16 - var(--p, .5) * .14)); transform-origin: 50% 55%; will-change: transform; animation: vista-entra 1.3s var(--suave) both; }
.vista img { width: 100%; height: 100%; object-fit: cover; }
@keyframes vista-entra { from { opacity: 0; filter: blur(8px); } }
.visor__esq { position: absolute; width: 22px; height: 22px; border: 1px solid rgba(245, 242, 236, .75); pointer-events: none; }
.visor__esq--a { left: 18px; top: 18px; border-right: 0; border-bottom: 0; }
.visor__esq--b { right: 18px; top: 18px; border-left: 0; border-bottom: 0; }
.visor__esq--c { left: 18px; bottom: 18px; border-right: 0; border-top: 0; }
.visor__esq--d { right: 18px; bottom: 18px; border-left: 0; border-top: 0; }

.punto { position: absolute; left: var(--x); top: var(--y); width: 0; height: 0; z-index: 2; }
.punto.es-abierto { z-index: 3; }
.punto button { position: absolute; left: -22px; top: -22px; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; border-radius: 50%; color: var(--marfil); }
.punto button::before { content: ""; position: absolute; inset: 9px; border-radius: 50%; border: 1px solid rgba(245, 242, 236, .9); background: rgba(25, 24, 22, .35); transition: inset .35s var(--suave), background .35s; }
.punto button::after { content: ""; position: absolute; inset: 18px; border-radius: 50%; background: var(--luz-clara); box-shadow: 0 0 0 0 rgba(214, 182, 132, .6); animation: pulso 2.6s ease-out infinite; }
.punto button:hover::before, .punto.es-abierto button::before { inset: 5px; background: rgba(25, 24, 22, .6); }
@keyframes pulso { 0% { box-shadow: 0 0 0 0 rgba(214, 182, 132, .6); } 70%, 100% { box-shadow: 0 0 0 20px rgba(214, 182, 132, 0); } }
.punto p { position: absolute; left: 26px; top: -22px; width: max-content; max-width: min(250px, 46vw); padding: 13px 18px 15px; background: rgba(25, 24, 22, .84); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
           border-left: 1px solid var(--luz-clara); font-size: 14px; line-height: 1.45; color: var(--en-oscuro); animation: sube .5s var(--suave) both; }
.punto.es-izq p { left: auto; right: 26px; border-left: 0; border-right: 1px solid var(--luz-clara); text-align: right; }
.punto p b { display: block; font: 400 22px/1.15 var(--display); color: var(--marfil); margin-bottom: 3px; }

.visor__barra { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; padding-top: 22px; }
.visor__vistas { display: flex; gap: 6px; }
.visor__vistas button { background: none; border: 1px solid rgba(245, 242, 236, .22); color: var(--en-oscuro); padding: 12px 18px; font: 500 12px/1 var(--texto); letter-spacing: .16em; text-transform: uppercase; cursor: pointer; transition: all .35s var(--suave); }
.visor__vistas button:hover { border-color: var(--marfil); color: var(--marfil); }
.visor__vistas button[aria-pressed="true"] { background: var(--marfil); border-color: var(--marfil); color: var(--negro); }
.visor__pie { display: flex; gap: 28px; flex-wrap: wrap; font-size: 13px; color: var(--en-oscuro); }
.visor__pie span + span::before { content: "—"; margin-right: 28px; opacity: .5; }

.h3d__cuerpo { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 24px; margin-top: clamp(70px, 9vw, 140px); align-items: start; }
.h3d__lado { grid-column: 1 / span 5; position: sticky; top: calc(var(--nav) + 40px); }
.h3d .entrada { color: var(--en-oscuro); }
.h3d .ante { color: var(--en-oscuro); }
.para { margin-top: 18px; display: grid; gap: 0; }
.para li { font: 400 clamp(22px, 2vw, 30px)/1.2 var(--display); padding: 12px 0; border-top: 1px solid rgba(245, 242, 236, .16); }
.para li:last-child { border-bottom: 1px solid rgba(245, 242, 236, .16); }
.para--claro li, .para--claro li:last-child { border-color: var(--piedra-2); }
.pedir { margin-top: 44px; display: grid; gap: 16px; justify-items: start; }
.pedir p { font-size: 14px; color: var(--en-oscuro); }
.pedir--claro p { color: var(--gris); }

.rasgos { grid-column: 7 / span 6; }
.rasgos li { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 8px 28px; align-items: baseline; padding: 26px 0; border-top: 1px solid rgba(245, 242, 236, .16); }
.rasgos li:last-child { border-bottom: 1px solid rgba(245, 242, 236, .16); }
.rasgos h4 { font: 400 clamp(22px, 1.9vw, 28px)/1.18 var(--display); }
.rasgos p { font-size: 15.5px; color: var(--en-oscuro); }
.rasgos--claro li, .rasgos--claro li:last-child { border-color: var(--piedra-2); }
.rasgos--claro p { color: var(--gris); }

/* 02 · HomingGuest: claro, digital */
.guest { background: var(--blanco); padding: clamp(96px, 12vw, 180px) 0; }
.guest .prod__num span, .guest .prod__titulo em { color: var(--luz); }
.prod__cabeza--guest { grid-template-columns: repeat(12, 1fr); column-gap: 24px; align-items: end; }
.prod__cabeza--guest .prod__num { grid-column: 1 / -1; }
.prod__cabeza--guest .prod__titulo { grid-column: 1 / span 8; max-width: 13ch; }
.prod__cabeza--guest .entrada { grid-column: 9 / span 4; padding-bottom: 12px; }

.estancia { display: grid; grid-template-columns: 1fr 1fr 1.28fr; column-gap: 24px; margin-top: clamp(56px, 7vw, 110px); align-items: end; }
.estancia__visual { position: relative; background: var(--piedra-1); aspect-ratio: 4 / 5; display: grid; place-items: center; overflow: hidden; margin-bottom: 26px; }
.estancia__paso--final .estancia__visual { aspect-ratio: auto; padding: clamp(22px, 3vw, 44px) clamp(18px, 2.4vw, 36px) 0; align-items: end; }
.estancia__n { font: italic 400 24px/1 var(--display); color: var(--luz); }
.estancia__paso h4 { font: 400 clamp(30px, 3vw, 44px)/1.05 var(--display); letter-spacing: -.01em; margin: 8px 0 10px; }
.estancia__paso > p:last-child { color: var(--gris); font-size: 15.5px; max-width: 34ch; }

/* 1 · Llega: la tarjeta de bienvenida junto a la puerta */
.estancia__visual--llega { background: linear-gradient(90deg, var(--piedra-2) 0 34%, var(--piedra-1) 34%); }
.estancia__visual--llega::before { content: ""; position: absolute; left: 0; top: 12%; bottom: 0; width: 34%; border: 1px solid rgba(25, 24, 22, .28); border-left: 0; border-bottom: 0; }
.estancia__visual--llega::after { content: ""; position: absolute; left: calc(34% - 26px); top: 56%; width: 14px; height: 2px; background: var(--negro); }
.tarjeta-qr { position: relative; margin-left: 30%; width: min(46%, 190px); background: var(--blanco); padding: 16px 16px 18px; text-align: center; color: var(--negro); box-shadow: 0 30px 50px -28px rgba(25, 24, 22, .5); transform: rotate(-2deg); }
.tarjeta-qr small { display: block; font: 500 9.5px/1.2 var(--texto); letter-spacing: .16em; text-transform: uppercase; color: var(--gris); }
.tarjeta-qr svg { width: 100%; margin: 12px 0; }
.tarjeta-qr b { display: block; font: italic 400 17px/1.15 var(--display); }

/* 2 · Escanea: la cámara encuadra el código */
.visor-qr { position: relative; width: 52%; aspect-ratio: 1; display: grid; place-items: center; color: var(--negro); }
.visor-qr svg { width: 62%; }
.visor-qr__e { position: absolute; width: 22px; height: 22px; border: 1.5px solid var(--negro); }
.visor-qr__e--a { left: 0; top: 0; border-right: 0; border-bottom: 0; }
.visor-qr__e--b { right: 0; top: 0; border-left: 0; border-bottom: 0; }
.visor-qr__e--c { left: 0; bottom: 0; border-right: 0; border-top: 0; }
.visor-qr__e--d { right: 0; bottom: 0; border-left: 0; border-top: 0; }
.visor-qr__linea { position: absolute; left: 6%; right: 6%; top: 10%; height: 1.5px; background: var(--luz); box-shadow: 0 0 18px 2px rgba(150, 113, 63, .55); animation: escanea 3.2s var(--suave) infinite alternate; }
@keyframes escanea { to { top: 90%; } }

/* 3 · Pregunta: el asistente de esa casa (una guía que responde, no un chat) */
.asistente { width: min(100%, 380px); background: var(--blanco); color: var(--negro); border: 1px solid var(--negro); border-bottom: 0; border-radius: 26px 26px 0 0; overflow: hidden; box-shadow: 0 -20px 60px -30px rgba(25, 24, 22, .45); }
.asistente__cab { background: var(--negro); color: var(--marfil); padding: 26px 22px 20px; }
.asistente__cab small { display: block; font: 500 10px/1 var(--texto); letter-spacing: .2em; text-transform: uppercase; color: var(--luz-clara); margin-bottom: 8px; }
.asistente__cab b { font: 400 25px/1.1 var(--display); }
.asistente__temas { display: flex; border-bottom: 1px solid var(--piedra-2); }
.asistente__temas li { flex: 1; text-align: center; font: 500 10.5px/1 var(--texto); letter-spacing: .1em; text-transform: uppercase; color: var(--gris); padding: 14px 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.asistente__temas li.es-activo { color: var(--negro); box-shadow: inset 0 -2px 0 var(--negro); }
.asistente__preg { font: italic 400 24px/1.2 var(--display); padding: 24px 22px 0; }
.asistente__resp { margin: 16px 22px 0; padding-left: 16px; border-left: 1px solid var(--luz); }
.asistente__resp p { font-size: 14.5px; line-height: 1.55; color: var(--grafito); }
.asistente__resp small { display: block; margin-top: 12px; font: 500 10px/1.3 var(--texto); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
.asistente__pedir { margin: 24px 22px 0; padding: 15px 0 20px; border-top: 1px solid var(--negro); display: flex; justify-content: space-between; align-items: center; font-size: 14px; color: var(--gris); }

.guest__cuerpo { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 24px; margin-top: clamp(70px, 9vw, 140px); align-items: start; }
.guest__cuerpo .rasgos { grid-column: 1 / span 7; }
.guest__lado { grid-column: 9 / span 4; position: sticky; top: calc(var(--nav) + 40px); }
.guest__lado .ante--suave { margin-top: 0; }

/* ---------- Cómo funciona ---------- */
.proceso { padding: clamp(110px, 14vw, 210px) 0; }
.etapas { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 24px; margin-top: clamp(60px, 8vw, 120px); }
.etapas li { position: relative; padding-top: 30px; border-top: 1px solid var(--piedra-2); }
.etapas li::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px; background: var(--negro); transform: scaleX(0); transform-origin: left; transition: transform 1.5s var(--suave); transition-delay: calc(var(--i, 0) * 260ms + 200ms); }
.etapas li.es-visto::before { transform: scaleX(1); }
.etapas__n { font: italic 400 clamp(22px, 2vw, 28px)/1 var(--display); color: var(--luz); }
.etapas h3 { font: 400 clamp(36px, 4.4vw, 68px)/1 var(--display); letter-spacing: -.015em; margin: clamp(40px, 6vw, 90px) 0 18px; }
.etapas p { color: var(--grafito); max-width: 36ch; }

/* ---------- Por qué LetsHoming ---------- */
.porque { background: var(--piedra-1); padding: clamp(110px, 14vw, 210px) 0; }
.porque__malla { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 24px; align-items: start; }
.porque__cabeza { grid-column: 1 / span 5; position: sticky; top: calc(var(--nav) + 40px); }
.porque__img { margin-top: clamp(36px, 5vw, 70px); max-width: 420px; }
.porque__img .marco { aspect-ratio: 4 / 5; }
.ventajas { grid-column: 7 / span 6; }
.ventajas li { padding: 30px 0; border-top: 1px solid rgba(25, 24, 22, .2); }
.ventajas li:last-child { border-bottom: 1px solid rgba(25, 24, 22, .2); }
.ventajas h3 { font: 400 clamp(26px, 2.5vw, 38px)/1.1 var(--display); letter-spacing: -.008em; }
.ventajas p { color: var(--grafito); margin-top: 8px; max-width: 46ch; }

/* ---------- Contacto ---------- */
.contacto { position: relative; background: var(--negro); color: var(--marfil); padding: clamp(110px, 14vw, 210px) 0 clamp(90px, 10vw, 150px); overflow: hidden; }
.contacto__fondo { position: absolute; inset: 0; background: center / cover no-repeat; opacity: 0; transition: opacity 1.6s ease; filter: saturate(.6);
                   -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .25) 55%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .25) 55%, transparent 100%); }
.contacto__malla { position: relative; display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 24px; row-gap: 70px; align-items: start; }
.contacto__cabeza { grid-column: 1 / span 6; }
.contacto__titulo { font: 400 clamp(48px, 7.4vw, 128px)/.94 var(--display); letter-spacing: -.025em; margin-top: 24px; }
.contacto__titulo em { color: var(--luz-clara); }
.contacto__sub { font: italic 400 clamp(21px, 2vw, 30px)/1.3 var(--display); color: var(--en-oscuro); margin-top: 30px; max-width: 24ch; }
.vias { margin-top: clamp(44px, 6vw, 90px); display: grid; gap: 26px; }
.vias span { display: block; font: 500 11.5px/1 var(--texto); letter-spacing: .2em; text-transform: uppercase; color: var(--en-oscuro); margin-bottom: 10px; }
.vias a { font: 400 clamp(22px, 2vw, 30px)/1.1 var(--display); text-decoration: none; box-shadow: 0 1px 0 rgba(245, 242, 236, .4); padding-bottom: 4px; overflow-wrap: anywhere; }
.vias a:hover { box-shadow: 0 1px 0 var(--luz-clara); color: var(--luz-clara); }

/* ---------- Formularios ---------- */
.formulario { grid-column: 8 / span 5; display: grid; gap: 28px; }
.campos { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 24px; }
.campo { display: grid; gap: 8px; min-width: 0; }
.campo--ancho { grid-column: 1 / -1; }
.campo > span { font: 500 11.5px/1.2 var(--texto); letter-spacing: .18em; text-transform: uppercase; color: var(--en-oscuro); }
.campo small { font-size: inherit; letter-spacing: .08em; opacity: .75; }
.campo input, .campo select, .campo textarea { width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(245, 242, 236, .38); border-radius: 0; padding: 10px 0 12px; font-size: 17px; color: var(--marfil); transition: border-color .3s; }
.campo textarea { resize: vertical; min-height: 96px; line-height: 1.5; }
.campo select { appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 28px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23f5f2ec' stroke-width='1.4'/%3E%3C/svg%3E") right 2px center / 12px no-repeat; }
.campo select option { color: var(--negro); background: var(--blanco); }
.campo input::placeholder, .campo textarea::placeholder { color: rgba(245, 242, 236, .42); }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-bottom-color: var(--luz-clara); box-shadow: 0 1px 0 var(--luz-clara); }
.campo [aria-invalid="true"] { border-bottom-color: var(--error-claro); }
.trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.consiento { display: grid; gap: 12px; font-size: 14px; color: var(--en-oscuro); }
.consiento label { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; line-height: 1.5; }
.consiento input { appearance: none; -webkit-appearance: none; flex: none; width: 18px; height: 18px; margin: 2px 0 0; border: 1px solid currentColor; border-radius: 0; background: transparent; cursor: pointer; display: grid; place-items: center; }
.consiento input:checked::after { content: ""; width: 10px; height: 10px; background: currentColor; }
.consiento summary { cursor: pointer; width: fit-content; text-decoration: underline; text-underline-offset: 4px; }
.consiento dl { margin-top: 14px; display: grid; gap: 4px; font-size: 13.5px; }
.consiento dt { font-weight: 600; color: var(--marfil); margin-top: 8px; }
.formulario__error { min-height: 1.4em; font-size: 14.5px; color: var(--error-claro); }
.formulario__error:empty { min-height: 0; }
.formulario .btn { justify-self: start; }
.hecho { display: grid; gap: 16px; justify-items: start; padding: 8px 0; animation: sube .8s var(--suave) both; }
.hecho__marca { width: 54px; height: 54px; border: 1px solid currentColor; display: grid; place-items: center; }
.hecho__marca svg { width: 22px; height: 22px; }
.hecho h3 { font: 400 clamp(34px, 3.6vw, 52px)/1.05 var(--display); letter-spacing: -.01em; }
.hecho p { color: var(--en-oscuro); max-width: 40ch; }
.hecho button { margin-top: 10px; }

/* Variante clara (diálogo de demo) */
.formulario--claro { color: var(--negro); }
.formulario--claro .campo > span { color: var(--gris); }
.formulario--claro .campo input, .formulario--claro .campo textarea { border-bottom-color: rgba(25, 24, 22, .3); color: var(--negro); }
.formulario--claro .campo input::placeholder, .formulario--claro .campo textarea::placeholder { color: rgba(25, 24, 22, .4); }
.formulario--claro .campo input:focus, .formulario--claro .campo textarea:focus { border-bottom-color: var(--negro); box-shadow: 0 1px 0 var(--negro); }
.formulario--claro .campo [aria-invalid="true"] { border-bottom-color: var(--error); }
.formulario--claro .consiento { color: var(--gris); }
.formulario--claro .consiento dt { color: var(--negro); }
.formulario--claro .formulario__error { color: var(--error); }
.formulario--claro .hecho p { color: var(--gris); }

.dialogo { width: min(100% - 24px, 680px); max-height: min(100dvh - 24px, 900px); padding: 0; border: 0; background: var(--blanco); color: var(--negro); overflow-y: auto; }
.dialogo::backdrop { background: rgba(25, 24, 22, .62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.dialogo[open] { animation: sube .6s var(--suave) both; }
.dialogo .formulario { position: relative; padding: clamp(28px, 5vw, 54px); gap: 26px; }
.dialogo__cerrar { position: absolute; right: 14px; top: 14px; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; }
.dialogo__cerrar i, .dialogo__cerrar i::before { position: absolute; left: 11px; right: 11px; top: 21px; height: 1.5px; background: var(--negro); transform: rotate(45deg); }
.dialogo__cerrar i::before { content: ""; left: 0; right: 0; top: 0; transform: rotate(90deg); }
.dialogo__titulo { font: 400 clamp(36px, 5vw, 54px)/1 var(--display); letter-spacing: -.015em; margin-top: -8px; }
.dialogo__sub { color: var(--gris); margin-top: -12px; }
.producto { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.producto legend { font: 500 11.5px/1.2 var(--texto); letter-spacing: .18em; text-transform: uppercase; color: var(--gris); padding: 0; margin-bottom: 12px; }
.producto label { position: relative; cursor: pointer; }
.producto input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.producto span { display: block; padding: 18px 20px; border: 1px solid var(--piedra-2); font: 400 26px/1 var(--display); transition: all .3s var(--suave); }
.producto input:checked + span { background: var(--negro); border-color: var(--negro); color: var(--marfil); }
.producto input:focus-visible + span { outline: 2px solid var(--negro); outline-offset: 3px; }

/* ---------- Pie ---------- */
.pie { background: var(--negro); color: var(--en-oscuro); border-top: 1px solid rgba(245, 242, 236, .14); padding: 64px 0 36px; font-size: 14.5px; }
.pie__in { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 40px 24px; align-items: start; }
.pie .marca { color: var(--marfil); font-size: 32px; }
.pie .marca__ico { width: 28px; height: 28px; }
.pie__marca p { font: italic 400 20px/1.3 var(--display); margin-top: 14px; }
.pie__nav { display: grid; gap: 12px; justify-items: start; }
.pie a { text-decoration: none; }
.pie a:hover { color: var(--marfil); }
.pie__fin { display: grid; gap: 16px; justify-items: start; }
.pie .idiomas, .pie .idiomas a { color: var(--en-oscuro); letter-spacing: .04em; font-size: 14.5px; }
.pie .idiomas a[aria-current] { color: var(--marfil); }
.pie__legal { display: flex; justify-content: space-between; align-items: center; gap: 12px 30px; flex-wrap: wrap; margin-top: 56px; padding-top: 22px; border-top: 1px solid rgba(245, 242, 236, .14); font-size: 13px; }
.pie__legal p { margin: 0; }
.pie__leyes { display: flex; flex-wrap: wrap; gap: 0 22px; }
.pie__leyes a { min-height: 44px; display: inline-flex; align-items: center; }
.consiento__mas { margin: 14px 0 0; font-size: 13px; }
.consiento__mas a { color: inherit; text-underline-offset: 3px; }

/* ---------- Páginas legales ---------- */
.legal-cab { border-bottom: 1px solid rgba(25, 24, 22, .09); }
.legal-cab__in { min-height: var(--nav); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.legal { padding: 40px 0 88px; }
.legal__volver { display: inline-flex; align-items: center; min-height: 44px; color: var(--gris); text-decoration: none; font-size: 14.5px; }
.legal__volver:hover { color: var(--negro); }
.legal__texto { max-width: 760px; margin-top: 20px; }
.legal__texto h1 { font: 400 clamp(40px, 6vw, 64px)/1.05 var(--display); margin: 0; }
.legal__texto h2 { font: 500 clamp(24px, 3vw, 30px)/1.2 var(--display); margin: 52px 0 14px; }
.legal__texto p, .legal__texto li { color: var(--grafito); }
.legal__texto ul { padding-left: 1.2em; }
.legal__texto li + li { margin-top: 8px; }
.legal__texto a { color: var(--negro); text-underline-offset: 3px; }
.legal__texto code { font-size: .92em; background: var(--piedra-1); padding: 2px 6px; }
.legal__fecha { margin: 14px 0 0; font-size: 14px; color: var(--gris) !important; }
.legal__nota { margin: 18px 0 0; padding: 12px 16px; background: var(--blanco); border-left: 2px solid var(--luz); font-size: 14.5px; }
.legal__datos { display: grid; grid-template-columns: max-content 1fr; gap: 10px 28px; margin: 22px 0 0; padding: 22px 24px; background: var(--blanco); border: 1px solid var(--piedra-1); }
.legal__datos dt { font: 500 12px/1.9 var(--texto); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
.legal__datos dd { margin: 0; }
.legal__tabla { width: 100%; border-collapse: collapse; margin: 18px 0; font-size: 15px; }
.legal__tabla th, .legal__tabla td { text-align: left; vertical-align: top; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--piedra-2); }
.legal__tabla th { font: 500 12px/1.4 var(--texto); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
.legal__tabla td { color: var(--grafito); }
.pendiente { display: inline-block; padding: 1px 8px; background: #fbe3c4; color: #7a4a10; font-size: .86em; font-weight: 600; letter-spacing: .02em; }
.legal__otras { max-width: 760px; display: flex; flex-wrap: wrap; gap: 0 26px; margin-top: 64px; padding-top: 20px; border-top: 1px solid var(--piedra-2); }
.legal__otras a { min-height: 44px; display: inline-flex; align-items: center; color: var(--gris); text-decoration: none; }
.legal__otras a:hover, .legal__otras a[aria-current] { color: var(--negro); }
.legal__otras a[aria-current] { text-decoration: underline; text-underline-offset: 6px; }
.pie--legal { padding: 0 0 32px; }
.pie--legal .pie__legal { margin-top: 0; border-top: 0; }
@media (max-width: 760px) {
  .legal__datos { grid-template-columns: 1fr; gap: 2px; padding: 18px; }
  .legal__datos dd + dt { margin-top: 12px; }
  .legal__tabla, .legal__tabla tbody, .legal__tabla tr, .legal__tabla td { display: block; }
  .legal__tabla thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .legal__tabla tr { padding: 12px 0; border-bottom: 1px solid var(--piedra-2); }
  .legal__tabla td { border: 0; padding: 3px 0; }
  .legal__tabla td:first-child { color: var(--negro); font-weight: 500; }
}

/* ---------- Tablet ---------- */
@media (max-width: 1100px) {
  .nav__menu { display: none; }
  .nav__in { grid-template-columns: 1fr auto; }
  .nav__boton { display: block; }
  .nav .idiomas { display: none; }
  .ls__fases li { min-width: 0; }
  .ls__fases li:not(.es-activa) { display: none; }
  .ls__fases { bottom: 34px; }
  .sobre-nos__img--a { grid-column: 1 / span 8; }
  .sobre-nos__texto { grid-column: 1 / span 9; grid-row: 2; }
  .sobre-nos__img--b { grid-column: 9 / span 4; grid-row: 1; align-self: end; margin-top: 0; }
  .h3d__lado { grid-column: 1 / -1; position: static; }
  .rasgos { grid-column: 1 / -1; margin-top: 64px; }
  .guest__cuerpo .rasgos { grid-column: 1 / -1; margin-top: 0; }
  .guest__lado { grid-column: 1 / -1; position: static; margin-top: 64px; }
  .prod__cabeza--guest .prod__titulo { grid-column: 1 / -1; }
  .prod__cabeza--guest .entrada { grid-column: 1 / span 9; }
  .porque__cabeza { grid-column: 1 / -1; position: static; }
  .porque__img { display: none; }
  .ventajas { grid-column: 1 / -1; margin-top: 56px; }
  .contacto__cabeza { grid-column: 1 / -1; }
  .formulario { grid-column: 1 / -1; }
  .dialogo .formulario { grid-column: auto; }
}

@media (max-width: 900px) {
  .estancia { grid-template-columns: 1fr 1fr; row-gap: 54px; }
  .estancia__paso--final { grid-column: 1 / -1; }
}
/* Pantalla en vertical (tablet o móvil): la casa va arriba y el texto debajo, sobre un velo */
@media (max-aspect-ratio: 19/20) {
  .hero__velo { background: linear-gradient(180deg, rgba(245, 242, 236, 0) 36%, rgba(245, 242, 236, .9) 56%, var(--marfil) 70%); }
  .ls__rejilla { -webkit-mask-image: radial-gradient(ellipse 100% 55% at 50% 32%, #000 0%, transparent 80%); mask-image: radial-gradient(ellipse 100% 55% at 50% 32%, #000 0%, transparent 80%); }
}

/* ---------- Móvil ---------- */
@media (max-width: 760px) {
  body { font-size: 16px; }
  :root { --nav: 64px; }
  .btn--nav { display: none; }
  .hero { height: 250vh; }
  .hero--estatico { height: auto; }
  .ls__rejilla { background-size: 56px 56px; -webkit-mask-image: radial-gradient(ellipse 100% 55% at 50% 32%, #000 0%, transparent 80%); mask-image: radial-gradient(ellipse 100% 55% at 50% 32%, #000 0%, transparent 80%); }
  .hero__velo { background: linear-gradient(180deg, rgba(245, 242, 236, 0) 34%, rgba(245, 242, 236, .9) 56%, var(--marfil) 70%); }
  .hero__texto { bottom: 84px; }
  .hero h1 { margin: 18px 0 18px; font-size: clamp(42px, 12.4vw, 64px); }
  .hero__acciones { margin-top: 24px; }
  .hero__acciones .btn { flex: 1 1 auto; }
  .hero__scroll { bottom: 26px; }
  .ls__fases { top: calc(var(--nav) + 10px); bottom: auto; }
  .ls__alt { right: -12%; bottom: 46%; width: 124%; }
  .sobre-nos__malla { display: flex; flex-direction: column; }
  .sobre-nos__img--b { width: 62%; align-self: flex-end; }
  .pilares { grid-template-columns: 1fr; row-gap: 34px; }
  .visor__escena { aspect-ratio: 4 / 3.4; }
  .visor__esq { display: none; }
  .visor__barra { flex-direction: column; align-items: flex-start; }
  .visor__vistas { width: 100%; }
  .visor__vistas button { flex: 1; padding: 14px 6px; letter-spacing: .1em; }
  .visor__pie { flex-direction: column; gap: 4px; }
  .visor__pie span + span::before { display: none; }
  .punto p { max-width: min(190px, 40vw); font-size: 13px; padding: 10px 14px 12px; }
  .punto p b { font-size: 19px; }
  .rasgos li { grid-template-columns: 1fr; padding: 22px 0; }
  .prod__cabeza--guest { display: grid; grid-template-columns: 1fr; }
  .prod__cabeza--guest .prod__titulo, .prod__cabeza--guest .entrada { grid-column: 1; }
  .estancia { grid-template-columns: 1fr 1fr; row-gap: 54px; }
  .estancia__paso--final { grid-column: 1 / -1; }
  .estancia__paso > p:last-child { font-size: 14.5px; }
  .etapas { grid-template-columns: 1fr; row-gap: 54px; }
  .etapas h3 { margin-top: 28px; }
  .campos { grid-template-columns: 1fr; }
  .producto span { font-size: 22px; padding: 16px 14px; }
  .pie__in { grid-template-columns: 1fr 1fr; }
  .pie__marca { grid-column: 1 / -1; }
  .btn--demo { width: 100%; }
}
@media (max-width: 420px) {
  .estancia { grid-template-columns: 1fr; }
  .estancia__visual--llega, .estancia__visual--escanea { aspect-ratio: 5 / 4; }
  .tarjeta-qr { width: 38%; }
  .visor-qr { width: 40%; }
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .js .rv { opacity: 1; transform: none; }
  .marco img { transform: translate3d(0, -7%, 0); }
  .vista { transform: translateX(-50%); }
  .visor-qr__linea { top: 50%; }
}

/* ---------- Accesibilidad: zonas táctiles de al menos 44 px y contraste ---------- */
.marca { min-height: 44px; }
.idiomas a { min-height: 44px; min-width: 32px; display: inline-flex; align-items: center; justify-content: center; }
.idiomas a[aria-current] { box-shadow: none; text-decoration: underline; text-underline-offset: 6px; }
.visor__vistas button { min-height: 44px; }
.pie__nav { gap: 0; }
.pie__nav a, .pie__fin > a { min-height: 44px; display: inline-flex; align-items: center; }
.pie__fin { gap: 0; }
.vias a { display: inline-block; padding-block: 8px 6px; }
.consiento input { width: 22px; height: 22px; margin-top: 0; }
.consiento input:checked::after { width: 12px; height: 12px; }
.consiento summary { padding-block: 11px; }
.consiento input:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.ls__fases li { color: #8a8378; }
.etapas__n { font-size: clamp(24px, 2vw, 28px); }

/* La foto del contacto se carga al acercarse */
.contacto.es-cerca .contacto__fondo { background-image: url(../img/aurora-atico-1600.jpg); opacity: .22; }

/* Sin 3D no hay fases que seguir */
.hero--estatico .ls__fases { display: none; }
