/* Experiencia integrada · estilos. Base: la vista previa del bloque 1 (portada B, controles,
   transiciones) + las pantallas de los bloques 3, 4 y 5. Tamaños de texto en rem: el zoom de
   texto del navegador los agranda sin romper la distribución. */
@font-face{font-family:Prata;src:url(../fuentes/prata-400.woff2) format('woff2');font-display:swap}
@font-face{font-family:Jost;src:url(../fuentes/jost-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Jost;src:url(../fuentes/jost-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Jost;src:url(../fuentes/jost-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:SpaceMono;src:url(../fuentes/space-mono-400.woff2) format('woff2');font-display:swap}
:root{
  --senal:#A8B5A2; --papel:#1D2423; --papel-rgb:29,36,35; --tinta:#14170F; --detalle:#D0C1A5; --base:#FAF9F5;
  /* v1.2: el tema del caso los reemplaza al cargar (app.js · aplicarTema); estos son los valores por omisión */
  --senal-rgb:168,181,162; --detalle-rgb:208,193,165; --tinta-rgb:20,23,15; --senal-hover:#b9c5b3; --detalle-texto:var(--detalle);
  --velo:rgba(29,36,35,.94); --borde:rgba(250,249,245,.18); --linea:rgba(250,249,245,.16); --suave:rgba(250,249,245,.06);
  --ui:'Century Gothic',Jost,system-ui,sans-serif; --tit:Prata,Georgia,serif; --dato:SpaceMono,ui-monospace,monospace;
  --t-hover:150ms; --t-tarjeta:220ms; --t-panel:280ms; --r:16px;
  --ancho-panel:min(440px,42vw); --margen:16px;
}
@media (prefers-reduced-motion:reduce){:root{--t-hover:0ms;--t-tarjeta:0ms;--t-panel:0ms}}
html.movimiento-reducido{--t-hover:0ms;--t-tarjeta:0ms;--t-panel:0ms}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--tinta);color:var(--base);font-family:var(--ui);overflow:hidden}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--base);outline-offset:3px}
#tour{position:fixed;inset:0}
.oculto{display:none!important}
[hidden]{display:none!important}
[inert]{pointer-events:none!important}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#nl-badge-frame,iframe[title="Powered by Netlify"]{display:none!important}
svg.ico,.espacial svg,nav.principal svg,#b-guia svg{fill:none;stroke:currentColor;stroke-width:1.6;flex:none}
svg.ico{width:1.15em;height:1.15em}

/* ── PORTADA ── */
#portada{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;justify-content:flex-start;overflow-y:auto;overscroll-behavior:contain;
  padding:clamp(20px,5vw,64px);padding-top:calc(clamp(20px,4vw,40px) + 56px);padding-bottom:max(clamp(24px,6vh,72px),env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(15,17,16,.45) 0%,rgba(15,17,16,0) 18%,rgba(15,17,16,0) 58%,rgba(15,17,16,.35) 72%,rgba(15,17,16,.78) 100%);
  transition:opacity 600ms ease}
#portada .fondo{position:absolute;inset:0;z-index:-1;background:var(--papel);transition:opacity 900ms ease}
#portada.pano-listo .fondo{opacity:0}
#portada.con-firma{padding-top:calc(clamp(20px,4vw,40px) + 56px + 2rem)}   /* logo y firma de autoría */
#portada .identidad{position:absolute;top:clamp(20px,4vw,40px);left:max(clamp(20px,5vw,64px),env(safe-area-inset-left));display:flex;flex-direction:column;align-items:flex-start;gap:8px;opacity:0;transition:opacity 700ms ease 100ms}
#portada .logo{height:40px;display:block}
#portada .firma-autor{margin:0;max-width:min(60vw,300px);font-size:.72rem;letter-spacing:.04em;line-height:1.35;color:var(--base);
  text-shadow:0 0 2px #000,0 0 4px #000,0 0 8px rgba(0,0,0,.9),0 1px 14px rgba(0,0,0,.85)}   /* texto, no botón: la sombra lo hace legible sobre el cielo */
#portada .copia{margin-top:auto;flex:none;max-width:480px;padding:18px 20px;border-radius:18px;background:rgba(15,17,16,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;transform:translateY(8px);transition:opacity 700ms ease 350ms,transform 700ms ease 350ms}
#portada.revelada .identidad,#portada.revelada .copia{opacity:1;transform:none}
#portada .lugar{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--detalle-texto);margin:0 0 14px}
#portada h1{font-family:var(--tit);font-weight:400;font-size:clamp(1.6rem,3.4vw,2.5rem);line-height:1.12;margin:0 0 14px;text-wrap:balance}
#portada p.texto{font-size:clamp(.94rem,1.4vw,1.06rem);line-height:1.5;margin:0 0 26px;opacity:.92;max-width:34em}
.acciones{display:flex;gap:12px;flex-wrap:wrap}
#portada .discreto{position:absolute;top:clamp(20px,4vw,40px);right:clamp(20px,5vw,64px);display:flex;gap:16px;font-size:.75rem;opacity:0;transition:opacity 700ms ease 600ms}
#portada.revelada .discreto{opacity:1}
#portada .discreto button{min-height:44px;padding:0 14px;border-radius:999px;border:0;background:rgba(15,17,16,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-decoration:underline;text-underline-offset:3px}
#portada.fuera{opacity:0;pointer-events:none}
.bloqueo{position:fixed;inset:0;z-index:49}
#fallo-motor{margin-top:6px;max-width:520px;padding:16px 18px;border-radius:var(--r);background:rgba(20,23,15,.9);border:1px solid rgba(var(--detalle-rgb),.45)}
#fallo-motor h2{font-family:var(--tit);font-weight:400;font-size:1.375rem;margin:0 0 8px}
#fallo-motor p{margin:0 0 12px;font-size:.9rem;line-height:1.5}

/* ── BOTONES ── */
.btn{min-height:48px;padding:12px 22px;border-radius:999px;border:1px solid rgba(250,249,245,.5);background:rgba(250,249,245,.1);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:.9rem;font-weight:500;letter-spacing:.02em;
  transition:background var(--t-hover)}
.btn:hover{background:rgba(250,249,245,.2)}
.btn.primario{background:var(--senal);border-color:var(--senal);color:var(--tinta);font-weight:600}
.btn.primario:hover{background:var(--senal-hover)}
.btn[aria-busy=true]{opacity:.8;cursor:progress}
.btn:disabled,.btn[aria-disabled=true]{opacity:.38;cursor:not-allowed;filter:saturate(.3)}
.b{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;border:1px solid rgba(250,249,245,.45);background:none;font-size:.94rem;font-weight:500;text-decoration:none;color:inherit;text-align:center;line-height:1.2}
.b:hover{background:rgba(250,249,245,.08)}
.b.pri{background:var(--senal);border-color:var(--senal);color:var(--tinta)}
.b.pri:hover{background:var(--senal-hover)}
.b.flex{flex:1 1 auto}
.b.txt{border:0;padding:0 6px;text-decoration:underline;text-underline-offset:4px;font-weight:400;min-height:40px}
.b.ter{border:0;min-height:44px;padding:0 10px;font-weight:400;opacity:.92}
.b:active{transform:scale(.98)}
.enlace{background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:4px;font-size:.9rem;min-height:44px;text-align:left;color:inherit}

