/* =========================================================
   COTA · inmobiliaria (demo Open Box Digital)
   Papel de plano, tinta azul, un naranja de València.
   Instrument Serif + Instrument Sans + IBM Plex Mono.
   ========================================================= */
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/instrument-serif-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(fuentes/instrument-serif-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(fuentes/instrument-sans-latin-wght-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/ibm-plex-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fuentes/ibm-plex-mono-latin-500-normal.woff2) format('woff2')}

:root{
  --papel:#F4F3EF; --papel-2:#EAE8E1; --blanco:#FBFAF7; --tinta:#14161C; --gris:#5E6370; --azul:#1E3FB8; --azul-o:#142C86; --azul-c:rgba(30,63,184,.1);
  --naranja:#FF5A1F; --linea:rgba(20,22,28,.14); --rejilla:rgba(30,63,184,.07);
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif; --sans:'Instrument Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif; --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --pad:clamp(18px,4vw,56px); --cab:64px; --ease:cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--cab) + 10px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;color:var(--tinta);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden;background-color:var(--papel);
  background-image:linear-gradient(var(--rejilla) 1px,transparent 1px),linear-gradient(90deg,var(--rejilla) 1px,transparent 1px);background-size:24px 24px}
img{display:block;max-width:100%}
a{color:inherit}
button,select,input{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
h1,h2,h3{margin:0;font-weight:400}
em{font-style:italic}
::selection{background:var(--azul);color:var(--papel)}
:focus-visible{outline:2px solid var(--naranja);outline-offset:3px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.envoltura{max-width:1360px;margin:0 auto;padding:0 var(--pad)}
.saltar{position:fixed;left:12px;top:-60px;z-index:200;background:var(--tinta);color:var(--papel);padding:10px 16px;text-decoration:none}
.saltar:focus{top:12px}
.solo-tactil{display:none}
html:not(.raton) .solo-raton{display:none} html:not(.raton) .solo-tactil{display:inline}

.rotulo{display:flex;flex-wrap:wrap;gap:0;margin:0 0 18px;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--azul)}
.rotulo span{border:1px solid currentColor;padding:6px 9px;margin-right:-1px}
.rotulo span:first-child{background:var(--azul);color:var(--papel);border-color:var(--azul)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;font:500 13px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;border:1.5px solid transparent;border-radius:0;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease)}
.btn:active{transform:translateY(1px)}
.btn-azul{background:var(--azul);color:var(--papel)} .btn-azul:hover{background:var(--tinta)}
.btn-naranja{background:var(--naranja);color:var(--tinta)} .btn-naranja:hover{background:var(--tinta);color:var(--papel)}
.btn-linea{border-color:var(--tinta);background:transparent} .btn-linea:hover{background:var(--tinta);color:var(--papel)}
.btn-linea[aria-pressed="true"]{background:var(--naranja);border-color:var(--naranja)}

/* ---------- cabecera ---------- */
.cab{position:fixed;top:0;left:0;right:0;z-index:70;height:var(--cab);display:flex;align-items:center;gap:22px;padding:0 var(--pad);background:rgba(244,243,239,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1.5px solid var(--tinta)}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none}
.marca svg{width:34px;height:18px;fill:none;stroke:var(--azul);stroke-width:2}
.marca b{font:400 30px/1 var(--serif);letter-spacing:-.01em}
.marca span{font:500 10.5px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gris);max-width:110px}
.nav{display:flex;gap:24px;margin:0 auto}
.nav a{font:500 14px/1 var(--sans);text-decoration:none;padding:6px 0;border-bottom:1.5px solid transparent;transition:border-color .2s,color .2s}
.nav a:hover,.nav a.activo{border-color:var(--azul);color:var(--azul)}
.coords{font:400 11px/1 var(--mono);color:var(--azul);letter-spacing:.06em;min-width:126px;font-variant-numeric:tabular-nums}
.guardadas{display:flex;align-items:center;gap:7px;font:500 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;padding:9px 10px;border:1.5px solid var(--linea)}
.guardadas svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.guardadas b{min-width:18px;height:18px;display:grid;place-items:center;background:var(--tinta);color:var(--papel);font-size:11px}
.guardadas[aria-pressed="true"]{border-color:var(--naranja);background:var(--naranja)}
.guardadas[aria-pressed="true"] svg{fill:currentColor}
.cab-cta{padding:12px 16px}
.menu-btn{display:none;font:500 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;border:1.5px solid var(--tinta);padding:10px 12px}
.menu{position:fixed;inset:0;z-index:95;background:var(--papel);padding:0 var(--pad) 30px;visibility:hidden;transform:translateX(100%);transition:transform .5s var(--ease),visibility 0s .5s;overflow:auto}
.menu.abierto{visibility:visible;transform:none;transition:transform .5s var(--ease)}
.menu-cab{height:var(--cab);display:flex;align-items:center;justify-content:space-between;border-bottom:1.5px solid var(--tinta)}
.menu-cab b{font:400 30px var(--serif)}
.menu-cab button{font:500 12px var(--mono);text-transform:uppercase}
.menu nav{display:grid;margin-top:12px}
.menu nav a{display:flex;gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--linea);font:400 34px/1.05 var(--serif);text-decoration:none}
.menu nav i{font:500 12px var(--mono);font-style:normal;color:var(--azul)}
@media (max-width:1100px){.coords{display:none}}
@media (max-width:980px){.nav,.cab-cta{display:none}.menu-btn{display:block}.guardadas{margin-left:auto}}
@media (max-width:520px){.marca span{display:none}.guardadas span{display:none}}

