/* ============================================================
   Casas a la venta — Estudio Aranoa
   Generado y usado por venta/generar.py. Se puede editar a mano:
   el generador no lo pisa.
   ============================================================ */

:root{
  --white:#FFFFFF; --bg:#FBFAF8; --bg-2:#F1EFEB;
  --ink:#1B1D21; --ink-2:#26282D; --ink-soft:#3C3F45; --muted:#70747A;
  --red:#B23A28; --red-bright:#C7402C; --red-dark:#8E2C1D; --coral:#E08A73;
  --border:#E6E3DD; --wa:#25D366;
  --shadow:0 18px 50px -24px rgba(27,29,33,.5); --maxw:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
     font:400 16px/1.65 'Inter',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:500;line-height:1.15;margin:0;letter-spacing:-.01em}
a{color:inherit}
img{max-width:100%;display:block}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:60;background:rgba(251,250,248,.92);
     backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px;height:68px}
.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.1}
.brand .name{font-family:'Fraunces',serif;font-size:1.32rem;letter-spacing:.16em;font-weight:500}
.brand .name b{color:var(--red);font-weight:500}
.brand .sub{font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.nav .back{text-decoration:none;font-size:.9rem;color:var(--ink-soft);white-space:nowrap}
.nav .back:hover{color:var(--red)}

/* ---- encabezados ---- */
.eyebrow{display:inline-block;font-size:.7rem;letter-spacing:.19em;text-transform:uppercase;
         color:var(--red);font-weight:600;margin-bottom:14px}
.sec-head{margin-bottom:30px}
.sec-head h2{font-size:clamp(1.5rem,3.4vw,2.1rem)}
.sec-head p{color:var(--muted);margin:8px 0 0;max-width:58ch}
section{padding:clamp(3rem,6vw,4.5rem) 0}

/* ---- estado ---- */
.tag{display:inline-flex;align-items:center;gap:7px;font-size:.68rem;letter-spacing:.14em;
     text-transform:uppercase;font-weight:600;padding:5px 11px;border-radius:20px}
.tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.tag-disponible{color:var(--red);background:rgba(178,58,40,.09)}
.tag-reservada{color:#8a6d1f;background:rgba(190,150,40,.13)}
.tag-vendida{color:var(--muted);background:rgba(112,116,122,.12)}

/* ---- listado de casas ---- */
.lista{display:grid;gap:22px}
@media(min-width:820px){.lista{grid-template-columns:repeat(2,1fr);gap:26px}}
.casa-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--bg);
  border:1px solid var(--border);border-radius:14px;overflow:hidden;
  box-shadow:0 10px 34px -22px rgba(27,29,33,.45);
  transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s}
.casa-card:hover{transform:translateY(-3px);box-shadow:0 22px 50px -24px rgba(27,29,33,.5)}
.casa-card .foto{overflow:hidden;line-height:0;background:var(--bg-2);position:relative}
.casa-card .foto img{width:100%;aspect-ratio:4/3;object-fit:cover;
  transition:transform .55s cubic-bezier(.2,.7,.3,1)}
.casa-card:hover .foto img{transform:scale(1.045)}
.casa-card.vendida .foto img{filter:grayscale(.85) brightness(.92)}
.casa-card .txt{padding:clamp(1.3rem,2.4vw,1.8rem);display:flex;flex-direction:column;flex:1}
.casa-card h3{font-size:clamp(1.2rem,2.3vw,1.5rem);margin:.7rem 0 .5rem}
.casa-card .lugar{font-size:.88rem;color:var(--muted)}
.casa-card .res{color:var(--ink-soft);margin:.2rem 0 1.1rem;font-size:.95rem}
.casa-card .datos{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.85rem;color:var(--muted);
  margin-top:auto;padding-top:1rem;border-top:1px solid var(--border)}
.casa-card .datos b{color:var(--ink);font-weight:600}
.vacio{border:1px dashed var(--border);border-radius:14px;padding:2.6rem;text-align:center;color:var(--muted)}

/* ---- ficha ---- */
.hero{padding:clamp(2.6rem,5vw,3.6rem) 0 1.8rem;border-bottom:1px solid var(--border)}
.hero h1{font-size:clamp(1.9rem,4.6vw,3rem);max-width:18ch;margin-top:.5rem}
.hero .lugar{color:var(--muted);margin:.7rem 0 0;font-size:1rem}
.hero .lead{color:var(--ink-soft);max-width:58ch;margin:1rem 0 0;font-size:1.05rem}
.ficha{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:1px;
  background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-top:2rem}