/* ── INTERFAZ COMÚN ── */
#ui{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:0;transition:opacity 500ms ease}
#ui.visible{opacity:1}
#ui > *{pointer-events:auto}
.velo-arriba{position:fixed;top:0;left:0;right:0;height:190px;pointer-events:none!important;background:linear-gradient(180deg,rgba(8,10,9,.72),rgba(8,10,9,.35) 55%,rgba(8,10,9,0))}
.velo-abajo{position:fixed;bottom:0;left:0;right:0;height:160px;pointer-events:none!important;background:linear-gradient(0deg,rgba(8,10,9,.5),rgba(8,10,9,0))}
.marca{position:fixed;top:20px;left:24px;display:flex;flex-direction:column;gap:10px;pointer-events:none!important;max-width:calc(100vw - 260px)}
.marca img{height:34px;width:auto;align-self:flex-start}
.marca .escena{font-family:var(--tit);font-size:1.5rem;line-height:1.1;text-shadow:0 1px 3px rgba(0,0,0,.85),0 1px 12px rgba(0,0,0,.6)}
.marca .sub{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;margin-top:4px;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.95),0 0 8px rgba(0,0,0,.8)}
.demo{position:fixed;left:24px;top:calc(20px + 7.5rem);min-height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--linea);background:rgba(29,36,35,.82);font-size:.8rem;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.pop{position:fixed;z-index:40;width:min(340px,calc(100vw - 32px));padding:14px 16px;border-radius:14px;font-size:.875rem;line-height:1.45;background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.pop p{margin:0 0 10px}
.pop h3{font:400 1.25rem var(--tit);margin:0 0 8px}
#demo-exp{left:24px;top:calc(20px + 10rem)}
#pop-aviso{left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;width:min(460px,calc(100vw - 32px))}

/* navegación principal · abajo al centro del espacio libre */
nav.principal{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:5px;border-radius:999px;max-width:calc(100vw - 32px);overflow-x:auto;scrollbar-width:none;
  background:rgba(var(--papel-rgb),.8);border:1px solid var(--borde);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:left var(--t-panel)}
nav.principal button{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:none;font-size:.875rem;transition:background var(--t-hover);white-space:nowrap}
nav.principal button:hover{background:rgba(250,249,245,.12)}
nav.principal button[aria-pressed=true]{background:var(--senal);color:var(--tinta)}
nav.principal button.mia{border:1px solid var(--senal)}
nav.principal button.mia b{font-weight:500;color:var(--senal)}
nav.principal button.mia[aria-pressed=true] b{color:var(--tinta)}
nav.principal svg{width:18px;height:18px}

/* controles espaciales · a la derecha, se apartan del panel */
.espacial{position:fixed;top:20px;right:22px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;transition:right var(--t-panel)}
.espacial .grupo{display:flex;flex-direction:column;gap:2px;padding:4px;border-radius:14px;background:rgba(var(--papel-rgb),.74);border:1px solid var(--borde);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.espacial button{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:40px;min-width:40px;padding:0 12px;border:0;border-radius:10px;background:none;font-size:.8rem;white-space:nowrap}
.espacial button:hover{background:rgba(250,249,245,.12)}
.espacial button[aria-pressed=true]{color:var(--tinta);background:var(--senal)}
.espacial svg{width:18px;height:18px}
.rumbo{font-family:var(--dato);font-size:.75rem;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:rgba(var(--papel-rgb),.74);border:1px solid var(--borde)}
.rumbo i{display:block;width:14px;height:14px;border-radius:50%;border:1.5px solid var(--base);position:relative}
.rumbo i:after{content:"";position:absolute;left:50%;top:-1px;width:2px;height:7px;margin-left:-1px;background:var(--senal);border-radius:1px}
.zoom{flex-direction:row!important}
.leyenda-limite{position:fixed;left:24px;top:calc(20px + 7.5rem);display:flex;align-items:flex-start;gap:8px;max-width:min(330px,calc(100vw - 48px));padding:8px 12px;border-radius:12px;background:rgba(var(--papel-rgb),.82);border:1px solid var(--borde);font-size:.78rem;line-height:1.4}
.leyenda-limite i{flex:none;width:18px;height:0;margin-top:.6em;border-top:2px dashed var(--detalle)}
body.demo-activo .leyenda-limite{top:calc(20px + 10.2rem)}

/* menú de vistas */
#vistas{position:fixed;top:20px;right:212px;width:290px;padding:10px;border-radius:var(--r);background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
#vistas h3{margin:6px 8px 8px;font-size:.69rem;letter-spacing:.2em;text-transform:uppercase;opacity:.7;font-weight:500}
#vistas button{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;min-height:44px;padding:8px 10px;border:0;border-radius:10px;background:none;text-align:left;font-size:.9rem}
#vistas button:hover{background:rgba(250,249,245,.1)}
#vistas button[aria-current=true]{background:rgba(var(--senal-rgb),.2)}
#vistas small{font-family:var(--dato);font-size:.69rem;opacity:.65;white-space:nowrap}

/* ── PANEL · uno solo; escritorio lateral, móvil hoja inferior ── */
#panel{position:fixed;top:var(--margen);right:var(--margen);bottom:var(--margen);width:var(--ancho-panel);z-index:30;border-radius:22px;display:flex;flex-direction:column;overflow:hidden;
  background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  transform:translateX(calc(100% + 24px));transition:transform var(--t-panel) cubic-bezier(.2,.8,.2,1)}
#panel.abierto{transform:none}
#panel .asa{display:none}
#panel .cab{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 12px 10px;border-bottom:1px solid var(--linea)}
#panel .cab h2{font:400 1.375rem var(--tit);margin:0 0 0 8px;flex:1 1 40%;min-width:5ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;outline:none}
#panel .volver{display:flex;align-items:center;gap:4px;min-height:44px;padding:0 12px 0 8px;border-radius:12px;border:0;background:var(--suave);font-size:.9rem;white-space:nowrap}
#panel .cerrar,#reproductor .cerrar{width:44px;height:44px;border-radius:12px;border:0;background:var(--suave);font-size:1.1rem;flex:none}
#panel .plegar{display:none;min-height:40px;padding:0 12px;border-radius:12px;border:0;background:var(--suave);font-size:.85rem;white-space:nowrap}
#panel.plegado{bottom:auto}
#panel.plegado .cuerpo,#panel.plegado .pie,#panel.plegado .tira-guia,#panel.plegado .volver{display:none!important}
#panel.plegado .plegar{display:inline-flex;align-items:center}
#panel .cuerpo{flex:1;min-height:0;overflow:auto;padding:16px 18px 22px;overscroll-behavior:contain}
#panel .pie{padding:12px 14px;border-top:1px solid var(--linea);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tira-guia{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 8px 8px 14px;margin:10px 14px 0;border-radius:12px;background:rgba(var(--detalle-rgb),.14);border:1px solid rgba(var(--detalle-rgb),.4);font-size:.8rem;color:var(--detalle)}
.tira-guia .b{min-height:38px;padding:0 14px;font-size:.8rem;flex:none}
.tira-guia .tira-etapa{display:flex;flex-direction:column;gap:6px;width:100%;color:var(--base)}
.tira-guia .tira-etapa b{font-weight:500;color:var(--detalle-texto)}
.tira-guia .tira-etapa p{margin:0;font-size:.84rem;line-height:1.4;opacity:.92}
.tira-guia .tira-etapa .fila{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
body.con-panel .espacial{right:calc(var(--ancho-panel) + var(--margen) + 16px)}
body.con-panel nav.principal{max-width:calc(100vw - var(--ancho-panel) - 48px)}
body.con-panel.dock-apartado nav.principal{left:calc((100vw - var(--ancho-panel) - var(--margen)) / 2)}   /* solo si centrada quedaría bajo el panel: no se corre bajo el puntero sin necesidad */
body.con-panel #carga,body.con-panel .caja-fallo,body.con-panel #aviso,body.con-panel .volver-vista,body.con-panel .estado-vis{left:calc((100vw - var(--ancho-panel) - var(--margen)) / 2)}
body.con-panel #vistas{right:calc(var(--ancho-panel) + var(--margen) + 200px)}

/* contenido del panel · comunes */
.ey{font:.75rem var(--dato);letter-spacing:.08em;opacity:.78;text-transform:uppercase}
.nota{font-size:.82rem;opacity:.78;line-height:1.45}
.fuente{font-size:.78rem;opacity:.65;margin:4px 0 0}
.fuente-sec{font-size:.78rem;opacity:.65;margin:14px 0 0;line-height:1.45}
.aviso-caja{margin:0 0 12px;padding:12px 14px;border-radius:14px;background:rgba(var(--detalle-rgb),.12);border:1px solid rgba(var(--detalle-rgb),.35);font-size:.875rem;line-height:1.45}
.aviso-caja strong{font-weight:500}
.info-disp{font-size:.84rem;margin:0 0 12px;padding:10px 12px;border-radius:12px;background:var(--suave);line-height:1.45}
.vacio{padding:26px 10px;text-align:center}
.vacio h3{font:400 1.375rem var(--tit);margin:0 0 6px}
.bloque{margin-top:18px;padding-top:16px;border-top:1px solid var(--linea)}
.bloque h4{font-weight:500;font-size:1rem;margin:0 0 8px}
.marca-sel{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;padding:3px 9px;border-radius:999px;background:var(--senal);color:var(--tinta);font-weight:500;white-space:nowrap}
.ok-sel{display:flex;align-items:center;gap:8px;flex:1;min-height:46px;font-size:.94rem;margin:0}
.acc-sec{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;width:100%}
.acc-col{display:flex;flex-direction:column;gap:8px}
.giro{width:26px;height:26px;border-radius:50%;border:3px solid var(--linea);border-top-color:var(--senal);animation:vgGiro 1s linear infinite}
.cargando{display:flex;flex-direction:column;align-items:center;gap:8px}
@keyframes vgGiro{to{transform:rotate(360deg)}}

/* lotes (bloque 3) */
.buscar{display:flex;gap:8px;margin-bottom:10px}
.buscar label{flex:1;display:flex;align-items:center;gap:8px;min-height:46px;padding:0 14px;border-radius:14px;border:1px solid var(--linea);background:var(--suave)}
.buscar input{border:0;background:none;outline:0;width:100%;font-size:.97rem}
.buscar label:focus-within{outline:2px solid var(--base);outline-offset:2px}
.filtro{display:flex;align-items:center;gap:8px;font-size:.875rem;margin:0 0 12px}
.filtro select{min-height:40px;border-radius:12px;border:1px solid var(--linea);background:#232b2a;padding:0 10px}
.lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.lista .fila{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;width:100%;text-align:left;min-height:64px;padding:8px 12px 8px 8px;border-radius:14px;border:1px solid transparent;background:var(--suave)}
.lista .fila:hover{border-color:var(--linea)}
.lista .fila .n{font:400 1.6rem var(--tit);text-align:center}
.lista .fila .d{font-size:.9rem}.lista .fila .d small{display:block;font-size:.8rem;opacity:.75;margin-top:2px}
.lista .fila .chev{opacity:.6}
.lista .fila.elegida{border-color:var(--senal);box-shadow:inset 4px 0 0 var(--senal)}
.sec{font-size:.8rem;opacity:.72;margin:18px 4px 8px}
.modo-cambio{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;padding:10px 12px;border-radius:12px;border:1px solid var(--senal);font-size:.875rem}
.titulo-lote{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.titulo-lote h3{font:400 2.75rem/1 var(--tit);margin:0}
.disp{font-size:.875rem;margin:8px 0 14px;opacity:.88}
.disp-et{display:inline-block;font-size:.8rem;font-weight:500;padding:3px 10px;border-radius:6px;border:1px solid var(--linea)}
.disp-et.e-disponible{border-color:var(--senal);color:var(--senal)}
.disp-et.e-reservado{border-color:var(--detalle);color:var(--detalle-texto)}
.disp-et.e-vendido{background:rgba(250,249,245,.12);border-color:transparent}
.lista .fila.vendida{opacity:.62}
/* v1.7 · superficies: referencia de 1 ha y barras proporcionales desde cero a la superficie del plano (línea en 1 ha) */
.b.sup-abrir{width:100%;justify-content:flex-start;gap:10px;margin:0 0 10px;text-align:left}
.b.sup-abrir .chev{margin-left:auto;opacity:.6}
.sup-abrir .cuadro,.sup-ref .cuadro{flex:none;display:inline-grid;place-items:center;border:2px solid var(--detalle);border-radius:3px}
.sup-abrir .cuadro{width:1rem;height:1rem}
.sup-ref{display:flex;gap:12px;align-items:center;margin:0 0 12px;padding:12px 14px;border-radius:14px;background:rgba(var(--detalle-rgb),.12);border:1px solid rgba(var(--detalle-rgb),.35)}
.sup-ref .cuadro{width:min(2.9rem,56px);height:min(2.9rem,56px);font:500 min(.72rem,14px) var(--dato);white-space:nowrap}   /* con texto grande el cuadro no se come la hoja */
.sup-ref p{margin:0;font-size:.9rem;line-height:1.45}
.sup-suelo{margin:0 0 10px}
.sup-orden{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 8px;font-size:.8rem}
.sup-orden>span{opacity:.75;margin-right:2px}
.sup-orden .b{min-height:34px;padding:4px 12px;font-size:.8rem}
.sup-orden .b[aria-pressed=true]{background:var(--senal);border-color:var(--senal);color:var(--tinta)}
.sup-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.sup-fila,.sup-eje{display:grid;grid-template-columns:40px 1fr 12px;gap:10px;align-items:center;padding:7px 10px 7px 4px;border:1px solid transparent}
.sup-eje{padding-top:0;padding-bottom:0}
.sup-fila{width:100%;text-align:left;border-radius:14px;background:var(--suave);color:inherit;font:inherit;cursor:pointer}
.sup-fila:hover{border-color:var(--linea)}
.sup-fila.vendida{opacity:.62}
.sup-fila .n{font:400 1.35rem var(--tit);text-align:center}
.sup-dato{display:block;min-width:0}
.sup-fila .barra{margin:2px 0 6px}
.sup-fila .sup-cifra{font-size:.84rem;margin-right:8px}
.sup-fila small{display:inline-block;font-size:.76rem;opacity:.75}
.sup-fila .chev{opacity:.6}
.barra{position:relative;display:block;height:10px;border-radius:5px;background:rgba(var(--senal-rgb),.16)}
.barra i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--senal)}
.barra:after,.sup-eje .eje:after{content:"";position:absolute;left:var(--ha);top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--detalle)}
.sup-eje .eje{position:relative;display:block;height:1.35rem;font:400 .72rem var(--dato)}
.sup-eje .eje:after{top:auto;bottom:-6px;height:6px}
.sup-eje .eje b{position:absolute;top:0;font-weight:400;opacity:.8;white-space:nowrap}
.sup-eje .eje b.ha{left:var(--ha);transform:translateX(-50%);opacity:1;color:var(--detalle-texto)}
@media (max-height:480px){.sup-ref{padding:8px 12px;margin-bottom:8px}.sup-ref .cuadro{width:2.2rem;height:2.2rem}.sup-ref p{font-size:.84rem}}   /* teléfono horizontal: más filas a la vista */
/* v1.8 · tu selección con la ficha simple: guardar un lote desde su ficha, verlo arriba en «Lotes» y el contacto «por confirmar» */
.sel-lote{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:14px 0 6px}
.sel-lote .nota{flex:1 0 100%;margin:0}
.sel-lote .ok-sel{flex:0 1 auto}
.b.sel-abrir{width:100%;justify-content:flex-start;gap:10px;margin:0 0 10px;text-align:left;border-color:var(--senal)}
.b.sel-abrir .chev{margin-left:auto;opacity:.6}
.ctc-pendiente{display:flex;align-items:center;gap:10px;margin:14px 0 10px;padding:12px 14px;border-radius:14px;border:1px dashed rgba(250,249,245,.35);font-size:.9rem;line-height:1.4}
.ctc-pendiente .ico{flex:none;opacity:.75}
.sel-acc{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:6px 0 0}
/* v1.10: textos del caso en la selección simple: qué hace guardar (ficha) y qué hacer con ella sin contacto (vista) */
.sel-lote .sel-nota{margin:8px 0 0}
.sel-uso{margin:0 0 10px;font-size:.9rem;line-height:1.45}
.recorte{position:relative;height:170px;border-radius:14px;background:rgba(0,0,0,.25);overflow:hidden;margin:0}
.recorte .svgw,.recorte svg{width:100%;height:100%}
.recorte figcaption{position:absolute;left:8px;bottom:8px;font-size:.75rem;padding:2px 8px;border-radius:6px;background:rgba(20,23,15,.8)}
figure{margin:0}
dl.datos{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin:16px 0 4px;font-size:.97rem}
dl.datos dt{opacity:.72}
dl.datos dd{margin:0}
.falta{font-size:.875rem;opacity:.82;font-style:italic}
.casa{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center;width:100%;text-align:left;padding:8px;border-radius:14px;border:1px solid transparent;background:var(--suave);margin-bottom:8px}
.casa img{width:96px;height:72px;object-fit:cover;border-radius:10px;display:block}
.casa h5{font:400 1.125rem var(--tit);margin:0 0 3px}
.casa p{margin:0;font-size:.84rem;opacity:.86}
.estado{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;margin-top:5px}
.estado i{font-style:normal;display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:.69rem}
.e-si i{background:var(--senal);color:var(--tinta)}
.e-condicionada i{background:var(--detalle);color:var(--tinta)}
.e-no i{border:1px solid rgba(250,249,245,.5)}
.e-por_confirmar i{border:1px dashed rgba(250,249,245,.6)}
.casa.no,.casa.por_confirmar{opacity:.74}
details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:.9rem}
.galeria{display:grid;grid-template-columns:2fr 1fr;gap:6px;border-radius:14px;overflow:hidden}
/* dev.30 · fotos del lote en la ficha v2 (portado de v1.16.1-pedasi.1) */
.fotos-lote{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0 4px;position:relative;border-radius:10px}
.fotos-lote button{padding:0;border:0;border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:rgba(0,0,0,.25);cursor:pointer}
.fotos-lote button img{width:100%;height:100%;object-fit:cover;display:block}
.fotos-lote button:focus-visible{outline:2px solid var(--senal);outline-offset:2px}
.fotos-lote .mas{position:absolute;right:6px;bottom:6px;font:600 .75rem var(--dato);padding:2px 7px;border-radius:999px;background:rgba(20,23,15,.8)}
.fotos-lote + .fuente{margin-top:0}
.galeria button{position:relative;padding:0;border:0;background:#000;display:block;width:100%}
.galeria img{width:100%;height:100%;object-fit:cover;display:block}
.galeria .g1{grid-row:span 2;height:210px}
.galeria .g2,.galeria .g3{height:102px}
.galeria .rot{position:absolute;left:6px;bottom:6px;right:6px;text-align:left;font-size:.69rem;padding:2px 7px;border-radius:6px;background:rgba(20,23,15,.8)}
.cifras{display:flex;gap:10px;margin:14px 0}
.cifras div{flex:1;padding:10px;border-radius:12px;background:var(--suave);text-align:center}
.cifras b{display:block;font:400 1.375rem var(--tit)}
.cifras span{font-size:.78rem;opacity:.78}
.rel{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;border:1px solid var(--senal);font-size:.9rem}
.par{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}
.par .c{padding:14px;border-radius:14px;background:var(--suave)}
.par .c b{display:block;font:400 1.6rem var(--tit);margin:4px 0}
.par img{width:100%;height:84px;object-fit:cover;border-radius:10px;margin-top:6px}
.conf h3{font:400 1.6rem/1.2 var(--tit);margin:2px 0 14px}
.conf .tarjeta{border-radius:16px;background:var(--suave);overflow:hidden}
.conf .tarjeta .recorte{height:128px;border-radius:0}
.conf .tarjeta .txt{padding:12px 14px}
.conf .tarjeta .l{font:400 1.375rem var(--tit)}
.conf .tarjeta .v{font-size:.97rem;margin-top:2px}
.conf .exp{font-size:.97rem;line-height:1.5;margin:14px 0 0}
.conf .cond,.cond{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid rgba(var(--detalle-rgb),.4);font-size:.875rem;line-height:1.45}
.resumen-lote{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center}
.resumen-lote h3{font:400 2.5rem/1 var(--tit);margin:0;grid-row:span 2}

/* plano (bloque 2) y entorno (bloque 5) */
.tabs{display:flex;margin:0 0 12px;padding:4px;border-radius:999px;background:rgba(250,249,245,.07)}
.tabs button{flex:1;min-height:40px;border:0;border-radius:999px;background:none;font-size:.875rem}
.tabs button[aria-selected=true]{background:var(--base);color:var(--tinta);font-weight:500}
.plano{position:relative;border-radius:14px;background:rgba(0,0,0,.28);overflow:hidden;margin:0 0 10px}
.plano svg{display:block;width:100%;height:min(52vh,460px)}
.plano .lindero,.recorte .lindero{fill:none;stroke:var(--detalle);stroke-width:1.4;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.plano .u path,.recorte .u path{fill:rgba(var(--senal-rgb),.14);stroke:rgba(250,249,245,.55);stroke-width:1;vector-effect:non-scaling-stroke;transition:fill var(--t-hover)}
.plano .u text,.recorte .u text{fill:rgba(250,249,245,.9);font-size:9px;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-family:var(--ui)}
.plano .u.comercial text,.plano .u.comun text,.recorte .u.comercial text,.recorte .u.comun text{fill:var(--detalle);font-size:7px}
.plano .u{cursor:pointer;outline:none}
.plano .u:hover path,.plano .u:focus-visible path{fill:rgba(var(--senal-rgb),.4);stroke:#fff}
.plano .u:focus-visible path{stroke-width:2.5}
.plano .u.elegido path,.recorte .u.elegido path{fill:rgba(var(--senal-rgb),.85);stroke:#fff;stroke-width:2}
.plano .u.elegido text,.recorte .u.elegido text{fill:var(--tinta);font-weight:600}
.plano .u.marcado path{fill:rgba(var(--detalle-rgb),.55);stroke:#fff;stroke-width:2.5}
.plano .u.vendido path,.plano .u.reservado path{fill:rgba(250,249,245,.04);stroke:rgba(250,249,245,.3);stroke-dasharray:3 2}
.plano .u.vendido text{fill:rgba(250,249,245,.5);text-decoration:line-through}
.plano .norte{fill:none;stroke:var(--base);stroke-width:1.2;vector-effect:non-scaling-stroke}
.plano .norte-t,.plano .escala-t{fill:rgba(250,249,245,.85);font-size:8px;font-family:var(--dato)}
.plano .escala{stroke:rgba(250,249,245,.8);stroke-width:1.5;vector-effect:non-scaling-stroke}
.plano-ley{display:flex;flex-direction:column;gap:6px;font-size:.8rem;line-height:1.4;opacity:.9;margin:0 0 12px}
.plano-ley span{display:flex;gap:8px;align-items:flex-start}
.plano-ley i{flex:none;width:18px;height:0;margin-top:.6em;border-top:2px dashed var(--detalle)}
.plano-ley i.l{height:12px;margin-top:.15em;border:1px solid rgba(250,249,245,.55);background:rgba(var(--senal-rgb),.14)}
.plano-ley i.v{height:12px;margin-top:.15em;border:1px dashed rgba(250,249,245,.3);background:rgba(250,249,245,.04)}
.mapa{position:relative;height:250px;border-radius:14px;background:rgba(0,0,0,.28);overflow:hidden;margin:0 0 10px}
.mapa svg{width:100%;height:100%}
.mapa .mapa-nota{position:absolute;left:10px;right:10px;top:10px;margin:0;padding:8px 10px;border-radius:10px;background:rgba(20,23,15,.85);font-size:.8rem;line-height:1.35}
.mapa .proyecto{fill:rgba(var(--senal-rgb),.75);stroke:#fff}
.mapa .proy-t{fill:var(--senal);font-size:calc(12px*var(--k,1));font-weight:600;paint-order:stroke;stroke:rgba(20,23,15,.85);stroke-width:calc(3px*var(--k,1))}
.mapa .mk{cursor:pointer}
.mapa .mk circle{fill:var(--detalle);stroke:rgba(20,23,15,.8);stroke-width:calc(2px*var(--k,1))}
.mapa .mk text{fill:var(--base);font-size:calc(12px*var(--k,1));paint-order:stroke;stroke:rgba(20,23,15,.85);stroke-width:calc(3px*var(--k,1))}
.mapa .mk.elegido circle{fill:var(--senal);stroke:#fff}
.mapa .mk.tenue{opacity:.28}
.mapa .mk.aprox circle{fill:none;stroke:var(--detalle);stroke-dasharray:calc(3px*var(--k,1)) calc(2px*var(--k,1))}
.mapa .escala-mapa line{stroke:rgba(250,249,245,.7);stroke-width:calc(2px*var(--k,1))}
.mapa .escala-mapa text{fill:rgba(250,249,245,.75);font-size:calc(11px*var(--k,1))}
.mapa .leyenda-mapa{position:absolute;right:10px;bottom:8px;margin:0;font-size:.75rem;opacity:.85;display:flex;align-items:center;gap:6px}
.mapa .leyenda-mapa i{width:10px;height:10px;border-radius:50%;border:1.5px dashed var(--detalle);display:inline-block}
.cats{display:flex;gap:6px;overflow-x:auto;margin:0 0 10px;padding-bottom:2px}
.cats button{flex:none;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--linea);background:none;font-size:.84rem}
.cats button[aria-pressed=true]{background:var(--senal);color:var(--tinta);border-color:var(--senal)}
.lugares{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.lugares button{display:grid;grid-template-columns:1fr auto;gap:2px 10px;width:100%;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid transparent;background:var(--suave)}
.lugares button[aria-current=true]{border-color:var(--senal)}
.lugares b{font-weight:500;font-size:.94rem}
.lugares small{grid-column:1;font-size:.8rem;opacity:.78}
.lugares .d{grid-row:span 2;align-self:center;font-size:.8rem;opacity:.82;text-align:right}
.ficha-lugar h3{font:400 1.6rem/1.15 var(--tit);margin:4px 0 6px;outline:none}
.ficha-lugar .cat{font:.75rem var(--dato);letter-spacing:.08em;opacity:.78;text-transform:uppercase}
.ficha-lugar dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.9rem;margin:12px 0}
.ficha-lugar dt{opacity:.72}
.ficha-lugar dd{margin:0}
.ext{display:inline-flex;align-items:center;gap:6px}

/* proyecto y contacto (bloque 5) */
.video-destacado{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin:0 0 18px;padding:12px 14px;border-radius:14px;background:var(--suave)}
.pie .copia-manual{max-height:38vh;overflow:auto}
.indice{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.indice button{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--linea);background:var(--suave);font-size:.84rem}
.seccion{margin:0 0 22px;scroll-margin-top:8px}
.seccion h3{font:400 1.375rem/1.2 var(--tit);margin:0 0 8px;outline:none}
.seccion p{font-size:.94rem;line-height:1.55;margin:0 0 10px}
.seccion figure{position:relative;margin:0 0 12px;border-radius:14px;overflow:hidden}
.seccion figure img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.seccion figcaption{position:absolute;left:8px;bottom:8px;font-size:.72rem;padding:2px 8px;border-radius:6px;background:rgba(20,23,15,.8)}
.seccion figure.entera img{aspect-ratio:auto;object-fit:contain}
.seccion figure.entera figcaption{position:static;margin-top:8px;padding:0;background:none;font-size:.78rem;line-height:1.45;opacity:.85}
.seccion figure.entera figcaption a{color:inherit;text-decoration:underline;white-space:nowrap}
.rasgos{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.rasgos li{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;line-height:1.45;padding:8px 10px;border-radius:12px;background:var(--suave)}
.rasgos .et{flex:none;font-size:.72rem;padding:2px 8px;border-radius:999px;border:1px solid var(--linea);opacity:.88;margin-top:1px}
.rasgos .et.proy{border-color:rgba(var(--detalle-rgb),.55)}
.ctx{padding:12px 14px;border-radius:14px;background:var(--suave);margin:0 0 12px}
.ctx .ey{display:block;margin-bottom:4px}
.ctx b{font:400 1.25rem var(--tit);display:block}
.ctx .nota{margin:6px 0 0}
.wa-b{white-space:normal}
.pie .wa-b{flex:1.4 1 auto;padding:0 14px}
.wa-ayuda{width:100%;margin:2px 0 0;font-size:.8rem;opacity:.82;line-height:1.4;display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}
.wa-ayuda .b.txt{min-height:36px;font-size:.8rem;opacity:.92}
.copia-manual{width:100%;margin:4px 0 0;padding:10px 12px;border-radius:12px;border:1px solid rgba(var(--detalle-rgb),.45);font-size:.875rem}
.copia-manual p{margin:0 0 6px}
.texto-manual{max-height:120px;overflow:auto;white-space:pre-wrap;word-break:break-word;padding:8px 10px;border-radius:10px;background:rgba(0,0,0,.25);font-size:.84rem;user-select:all;-webkit-user-select:all}
.viv{padding:12px 14px;border-radius:14px;background:var(--suave);margin:0 0 12px}
.viv .ey{display:block}
.viv b{font:400 1.25rem var(--tit);display:block;margin:2px 0}

/* visualización en el terreno (bloque 4) */
.terreno{margin-top:18px;padding:14px;border-radius:14px;border:1px solid var(--linea)}
.terreno h4{font-weight:500;font-size:1rem;margin:0 0 6px}
.terreno p{margin:0 0 10px;font-size:.9rem;line-height:1.45}
.estado-vis{position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:26;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:calc(100vw - 24px);padding:8px 8px 8px 16px;border-radius:18px;
  background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:.875rem}
.estado-vis .b{min-height:40px;padding:0 14px;font-size:.84rem}
.estado-vis .punto{width:10px;height:10px;border-radius:50%;background:var(--senal);animation:vgLatido 1.2s ease-in-out infinite}
@keyframes vgLatido{50%{opacity:.35}}
.estado-vis.activa{top:auto;bottom:92px;left:24px!important;transform:none;flex-direction:column;align-items:stretch;gap:8px;padding:14px 16px;width:min(360px,calc(100vw - 24px))}
body[data-vis="activa"] #b-guia{display:none!important}
.estado-vis.activa h3{font:400 1.375rem var(--tit);margin:0;outline:none}
.estado-vis.activa .sub{margin:0;font-size:.84rem;opacity:.85}
.estado-vis.activa .acc{display:flex;gap:8px;flex-wrap:wrap}
.chip-rec{position:fixed;left:24px;top:50%;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--linea);background:rgba(20,23,15,.78);font-size:.8rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.chip-rec i{font-style:normal;opacity:.75}
#pop-rec{left:24px;bottom:136px}
.volver-vista{position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:25;display:flex;align-items:center;gap:10px;padding:6px 6px 6px 14px;border-radius:999px;background:var(--velo);border:1px solid var(--borde);font-size:.875rem}
.volver-vista .b{min-height:36px;padding:0 12px;font-size:.84rem}
.volver-vista .cerrar{width:36px;height:36px;border-radius:10px;border:0;background:var(--suave)}

/* ── REPRODUCTOR · persistente, fuera del panel ── */
#reproductor{position:fixed;left:var(--margen);top:var(--margen);bottom:92px;right:var(--margen);z-index:32;border-radius:20px;display:flex;flex-direction:column;overflow:hidden;
  background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
body.con-panel #reproductor{right:calc(var(--ancho-panel) + var(--margen) * 2)}
#reproductor .cab{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 18px;border-bottom:1px solid var(--linea)}
#reproductor .cab h2{font:400 1.25rem var(--tit);margin:0;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;outline:none}
#reproductor .medio{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#000}
#reproductor img,#reproductor video{max-width:100%;max-height:100%;display:block}
#reproductor .pie-v{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;font-size:.875rem}
#reproductor .pie-v .chip{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--linea);font-size:.8rem}
#reproductor .err{padding:24px;text-align:center}
#reproductor .tira-guia{margin:0 14px 12px}
body.con-reproductor #guia,body.con-reproductor #b-guia,body.con-reproductor .espacial,body.con-reproductor .marca,body.con-reproductor #vistas,body.con-reproductor .leyenda-limite,body.con-reproductor #chip-rec{display:none!important}

/* recorrido guiado · tarjeta de etapa */
#guia{position:fixed;left:24px;bottom:92px;width:min(420px,calc(100vw - 48px));max-height:calc(100vh - 220px);overflow:auto;padding:18px 20px 16px;border-radius:var(--r);background:var(--velo);border:1px solid var(--borde);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
#guia .prog{display:flex;gap:4px;margin-bottom:12px}
#guia .prog i{flex:1;height:3px;border-radius:2px;background:rgba(250,249,245,.2)}
#guia .prog i.hecho{background:var(--senal)}
#guia .n{font-family:var(--dato);font-size:.69rem;opacity:.75}
#guia h2{font-family:var(--tit);font-weight:400;font-size:1.5rem;margin:4px 0 8px;outline:none}
#guia p{margin:0 0 12px;line-height:1.5;font-size:.9rem;opacity:.94}
#guia .firma{font-family:var(--tit);font-size:1rem;opacity:.9}
#guia .pausa{font-size:.8rem;color:var(--detalle-texto)}
#guia .carga-etapa{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:.8rem;color:var(--detalle-texto)}
#guia .carga-etapa i{width:12px;height:12px;border-radius:50%;border:2px solid rgba(250,249,245,.3);border-top-color:var(--senal);animation:vgGiro 900ms linear infinite}
#guia .carga-etapa .enlace{min-height:32px;font-size:.8rem}
body.guia-visible #carga{display:none!important}
#guia .extra{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
#guia .extra:empty{display:none}
#guia .extra .b{min-height:40px;font-size:.84rem}
#guia .fila{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#guia.limitada .fila{position:sticky;bottom:-12px;margin-bottom:-12px;padding:10px 0 12px;background:rgb(var(--papel-rgb));box-shadow:0 -10px 12px -10px rgba(0,0,0,.45)}   /* v1.5.6: tarjeta limitada por los controles: las acciones siempre a la vista */
#guia .fila .btn{min-height:44px;padding:10px 18px;font-size:.875rem;backdrop-filter:none;-webkit-backdrop-filter:none}
#guia .invitacion{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--linea);font-size:.78rem;line-height:1.45;opacity:.86}
#guia .invitacion a{color:inherit;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media (pointer:coarse){ #guia .invitacion a{display:inline-block;padding:13px 0;margin:-13px 0} }   /* 44 px de toque sin cambiar el aspecto */
#guia .invitacion a:hover{color:var(--base);opacity:1}
.acerca a{color:var(--base);text-decoration:underline;text-underline-offset:3px}
.acerca .autor-logo{display:block;height:22px;width:auto;margin:2px 0 8px}
.acerca .autor-marca{margin-top:18px;padding-top:14px;border-top:1px solid var(--linea)}
.acerca .autor-marca p{margin:0 0 6px}
#panel .cuerpo{position:relative}   /* contiene a los textos solo para lectores (.sr): el panel nunca se desplaza entero */
#panel{overflow:clip}
.acerca h4{font-weight:500;font-size:.94rem;margin:16px 0 6px}
.acerca dl.creditos{display:grid;grid-template-columns:1fr;gap:2px 0;margin:0;font-size:.875rem;line-height:1.45}
.acerca dl.creditos dt{opacity:.72;margin-top:6px}
.acerca dl.creditos dd{margin:0}
.acerca ul.material{margin:0;padding-left:18px;font-size:.875rem;line-height:1.5;opacity:.9}
#guia .salir{margin-left:auto;background:none;border:0;font-size:.8rem;text-decoration:underline;text-underline-offset:3px;padding:10px 4px;opacity:.88}
#b-guia{position:fixed;left:24px;bottom:92px;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;
  border:1px solid rgba(250,249,245,.35);background:rgba(var(--papel-rgb),.8);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.84rem}
#b-guia svg{width:14px;height:14px;fill:currentColor;stroke:none}
#eleccion{position:fixed;left:24px;bottom:92px;width:min(360px,calc(100vw - 48px));padding:16px;border-radius:var(--r);background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
#eleccion p{margin:0 0 12px;font-size:.875rem;line-height:1.45}
#eleccion .fila{display:flex;flex-direction:column;gap:8px}
#eleccion .btn{width:100%;text-align:left}

/* carga, fallo, ayuda, avisos */
#carga{position:fixed;left:50%;top:18px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:6px 6px 6px 16px;border-radius:999px;background:rgba(12,14,11,.88);font-size:.8rem;z-index:25}
#carga i{width:12px;height:12px;border-radius:50%;border:2px solid rgba(250,249,245,.3);border-top-color:var(--senal);animation:vgGiro 900ms linear infinite}
#carga button,.caja-fallo button.enlace{background:none;border:0;text-decoration:underline;text-underline-offset:3px;padding:8px 10px;font-size:.8rem;min-height:36px}
.caja-fallo{position:fixed;left:50%;top:18px;transform:translateX(-50%);width:min(440px,calc(100vw - 24px));padding:16px 18px;border-radius:var(--r);background:rgba(20,23,15,.96);border:1px solid rgba(var(--detalle-rgb),.45);z-index:26}
.caja-fallo p{margin:0 0 12px;font-size:.875rem;line-height:1.45}
.caja-fallo .fila{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.caja-fallo .btn{min-height:40px;padding:8px 16px;font-size:.84rem}
#ayuda{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);padding:12px 20px;border-radius:999px;background:rgba(12,14,11,.82);font-size:.875rem;pointer-events:none!important}
#aviso{position:fixed;left:50%;top:76px;transform:translateX(-50%);z-index:45;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:14px;background:rgba(12,14,11,.92);font-size:.84rem;line-height:1.4;pointer-events:none!important;text-align:center}
#rev{position:fixed;left:50%;transform:translateX(-50%);bottom:4px;z-index:60;font-family:var(--dato);font-size:10px;opacity:.6;background:rgba(0,0,0,.55);padding:3px 8px;border-radius:6px;pointer-events:none;white-space:nowrap}
@media (prefers-reduced-motion:reduce){#carga i,.giro,.estado-vis .punto{animation:none}}
html.movimiento-reducido #carga i,html.movimiento-reducido .giro,html.movimiento-reducido .estado-vis .punto{animation:none}

/* escritorio estrecho con el panel abierto: controles e índice compactos, nada se monta */
@media (min-width:701px){
  body.con-panel .marca{max-width:calc(100vw - var(--ancho-panel) - 260px)}
  body.con-panel #guia{width:min(420px,calc(100vw - var(--ancho-panel) - 72px))}
}
@media (min-width:701px) and (max-width:1180px){
  body.con-panel .espacial button span{display:none}
  body.con-panel .espacial button{justify-content:center;padding:0 10px}
  body.con-panel .marca{max-width:calc(100vw - var(--ancho-panel) - 120px)}
  body.con-panel nav.principal button{flex-direction:column;gap:2px;padding:4px 10px;font-size:.69rem;min-height:48px;white-space:normal;text-align:center;line-height:1.1}
  body.con-panel nav.principal button.mia b{display:none}
  body.con-panel #vistas{right:calc(var(--ancho-panel) + var(--margen) + 76px)}
}
/* ── MÓVIL · un solo corte (700 px) ── */
@media (max-width:700px){
  :root{--margen:0px}
  .marca{top:14px;left:16px;max-width:calc(100vw - 150px)}
  #rev{bottom:0;top:auto;font-size:8px;padding:1px 6px;max-width:100vw;overflow:hidden}
  .marca img{height:24px}
  .marca .escena{font-size:1.2rem}
  .marca .sub{font-size:.62rem}
  .demo{left:16px;top:calc(14px + 5.1rem);min-height:28px;font-size:.75rem}
  #demo-exp{left:16px;top:calc(14px + 7.4rem)}
  .leyenda-limite{left:16px;top:calc(14px + 8.2rem);max-width:calc(100vw - 110px)}
  body.demo-activo .leyenda-limite{top:calc(14px + 10.5rem)}
  nav.principal{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));transform:none;justify-content:space-between;border-radius:20px;padding:4px}
  nav.principal button{flex:1 0 auto;min-width:60px;flex-direction:column;gap:3px;padding:6px 2px;min-height:52px;font-size:.69rem;border-radius:14px;white-space:normal;line-height:1.1;text-align:center}
  nav.principal button.mia b{display:none}
  .espacial{top:14px;right:12px}
  .espacial button span{display:none}
  .espacial button{padding:0 10px;justify-content:center}
  .rumbo{padding:6px 10px}
  .zoom{flex-direction:column!important}
  .zoom #c-pantalla{display:none}
  #vistas{top:auto;bottom:calc(84px + env(safe-area-inset-bottom));left:10px;right:10px;width:auto}
  #panel{top:auto;left:0;right:0;bottom:0;width:auto;height:min(62vh,560px);border-radius:22px 22px 0 0;border-bottom:0;transform:translateY(calc(100% + 24px));padding-bottom:env(safe-area-inset-bottom)}
  #panel.abierto{transform:none}
  #panel.expandido{height:calc(100% - 56px)}
  #panel.plegado{height:auto;top:auto;bottom:0}
  #panel.plegado .cuerpo,#panel.plegado .pie,#panel.plegado .tira-guia,#panel.plegado .volver{display:none!important}
  #panel .asa{display:block;width:40px;height:5px;border-radius:3px;background:rgba(250,249,245,.35);margin:8px auto 0;flex:none}
  #panel .cab{padding:6px 10px 8px}
  #panel .cab h2{font-size:1.2rem}
  #panel .plegar{display:inline-flex;align-items:center}
  #panel .cuerpo{padding:14px 16px 16px}
  #panel .pie{padding:10px 12px}
  #panel .pie .b{padding:0 12px}
  body.con-panel .espacial{right:12px}
  body.con-panel nav.principal{left:10px}
  body.con-panel:not(.panel-plegado) nav.principal,body.con-panel:not(.panel-plegado) #guia,body.con-panel #b-guia,
  body.con-panel:not(.panel-plegado) .espacial .grupo,body.con-panel .leyenda-limite{display:none!important}
  body.con-panel.panel-plegado nav.principal{display:none!important}
  body.con-panel #carga,body.con-panel .caja-fallo,body.con-panel #aviso,body.con-panel .volver-vista,body.con-panel .estado-vis{left:50%}
  #guia{left:10px;right:10px;width:auto;bottom:calc(84px + env(safe-area-inset-bottom));padding:14px 16px 12px;max-height:calc(100vh - 200px)}
  #guia h2{font-size:1.25rem}
  #guia p{font-size:.875rem;margin-bottom:10px}
  #b-guia{left:16px;bottom:auto;top:calc(14px + 5.1rem);min-height:40px;padding:0 12px;font-size:.78rem}
  body.demo-activo #b-guia{top:calc(14px + 7.4rem)}
  #eleccion{left:10px;right:10px;width:auto;top:auto;bottom:calc(84px + env(safe-area-inset-bottom));max-height:calc(100vh - 200px);overflow:auto}
  #carga,.caja-fallo{top:auto;bottom:calc(92px + env(safe-area-inset-bottom))}
  #guia{max-height:calc(100vh - 380px)}
  .volver-vista{top:calc(14px + 5.1rem)}
  body.con-panel #carga,body.con-panel .caja-fallo{top:84px;bottom:auto;z-index:35}
  #aviso{top:calc(14px + 7.8rem)}
  #reproductor{left:0;right:0;top:auto;bottom:0;height:calc(100% - 56px);border-radius:22px 22px 0 0;border-bottom:0}
  body.con-panel #reproductor{right:0}
  body.con-reproductor #panel{display:none}
  .estado-vis{top:auto;bottom:calc(84px + env(safe-area-inset-bottom))}
  .estado-vis.activa{left:10px!important;right:10px;transform:none;width:auto;bottom:calc(84px + env(safe-area-inset-bottom))}
  .chip-rec{left:16px;bottom:auto;top:96px}
  #pop-rec{left:16px;right:16px;bottom:auto;top:136px}
  .titulo-lote h3{font-size:2.3rem}
  .plano svg{height:min(62vh,560px)}
  .conf .tarjeta .recorte{height:96px}
}
@media (max-width:700px) and (max-height:779px){ .zoom{display:none!important} }   /* en teléfonos no cabe: se acerca con los dedos */
/* pantalla baja (teléfono horizontal): controles en fila arriba, la guía como columna a la izquierda */
@media (max-height:500px){
  .marca{top:10px;left:12px;flex-direction:row;align-items:center;gap:10px}
  .marca img{height:20px}
  .marca .escena{font-size:1.05rem}
  .marca .sub{display:none}
  .espacial{flex-direction:row;align-items:flex-start;top:8px;right:10px}
  .espacial .grupo{flex-direction:row}
  .espacial button span{display:none}
  .espacial button{padding:0 8px;justify-content:center;min-height:36px;min-width:36px}
  .rumbo{padding:6px 10px}
  .zoom{display:none!important}
  #vistas{top:56px;bottom:auto;right:10px;left:auto;width:min(290px,60vw);max-height:calc(100vh - 130px);overflow:auto}
  #guia{top:52px;bottom:auto;left:10px;right:auto;width:min(380px,50vw);max-height:calc(100vh - 140px);overflow:auto;padding:12px 14px}
  body.demo-activo #guia,body.demo-activo #eleccion{top:80px;max-height:calc(100vh - 168px)}
  #guia h2{font-size:1.15rem}
  #eleccion{top:52px;bottom:auto;left:10px;right:auto;width:min(360px,60vw);max-height:calc(100vh - 130px);overflow:auto}
  #b-guia{top:auto;bottom:76px;left:10px}
  .demo{top:44px;left:12px}
  .leyenda-limite{top:auto;bottom:76px;left:auto;right:10px;max-width:min(330px,45vw)}
  nav.principal button{min-height:44px;padding:4px 8px}
  .estado-vis.activa{bottom:86px;left:10px!important;width:min(340px,50vw);max-height:calc(100vh - 150px);overflow:auto}
  #carga,.caja-fallo{top:52px;bottom:auto}
  #aviso{top:52px}
  .volver-vista{top:52px}
}
@media (min-width:701px) and (max-height:500px){ body.con-panel .espacial{right:calc(var(--ancho-panel) + var(--margen) + 12px)} }
@media (max-width:700px) and (max-height:640px){
  #panel{height:calc(100% - 48px)}
  .conf .tarjeta .recorte{display:none}
  .conf h3{font-size:1.375rem;margin-bottom:10px}
}
@media (max-height:520px){
  #guia{max-height:calc(100vh - 110px)}
  .ctx{padding:8px 12px}
}

/* ── QA general (23 sep) · lo que va al final gana a los bloques anteriores ── */
img.rota{visibility:hidden}
.sin-imagen{background:rgba(250,249,245,.05)!important}
/* toque: nada de uso frecuente por debajo de 44 px */
@media (pointer:coarse){
  .espacial button{min-height:44px;min-width:44px}
  .tira-guia .b,#guia .salir,.b.txt,.tabs button,.indice button,.cats button,#panel .plegar,#b-guia,.volver-vista .b,.volver-vista .cerrar,.wa-ayuda .b.txt{min-height:44px}
  .plano svg{height:auto}                              /* el plano a todo el ancho: lotes más grandes para el dedo */
}
/* controles de la vista sin texto (móvil, tableta con panel): el nombre aparece al entrar y al tocar */
.espacial.rotular button span{display:inline!important;position:absolute;right:calc(100% + 8px);padding:4px 10px;border-radius:8px;background:rgba(var(--papel-rgb),.92);border:1px solid var(--borde);font-size:.78rem;pointer-events:none;white-space:nowrap}
.espacial button{position:relative}
.espacial button:focus-visible span{display:inline!important;position:absolute;right:calc(100% + 8px);padding:4px 10px;border-radius:8px;background:rgba(var(--papel-rgb),.92);border:1px solid var(--borde);font-size:.78rem;pointer-events:none;white-space:nowrap}
@media (max-width:700px){
  #portada .identidad{gap:12px}
  #guia.con-invitacion{max-height:calc(100vh - 300px)}
  #panel.de-guia:not(.expandido):not(.plegado){height:min(48vh,440px)}
  #panel .cab{flex-wrap:nowrap}
  #panel .cab h2{flex:1 1 0;min-width:0}
  #panel .volver{padding:0 10px 0 6px}
  .volver-vista{top:auto;bottom:calc(84px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}
  body.panel-plegado #guia{bottom:calc(76px + env(safe-area-inset-bottom));max-height:calc(100vh - 260px)}
  #rev{top:0;bottom:auto}
}
@media (max-height:500px){
  #portada .identidad{flex-direction:row;align-items:center;gap:14px}   /* teléfono horizontal: la firma al lado del logo, sin robar alto */
  #portada.con-firma{padding-top:calc(clamp(20px,4vw,40px) + 56px)}
  .plano svg{height:auto}
  body.con-panel #b-guia{display:none!important}
  #guia{max-height:calc(100vh - 128px)}
  body.demo-activo #guia{max-height:calc(100vh - 156px)}
}
@media (max-height:400px){
  #panel{overflow-y:auto}
  #panel .cuerpo{flex:none;overflow:visible}
}

/* ── IDIOMA Y CRÉDITO DE REVISIÓN (v1.2) ── */
.selector-idioma{display:flex;gap:2px;padding:3px;border-radius:999px;background:rgba(15,17,16,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.selector-idioma button{min-height:44px;min-width:44px;padding:0 12px;border:0;border-radius:999px;background:none;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-decoration:none!important;color:var(--base)}
.selector-idioma button:hover{background:rgba(250,249,245,.12)}
.selector-idioma button[aria-pressed=true]{background:var(--senal);color:var(--tinta)}
#portada .discreto .selector-idioma button{padding:0 12px;background:none}
#portada .discreto .selector-idioma button[aria-pressed=true]{background:var(--senal)}
#portada .discreto{align-items:center}
@media (max-width:480px){#portada .discreto{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 170px);row-gap:8px}}   /* dev.30: a 375 px el selector EN/ES pisaba el logo */
.espacial .grupo.idiomas{flex-direction:row;border-radius:999px;padding:3px}
.espacial .grupo.idiomas button{justify-content:center;min-width:40px;padding:0 10px;border-radius:999px;font-size:.74rem;font-weight:600;letter-spacing:.08em}
#portada .credito-revision{margin:0;font-size:.72rem;letter-spacing:.04em;line-height:1.35;text-shadow:0 0 2px #000,0 0 4px #000,0 0 8px rgba(0,0,0,.9)}
#portada .credito-revision a{color:var(--base);text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:12px 0;margin:-12px 0}
/* v1.2 · con los controles en fila (teléfono horizontal) los nombres de presentación se pisaban entre sí: ahí no se
   presentan (cada botón conserva su nombre accesible y su título); con el foco, el nombre va debajo del botón */
@media (max-height:500px){
  .espacial.rotular button:not(:focus-visible) span{display:none!important}
  .espacial button:focus-visible span{right:auto;left:50%;top:calc(100% + 6px);transform:translateX(-50%)}
}
@media (max-width:700px){ #b-guia{white-space:normal;text-align:left;line-height:1.25} }
/* ── GUÍA MINIMIZABLE Y COMPACTA EN EL TELÉFONO (v1.3) ── */
#guia .g-min{position:absolute;top:8px;right:8px;min-height:36px;padding:0 10px;border:0;border-radius:999px;background:rgba(250,249,245,.08);font-size:.74rem;text-decoration:underline;text-underline-offset:3px}
@media (pointer:coarse){ #guia .g-min{min-height:44px} }
body.guia-minimizable #guia .prog{margin-right:110px}
#guia .g-min{z-index:2}
body.guia-minimizable #guia .n{margin-right:110px}
#guia.min #g-txt,#guia.min .n,#guia.min .extra,#guia.min #g-firma,#guia.min #g-ant,#guia.min .salir,#guia.min #g-pausa{display:none!important}
#guia.min h2{font-size:1.05rem;margin:2px 0 8px}
.rasgos-lote{margin:10px 0 6px;padding-left:18px;font-size:.9rem;line-height:1.45}
.rasgos-lote li{margin:0 0 4px}
@media (max-width:700px){      /* la tarjeta compacta va con la guía minimizable (opción del caso) */
  body.guia-minimizable #guia{padding:12px 14px 10px}
  body.guia-minimizable #guia h2{font-size:1.15rem;margin:2px 0 6px}
  body.guia-minimizable #guia p:not(.invitacion){font-size:.84rem;line-height:1.42;margin:0 0 8px}
  body.guia-minimizable #guia .n{font-size:.64rem}
}
@media (max-width:700px){ #panel.compacta:not(.plegado):not(.expandido){height:auto;max-height:min(62vh,560px)} #panel.compacta .cuerpo{flex:0 1 auto} }
@media (max-width:700px) and (max-height:400px){ #panel.compacta .cuerpo{flex:none} }   /* v1.7.1: en el teléfono horizontal se desplaza el panel entero: la ficha breve no se encoge bajo su pie */
.marca>div{position:relative}.marca .aqui{position:absolute;left:0;top:calc(100% + 6px);white-space:nowrap;padding:3px 9px;border-radius:999px;background:rgba(20,23,15,.72);border:1px solid rgba(var(--detalle-rgb),.6);font-size:.78rem;letter-spacing:.02em}
.marca .aqui[hidden]{display:none}
/* v1.9 · teléfono vertical: con «Recorrido guiado» / «Ver el recorrido desde el inicio» a la vista (dos líneas posibles),
   la leyenda del lindero baja lo justo para no quedar debajo del botón. */
@media (max-width:700px) and (min-height:501px){ body:has(#b-guia:not([hidden])) .leyenda-limite{top:calc(14px + 5.1rem + 62px)} }
/* v1.9 · teléfono: mientras los controles se presentan con su nombre (5 s al entrar), la leyenda del lindero espera. */
@media (max-width:700px){ body:has(.espacial.rotular) .leyenda-limite{visibility:hidden} }
/* v1.9 · teléfono horizontal: la leyenda del lindero cede mientras la tarjeta del recorrido está a la vista (la etapa
   ya lo explica y en ese alto no caben las dos). El ancho de la tarjeta no cambia: ensancharla tapaba el rótulo del
   proyecto en otros casos (regresión de Las Palmas a 667×375). */
@media (max-height:500px){ body:has(#guia:not([hidden])) .leyenda-limite{display:none} }
/* v1.8.2 · El título del panel no se corta con «…» (QA integral de Terra Jungla, bloque 6; en v1.8.1 era solo
   «Tu selección»). En el teléfono pasa a dos líneas si no cabe. Con el panel estrecho en em (≤ 17 em: 360 px al 150 %,
   teléfono o tableta al 200 %), va en su propia línea bajo «‹ Atrás», «Ocultar» y «✕». Está al final para pesar más
   que las reglas del teléfono. Sin container queries (navegadores viejos) queda el corte de siempre. */
#panel{container:panel / inline-size}
@media (max-width:700px){ #panel .cab h2{white-space:normal;overflow-wrap:break-word;line-height:1.15} }
@container panel (max-width:17em){
  #panel .cab{flex-wrap:wrap;justify-content:flex-end;row-gap:2px;padding-top:4px;padding-bottom:6px}
  #panel .cab .volver{margin-right:auto}
  #panel .cab h2{order:9;flex:1 0 100%;min-width:0;margin:0 0 0 4px;line-height:1.15;white-space:normal;overflow:visible;text-overflow:clip}
  /* con texto grande, la etapa entera que el recorrido pone en la hoja (teléfono) no puede comerse el panel: se limita y
     se desplaza sola, y el contenido (p. ej., «Entender las superficies» desde la etapa 4) queda a la vista (v1.8.2) */
  #panel .tira-guia{flex:none;max-height:40%;overflow-y:auto;align-items:flex-start}
}
/* v1.8.2 · Con texto grande en el teléfono, la hoja breve (ficha, «Tu selección») puede crecer casi a toda la pantalla:
   con el encabezado, la tira del recorrido en pausa y el pie, a 62 vh le quedaban 30 px al contenido (360×640 al 200 %).
   El mínimo en rem (22rem = 352 px a texto normal, 704 px al 200 %) sigue al tamaño de letra al instante; a texto normal
   manda 62 vh, como siempre. Una container query en em no sirve aquí: Chrome no la vuelve a evaluar si solo cambia la
   letra. */
@media (max-width:700px){ #panel.compacta:not(.plegado):not(.expandido){max-height:min(calc(100% - 56px), max(min(62vh,560px), 22rem))} }
/* v1.10 · …pero sin llegar al nombre de la vista (arriba): al 200 % en 390×844, 22rem lo pisaba 10 px. --marca-abajo lo
   mide paneles.js (borde inferior del nombre, que crece con la letra). Sin la variable, la regla de arriba. */
@media (max-width:700px){ #panel.compacta:not(.plegado):not(.expandido){max-height:min(calc(100% - 56px), calc(100% - var(--marca-abajo, 0px) - 8px), max(min(62vh,560px), 22rem))} }

/* v1.8.4 · Con texto grande en un teléfono chico, si la hoja no deja leer (con el recorrido en pausa, la ficha dejaba
   65 px en 360×640 al 200 %), el nombre de la vista se oculta mientras la hoja está abierta y la hoja breve sube hasta su
   tope de 56 px. Una hoja que llega igual al nombre (la alta de «Entender las superficies») también lo oculta, en vez de
   cortarlo. Decide paneles.js (body.sin-marca); al plegar o cerrar la hoja, el nombre vuelve. */
@media (max-width:700px){
  body.con-panel.sin-marca:not(.panel-plegado) .marca{visibility:hidden}
  body.sin-marca #panel.compacta:not(.plegado):not(.expandido){max-height:min(calc(100% - 56px), max(min(62vh,560px), 22rem))}
}

/* v1.11 · capas del masterplan (solo si el caso las trae) */
#capas-panel{position:fixed;top:20px;right:212px;z-index:30;width:300px;padding:10px 12px 12px;border-radius:var(--r);background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:.86rem}
#capas-panel h3{margin:4px 2px 8px;font-size:.69rem;letter-spacing:.2em;text-transform:uppercase;opacity:.7;font-weight:500}
.capa-fila{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 6px;border-radius:10px;cursor:pointer}
.capa-fila:hover{background:rgba(250,249,245,.08)}
.capa-fila input{width:18px;height:18px;margin:0;accent-color:var(--senal);flex:none}
.capa-fila .chips{display:flex;gap:3px;flex:none}
.chip{display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--c);border:1px solid rgba(255,255,255,.75);flex:none}
.chip.linea{background:none;border:0;border-top:3px solid var(--c);height:0;margin-top:0;width:16px;border-radius:0}
.capas-sub{margin:10px 2px 2px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.capas-nota{margin:10px 2px 0;font-size:.76rem;line-height:1.4;opacity:.85}
.leyenda-capas{position:fixed;right:24px;bottom:24px;z-index:12;display:flex;flex-direction:column;gap:6px;max-width:min(430px,calc(100vw - 48px));padding:9px 12px;border-radius:12px;background:rgba(var(--papel-rgb),.86);border:1px solid var(--borde);font-size:.78rem;line-height:1.35}
.leyenda-capas strong{font-weight:600}
.leyenda-capas .items{display:flex;flex-wrap:wrap;gap:4px 12px}
.leyenda-capas .item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
body.con-panel .leyenda-capas{right:calc(var(--ancho-panel) + var(--margen) + 16px)}
body.con-reproductor .leyenda-capas,body.con-reproductor #capas-panel{display:none!important}
.en-plano{margin:14px 0 4px;padding:10px 12px;border-radius:12px;border:1px dashed var(--borde)}
.en-plano h4{margin:0 0 6px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75;font-weight:500}
.en-plano ul{margin:0;padding-left:18px;font-size:.88rem;line-height:1.45}
.en-plano .b{margin-top:8px}
@media (max-width:700px){
  #capas-panel{top:auto;bottom:calc(76px + env(safe-area-inset-bottom));left:12px;right:12px;width:auto;max-height:60vh;overflow:auto}
  .leyenda-capas{left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));max-width:none;font-size:.74rem;padding:7px 10px}
  body.con-panel .leyenda-capas{display:none!important}
  body.con-capas-panel .leyenda-capas{display:none!important}
}

/* v1.11.2 · Título de la vista con fondo (opcional por caso: `marca_fondo` en el manifiesto). Sobre cielo claro la sombra
   sola no alcanza 4,5 de contraste (medido en Pedasí: p10 3,3 sobre el cielo de la vista general). Un velo del color del
   papel detrás del nombre y el subtítulo; el logo queda fuera. */
body.marca-fondo .marca > div{padding:6px 10px 7px;margin:-6px 0 -7px -10px;border-radius:12px;background:rgba(var(--papel-rgb),.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
/* v1.11.2 · Teléfono: la leyenda del lindero cede si la tarjeta del recorrido la tocaría (texto grande en 360×640). La
   decide motor.js midiendo las dos cajas; sin choque, nada cambia. En horizontal ya cedía siempre (v1.9). */
body.leyenda-cede .leyenda-limite{display:none!important}

/* v1.13.1 · En el teléfono, «Qué hay cerca» solo desde la pestaña del dock (opcional por caso: `cerca_solo_dock`). El
   botón de la columna de controles duplicaba el acceso y, con texto al 200 % en 360×640, alargaba la columna y dejaba la
   tarjeta del recorrido sin título ni texto. */
@media (max-width:700px){ body.cerca-solo-dock #c-cerca{display:none!important} }

/* ── v1.14 · JERARQUÍA COMPACTA (opcional por caso: experiencia.jerarquia = "compacta"; body.jer-compacta) ──────────────
   Cinco tamaños de letra en rem (respetan la letra grande del sistema): meta .75 · cuerpo .9375 · acción .9375 · título
   1.625 (1.25 en el teléfono) · cifra 2.125. Una idea y una acción por etapa; el detalle bajo demanda. Sin esta clase,
   nada de lo que sigue aplica (Las Palmas y los demás casos quedan idénticos). */
body.jer-compacta{--t-meta:.75rem;--t-cuerpo:.9375rem;--t-tit:1.625rem;--t-cifra:2.125rem}
/* controles: íconos; «Vistas» conserva su nombre, el resto lo muestra al enfocarlo o en la presentación inicial */
body.jer-compacta .espacial button:not(#c-vistas) > span{display:none}
body.jer-compacta .marca .sub{font-family:var(--dato);letter-spacing:.04em;text-transform:none;font-weight:400;font-size:var(--t-meta)}
/* tarjeta del recorrido */
body.jer-compacta #guia .prog{margin:0 44px 10px 0}
body.jer-compacta #guia .n{position:absolute;top:12px;right:50px;font-size:var(--t-meta);opacity:.8}
body.jer-compacta.guia-minimizable #guia .prog,body.jer-compacta.guia-minimizable #guia .n{margin-right:0}
body.jer-compacta.guia-minimizable #guia .prog{margin-right:84px}
body.jer-compacta #guia .g-min{top:6px;right:6px;width:36px;min-height:36px;padding:0;display:grid;place-items:center;background:none;text-decoration:none}
body.jer-compacta #guia .g-min svg{display:block}
body.jer-compacta #guia .ceja{font-family:var(--dato);font-size:var(--t-meta);opacity:.8;margin:0 0 4px;line-height:1.4}
body.jer-compacta #guia h2{font-size:var(--t-tit);line-height:1.15;margin:2px 0 12px}
body.jer-compacta #guia p{font-size:var(--t-cuerpo)}
body.jer-compacta #guia .g-resumen{margin:0 0 12px}
body.jer-compacta #guia .g-fuente{font-size:var(--t-meta);opacity:.78}
.g-mas{margin:0 0 12px}
.g-mas summary{cursor:pointer;min-height:36px;display:flex;align-items:center;gap:8px;font-size:var(--t-meta);opacity:.88;list-style:none;border-radius:8px}
.g-mas summary::-webkit-details-marker{display:none}
.g-mas summary::before{content:"+";font-family:var(--dato);width:1ch}
.g-mas[open] summary::before{content:"−"}
.g-mas #g-mas-cuerpo{padding-top:4px}
.g-mas #g-mas-cuerpo p{margin:0 0 8px}
@media (pointer:coarse){ .g-mas summary{min-height:44px} }
/* acciones secundarias como enlaces; la principal, sola */
body.jer-compacta #guia .extra{gap:2px 16px;margin:0 0 8px}
body.jer-compacta #guia .extra .b{min-height:36px;padding:0;border:0;background:none;font-size:var(--t-meta);text-decoration:underline;text-underline-offset:4px;opacity:.92}
@media (pointer:coarse){ body.jer-compacta #guia .extra .b{min-height:44px} }
body.jer-compacta #guia .fila .btn{font-size:var(--t-cuerpo)}
body.jer-compacta #guia #g-ant{width:44px;min-width:44px;padding:0;display:grid;place-items:center;border-radius:50%}
body.jer-compacta #guia #g-ant svg{display:block}
body.jer-compacta #guia .salir{flex-basis:100%;margin:2px 0 0;padding:6px 0;text-align:left;font-size:var(--t-meta)}
body.jer-compacta #guia.min .ceja,body.jer-compacta #guia.min .g-resumen,body.jer-compacta #guia.min .g-mas,body.jer-compacta #guia.min .g-fuente{display:none!important}
/* cifras y formas (tarjeta, ficha y selección) */
.vg-cifras{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}
.vg-cifra b{display:block;font-family:var(--dato);font-weight:400;font-size:var(--t-cifra,2.125rem);line-height:1}
.vg-cifra span{display:block;margin-top:4px;font-size:var(--t-meta,.75rem);opacity:.82}
.formas{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}
.formas figure{margin:0;display:flex;flex-direction:column;gap:6px}
.formas figcaption{font-family:var(--dato);font-size:var(--t-meta,.75rem);line-height:1.3}
.formas figcaption b{display:block;font-weight:400;font-size:1.125rem}
.formas.mini{gap:12px;align-items:center}
.formas.mini figure{flex-direction:row;align-items:center;gap:6px}
.formas.mini figcaption{font-size:.6875rem}.formas.mini figcaption b{font-size:.875rem}
svg.forma{display:block;overflow:visible}
svg.forma path{fill:rgba(var(--detalle-rgb),.24);stroke:var(--detalle);stroke-width:1.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
svg.forma-ha{display:block;flex:none}
svg.forma-ha rect{fill:none;stroke:var(--detalle-texto);stroke-width:2;stroke-dasharray:5 4;opacity:.9}
.vg-chip{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:5px 10px;border-radius:999px;background:var(--suave);border:1px solid var(--linea);font-size:var(--t-meta,.75rem);line-height:1.35}
/* lista única de lotes con formas */
.lista-formas .fila.fila-forma{grid-template-columns:40px 64px 1fr auto;gap:10px;min-height:60px;padding:6px 10px 6px 6px}
.lista-formas .fila .n{font-size:1.375rem}
.lista-formas .fila .f{display:grid;place-items:center;min-height:44px}
.lista-formas .fila .d .ha{display:block;font-family:var(--dato);font-weight:400;font-size:1.0625rem}
.lista-formas .fila .d small{margin-top:1px}
.lista-formas .fila .marca-e{display:flex;align-items:center;gap:6px}
.lista-formas .fila .marca-e svg{width:18px;height:18px}
.sup-ref.ref-forma{font-size:.8125rem;line-height:1.4}
.sup-ref.ref-forma p{margin:0}
/* ficha y selección */
.ficha-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 6px}
.ficha-formas{margin:14px 0 6px}
.det-lote{margin:14px 0 0}
.det-lote summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;font-size:.8125rem;opacity:.9;list-style:none}
.det-lote summary::-webkit-details-marker{display:none}
.det-lote summary::before{content:"+";font-family:var(--dato);width:1ch}
.det-lote[open] summary::before{content:"−"}
.det-lote .fuente{margin:4px 0 0}
.sel-actual{margin:10px 0 0}
body.jer-compacta .rasgos-lote{margin-top:14px}
/* teléfono: tarjeta más baja y cifras un paso menor */
@media (max-width:700px){
  body.jer-compacta{--t-tit:1.25rem;--t-cifra:1.75rem}
  body.jer-compacta #guia{padding:12px 14px 10px}
  body.jer-compacta #guia .prog{margin-bottom:8px}
  body.jer-compacta #guia .g-resumen{margin-bottom:8px}
  body.jer-compacta #guia .vg-chip{display:none}
  .lista-formas .fila.fila-forma{grid-template-columns:34px 52px 1fr auto;gap:8px}
}
@media (prefers-reduced-motion:reduce){ .g-mas summary,.det-lote summary{transition:none} }
body.jer-compacta #guia #g-ant:disabled{display:none}
body.jer-compacta #guia .salir.ico-salir{position:absolute;top:6px;right:44px;width:36px;min-height:36px;padding:0;margin:0;display:grid;place-items:center;flex-basis:auto;text-decoration:none;opacity:.88;z-index:2}
body.jer-compacta:not(.guia-minimizable) #guia .salir.ico-salir{right:6px}
body.jer-compacta.guia-minimizable #guia .prog{margin-right:124px}
body.jer-compacta #guia .n{right:88px}
body.jer-compacta #guia #g-mas-cuerpo .extra{margin:4px 0 0}
body.jer-compacta .formas.mini{flex-wrap:nowrap;gap:10px}
@media (pointer:coarse){ body.jer-compacta #guia .salir.ico-salir{width:44px;min-height:44px;top:2px} }
@media (pointer:coarse){ body.jer-compacta.guia-minimizable #guia .salir.ico-salir{right:50px} body.jer-compacta #guia .n{right:100px} body.jer-compacta.guia-minimizable #guia .prog{margin-right:136px} }
.ficha-cab .ey{white-space:nowrap;align-self:flex-start}
/* la fila de la lista con formas se reacomoda con texto grande (al 200 % en 360 px la grilla fija se desbordaba) */
.lista-formas .fila.fila-forma{display:flex;flex-wrap:wrap;align-items:center;column-gap:10px;row-gap:2px}
.lista-formas .fila .n{flex:0 0 auto;min-width:1.6em}
.lista-formas .fila .f{flex:0 0 auto;width:56px}
.lista-formas .fila .d{flex:1 1 6.5em;min-width:0;overflow-wrap:anywhere}
.lista-formas .fila .marca-e{flex:0 0 auto;margin-left:auto}
/* v1.14 · la acción principal nunca queda fuera de la vista: si la tarjeta no cabe (texto grande, teléfono horizontal),
   la fila de acciones queda fija al pie y lo del medio se desplaza; el título queda arriba. */
body.jer-compacta #guia .fila{position:sticky;bottom:-10px;margin-bottom:-10px;padding:8px 0 10px;background:linear-gradient(rgba(var(--papel-rgb),.94),rgb(var(--papel-rgb)));z-index:1}
/* con «Más detalle» abierto, la fila vuelve a su lugar: al 200 % en el teléfono, fija ocupaba casi toda la tarjeta y lo abierto no se alcanzaba */
body.jer-compacta #guia:has(#g-mas[open]) .fila{position:static;margin-bottom:0;background:none}
/* v1.14 · el menú Vistas del teléfono (anclado abajo) no pasa del borde de arriba: con diez vistas y texto al 200 % se
   salía de la pantalla y las primeras no se alcanzaban. Con pocas vistas no cambia nada (el tope no se alcanza). */
@media (max-width:700px){ #vistas{max-height:calc(100vh - 84px - env(safe-area-inset-bottom) - 16px);overflow:auto;overscroll-behavior:contain} }
body.jer-compacta .formas.mini figcaption{white-space:nowrap}
body.jer-compacta .formas.mini figcaption b{display:block}
body.jer-compacta .formas.mini{gap:8px}body.jer-compacta .formas.mini figure{gap:5px}

/* ── v1.15 · UNA SOLA ZONA DE LECTURA (jerarquía compacta) ──────────────────────────────────────────────────────────
   Con un panel abierto, la tarjeta del recorrido se contrae a la franja del panel: la etapa y «Volver al recorrido». */
body.jer-compacta .tira-guia{padding:6px 6px 6px 12px;gap:8px}
body.jer-compacta .tira-guia .franja{flex:1 1 auto;min-width:0;font-size:.8125rem;line-height:1.35;overflow-wrap:anywhere}
body.jer-compacta .tira-guia .franja b{font-weight:500;color:var(--detalle-texto)}
body.jer-compacta .tira-guia .b{flex:none}
/* «Ver terreno» / «Ver lista»: también en el teléfono horizontal (poca altura), donde lectura y terreno no caben juntos */
@media (max-height:500px){ body.jer-compacta #panel .plegar{display:inline-flex;align-items:center} }
/* «Volver al encuadre»: aparece solo si el visitante movió la cámara y los lotes de la etapa ya no se ven enteros */
body.jer-compacta #guia .g-encuadre{display:inline-flex;align-items:center;min-height:36px;margin:0 0 8px;padding:0;border:0;background:none;
  color:var(--base);font-size:var(--t-meta);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
body.jer-compacta #guia .g-encuadre[hidden]{display:none}
@media (pointer:coarse){ body.jer-compacta #guia .g-encuadre{min-height:44px} }
body.jer-compacta.letra-grande #panel .plegar{display:inline-flex;align-items:center}
/* en el teléfono y con texto grande, la franja es de una línea: la etapa y la acción (el título ya está en la tarjeta al volver) */
@media (max-width:700px){ body.jer-compacta .tira-guia .franja-tit{display:none} }
body.jer-compacta.letra-grande .tira-guia .franja-tit{display:none}
/* v1.15: en poca altura (teléfono horizontal) con la jerarquía compacta, la cabecera del panel lleva «Ver terreno» y no
   puede partirse en dos filas (la ✕ bajaba sola): «‹ Atrás» queda en su flecha (el nombre accesible sigue siendo
   «Atrás») y el título se parte en su propio espacio en vez de cortarse */
@media (max-height:500px){
  body.jer-compacta #panel .cab{flex-wrap:nowrap}
  body.jer-compacta #panel .cab h2{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:break-word;line-height:1.15}
  body.jer-compacta #panel .cab .volver{font-size:0;min-width:40px;justify-content:center}
  body.jer-compacta #panel .cab .volver::before{content:"‹";font-size:1.5rem;line-height:1}
}
/* ── v1.16 · ORIENTACIÓN Y SIGNIFICADO (jerarquía compacta) ────────────────────────────────────────────────────────────
   Controles con nombre corto visible: «Vistas» y «Conjunto» cambian de lugar; «Horizonte», en su propio grupo, orienta
   la cámara. En el teléfono y en pantallas bajas el nombre va chico, debajo del ícono (sin cartel flotante). */
body.jer-compacta .espacial button#c-general > span,body.jer-compacta .espacial button#c-horizonte > span{display:inline}
@media (max-width:700px),(max-height:500px){
  body.jer-compacta:not(.letra-grande) .espacial #c-vistas,body.jer-compacta:not(.letra-grande) .espacial #c-general,body.jer-compacta:not(.letra-grande) .espacial #c-horizonte{flex-direction:column-reverse;justify-content:center;gap:1px;padding:4px 4px 3px;min-width:54px}
  body.jer-compacta:not(.letra-grande) .espacial button#c-vistas > span,body.jer-compacta:not(.letra-grande) .espacial button#c-general > span,body.jer-compacta:not(.letra-grande) .espacial button#c-horizonte > span{display:block!important;position:static!important;transform:none!important;font-size:.625rem;line-height:1.1;padding:0;background:none;border:0;letter-spacing:.01em}
}
/* el tipo de vista (aérea con su altura, o a nivel de suelo) se conserva en pantallas bajas, en una línea bajo el nombre;
   el nombre se parte en su espacio en vez de pasar por debajo de los controles */
@media (max-height:500px){
  body.jer-compacta .marca > div{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;max-width:calc(100vw - 420px)}
  body.jer-compacta .marca .escena{white-space:normal}
  body.jer-compacta .marca .sub{display:block;font-size:.6875rem;margin-top:0}
  /* si la cabecera crece (nombre largo, texto grande), la tarjeta del recorrido empieza debajo */
  body.jer-compacta #guia{top:max(52px,calc(var(--marca-abajo, 0px) + 8px));max-height:calc(100vh - max(52px,calc(var(--marca-abajo, 0px) + 8px)) - 88px)}
}
/* el desvío (la entrada desde la etapa 2): la tarjeta habla de esa vista y el regreso va como botón, a la vista */
body.jer-compacta #guia.en-desvio #g-extra{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 2px}
body.jer-compacta #guia.en-desvio #g-txt{margin-top:6px}
/* «Ver terreno» de la tarjeta: la misma forma que «Volver al encuadre» */
body.jer-compacta #guia .g-terreno{display:inline-flex}
body.jer-compacta #guia .g-terreno[hidden]{display:none}
/* «Trazado orientativo» bajo el nombre de la vista (se toca para leer la explicación y la fuente) */
.marca .trazo{pointer-events:auto;position:absolute;left:0;top:calc(100% + 6px);white-space:nowrap;display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:3px 10px;border-radius:999px;border:1px solid rgba(250,249,245,.45);background:rgba(20,23,15,.55);color:var(--base);font-size:.75rem;line-height:1.2;cursor:pointer}
.marca .trazo i{width:14px;height:10px;border:1.5px dashed currentColor;border-radius:2px;flex:none}
.marca .trazo:focus-visible{outline:2px solid var(--base);outline-offset:2px}
@media (pointer:coarse){ .marca .trazo{min-height:36px} }
.trazo-info{max-width:min(340px,calc(100vw - 24px))}
@media (max-height:500px){ .marca .trazo{top:calc(100% + 4px);min-height:26px;padding:2px 8px;font-size:.6875rem} }
/* ficha: junto a «Guardar», qué es (selección personal) y qué no es (reserva); «Ver a nivel de suelo» con su aclaración */
body.jer-compacta #panel-pie .nota-guardar{flex:1 0 100%;margin:2px 0 0;font-size:var(--t-meta);line-height:1.35;opacity:.82;text-align:center}
body.jer-compacta #panel .ver-suelo{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:8px 0 4px}
body.jer-compacta #panel .ver-suelo small{font-size:var(--t-meta);opacity:.8}
/* «Volver a …» flotante (hoja oculta tras ubicar un lote en otra vista): compacto, el nombre se parte si hace falta */
body.jer-compacta .volver-vista{border-radius:16px;max-width:calc(100vw - 24px)}
body.jer-compacta .volver-vista .b{white-space:normal;text-align:left;line-height:1.2;padding:6px 12px}
@media (max-width:700px){ body.jer-compacta .volver-vista{top:auto;bottom:calc(84px + env(safe-area-inset-bottom));left:12px;right:auto;transform:none} }
/* pantalla baja con la hoja abierta: los controles se corren junto a la hoja y ocupan la franja de arriba; el nombre de la
   vista (con su tipo) baja a la línea siguiente para no quedar debajo de ellos */
@media (min-width:701px) and (max-height:500px){
  body.jer-compacta.con-panel .marca{top:58px}
  body.jer-compacta.con-panel .marca > div{max-width:calc(100vw - var(--ancho-panel) - var(--margen) - 130px)}
}
/* el contenedor de los controles es más ancho que algunos grupos (el selector de idioma, con texto grande): en los huecos
   entre grupos, los toques y arrastres pasan a la panorámica */
body.jer-compacta #ui .espacial{pointer-events:none}
body.jer-compacta #ui .espacial > *{pointer-events:auto}
/* con texto grande en el teléfono, «Trazado orientativo» en su forma corta y en una línea (el completo, al tocarlo) */
.marca .trazo .corto{display:none}
@media (max-width:700px){ body.letra-grande .marca .trazo .largo{display:none} body.letra-grande .marca .trazo .corto{display:inline;white-space:nowrap} }
/* con texto grande en el teléfono, los nombres bajo los íconos (a doble tamaño) ensanchaban la columna de controles y
   tapaban el terreno: quedan los íconos, con su nombre en la presentación inicial, al enfocarlos y en el nombre accesible */
@media (max-width:700px),(max-height:500px){ body.jer-compacta.letra-grande .espacial:not(.rotular) button#c-general > span,body.jer-compacta.letra-grande .espacial:not(.rotular) button#c-horizonte > span{display:none} }
/* «Ver terreno» de la tarjeta, en la fila de «Más detalle» (a la derecha): aparecer no cambia el alto de la tarjeta */
body.jer-compacta #guia .g-terreno.en-fila{position:absolute;right:16px;margin:0}
/* el menú «Vistas» va por encima de «Trazado orientativo» (en el teléfono se abren en la misma zona) */
body.jer-compacta #vistas{z-index:27}
/* con texto grande en el teléfono, el pie de la ficha queda en «Guardar» y su nota corta («No es una reserva»); «Ubicar …»
   pasa al cuerpo como enlace (como «Ver a nivel de suelo»): la ficha conserva su contenido a la vista */
#panel-pie .nota-guardar .corto,#panel .ubicar-cuerpo{display:none}
@media (max-width:700px){
  body.letra-grande #panel-pie .nota-guardar .largo{display:none}
  body.letra-grande #panel-pie .nota-guardar .corto{display:inline}
  body.letra-grande #panel-pie .nota-guardar{margin:0;line-height:1.2}
  body.letra-grande #panel .ubicar-cuerpo{display:block;margin:8px 0 4px}
  body.letra-grande #panel-pie:has(.nota-guardar) [data-accion="terreno"]{display:none}
}

/* ══ v1.17 · NAVEGACIÓN POR LOTES (body.nav-lotes; solo si el caso declara navegacion: "lotes") ══
   Barra superior, panel a la izquierda en escritorio, navegación inferior con WhatsApp aparte en el teléfono.
   Nada de aquí aplica sin la clase, así los demás casos quedan como en v1.16.0. */
body.nav-lotes{--ancho-panel:min(360px,40vw);--nav-sup:56px;--nav-inf:0px}
body.nav-lotes nav.principal,body.nav-lotes #b-guia,body.nav-lotes #c-vistas,body.nav-lotes #c-general,body.nav-lotes #vistas{display:none!important}
body.nav-lotes .marca{top:calc(var(--nav-sup) + 12px)}
body.nav-lotes .marca img{display:none}
body.nav-lotes .espacial{top:calc(var(--nav-sup) + 12px)}
body.nav-lotes #carga,body.nav-lotes .caja-fallo{top:calc(var(--nav-sup) + 10px)}
body.nav-lotes #aviso{top:calc(var(--nav-sup) + 64px)}
body.nav-lotes #demo{top:calc(var(--nav-sup) + 12px + 5.1rem)}
body.nav-lotes .velo-arriba{height:220px}
.navbar{position:fixed;top:0;left:0;right:0;height:var(--nav-sup);z-index:34;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:0 10px;
  background:rgba(var(--papel-rgb),.8);border-bottom:1px solid var(--borde);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.navbar .nb-logo{display:flex;align-items:center;min-height:44px;padding:0 8px;border:0;border-radius:12px;background:none}
.navbar .nb-logo:hover{background:rgba(250,249,245,.1)}
.navbar .nb-logo img{height:26px;width:auto;display:block}
.navbar .nb-centro,.navbar .nb-derecha{display:flex;align-items:center;gap:4px}
.navbar .nb-centro{justify-content:center}
.navbar .nb-derecha{justify-content:flex-end}
.nb{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:0;border-radius:999px;background:none;font-size:.875rem;white-space:nowrap;color:inherit;transition:background var(--t-hover)}
.nb:hover{background:rgba(250,249,245,.12)}
.nb[aria-current=page]{background:var(--senal);color:var(--tinta)}
.nb svg.ico{width:18px;height:18px}
.navbar .nb-idioma{padding:2px;background:rgba(15,17,16,.4)}
.navbar .nb-idioma button{min-height:40px;min-width:40px;padding:0 10px}
.menu-mas{position:fixed;top:calc(var(--nav-sup) + 6px);right:12px;z-index:46;min-width:230px;padding:8px;border-radius:var(--r);background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;flex-direction:column;gap:2px}
.menu-mas button[role=menuitem]{display:flex;width:100%;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:none;font-size:.9rem;text-align:left;color:inherit}
.menu-mas button[role=menuitem]:hover{background:rgba(250,249,245,.12)}
.menu-mas .ico{width:18px;height:18px;flex:none}
.menu-mas .menu-idioma{margin:6px 4px 2px;align-self:flex-start}
/* el idioma va en la barra (escritorio) o en «Más» (teléfono): el selector flotante de los controles sobra */
body.nav-lotes .espacial .grupo.idiomas{display:none!important}
/* panel a la izquierda (escritorio) */
@media (min-width:701px){
  body.nav-lotes #panel{left:var(--margen);right:auto;top:calc(var(--nav-sup) + var(--margen));transform:translateX(calc(-100% - 24px))}   /* 2D: cerrado, fuera de pantalla por la IZQUIERDA (el panel vive a la izquierda); con el transform de serie quedaba visible y desplazado mientras la escena cargaba */
  body.nav-lotes #panel.abierto{transform:none}
  body.nav-lotes.con-panel .espacial{right:22px}
  body.nav-lotes.con-panel .marca{left:calc(var(--ancho-panel) + var(--margen) + 16px);max-width:calc(100vw - var(--ancho-panel) - 300px)}
  body.nav-lotes.con-panel #guia{left:calc(var(--ancho-panel) + var(--margen) + 12px);width:min(420px,calc(100vw - var(--ancho-panel) - 72px))}
  body.nav-lotes.con-panel #carga,body.nav-lotes.con-panel .caja-fallo,body.nav-lotes.con-panel #aviso,body.nav-lotes.con-panel .volver-vista,body.nav-lotes.con-panel .estado-vis{left:calc(50% + var(--ancho-panel) / 2)}
  body.nav-lotes.con-panel #reproductor{left:calc(var(--ancho-panel) + var(--margen) * 2);right:var(--margen)}
  body.nav-lotes.con-panel .leyenda-capas{right:22px}
  body.nav-lotes.con-panel .leyenda-limite,body.nav-lotes.con-panel #demo,body.nav-lotes.con-panel #demo-exp{left:calc(var(--ancho-panel) + var(--margen) + 16px)}
}
body.nav-lotes #panel .expandir{display:none;min-height:40px;padding:0 12px;border-radius:12px;border:0;background:var(--suave);font-size:.85rem;white-space:nowrap;color:inherit}
/* lista: filtros y resalte por hover/foco */
.filtros-v2{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.filtro-v2{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid rgba(250,249,245,.35);background:none;font-size:.8rem;color:inherit;white-space:nowrap}
.filtro-v2:hover{background:rgba(250,249,245,.1)}
.filtro-v2[aria-pressed=true]{background:var(--senal);border-color:var(--senal);color:var(--tinta)}
.lista .fila.sobre{border-color:var(--linea);background:rgba(250,249,245,.1)}
/* ficha */
.ficha-v2 .estado-linea{display:flex;align-items:center;gap:10px;margin:0 0 8px;flex-wrap:wrap;font-size:.9rem}
.ficha-v2 .precio{margin:0 0 12px;font-size:.94rem;display:flex;align-items:baseline;gap:10px}
.vistas-lote{margin:14px 0 6px;padding:12px 14px;border-radius:14px;border:1px dashed rgba(250,249,245,.35)}
.vistas-lote .b[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.vistas-lote .nota{margin:8px 0 0}
.consulta-v2{margin:12px 0 6px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.consulta-v2 .wa-b{align-self:stretch}
.consulta-v2 .wa-nota{margin:0}
.ficha-v2 .acc-sec{margin:8px 0 0}
.wa-previa{font-size:.9rem;line-height:1.45;padding:10px 12px;border-radius:12px;background:var(--suave);margin:8px 0 0}
/* WhatsApp: verde, aparte; pendiente: punteado y sin enlace */
.wa-b.nav{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 16px;border-radius:999px;border:1px solid #25D366;background:#25D366;color:#0b1f14;font-size:.9rem;font-weight:600;text-decoration:none;white-space:nowrap}
.wa-b.nav:hover{background:#34e07a;border-color:#34e07a}
.wa-b.nav svg.wa{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9}
.wa-b.nav.wa-pend{background:none;border:1px dashed rgba(250,249,245,.5);color:inherit;font-weight:500;opacity:.85;cursor:default}
/* entorno */
.lugares-v2{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.lugar-v2{display:grid;grid-template-columns:84px 1fr;gap:10px 12px;align-items:center;padding:8px;border-radius:14px;background:var(--suave);border:1px solid transparent}
.lugar-v2 .mini{width:84px;height:56px;object-fit:cover;border-radius:10px;background:rgba(250,249,245,.08);display:grid;place-items:center}
.lugar-v2 .mini .ico{width:22px;height:22px;opacity:.6}
.lugar-v2 h4{margin:0 0 2px;font:400 1.05rem var(--tit)}
.lugar-v2 p{margin:0;font-size:.8rem;opacity:.78;line-height:1.35}
.lugar-v2 .acc{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lugar-v2 .acc .b{min-height:40px;padding:0 14px;font-size:.875rem}
.lugar-v2.pend{opacity:.72;border-style:dashed;border-color:var(--linea)}
.lugar-v2.aqui{border-color:var(--senal)}
.lugar-v2 .et-pend,.lugar-v2 .et-aqui{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:6px;border:1px solid var(--linea)}
.lugar-v2 .et-aqui{border-color:var(--senal);color:var(--senal)}
/* teléfono */
.inferior{display:none}
@media (pointer:coarse){ .filtro-v2{min-height:44px} .wa-b.nav{min-height:48px} }
@media (max-width:700px){
  body.nav-lotes{--nav-inf:64px}
  body.nav-lotes .navbar{grid-template-columns:auto 1fr auto;padding:0 6px 0 4px}
  body.nav-lotes .navbar .nb-centro,body.nav-lotes .navbar .nb-contacto,body.nav-lotes .navbar .nb-idioma{display:none!important}
  body.nav-lotes .navbar .nb-mas span{display:none}
  body.nav-lotes .navbar .nb-mas{min-width:44px;justify-content:center;padding:0 10px}
  body.nav-lotes .marca{top:calc(var(--nav-sup) + 10px);left:16px;max-width:calc(100vw - 150px)}
  body.nav-lotes .espacial{top:calc(var(--nav-sup) + 10px)}
  body.nav-lotes .inferior{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:33;box-sizing:border-box;height:calc(var(--nav-inf) + env(safe-area-inset-bottom));padding:6px 10px calc(6px + env(safe-area-inset-bottom));
    align-items:center;gap:6px;background:rgba(var(--papel-rgb),.94);border-top:1px solid var(--borde);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  .inferior .tabs-inf{display:flex;flex:1 1 auto;gap:4px;min-width:0}
  .inferior .nb{flex:1 1 0;flex-direction:column;gap:3px;min-height:52px;padding:4px 2px;font-size:.69rem;border-radius:14px;line-height:1.1;min-width:0;text-align:center;white-space:normal}
  .inferior .div{width:1px;align-self:stretch;margin:4px 6px;background:var(--linea);flex:none}
  .inferior .wa-b.nav{flex:0 0 auto;flex-direction:column;gap:2px;min-width:64px;min-height:52px;padding:4px 10px;border-radius:14px;font-size:.66rem}
  .inferior .wa-b.nav svg.wa{width:22px;height:22px}
  body.nav-lotes #panel{top:auto;left:0;right:0;bottom:calc(var(--nav-inf) + env(safe-area-inset-bottom));padding-bottom:0}
  body.nav-lotes #panel.expandido{height:calc(100% - var(--nav-sup) - var(--nav-inf) - 8px - env(safe-area-inset-bottom))}
  body.nav-lotes #panel.plegado{bottom:calc(var(--nav-inf) + env(safe-area-inset-bottom))}
  body.nav-lotes #panel.compacta:not(.plegado):not(.expandido){max-height:min(calc(100% - var(--nav-sup) - var(--nav-inf) - 8px), calc(100% - var(--marca-abajo, 0px) - var(--nav-inf) - 8px), max(min(62vh,560px), 22rem))}
  body.nav-lotes #panel .expandir{display:inline-flex;align-items:center}
  /* con «Expandir» la cabecera no cabe en una fila: los controles arriba y el título en su propia línea (como con texto grande) */
  body.nav-lotes #panel .cab{flex-wrap:wrap;justify-content:flex-end;row-gap:2px;padding-top:4px;padding-bottom:6px}
  body.nav-lotes #panel .cab .volver{margin-right:auto}
  body.nav-lotes #panel .cab h2{order:9;flex:1 0 100%;min-width:0;margin:0 0 0 4px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.15}
  body.nav-lotes #panel .expandir[hidden]{display:none}
  body.nav-lotes #guia,body.nav-lotes #eleccion,body.nav-lotes .estado-vis,body.nav-lotes .estado-vis.activa{bottom:calc(var(--nav-inf) + 20px + env(safe-area-inset-bottom))}
  body.nav-lotes #carga,body.nav-lotes .caja-fallo{top:auto;bottom:calc(var(--nav-inf) + 28px + env(safe-area-inset-bottom))}   /* 1C: con top y bottom a la vez la tarjeta se estiraba de arriba abajo en el teléfono */
  body.nav-lotes.panel-plegado #guia{bottom:calc(var(--nav-inf) + 76px + env(safe-area-inset-bottom))}
  body.nav-lotes #rev{top:auto;bottom:calc(var(--nav-inf) + env(safe-area-inset-bottom))}
  .lugar-v2{grid-template-columns:72px 1fr}
  .lugar-v2 .mini{width:72px;height:48px}
}
@media (max-width:700px) and (max-height:500px){
  body.nav-lotes{--nav-inf:52px}
  .inferior .nb{min-height:40px;flex-direction:row;gap:6px}
  .inferior .wa-b.nav{min-height:40px;flex-direction:row}
}
.ficha-v2 .sel-lote{margin:12px 0 4px}
.ficha-v2 .nota-guardar{font-size:.8rem;opacity:.78;margin:6px 0 0;line-height:1.4}
.ficha-v2 .acc-sec{justify-content:flex-start}

/* ── v1.17 (1B) · visita al lote: barra interior, selector de vistas y fila activa ── */
.lista .fila.activa{border-color:var(--senal);background:rgba(var(--senal-rgb),.1)}
.interior{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:31;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:6px;border-radius:999px;background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.interior .b{min-height:40px;padding:0 14px;font-size:.84rem;white-space:nowrap}
.interior .int-id{display:flex;flex-direction:column;padding:0 6px;line-height:1.15;white-space:nowrap}
.interior .int-id b{font:400 1rem var(--tit)}
.interior .int-id span{font-size:.72rem;opacity:.8}
/* 1C: recurso de imagen provisional (solo en vista previa) */
.interior .prov,.vistas-lote .prov{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;background:#e9c84a;color:#3d3000;font-size:.62rem;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle;opacity:1}
.interior .wa-b.nav{min-height:40px;padding:0 14px;font-size:.84rem}
.sel-vistas{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:rgba(250,249,245,.08);border:1px solid var(--linea)}
.sel-vistas button{min-height:36px;min-width:64px;padding:0 14px;border:0;border-radius:999px;background:none;font-size:.84rem;font-weight:500;color:inherit}
.sel-vistas button:hover{background:rgba(250,249,245,.12)}
.sel-vistas button[aria-pressed=true]{background:var(--senal);color:var(--tinta)}
.sel-vistas button[aria-busy=true]{opacity:.7;outline:1px dashed var(--senal);outline-offset:-2px}
.vistas-lote.dentro{border-style:solid;border-color:var(--senal)}
.vistas-lote.dentro .estas{margin:0 0 10px;display:flex;flex-direction:column;gap:2px}
.vistas-lote.dentro .estas b{font-weight:500}
.vistas-lote.dentro .estas span{font-size:.84rem;opacity:.85}
.vistas-lote.dentro .sel-vistas{margin:0 0 10px}
@media (min-width:701px){
  body.nav-lotes.con-panel .interior{left:calc(50% + var(--ancho-panel) / 2)}
}
@media (max-width:700px){
  /* 1C: dos filas fijas en el teléfono. Fila 1: identificación (lote · perspectiva · aviso provisional) y «Ver ficha»; fila 2:
     «‹ El conjunto» y el selector. Antes, a 360 px la barra crecía a tres filas (153 px) y en inglés también a 390 px. */
  body.nav-lotes .interior{left:10px;right:10px;transform:none;bottom:calc(var(--nav-inf) + 8px + env(safe-area-inset-bottom));max-width:none;border-radius:18px;flex-wrap:wrap;justify-content:space-between;gap:6px 8px;padding:6px 8px}
  body.nav-lotes.guia-visible:not(.guia-min) .interior{display:none}   /* dev.30 (TJ-01): con la guía desplegada manda su acción; la barra interior tapaba el botón de avance */
  body.nav-lotes .interior .int-id{order:-3;flex:1 1 0;min-width:0;padding:2px 4px 0}
  body.nav-lotes .interior .int-id span{white-space:normal}      /* si no cabe, el aviso provisional baja de línea dentro de la identificación */
  body.nav-lotes .interior .int-ficha{order:-2;flex:0 0 auto}
  body.nav-lotes .interior::after{content:"";order:-1;flex-basis:100%;height:0}   /* salto de fila entre identificación y controles */
  body.nav-lotes .interior .int-volver{order:0;flex:1 1 auto}
  body.nav-lotes .interior .sel-vistas{order:1;flex:0 0 auto}
  body.nav-lotes .interior .b{padding:0 12px}
  body.nav-lotes .interior .wa-b.nav{display:none}          /* en el teléfono el WhatsApp ya está en la navegación inferior */
  body.nav-lotes.con-panel:not(.panel-plegado) .interior{display:none}   /* con la hoja abierta, el selector va dentro de la ficha */
  /* 1C: dentro del lote, la pestaña de la hoja plegada («Lote 11 · Ver ficha · ✕») repetía lo que ya dice la barra interior y
     tapaba 93 px más de panorama; la barra es la única pestaña y «Ver ficha» la despliega. */
  body.nav-lotes.en-lote.panel-plegado #panel.plegado{display:none}
  .sel-vistas button{min-height:40px;min-width:56px;padding:0 12px}
}
@media (max-width:700px) and (max-height:500px){
  body.nav-lotes .interior{flex-wrap:nowrap;padding:4px 6px}
  body.nav-lotes .interior .int-id{order:0;flex:0 1 auto;padding:0 4px}
  body.nav-lotes .interior .int-id span{display:none}
  body.nav-lotes .interior::after{display:none}
  body.nav-lotes .interior .int-ficha{order:2}
}
/* 1C: teléfono apaisado (ancho de escritorio, poca altura): con la ficha abierta la barra interior tapaba el pie de la ficha; la ficha
   ya trae el selector, «Volver al conjunto» y la consulta, así que la barra se retira mientras la ficha está desplegada. */
@media (min-width:701px) and (max-height:500px){
  body.nav-lotes.con-panel:not(.panel-plegado) .interior{display:none}
}
/* 2B: con puntero táctil, todos los controles de la navegación por lotes miden 44 px o más (especificación §10.3: 44–48 px),
   en cualquier ancho (teléfono, tableta y apaisado). Solo con `navegacion: "lotes"`; la v1 no cambia. */
@media (pointer:coarse){
  body.nav-lotes .interior .b,body.nav-lotes .interior .wa-b.nav,body.nav-lotes .sel-vistas button,body.nav-lotes #panel .plegar,body.nav-lotes #panel .expandir,
  body.nav-lotes .lugar-v2 .b,body.nav-lotes #menu-mas button,body.nav-lotes #panel .vistas-lote .b,body.nav-lotes .filtro-v2{min-height:44px}
  body.nav-lotes #navbar .selector-idioma button,body.nav-lotes #menu-mas .selector-idioma button{min-height:44px;min-width:44px}
  body.nav-lotes #panel .cab button{min-height:44px;min-width:44px}
  body.nav-lotes .leyenda-limite{min-height:44px;align-items:center}
  body.nav-lotes .leyenda-limite i{margin-top:0}
  body.nav-lotes #u-trazo{min-height:44px;display:inline-flex;align-items:center}
  body.nav-lotes #panel .cab .volver,body.nav-lotes #panel .cab #panel-atras{min-width:44px;min-height:44px}
}
/* 2B: con una sola vista disponible, el selector se sustituye por su etiqueta (especificación §9) */
.sel-vistas.unica{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;background:rgba(250,249,245,.08);border:1px solid var(--linea);font-size:.84rem;opacity:.9;white-space:nowrap}
@media (max-width:700px){
  /* 2B: con la hoja expandida, el bloque de marca (nombre de la vista) quedaba debajo de la hoja */
  body.nav-lotes.con-panel:has(#panel.expandido) .marca{visibility:hidden}
}
/* v1.17 (1B) · en escritorio el panel también se contrae (queda la cabecera arriba a la izquierda): «Ver terreno» / «Ver ficha» */
@media (min-width:701px){
  body.nav-lotes #panel .plegar{display:inline-flex;align-items:center}
  body.nav-lotes #panel.plegado{bottom:auto;height:auto}
}

/* ── dev.38 (12 oct 2026) · QA del bloque 5: paneles, controles y barras como conjunto ─────────────────────────────────────
   TJ-17: en el teléfono el panel (lista, Proyecto, Entorno) se mide entre las dos barras, nunca bajo la superior.
   TJ-18: en pantallas bajas (teléfono horizontal) el cuerpo del panel se desplaza y el pie (Ubicar, consulta) queda fijo.
   TJ-22: con texto grande los nombres de los controles no se presentan sobre el nombre de la vista; las barras acotan su
   tipografía en píxeles para que «Más» y las pestañas inferiores sigan dentro y separadas.
   TJ-23: el aviso va abajo (sobre la hoja) y no sobre el nombre de la vista. TJ-21: chip «Imagen provisional» en la cabecera. */
@media (max-width:700px){
  body.nav-lotes #panel:not(.compacta):not(.expandido):not(.plegado){top:auto;height:auto;max-height:calc(100% - var(--nav-sup) - var(--nav-inf) - 8px - env(safe-area-inset-bottom))}
  body.nav-lotes #aviso{top:auto;bottom:calc(var(--nav-inf) + 112px + env(safe-area-inset-bottom))}
  body.letra-grande .espacial.rotular button > span{display:none!important}
  .inferior .nb{font-size:clamp(11px,.69rem,13px)}
  .inferior .wa-b.nav{font-size:clamp(10px,.66rem,12px)}
  .mapa{height:min(72vw,320px)}
}
@media (max-height:500px){
  body.nav-lotes #panel{overflow:clip!important}
  body.nav-lotes #panel .cuerpo{flex:1 1 auto!important;min-height:0!important;overflow:auto!important}
  body.nav-lotes #panel .pie{flex:none}
  body.letra-grande .espacial.rotular button > span{display:none!important}
}
body.nav-lotes.jer-compacta #aviso{pointer-events:none}
@media (min-width:701px){ body.nav-lotes #aviso{top:auto;bottom:28px} }
.navbar .nb-centro{min-width:0;overflow:hidden}
.navbar .nb-derecha,.navbar .nb-mas,.navbar .nb-logo{flex:none}
.navbar .nb{font-size:clamp(12px,.875rem,15px)}
.marca .prov{display:inline-block;margin-left:8px;padding:1px 6px;border-radius:4px;background:#e9c84a;color:#3d3000;font-size:.62rem;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle;font-family:inherit}
/* ── dev.41 · criterios de interfaz (13 oct 2026) ── */
/* Recorrido guiado sin navegación ajena: mientras corre (no en pausa) quedan la marca, el nombre de la vista y la tarjeta
   con Anterior, Continuar y «Explorar por mi cuenta». La barra queda solo con el logo, sin fondo; la navegación inferior y
   los controles de la vista se ocultan. Vuelven al pausar, salir o terminar (guia.js → enCurso). */
body.nav-lotes.guia-en-curso #navbar .nb-centro,body.nav-lotes.guia-en-curso #navbar .nb-derecha,body.nav-lotes.guia-en-curso #nav-inferior,
body.nav-lotes.guia-en-curso #menu-mas,body.nav-lotes.guia-en-curso .espacial,
body.nav-lotes.guia-en-curso #capas-panel,body.nav-lotes.guia-en-curso .leyenda-capas{display:none!important}
body.nav-lotes.guia-en-curso #navbar{background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}
body.nav-lotes.guia-en-curso #navbar .nb-logo img{filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}
/* La tarjeta toma los márgenes de la barra (24 px en escritorio; 10 px y zona segura en el teléfono, cuando la navegación
   inferior se oculta) y tiene un solo fondo: la fila fija de botones ya no lleva otro color ni sombra detrás. */
@media (min-width:701px){ body.nav-lotes #guia{bottom:24px} }
@media (max-width:700px){ body.nav-lotes.guia-en-curso #guia{bottom:calc(10px + env(safe-area-inset-bottom))} }
#guia.limitada .fila,body.jer-compacta #guia .fila{background:none;box-shadow:none}
#guia.desborda .fila,body.jer-compacta #guia.desborda .fila{background:inherit}
/* el sello de la vista previa (solo revisión) iba sobre la navegación inferior: mientras corre el recorrido, que ocupa ese
   lugar en el teléfono, no se muestra */
@media (max-width:700px){ body.nav-lotes.guia-en-curso #rev{display:none} }
/* «Explorar por mi cuenta» es siempre texto al final de la fila: el número de etapa vuelve junto a «Minimizar». */
body.jer-compacta #guia .n{right:50px}
@media (pointer:coarse){ body.jer-compacta #guia .n{right:56px} }
#guia .fila .salir{margin-left:auto;min-height:44px}
/* «Capas del plano» nace junto a su botón, bajo la barra: no tapa la barra ni WhatsApp (capas.js coloca top y right). */
@media (min-width:701px){ body.nav-lotes #capas-panel{top:calc(var(--nav-sup) + 12px)} }
/* Ficha de un lugar (con referencias_inicio): Google Maps como enlaces de texto bajo las acciones */
#panel-pie .enlaces-maps{flex:1 0 100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 10px;margin:0}
#panel-pie .enlaces-maps .nota{flex:1 0 100%;text-align:center;font-size:var(--t-meta, .75rem);opacity:.75}
/* Ficha y lista según los criterios de interfaz (opcional por caso: experiencia.ficha → body.ficha-entrega) */
body.ficha-entrega .vg-cifra span{font-size:.9375rem;opacity:.92}
.rasgos-lote.con-ico{list-style:none;padding-left:0;display:grid;gap:10px;margin:12px 0 8px}
.rasgos-lote.con-ico li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;margin:0}
.rasgos-lote.con-ico svg.ico{width:20px;height:20px;margin-top:1px;opacity:.9}
.rasgos-lote.con-ico .ico.vacio{display:block;width:6px;height:6px;margin:7px 0 0 7px;border-radius:50%;background:currentColor;opacity:.6}
.rasgos-lote.con-ico b{display:block;font-weight:500;font-size:.9rem;line-height:1.35}
.rasgos-lote.con-ico small{display:block;font-size:var(--t-meta,.75rem);line-height:1.35;margin-top:2px;opacity:.72}
.ficha-v2 .fuente-precio{margin:-6px 0 12px}
.ficha-v2 .aviso-ficha{margin:14px 0 0}
.wa-b.nav.wa-sec{background:transparent;color:inherit;border-color:rgba(37,211,102,.75);font-weight:500}
.wa-b.nav.wa-sec svg.wa{color:#25D366}
.wa-b.nav.wa-sec:hover{background:rgba(37,211,102,.12);border-color:#25D366}
body.ficha-entrega .lista-formas .fila.fila-forma{min-height:78px}
/* Logo: el mismo tamaño y el mismo borde izquierdo en la portada y en la barra, alineado con el nombre de la vista
   (24 px en escritorio, 16 en el teléfono); al entrar no salta */
body.nav-lotes .navbar .nb-logo img{height:36px}
body.nav-lotes .navbar{padding-left:16px}
body.nav-lotes #portada .identidad{top:10px;left:24px}
body.nav-lotes #portada .logo{height:36px}
body.nav-lotes #portada .discreto{top:6px;right:24px}
@media (max-width:700px){
  body.nav-lotes .navbar{padding-left:8px}
  body.nav-lotes #portada .identidad{left:16px}
  body.nav-lotes #portada .discreto{right:16px}
}
/* dev.44 · Crédito de la portada: píldora chica y translúcida con el isotipo del autor, abajo a la derecha
   en escritorio y bajo el logo en el teléfono (credito_revision.icono; sin ícono, la píldora de texto de dev.41) */
body.nav-lotes #portada .credito-revision{text-shadow:none}
body.nav-lotes #portada .credito-revision:not(.pildora){padding:5px 12px;border-radius:999px;background:rgba(15,17,16,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-size:.7rem}
body.nav-lotes #portada .credito-revision a{text-decoration:none}
#portada .credito-revision.pildora{letter-spacing:0}
#portada .credito-revision.pildora a{display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;height:30px;margin:0;padding:0 12px 0 6px;border-radius:999px;
  border:1px solid rgba(250,249,245,.22);background:rgba(20,23,15,.42);color:rgba(250,249,245,.88);font-size:.72rem;line-height:1.2;text-decoration:none;text-shadow:none;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
#portada .credito-revision.pildora a:hover{background:rgba(20,23,15,.6);color:#FAF9F5}
#portada .credito-revision.pildora a:focus-visible{outline:2px solid var(--base);outline-offset:3px}
#portada .credito-revision.pildora .firma-ico{width:18px;height:18px;flex:none;display:block;opacity:.9}
@media (pointer:coarse){ #portada .credito-revision.pildora a{height:32px} }
@media (min-width:701px){ body.nav-lotes #portada .credito-revision{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:2} }
@media (max-width:700px){ body.nav-lotes #portada .identidad{gap:12px} }
/* dev.44 · íconos en los botones de la portada (portada.iconos) */
#portada .acciones .btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round;margin-right:8px;vertical-align:-3px}
#portada .acciones .btn.primario svg path{fill:currentColor;stroke:none}
/* pantallas bajas (teléfono horizontal): el nombre de la vista va a 12 px; el logo, al mismo borde */
@media (max-height:500px){
  body.nav-lotes .navbar{padding-left:4px}
  body.nav-lotes #portada .identidad{left:12px}
}
/* Avisos estándar (13 oct 2026): el texto, la procedencia del caso si la hay y, debajo, «Condiciones de servicio» en otra pestaña */
.aviso-txt,.aviso-fuente{display:block}
.aviso-fuente{margin-top:.35em;opacity:.85}
a.aviso-cond{display:inline-flex;align-items:center;min-height:24px;margin-top:.3em;color:inherit;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
a.aviso-cond>span[aria-hidden]{margin-left:.25em}
a.aviso-cond>span[aria-hidden]{margin-left:.25em}
.aviso-info{margin-top:18px}
/* ── dev.48 · Explorar con la navegación por lotes (experiencia.explorar → body.explorar-v2) ── */
body.explorar-v2 .espacial{display:none!important}                 /* sus botones siguen en el DOM: Explorar los acciona */
#explorar-b{position:fixed;z-index:33;top:calc(var(--nav-sup) + 12px);right:max(24px,env(safe-area-inset-right));display:flex;align-items:center;gap:10px;min-height:48px;
  padding:6px 12px 6px 12px;border-radius:14px;border:1px solid var(--borde);background:rgba(var(--papel-rgb),.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:inherit;text-align:left}
#explorar-b .t{display:flex;flex-direction:column;line-height:1.2}
#explorar-b .t b{font-weight:600;font-size:.875rem}
#explorar-b .t small{font-size:.72rem;opacity:.8}
#explorar-b svg.ico{width:18px;height:18px}
#explorar-b .flecha{transition:transform var(--t-hover)}
#explorar-b[aria-expanded=true] .flecha{transform:rotate(180deg)}
#explorar-b:hover{background:rgba(var(--papel-rgb),.94)}
#explorar{position:fixed;z-index:33;top:calc(var(--nav-sup) + 12px + 56px);right:max(24px,env(safe-area-inset-right));width:368px;max-height:calc(100vh - var(--nav-sup) - 92px);overflow:auto;
  padding:14px;border-radius:var(--r);background:var(--velo);border:1px solid var(--borde);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;flex-direction:column;gap:12px}
#explorar .ex-cab{display:flex;align-items:center;justify-content:space-between;gap:8px}
#explorar .ex-cab h2{margin:0;font-family:var(--tit);font-weight:400;font-size:1.375rem}
#explorar .ico-b{min-width:44px;min-height:44px;padding:0;display:grid;place-items:center}
#explorar .ex-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:999px;background:rgba(250,249,245,.08)}
#explorar .ex-tabs button{min-height:40px;border:0;border-radius:999px;background:none;color:inherit;font-size:.875rem}
#explorar .ex-tabs button[aria-selected=true]{background:var(--base, #FAF9F5);color:var(--tinta, #14170F)}
#explorar .ex-vistas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
#explorar .ex-vista{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px;border:0;border-radius:12px;background:none;color:inherit;text-align:left;font-size:.9rem}
#explorar .ex-vista small{font-family:var(--dato);font-size:.72rem;opacity:.75;white-space:nowrap}
#explorar .ex-vista:hover{background:rgba(250,249,245,.08)}
#explorar .ex-vista.aqui{background:rgba(var(--senal-rgb, 168,181,162),.22)}
#explorar .ex-grupo{display:flex;flex-direction:column;gap:2px}
#explorar .ex-grupo h3{margin:4px 2px 4px;font-size:.69rem;letter-spacing:.2em;text-transform:uppercase;opacity:.7;font-weight:500}
#explorar .ex-fila{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 6px;border-radius:10px;cursor:pointer;font-size:.875rem}
#explorar .ex-fila input{width:18px;height:18px;accent-color:var(--senal)}
#explorar .capas-nota{margin:4px 2px 0;font-size:.72rem;line-height:1.4;opacity:.75}
#explorar .ex-grupo .b.txt{align-self:flex-start;font-size:.84rem}
#explorar .ex-pie{display:flex;gap:6px;padding-top:10px;border-top:1px solid var(--linea)}
#explorar .ex-pie .b{min-height:44px;display:flex;align-items:center;gap:8px}
#explorar .ex-pie .b:first-child{flex:1;justify-content:center}
#explorar .ex-pie .zoom{font-size:1.2rem}
body.guia-en-curso #explorar-b,body.guia-en-curso #explorar{display:none!important}
body.nav-lotes.guia-en-curso #navbar .nb-mas{display:none!important}     /* «Más» tampoco durante el recorrido (quedaba fuera del grupo de la derecha) */
#explorar .ex-pie .b:first-child{white-space:nowrap;padding:0 12px}
body.con-reproductor #explorar-b,body.con-reproductor #explorar{display:none!important}
/* «▶ Recorrido» en la barra (escritorio); en el teléfono, el botón bajo el nombre de la vista */
.navbar .nb .ico.play{width:12px;height:12px;fill:currentColor;stroke:none}
@media (max-width:700px){
  #explorar-b{top:calc(var(--nav-sup) + 10px);right:max(16px,env(safe-area-inset-right));min-height:44px;padding:4px 10px}
  #explorar-b .t small{display:none}
  #explorar{left:10px;right:10px;width:auto;top:calc(var(--nav-sup) + 62px);max-height:calc(100vh - var(--nav-sup) - var(--nav-inf) - 84px - env(safe-area-inset-bottom))}
  #explorar .ex-pie .zoom{display:none}
  body.nav-lotes.explorar-v2 #b-guia:not([hidden]){display:flex!important}
}
@media (max-height:500px){ #explorar-b .t small{display:none} #explorar{max-height:calc(100vh - var(--nav-sup) - 80px)} }
body.explorar-v2 #b-guia{white-space:nowrap}