/* mira de CAD */
.mira{position:fixed;inset:0;z-index:55;pointer-events:none;display:none}
.mira-on .mira{display:block}
.mira i{position:absolute;background:var(--azul);opacity:.16}
.mira-h{left:0;right:0;height:1px;top:0}
.mira-v{top:0;bottom:0;width:1px;left:0}

/* ---------- portada ---------- */
.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,70px);align-items:center;min-height:100svh;padding:calc(var(--cab) + 40px) var(--pad) 40px;max-width:1480px;margin:0 auto}
.hero h1{font:400 clamp(62px,7.2vw,128px)/.88 var(--serif);letter-spacing:-.025em}
.hero h1 em{color:var(--azul)}
.hero-sub{max-width:470px;margin:26px 0 30px;font-size:17px;color:var(--gris)}
.frase{font:400 clamp(22px,2.1vw,30px)/1.65 var(--serif);max-width:620px;padding:22px 0 0;border-top:1.5px solid var(--tinta)}
.frase>span{margin-right:.25em}
.sel{position:relative;display:inline-block;margin-right:.25em}
.sel select{-webkit-appearance:none;appearance:none;border:0;border-radius:0;background:transparent;font:italic 400 1em/1.2 var(--serif);color:var(--azul);padding:0 1.05em 2px 0;border-bottom:2px dashed var(--azul);cursor:pointer;max-width:100%}
.sel::after{content:"";position:absolute;right:.2em;top:50%;width:.36em;height:.36em;border-right:2px solid var(--azul);border-bottom:2px solid var(--azul);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.sel select:hover,.sel select:focus{color:var(--naranja);border-color:var(--naranja);outline:0}
.frase .btn{display:flex;width:max-content;margin-top:20px;font-size:13px}
.frase .btn b{font-weight:500}
.hero-plano{margin:0;position:relative}
.plano-marco{position:relative;border:1.5px solid var(--tinta);background:var(--blanco);padding:clamp(14px,2.4vw,30px)}
.plano-marco::before{content:"";position:absolute;inset:6px;border:1px solid var(--linea);pointer-events:none}
.plano-foto{display:none}
.cajetin{display:grid;grid-template-columns:2.2fr .8fr 1fr auto;border:1.5px solid var(--tinta);border-top:0;background:var(--blanco)}
.cajetin>div{padding:10px 14px;border-right:1px solid var(--linea);min-width:0}
.cajetin small{display:block;font:500 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gris);margin-bottom:6px}
.cajetin b{display:block;font:400 19px/1.15 var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cajetin .btn{border:0;border-left:0;height:100%}
.pista-plano{margin:10px 0 0;font:400 12px/1.3 var(--mono);color:var(--gris)}
@media (max-width:980px){
  .hero{grid-template-columns:minmax(0,1fr);min-height:0;padding-top:calc(var(--cab) + 28px);gap:34px}
  .cajetin{grid-template-columns:1fr 1fr}
  .cajetin>div:first-child{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--linea)}
  .cajetin .btn{grid-column:1/-1;border-top:1px solid var(--linea)}
}