.ficha div{background:var(--bg);padding:17px 19px}
.ficha dt{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  font-weight:600;margin:0 0 5px}
.ficha dd{margin:0;font-family:'Fraunces',serif;font-size:1.45rem;line-height:1.1}
.ficha dd small{font-family:'Inter',sans-serif;font-size:.8rem;color:var(--muted);font-weight:400}
.ficha dd.txt{font-size:1.05rem;padding-top:.3rem}
.desc p{color:var(--ink-soft);max-width:64ch;margin:0 0 1rem}

/* ---- galeria ---- */
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:700px){.gal{grid-template-columns:repeat(3,1fr);gap:14px}}
@media(min-width:1000px){.gal{grid-template-columns:repeat(4,1fr)}}
.gal button{padding:0;border:0;background:none;cursor:zoom-in;position:relative;
  border-radius:10px;overflow:hidden;line-height:0;display:block}
.gal img{aspect-ratio:3/4;object-fit:cover;width:100%;
  transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.gal button:hover img{transform:scale(1.04)}
.gal .cap{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;text-align:left;
  font-size:.76rem;color:#fff;font-weight:500;
  background:linear-gradient(transparent,rgba(15,16,18,.72));opacity:0;transition:opacity .28s}
.gal button:hover .cap,.gal button:focus-visible .cap{opacity:1}
.gal button.portada{grid-column:span 2;grid-row:span 2}
.gal button.portada img{aspect-ratio:1/1}
@media(min-width:700px){.gal button.portada img{aspect-ratio:3/4}}

/* ---- video ---- */
.video-zona{background:var(--bg-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.vid{max-width:400px;margin:0 auto;border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.vid video{width:100%;display:block;background:#000}

/* ---- cta ---- */
.cta-zona{background:var(--ink);color:var(--white);text-align:center}
.cta-zona h2{color:var(--white);font-size:clamp(1.6rem,3.6vw,2.3rem)}
.cta-zona p{color:rgba(255,255,255,.62);max-width:50ch;margin:14px auto 30px}
.btn{display:inline-flex;align-items:center;gap:9px;text-decoration:none;font-weight:600;
  font-size:.98rem;padding:15px 28px;border-radius:9px;transition:transform .18s,background .18s}
.btn:hover{transform:translateY(-2px)}
.btn-wa{background:var(--wa);color:#06341a}
.btn-ghost{border:1px solid rgba(255,255,255,.26);color:var(--white);margin-left:8px}
.aviso-vendida{background:var(--ink);color:#fff;text-align:center;padding:1.1rem;
  font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600}

/* ---- footer ---- */
footer{background:var(--ink-2);color:rgba(255,255,255,.66);padding:44px 0;font-size:.9rem}
footer a{color:rgba(255,255,255,.66);text-decoration:none}
footer a:hover{color:var(--white)}
.foot-in{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}

/* ---- visor de fotos ---- */
.lb{position:fixed;inset:0;z-index:100;background:rgba(14,15,17,.96);display:none;
    align-items:center;justify-content:center;padding:20px}
.lb.open{display:flex}
.lb img{max-width:100%;max-height:86vh;object-fit:contain;border-radius:6px}
.lb .x,.lb .p,.lb .n{position:absolute;background:rgba(255,255,255,.1);border:0;color:#fff;
  width:46px;height:46px;border-radius:50%;cursor:pointer;font-size:20px;line-height:1;
  display:flex;align-items:center;justify-content:center}
.lb .x:hover,.lb .p:hover,.lb .n:hover{background:rgba(255,255,255,.22)}
.lb .x{top:18px;right:18px} .lb .p{left:18px} .lb .n{right:18px}
.lb .meta{position:absolute;bottom:20px;left:0;right:0;text-align:center;
  color:rgba(255,255,255,.8);font-size:.85rem}
@media(max-width:600px){.lb .p,.lb .n{width:40px;height:40px}.lb .p{left:8px}.lb .n{right:8px}}

/* ---- bloque del home (se inyecta en index.html) ---- */
.venta-home{padding:clamp(3.5rem,7vw,6rem) 0;background:var(--bg-2);
  border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.venta-home .grid{display:grid;gap:20px}
@media(min-width:760px){.venta-home .grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}}
.venta-home .mas{margin-top:2rem;font-weight:600;color:var(--red);text-decoration:none;
  display:inline-block;font-size:.96rem}
.venta-home .mas:hover{color:var(--red-dark)}

/* ============================================================
   Carrusel de la ficha (lo arma venta/galeria.js)
   ============================================================ */
.carrusel{margin:0 0 18px}
.carrusel .marco{position:relative;border-radius:14px;overflow:hidden;background:var(--ink);
  box-shadow:var(--shadow);cursor:zoom-in}
.carrusel .pista{display:flex;transition:transform .42s cubic-bezier(.3,.8,.3,1)}
.carrusel .diapo{flex:0 0 100%;min-width:100%}
/* En celular la foto llena el marco; en pantalla grande se ve entera sobre
   fondo oscuro, porque las fotos son verticales y recortarlas perdería la casa. */
.carrusel .diapo img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:var(--ink)}
@media(min-width:760px){
  .carrusel .diapo{display:flex;align-items:center;justify-content:center}
  .carrusel .diapo img{aspect-ratio:auto;height:min(74vh,640px);width:100%;object-fit:contain}
}
.carrusel .flecha{position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.9);color:var(--ink);font-size:22px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 14px rgba(0,0,0,.28);transition:background .18s,transform .18s}
.carrusel .flecha:hover{background:#fff;transform:translateY(-50%) scale(1.07)}
.carrusel .flecha.izq{left:14px} .carrusel .flecha.der{right:14px}
.carrusel .pie{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;
  justify-content:space-between;align-items:flex-end;gap:16px;padding:30px 18px 14px;
  color:#fff;font-size:.88rem;pointer-events:none;
  background:linear-gradient(transparent,rgba(15,16,18,.72))}
.carrusel .pie .cont{font-variant-numeric:tabular-nums;opacity:.85;white-space:nowrap}
.carrusel .tiras{display:flex;gap:8px;overflow-x:auto;padding:10px 2px 2px;
  scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.carrusel .tira{flex:0 0 auto;padding:0;border:2px solid transparent;background:none;
  border-radius:8px;overflow:hidden;cursor:pointer;line-height:0;opacity:.62;
  transition:opacity .2s,border-color .2s}
.carrusel .tira img{width:74px;height:56px;object-fit:cover;display:block}
.carrusel .tira:hover{opacity:1}
.carrusel .tira.on{opacity:1;border-color:var(--red)}
@media(max-width:600px){
  .carrusel .flecha{width:38px;height:38px;font-size:19px}
  .carrusel .flecha.izq{left:8px} .carrusel .flecha.der{right:8px}
  .carrusel .tira img{width:62px;height:47px}
}

.ver-todas{display:block;width:100%;margin:6px 0 0;padding:13px;cursor:pointer;
  background:var(--bg);border:1px solid var(--border);border-radius:10px;
  font-family:inherit;font-size:.92rem;font-weight:600;color:var(--ink-soft);
  transition:border-color .2s,color .2s}
.ver-todas:hover{border-color:var(--red);color:var(--red)}
.gal.plegada{display:none}
.gal{margin-top:14px}

/* ============================================================
   Ventana de consulta por una casa (la arma venta/consulta.js)
   ============================================================ */
.consulta{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;
  padding:20px;background:rgba(20,21,24,.62);backdrop-filter:blur(3px)}
.consulta.open{display:flex}
.consulta .caja{position:relative;background:var(--bg);border-radius:16px;width:100%;max-width:470px;
  max-height:92vh;overflow:auto;padding:clamp(1.6rem,4vw,2.2rem);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.6);animation:sube .26s cubic-bezier(.2,.8,.3,1)}
@keyframes sube{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.consulta .caja{animation:none}}
.consulta h2{font-size:1.4rem;margin:0 0 .3rem;padding-right:2rem}
.consulta .cual{margin:0 0 1.4rem;color:var(--ink-soft);font-size:.93rem;font-weight:500}
.consulta .cual span{color:var(--muted);font-weight:400}
.consulta .cerrar{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;
  border:0;background:var(--bg-2);color:var(--ink-soft);cursor:pointer;font-size:14px;line-height:1;
  display:flex;align-items:center;justify-content:center}
.consulta .cerrar:hover{background:var(--border);color:var(--ink)}
.consulta .campo{margin-bottom:14px}
.consulta .dos{display:grid;gap:14px}
@media(min-width:440px){.consulta .dos{grid-template-columns:1fr 1fr}}
.consulta label{display:block;font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--muted);font-weight:600;margin:0 0 6px}
.consulta label i{font-style:normal;text-transform:none;letter-spacing:0;opacity:.75}
.consulta input,.consulta select,.consulta textarea{width:100%;font-family:inherit;font-size:.95rem;
  color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:9px;padding:11px 12px}
.consulta input:focus,.consulta select:focus,.consulta textarea:focus{outline:2px solid rgba(178,58,40,.25);
  border-color:var(--red)}
.consulta textarea{resize:vertical;line-height:1.55}
.consulta .enviar{width:100%;margin-top:6px;padding:15px;border:0;border-radius:9px;cursor:pointer;
  background:var(--wa);color:#06341a;font-family:inherit;font-size:1rem;font-weight:600;
  transition:transform .16s,filter .16s}
.consulta .enviar:hover{transform:translateY(-1px);filter:brightness(1.05)}
.consulta .enviar:disabled{opacity:.65;cursor:wait;transform:none}
.consulta .nota{margin:.85rem 0 0;font-size:.8rem;color:var(--muted);text-align:center;line-height:1.5}
