/* ===== Linehouse · Disponibilidad esquemática =====
   Todo el CSS está acotado con el prefijo lh-. No toca header, footer ni otras secciones. */
.lh-disp{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.3}
.lh-disp h2,.lh-lb h3{font-family:var(--font);color:var(--ink);padding:0;text-shadow:none}
.lh-disp p,.lh-disp ul,.lh-lb ul{margin-bottom:0}
.lh-disp button,.lh-lb button,.lh-lb a.lh-cta{font-family:var(--font)}
.lh-lb a.lh-cta{color:var(--ink);text-decoration:none}
.lh-lb{z-index:100000}
.lh-tip{z-index:100001}

.lh-disp,.lh-lb,.lh-tip{
  --gray:#9A9B9D; --yellow:#F4C430; --ink:#26272a; --bg:#f3f3f1; --line:#dcdcd8;
  --font:'Roboto Condensed','Arial Narrow',Arial,sans-serif;
}
.lh-disp *,.lh-lb *{box-sizing:border-box}
.lh-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:32px;align-items:start}

/* Esquema */
.lh-stage{position:relative;background:#fff;border:1px solid var(--line);padding:14px 8px 10px}
.lh-stage svg{display:block;width:100%;height:min(86vh,880px)}
.lh-bld path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:butt}
.lh-bld .lh-k{stroke:#2b2c2f}.lh-bld .lh-g{stroke:#9A9B9D}
.lh-bld .lh-h{stroke-width:1.5px}.lh-bld .lh-m{stroke-width:1px}.lh-bld .lh-l{stroke-width:.6px}
.lh-bld text{font-family:var(--font);font-weight:700;fill:#9A9B9D;text-anchor:end}
.lh-zone{cursor:pointer;outline:none;transition:fill-opacity .15s;vector-effect:non-scaling-stroke;stroke-width:1.5px;stroke-linejoin:round}
.lh-zone.lh-ok{fill:#F4C430;fill-opacity:.30;stroke:#F4C430}
.lh-zone.lh-res{fill:#9A9B9D;fill-opacity:.20;stroke:#9A9B9D;stroke-dasharray:5 4}
.lh-zone.lh-sold{fill:#26272a;fill-opacity:.38;stroke:#26272a;stroke-opacity:0}
.lh-zone.lh-hot.lh-ok,.lh-zone:focus-visible.lh-ok{fill-opacity:.7}
.lh-zone.lh-hot.lh-res,.lh-zone:focus-visible.lh-res{fill-opacity:.5}
.lh-zone.lh-hot.lh-sold,.lh-zone:focus-visible.lh-sold{fill-opacity:.62}
.lh-zone:focus-visible{stroke-width:3px;stroke-opacity:1;stroke:#26272a}
.lh-hint{position:absolute;left:12px;top:12px;line-height:1;background:rgba(38,39,42,.9);color:#fff;font-size:13px;padding:8px 11px;letter-spacing:.04em;pointer-events:none;display:flex;gap:8px;align-items:center}
.lh-hint i{width:8px;height:8px;border-radius:50%;background:var(--yellow);animation:lh-pulse 1.6s infinite}
@keyframes lh-pulse{0%{box-shadow:0 0 0 0 rgba(244,196,48,.7)}100%{box-shadow:0 0 0 10px rgba(244,196,48,0)}}
.lh-tip{position:fixed;pointer-events:none;background:var(--ink);color:#fff;padding:8px 12px;font-size:15px;line-height:1.2;transform:translate(14px,14px);opacity:0;transition:opacity .12s;white-space:nowrap}
.lh-tip b{font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.lh-tip.lh-on{opacity:1}

/* Panel */
.lh-panel h2{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;margin:0 0 12px;color:var(--gray)}
.lh-legend{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 18px;font-size:15px}
.lh-legend span{display:flex;align-items:center;gap:8px}
.lh-sw{width:14px;height:14px;display:inline-block;border:2px solid}
.lh-sw.lh-ok{background:var(--yellow);border-color:var(--yellow)}
.lh-sw.lh-res{background:transparent;border:2px dashed var(--gray)}
.lh-sw.lh-sold{background:var(--ink);border-color:var(--ink)}
.lh-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.lh-list li{list-style:none;margin:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:96px 1fr;align-items:center;gap:8px;padding:8px 10px}
.lh-list li.lh-hot{background:#faf6e6}
.lh-list .lh-n{font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:17px}
.lh-chips{display:flex;flex-wrap:wrap;gap:6px}
.lh-uc{all:unset;box-sizing:border-box;cursor:pointer;font-family:var(--font);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:6px 11px;min-width:44px;text-align:center}
.lh-uc small{font-weight:400;letter-spacing:.04em;margin-left:6px;opacity:.85}
.lh-uc.lh-ok{background:var(--yellow);color:var(--ink)}
.lh-uc.lh-res{background:#e7e7e8;color:#55565a;outline:1px dashed var(--gray);outline-offset:-1px}
.lh-uc.lh-sold{background:var(--ink);color:#fff}
.lh-uc:hover{filter:brightness(.94)}
.lh-uc:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.lh-uc.lh-hot{box-shadow:0 0 0 2px var(--ink)}
.lh-note{margin-top:20px;font-size:14px;font-weight:300;color:#6a6b6f;line-height:1.45}

/* Lightbox */
.lh-lb{position:fixed;inset:0;background:rgba(20,20,22,.86);display:none;align-items:center;justify-content:center;padding:20px}
.lh-lb.lh-open{display:flex;animation:lh-fade .18s}
@keyframes lh-fade{from{opacity:0}to{opacity:1}}
.lh-dlg{background:#fff;width:min(1100px,100%);height:min(720px,100%);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);position:relative;box-shadow:0 30px 80px rgba(0,0,0,.45);animation:lh-rise .22s}
@keyframes lh-rise{from{transform:translateY(14px);opacity:.4}to{transform:none;opacity:1}}
.lh-plan{position:relative;background:var(--bg);overflow:hidden;touch-action:none;cursor:grab;min-height:0}
.lh-plan.lh-drag{cursor:grabbing}
.lh-plan .lh-tag{position:absolute;left:0;top:0;z-index:2;background:var(--ink);color:#fff;font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:9px 14px}
.lh-plan .lh-tag b{color:var(--yellow)}
.lh-plan .lh-pic{position:absolute;inset:44px 24px 64px 24px;display:flex;align-items:center;justify-content:center}
.lh-plan img{max-width:100%;max-height:100%;mix-blend-mode:multiply;transform-origin:center;user-select:none;-webkit-user-drag:none;transition:transform .12s}
.lh-zoom{position:absolute;left:14px;bottom:14px;display:flex;gap:8px;z-index:2}
.lh-zoom button{all:unset;width:40px;height:40px;background:var(--ink);color:#fff;display:grid;place-items:center;cursor:pointer;font-size:22px;font-weight:300}
.lh-zoom button:hover{background:#000;color:var(--yellow)}
.lh-zoom button:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.lh-fi{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--line)}
.lh-fi header{padding:20px 22px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}
.lh-fi h3{margin:0;font-size:32px;line-height:1;text-transform:uppercase;font-weight:700}
.lh-fi .lh-dev{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);margin-bottom:6px}
.lh-close{all:unset;cursor:pointer;width:38px;height:38px;display:grid;place-items:center;font-size:26px;line-height:1;background:var(--ink);color:#fff;flex:none}
.lh-close:hover{color:var(--yellow)}
.lh-close:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.lh-fi .lh-body{padding:6px 22px 14px;overflow:auto;flex:1}
.lh-stat{margin:12px 0 4px}
.lh-pill{font-size:12px;text-transform:uppercase;letter-spacing:.1em;padding:4px 9px;font-weight:700;white-space:nowrap;display:inline-block}
.lh-pill.lh-ok{background:var(--yellow);color:var(--ink)}
.lh-pill.lh-res{background:#e7e7e8;color:#55565a}
.lh-pill.lh-sold{background:var(--ink);color:#fff}
.lh-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:17px}
.lh-row span:first-child{font-weight:300;color:#55565a}
.lh-row span:last-child{font-weight:700}
.lh-row.lh-total{border-bottom:2px solid var(--yellow)}
.lh-feat{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px;padding:0}
.lh-feat li{list-style:none;font-size:14px;border:1px solid var(--line);padding:6px 10px;letter-spacing:.02em}
.lh-ex{font-size:12px;color:#8a8b8f;margin-top:10px}
.lh-fi footer{padding:14px 22px 18px;border-top:1px solid var(--line);display:grid;gap:10px}
.lh-cta{display:block;text-align:center;background:var(--yellow);color:var(--ink);font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:14px;text-decoration:none;font-size:16px}
.lh-cta:hover{background:#ffd24f}
.lh-cta.lh-off{background:#e7e7e8;color:#77787c;pointer-events:none}
.lh-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lh-nav button{all:unset;text-align:center;border:1px solid var(--ink);padding:10px;cursor:pointer;font-size:14px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.lh-nav button:hover{background:var(--ink);color:#fff}
.lh-nav button:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.lh-nav button[disabled]{opacity:.3;pointer-events:none}

@media (max-width:900px){
  .lh-layout{grid-template-columns:1fr}
  .lh-stage svg{height:min(78vh,760px)}
  .lh-list{max-height:none}
  .lh-dlg{grid-template-columns:1fr;grid-template-rows:minmax(0,.9fr) minmax(0,1.1fr);height:100%}
  .lh-fi{border-left:0;border-top:1px solid var(--line)}
  .lh-fi h3{font-size:26px}
}
@media (max-width:520px){.lh-lb{padding:0}}
@media (prefers-reduced-motion:reduce){.lh-disp *,.lh-lb *{animation:none!important;transition:none!important}}

/* zonas informativas (PB, amenities) y notas */
.lh-zone.lh-info{fill:#9A9B9D;fill-opacity:.10;stroke:#9A9B9D;stroke-dasharray:2 4;cursor:default}
.lh-zone.lh-info:hover{fill-opacity:.2}
.lh-list li.lh-sub{display:block;line-height:1.3;font-weight:300;font-size:15px;color:#55565a;padding:8px 10px}
.lh-list li.lh-sub b{font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-right:6px;color:var(--ink)}
/* blindaje contra estilos globales de Salient */
.lh-lb,.lh-tip{font-family:var(--font);color:var(--ink);line-height:1.3}
.lh-disp h2{font-size:15px;line-height:1.2;font-weight:700;text-transform:uppercase;letter-spacing:.14em;margin:0 0 12px;color:var(--gray)}
.lh-lb h3{font-size:32px;line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:0;margin:0;color:var(--ink)}
@media (max-width:900px){.lh-lb h3{font-size:26px}}
.lh-lb ul,.lh-disp ul{margin-left:0;padding-left:0}
.lh-lb img{margin:0;max-width:100%;box-shadow:none;border-radius:0}
.lh-lb .lh-feat{padding:0}
.lh-disp svg,.lh-lb svg{max-width:none}
.lh-disp .lh-upd{margin:14px 0 0;font-size:14px;font-weight:300;color:#6a6b6f}

/* formulario de consulta dentro del lightbox */
.lh-form{display:flex;flex-direction:column;gap:14px;padding:18px 22px;overflow:auto;flex:1;min-height:0}
.lh-form[hidden],.lh-body[hidden]{display:none}
.lh-back{all:unset;cursor:pointer;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#55565a}
.lh-back:hover{color:var(--ink)}.lh-back:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.lh-form-title{font-size:22px;font-weight:700;text-transform:uppercase;line-height:1.1}
.lh-form label{display:grid;gap:6px;font-size:14px;font-weight:700;letter-spacing:.02em}
.lh-form input{width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);font:400 16px/1.3 var(--font);box-shadow:none;margin:0}
.lh-form input:focus{outline:2px solid var(--yellow);outline-offset:1px;border-color:var(--ink)}
.lh-form small{font-size:12px;font-weight:400;color:#6a6b6f}
.lh-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden;visibility:hidden}
.lh-send{all:unset;box-sizing:border-box;cursor:pointer;text-align:center;background:var(--yellow);color:var(--ink);font:700 16px var(--font);letter-spacing:.1em;text-transform:uppercase;padding:15px}
.lh-send:hover{background:#ffd24f}.lh-send:disabled{opacity:.6;cursor:wait}.lh-send:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.lh-form-notice{font-size:12px;color:#6a6b6f;margin:0}.lh-form-notice a{color:inherit;text-decoration:underline}
.lh-form-feedback{font-size:15px;line-height:1.5;color:#206b3b}.lh-form-feedback:empty{display:none}
.lh-form-feedback.lh-err{padding:10px 12px;background:#fff0ec;color:#a12e20}
.lh-wa{display:block;margin-top:10px;color:var(--ink);font-weight:700}

.lh-ptabs{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:6px;z-index:3;background:rgba(255,255,255,.92);padding:4px;border-radius:999px;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.lh-ptabs[hidden]{display:none}
.lh-ptab{border:0;background:transparent;font:inherit;font-size:13px;padding:6px 14px;border-radius:999px;cursor:pointer;color:#333}
.lh-ptab[aria-selected="true"]{background:#111;color:#fff}