/* ---------- plano SVG ---------- */
.plano{display:block;width:100%;height:auto;overflow:visible;font-family:var(--mono)}
.plano .muro{fill:none;stroke:var(--tinta);stroke-width:.09;stroke-linejoin:miter}
.plano .contorno{fill:none;stroke:var(--tinta);stroke-width:.22}
.plano .estancia{cursor:pointer}
.plano .estancia rect.zona{fill:transparent;transition:fill .25s}
.plano .estancia image{opacity:0;transition:opacity .4s ease}
.plano .estancia.exterior rect.zona{fill:url(#rayado)}
.plano .estancia:hover rect.zona,.plano .estancia.activa rect.zona{fill:var(--azul-c)}
.plano .estancia.activa image,.plano .estancia.con-foto:hover image{opacity:1}
.plano text{font-size:.34px;fill:var(--tinta);text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:var(--blanco);stroke-width:.12px;stroke-linejoin:round}
.plano text.m2{font-size:.28px;fill:var(--azul)}
.plano .estancia.activa text,.plano .estancia.con-foto:hover text{fill:#fff;stroke:rgba(20,22,28,.85)}
.plano .cota line{stroke:var(--azul);stroke-width:.03}
.plano .cota text{fill:var(--azul);font-size:.3px;stroke:var(--blanco)}
.plano .norte path{fill:var(--azul)}
.plano .norte text{fill:var(--azul);font-size:.32px}
.plano .escala rect{fill:var(--tinta)} .plano .escala rect.b{fill:var(--blanco);stroke:var(--tinta);stroke-width:.03}
.plano .escala text{font-size:.26px}
.dibuja .muro,.dibuja .contorno{stroke-dasharray:var(--l);stroke-dashoffset:var(--l);animation:traza 1.6s var(--ease) forwards;animation-delay:var(--d,0s)}
.dibuja text,.dibuja .cota,.dibuja .norte,.dibuja .escala{opacity:0;animation:aparece .6s ease forwards;animation-delay:calc(var(--d,0s) + 1s)}
@keyframes traza{to{stroke-dashoffset:0}}
@keyframes aparece{to{opacity:1}}

/* ---------- cinta ---------- */
.cinta{border-top:1.5px solid var(--tinta);border-bottom:1.5px solid var(--tinta);background:var(--azul);color:var(--papel);overflow:hidden}
.cinta-fila{display:flex;width:max-content;animation:cinta 40s linear infinite;font:500 13px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.cinta-fila span{padding:15px 26px;white-space:nowrap}
.cinta-fila span::after{content:"⌖";margin-left:26px;color:var(--naranja)}
@keyframes cinta{to{transform:translateX(-50%)}}

/* ---------- secciones ---------- */
.seccion{padding:clamp(80px,10vw,140px) 0}
.sec-cab{margin-bottom:clamp(26px,4vw,44px)}
.sec-cab h2,.seccion h2{font:400 clamp(44px,5.6vw,88px)/.95 var(--serif);letter-spacing:-.02em}
.seccion h2 em{color:var(--azul)}
.sec-txt{font-size:17px;color:var(--gris);max-width:520px;margin:20px 0 26px}

/* ---------- propiedades ---------- */
.herramientas{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:26px;padding-top:16px;border-top:1.5px solid var(--tinta)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{padding:9px 13px;border:1.5px solid var(--linea);background:var(--blanco);font:500 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;transition:all .2s}
.chips button:hover{border-color:var(--tinta)}
.chips button[aria-pressed="true"]{background:var(--tinta);border-color:var(--tinta);color:var(--papel)}
.orden{display:flex;align-items:center;gap:10px;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--gris)}
.orden select{border:1.5px solid var(--linea);background:var(--blanco);padding:8px 10px;font:500 12px var(--mono);border-radius:0}
.resumen-busq{font:400 13px/1.5 var(--mono);color:var(--gris);margin:0 0 20px}
.resumen-busq b{color:var(--tinta);font-weight:500}
.resumen-busq button{color:var(--azul);text-decoration:underline;font:inherit}
.laminas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
@media (max-width:1100px){.laminas{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.laminas{grid-template-columns:minmax(0,1fr)}}
.lamina{position:relative;display:flex;flex-direction:column;border:1.5px solid var(--tinta);background:var(--blanco);transition:transform .35s var(--ease),box-shadow .35s var(--ease),opacity .35s;animation:entra .5s var(--ease) both}
.lamina:hover{transform:translate(-4px,-4px);box-shadow:6px 6px 0 var(--azul)}
@keyframes entra{from{opacity:0;transform:translateY(14px)}}
.lam-cab{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border-bottom:1.5px solid var(--tinta);font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.lam-cab span{color:var(--gris)}
.lam-guardar{display:grid;place-items:center;width:30px;height:30px;margin:-6px -6px -6px 0}
.lam-guardar svg{width:16px;height:16px;fill:none;stroke:var(--tinta);stroke-width:1.8;transition:fill .2s}
.lam-guardar[aria-pressed="true"] svg{fill:var(--naranja);stroke:var(--naranja)}
.lam-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--papel-2);cursor:pointer}
.lam-media img{width:100%;height:100%;object-fit:cover;transition:opacity .45s ease,transform 1s var(--ease)}
.lam-plano{position:absolute;inset:0;display:grid;place-items:center;padding:16px;background:var(--blanco);opacity:0;transition:opacity .45s ease;background-image:linear-gradient(var(--rejilla) 1px,transparent 1px),linear-gradient(90deg,var(--rejilla) 1px,transparent 1px);background-size:16px 16px}
.lam-plano svg{position:absolute;left:16px;top:16px;width:calc(100% - 32px);height:calc(100% - 32px)}
.raton .lamina:hover .lam-plano{opacity:1}
.lam-etq{position:absolute;left:10px;top:10px;z-index:2;display:flex;gap:6px}
.lam-etq span{background:var(--tinta);color:var(--papel);font:500 10.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;padding:6px 8px}
.lam-etq span.n{background:var(--naranja);color:var(--tinta)}
.lam-cuerpo{padding:14px 14px 0;flex:1;cursor:pointer}
.lam-cuerpo h3{font:400 clamp(24px,2vw,30px)/1.05 var(--serif);letter-spacing:-.01em}
.lam-cuerpo p{margin:6px 0 14px;font:400 12.5px/1.4 var(--mono);color:var(--gris)}
.lam-datos{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr auto;border-top:1.5px solid var(--tinta)}
.lam-datos div{padding:9px 10px;border-right:1px solid var(--linea);min-width:0}
.lam-datos div:last-child{border-right:0}
.lam-datos small{display:block;font:500 9.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gris);margin-bottom:5px}
.lam-datos b{display:block;font:400 18px/1.1 var(--serif);white-space:nowrap}
.lam-datos .precio b{font-size:21px}
.energia{display:inline-grid;place-items:center;width:24px;height:22px;font:500 12px/1 var(--mono);color:#111;clip-path:polygon(0 0,75% 0,100% 50%,75% 100%,0 100%);padding-right:4px}
.e-A{background:#00A651;color:#fff}.e-B{background:#50B848;color:#fff}.e-C{background:#BFD730}.e-D{background:#FFF200}.e-E{background:#FDB813}.e-F{background:#F37021;color:#fff}.e-G{background:#ED1C24;color:#fff}
.vacio{border:1.5px dashed var(--azul);padding:30px;text-align:center;background:var(--blanco)}
.vacio p{font:400 24px/1.3 var(--serif);max-width:560px;margin:0 auto 18px}
.lamina.oculta{display:none}

/* ---------- barrios ---------- */
.barrios{background:var(--blanco);border-top:1.5px solid var(--tinta);border-bottom:1.5px solid var(--tinta)}
.barrios-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(20px,4vw,60px);align-items:start}
.mapa-barrios{border:1.5px solid var(--tinta);background:var(--papel);position:relative}
.mapa-barrios svg{display:block;width:100%;height:auto}
.mb-zona{cursor:pointer}
.mb-zona path{fill:var(--blanco);stroke:var(--tinta);stroke-width:1.5;transition:fill .25s}
.mb-zona:hover path,.mb-zona.activa path{fill:var(--azul)}
.mb-zona text{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.06em;fill:var(--tinta);pointer-events:none;text-anchor:middle}
.mb-zona text.mb-n{font-size:10px;fill:var(--azul)}
.mb-zona:hover text,.mb-zona.activa text{fill:var(--papel)}
.mb-rio{fill:none;stroke:#7FB069;stroke-width:22;stroke-linecap:round;opacity:.55}
.mb-mar{fill:var(--azul-c)}
.mb-etq{font:italic 400 22px var(--serif);fill:var(--azul)}
.mb-etq-rio{font:500 10px var(--mono);fill:#3B6E2A;letter-spacing:.1em;text-transform:uppercase}
.ficha-barrio{border:1.5px solid var(--tinta);background:var(--papel);padding:22px;position:sticky;top:calc(var(--cab) + 20px)}
.ficha-barrio h3{font:400 40px/1 var(--serif);margin:4px 0 10px}
.ficha-barrio p{margin:0 0 16px;color:var(--gris)}
.fb-datos{display:grid;grid-template-columns:1fr 1fr;border-top:1.5px solid var(--tinta);margin-bottom:18px}
.fb-datos div{padding:12px 10px 12px 0;border-bottom:1px solid var(--linea)}
.fb-datos small{display:block;font:500 10px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}
.fb-datos b{font:400 26px/1.1 var(--serif)}
.fb-barra{height:8px;background:var(--papel-2);margin-top:6px;position:relative}
.fb-barra i{position:absolute;left:0;top:0;bottom:0;background:var(--azul);transition:width .6s var(--ease)}
@media (max-width:900px){.barrios-grid{grid-template-columns:minmax(0,1fr)}.ficha-barrio{position:static}}

/* ---------- hipoteca ---------- */
.hip-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);align-items:start}
.hip-form{display:grid;gap:26px}
.rango{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:8px 12px}
.rango label{font:500 12px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--gris)}
.rango output{font:400 28px/1 var(--serif);text-align:right}
.rango input{grid-column:1/-1}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:26px;background:transparent;cursor:pointer;margin:0}
input[type=range]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,var(--azul) var(--p,50%),var(--linea) var(--p,50%))}
input[type=range]::-moz-range-track{height:2px;background:var(--linea)}
input[type=range]::-moz-range-progress{height:2px;background:var(--azul)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-8px;background:var(--blanco);border:2px solid var(--azul);transform:rotate(45deg)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--blanco);border:2px solid var(--azul);border-radius:0;transform:rotate(45deg)}
.seg{display:flex;border:1.5px solid var(--tinta);width:max-content;max-width:100%}
.seg button{padding:11px 16px;font:500 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;border-right:1px solid var(--linea)}
.seg button:last-child{border-right:0}
.seg button[aria-checked="true"]{background:var(--tinta);color:var(--papel)}
.hip-res{border:1.5px solid var(--tinta);background:var(--blanco);padding:clamp(18px,3vw,34px)}
.cuota small{display:block;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}
.cuota b{display:block;font:400 clamp(64px,7vw,104px)/1 var(--serif);letter-spacing:-.02em;color:var(--azul)}
.cuota span{font:400 13px var(--mono);color:var(--gris)}
.seccion-barra{margin:34px 0 22px}
.sb-cotas{position:relative;height:40px}
.sb-cota{position:absolute;top:0;height:30px;border-left:1px solid var(--azul);border-right:1px solid var(--azul);display:flex;align-items:flex-start;justify-content:center;transition:left .4s var(--ease),width .4s var(--ease)}
.sb-cota::before{content:"";position:absolute;left:0;right:0;top:20px;border-top:1px solid var(--azul)}
.sb-cota span{background:var(--blanco);padding:0 6px;font:500 11px/1.2 var(--mono);color:var(--azul);white-space:nowrap;position:relative;z-index:1}
.sb-bloques{display:flex;height:46px;border:1.5px solid var(--tinta)}
.sb-bloques div{display:flex;align-items:center;padding:0 10px;font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden;transition:flex-basis .4s var(--ease)}
.sb-ahorro{background:var(--naranja)} .sb-gastos{background:repeating-linear-gradient(45deg,var(--tinta) 0 1px,var(--blanco) 1px 7px);color:var(--tinta)} .sb-prestamo{background:var(--azul);color:var(--papel)}
.sb-gastos span{background:var(--blanco);padding:2px 4px}
.hip-datos{display:grid;grid-template-columns:1fr 1fr;margin:0 0 16px;border-top:1.5px solid var(--tinta)}
.hip-datos div{padding:11px 10px 11px 0;border-bottom:1px solid var(--linea)}
.hip-datos dt{font:500 10.5px var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--gris)}
.hip-datos dd{margin:2px 0 0;font:400 22px/1.15 var(--serif)}
.aviso{margin:0 0 16px;font:400 13px/1.45 var(--mono);color:var(--gris)}
.aviso.mal{color:#B42318}
.nota{margin:16px 0 0;font-size:12.5px;color:var(--gris)}
@media (max-width:900px){.hip-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- vender ---------- */
.vender{background:var(--azul);color:var(--papel);border-top:1.5px solid var(--tinta);border-bottom:1.5px solid var(--tinta);background-image:linear-gradient(rgba(244,243,239,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(244,243,239,.07) 1px,transparent 1px);background-size:24px 24px}
.vender .rotulo{color:var(--papel)} .vender .rotulo span:first-child{background:var(--papel);color:var(--azul);border-color:var(--papel)}
.vender h2 em{color:var(--naranja)!important}
.vender .sec-txt{color:rgba(244,243,239,.8)}
.vender-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:start}
.pasos-venta{list-style:none;margin:0;padding:0}
.pasos-venta li{display:flex;gap:16px;padding:14px 0;border-top:1px solid rgba(244,243,239,.25);font-size:16px}
.pasos-venta i{font:500 12px/1.6 var(--mono);font-style:normal;color:var(--naranja)}
.valora{background:var(--papel);color:var(--tinta);border:1.5px solid var(--tinta);padding:clamp(18px,3vw,30px);display:grid;gap:18px;box-shadow:10px 10px 0 var(--tinta)}
.campo{display:grid;gap:7px}
.campo label,.campo .lbl{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}
.campo select,.campo input{border:0;border-bottom:1.5px solid var(--tinta);background:transparent;padding:6px 0;font:400 26px/1.2 var(--serif);border-radius:0;-webkit-appearance:none;appearance:none;width:100%}
.campo select:focus,.campo input:focus{outline:0;border-color:var(--azul)}
.m2{display:flex;align-items:baseline;gap:8px}
.m2 span{font:400 20px var(--serif);color:var(--gris)}
.valor{border-top:1.5px solid var(--tinta);padding-top:14px}
.valor small{display:block;font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}
.valor b{display:block;font:400 clamp(36px,4vw,54px)/1.05 var(--serif);color:var(--azul);margin:4px 0}
.valor>span{font:400 12.5px var(--mono);color:var(--gris)}
.regla{position:relative;height:36px;margin-top:16px;border-bottom:1.5px solid var(--tinta);background:repeating-linear-gradient(90deg,var(--tinta) 0 1px,transparent 1px 10%) bottom/100% 10px no-repeat,repeating-linear-gradient(90deg,var(--tinta) 0 1px,transparent 1px 2%) bottom/100% 5px no-repeat}
.regla i{position:absolute;bottom:0;height:22px;background:rgba(255,90,31,.35);border-left:2px solid var(--naranja);border-right:2px solid var(--naranja);transition:left .4s var(--ease),width .4s var(--ease)}
.valora .seg{width:100%}
.valora .seg button{flex:1}
.valora .chips button{background:transparent}
@media (max-width:900px){.vender-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- estudio ---------- */
.estudio-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(24px,5vw,80px);align-items:start}
.estudio-foto{margin:0;border:1.5px solid var(--tinta);background:var(--blanco);padding:10px}
.estudio-foto img{width:100%;aspect-ratio:4/3;object-fit:cover}
.estudio-foto figcaption{font:400 12px var(--mono);color:var(--gris);padding:10px 2px 0}
.estudio-txt p{font-size:18px;margin:0 0 18px}
.estudio-txt p:first-child::first-letter{font:400 70px/.8 var(--serif);float:left;padding:6px 8px 0 0;color:var(--azul)}
.cifras{display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px;border-top:1.5px solid var(--tinta)}
.cifras div{padding:16px 12px 0 0}
.cifras b{display:block;font:400 clamp(44px,4.6vw,66px)/1 var(--serif);color:var(--azul)}
.cifras span{font:500 11px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--gris)}
.opiniones{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(50px,7vw,90px);border-top:1.5px solid var(--tinta);border-bottom:1.5px solid var(--tinta)}
.opiniones blockquote{margin:0;padding:24px clamp(14px,2vw,28px);border-right:1px solid var(--linea)}
.opiniones blockquote:last-child{border-right:0}
.opiniones p{font:400 24px/1.25 var(--serif);margin:0 0 16px}
.opiniones footer{font:500 11.5px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--azul)}
@media (max-width:900px){.estudio-grid,.opiniones{grid-template-columns:minmax(0,1fr)}.opiniones blockquote{border-right:0;border-bottom:1px solid var(--linea)}.cifras{grid-template-columns:1fr 1fr 1fr}}

/* ---------- contacto ---------- */
.contacto{border-top:1.5px solid var(--tinta)}
.contacto-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:end}
.datos{margin:0;border-top:1.5px solid var(--tinta)}
.datos div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--linea)}
.datos dt{font:500 11px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}
.datos dd{margin:0;font:400 21px/1.35 var(--serif)}
.datos a{color:var(--azul)}
.estado{display:inline-flex;align-items:center;gap:8px;font:500 13px/1.3 var(--mono)}
.estado i{width:9px;height:9px;border-radius:50%;background:var(--gris)}
.estado.abierto i{background:#12A150}.estado.cerrado i{background:var(--naranja)}
@media (max-width:900px){.contacto-grid{grid-template-columns:minmax(0,1fr)}.datos div{grid-template-columns:1fr;gap:4px}}

/* ---------- pie ---------- */
.pie{background:var(--tinta);color:var(--papel);padding:clamp(40px,6vw,70px) 0 30px;overflow:hidden}
.pie-marca{display:flex;justify-content:space-between;font:italic 400 calc((min(100vw,1360px) - 2 * var(--pad)) * .33)/.8 var(--serif);color:var(--azul);letter-spacing:-.03em;overflow:hidden}
.pie-cota{position:relative;display:flex;justify-content:center;margin:10px 0 30px;border-top:1px solid var(--azul);font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--azul)}
.pie-cota::before,.pie-cota::after{content:"";position:absolute;top:-8px;width:1px;height:15px;background:var(--azul)}
.pie-cota::before{left:0}.pie-cota::after{right:0}
.pie-cota span{background:var(--tinta);padding:0 14px;transform:translateY(-50%)}
.pie-fila{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding-top:18px;border-top:1px solid rgba(244,243,239,.2);font:400 12px/1.5 var(--mono);color:rgba(244,243,239,.7)}
.pie-fila a{color:var(--papel);text-decoration:none}
@media (max-width:980px){.pie{padding-bottom:90px}}

/* ---------- ficha ---------- */
.ficha{position:fixed;inset:0;z-index:90;background:rgba(20,22,28,.55);display:flex;justify-content:flex-end}
.ficha[hidden]{display:none}
.ficha-hoja{width:min(1240px,100%);height:100%;overflow:auto;background-color:var(--papel);background-image:linear-gradient(var(--rejilla) 1px,transparent 1px),linear-gradient(90deg,var(--rejilla) 1px,transparent 1px);background-size:24px 24px;border-left:1.5px solid var(--tinta);animation:hoja .5s var(--ease)}
@keyframes hoja{from{transform:translateX(40px);opacity:0}}
.ficha-cab{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px clamp(16px,3vw,34px);background:rgba(244,243,239,.96);border-bottom:1.5px solid var(--tinta)}
.ficha-cab .rotulo{margin:0}
.ficha-acc{display:flex;gap:8px;align-items:center}
.ficha-acc .btn{padding:10px 12px;font-size:11.5px}
.cerrar{width:42px;height:42px;border:1.5px solid var(--tinta);font-size:18px}
.cerrar:hover{background:var(--tinta);color:var(--papel)}
.ficha-cuerpo{padding:clamp(18px,3vw,34px)}
.f-tit{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:14px;margin-bottom:22px}
.f-tit h2{font:400 clamp(38px,4.6vw,66px)/.98 var(--serif);letter-spacing:-.02em;max-width:760px}
.f-tit p{margin:8px 0 0;font:400 13px var(--mono);color:var(--gris)}
.f-precio{text-align:right}
.f-precio b{display:block;font:400 clamp(38px,4vw,56px)/1 var(--serif);color:var(--azul)}
.f-precio span{font:400 12.5px var(--mono);color:var(--gris)}
.f-plano{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(14px,2vw,24px);align-items:start}
.f-plano .plano-marco{padding:clamp(12px,2vw,24px)}
.f-visor{border:1.5px solid var(--tinta);background:var(--blanco);position:sticky;top:90px}
.f-visor figure{margin:0;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--papel-2)}
.f-visor img{width:100%;height:100%;object-fit:cover;animation:aparece .5s ease}
.f-visor figcaption{display:flex;justify-content:space-between;padding:10px 12px;border-top:1.5px solid var(--tinta);font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.04em}
.f-visor figcaption b{color:var(--azul);font-weight:500}
.f-estancias{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto;border-top:1px solid var(--linea)}
.f-estancias li button{width:100%;display:flex;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--linea);font:400 13px var(--mono);text-align:left}
.f-estancias li button:hover,.f-estancias li button[aria-current="true"]{background:var(--azul);color:var(--papel)}
.f-pista{margin:8px 0 0;font:400 12px var(--mono);color:var(--gris)}
.f-cuerpo2{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(18px,3vw,40px);margin-top:clamp(26px,4vw,44px)}
.f-tabla{display:grid;grid-template-columns:repeat(4,1fr);border:1.5px solid var(--tinta);background:var(--blanco);margin:0}
.f-tabla div{padding:10px 12px;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.f-tabla div:nth-child(4n){border-right:0}
.f-tabla dt{font:500 10px var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--gris)}
.f-tabla dd{margin:3px 0 0;font:400 21px/1.15 var(--serif)}
.f-desc{font-size:17px;margin:22px 0}
.f-carac{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 22px;padding:0;list-style:none}
.f-carac li{border:1px solid var(--tinta);padding:6px 9px;font:500 11.5px var(--mono);text-transform:uppercase;letter-spacing:.03em;background:var(--blanco)}
.f-energia{border:1.5px solid var(--tinta);background:var(--blanco);padding:14px}
.f-energia h4,.f-hip h4{margin:0 0 10px;font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}
.escala-e{display:grid;gap:3px}
.escala-e div{display:flex;align-items:center;gap:10px;font:500 11px var(--mono)}
.escala-e span{height:18px;display:flex;align-items:center;padding-left:6px;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%)}
.escala-e .esta{font-weight:500}
.escala-e .esta::after{content:"◀ esta vivienda";color:var(--tinta)}
.f-hip{border:1.5px solid var(--tinta);background:var(--blanco);padding:14px;margin-top:14px}
.f-hip b{font:400 40px/1 var(--serif);color:var(--azul)}
.f-hip p{margin:6px 0 10px;font:400 12.5px var(--mono);color:var(--gris)}
.f-cta{display:grid;gap:8px;margin-top:14px}
.f-cta .btn{width:100%}
.f-galeria{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:clamp(24px,3vw,36px)}
.f-galeria button{aspect-ratio:4/3;overflow:hidden;border:1.5px solid var(--tinta);background:var(--papel-2)}
.f-galeria img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.f-galeria button:hover img{transform:scale(1.06)}
@media (max-width:900px){.f-plano,.f-cuerpo2{grid-template-columns:minmax(0,1fr)}.f-visor{position:static}.f-tabla{grid-template-columns:1fr 1fr}.f-tabla div:nth-child(2n){border-right:0}.f-precio{text-align:left}.f-galeria{grid-template-columns:repeat(3,1fr)}}

/* ---------- flotantes ---------- */
.barra-movil{position:fixed;left:0;right:0;bottom:0;z-index:65;display:none;border-top:1.5px solid var(--tinta);background:var(--papel)}
.barra-movil a{flex:1;text-align:center;padding:15px 8px;font:500 12.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;text-decoration:none}
.barra-movil a:first-child{background:var(--azul);color:var(--papel)}
.barra-movil a:last-child{background:var(--naranja)}
@media (max-width:980px){.barra-movil{display:flex}}
.aviso-copia{position:fixed;left:50%;bottom:24px;z-index:120;transform:translate(-50%,calc(100% + 40px));visibility:hidden;background:var(--tinta);color:var(--papel);font:500 12px var(--mono);padding:12px 16px;transition:transform .35s var(--ease)}
.aviso-copia.ver{transform:translate(-50%,0);visibility:visible}

/* ---------- apariciones ---------- */
.rv{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s var(--ease)}
.rv.visto{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  .dibuja .muro,.dibuja .contorno{stroke-dashoffset:0!important}
  .dibuja text,.dibuja .cota,.dibuja .norte,.dibuja .escala{opacity:1!important}
}
