/* Fraunces autoalojada (CSP: font-src 'self') · pesos 500/600/700 latin */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/fraunces-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/fraunces-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/fraunces-latin-700-normal.woff2) format('woff2')}
/* ============================================================
   KASITHA · kx-stitch-skin · v18.71
   Piel Stitch como CSS común, SCOPED bajo .kx-stitch.
   No redefine tokens globales: reutiliza los de app.css
   (--accent, --ink, --bg, --serif, --sans, --paper, --hairline…)
   para respetar la identidad de marca ya cargada (Fraunces+Inter
   autoalojadas). Solo aporta componentes nuevos.
   ============================================================ */

.kx-stitch{
  --stz-primary:var(--accent,#C8233C);
  --stz-primary-deep:#a30028;
  --stz-tint:#ffe1e0;
  --stz-hair:rgba(45,32,22,.12);
  --stz-hair2:rgba(45,32,22,.18);
  --stz-sh1:0 1px 2px rgba(35,25,18,.06);
  --stz-sh2:0 6px 20px rgba(35,25,18,.09);
  min-height:100vh;
  padding-bottom:110px; /* hueco para el pie fijo */
}

/* ---------- cabecera marca + progreso ---------- */
.kx-stitch .stz-top{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:18px 22px 6px}
.kx-stitch .stz-brand{font:700 20px var(--serif);color:var(--stz-primary);letter-spacing:.02em}
.kx-stitch .stz-wrap{max-width:640px;margin:0 auto;padding:4px 22px 30px}
.kx-stitch .stz-wrap.wide{max-width:960px}
.kx-stitch .stz-prog{margin:4px 0 24px}
.kx-stitch .stz-prog .row{display:flex;justify-content:space-between;font:700 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px}
.kx-stitch .stz-prog .row .r{color:var(--ink-mute)}
.kx-stitch .stz-prog .bar{height:5px;border-radius:99px;background:var(--stz-hair);overflow:hidden}
.kx-stitch .stz-prog .bar i{display:block;height:100%;background:var(--stz-primary);border-radius:99px;transition:width .25s ease}

/* ---------- titulares ---------- */
.kx-stitch .stz-h1{font:600 clamp(26px,3.6vw,38px)/1.12 var(--serif);text-align:center;letter-spacing:-.02em;margin:0 0 10px;color:var(--ink)}
.kx-stitch .stz-lead{text-align:center;color:var(--ink-soft);font:500 15px/1.6 var(--sans);max-width:480px;margin:0 auto 26px}
.kx-stitch .stz-lbl{font:700 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);margin:18px 2px 10px}

/* ---------- inputs píldora y selects ---------- */
.kx-stitch .stz-pill-wrap{position:relative;margin-bottom:14px}
.kx-stitch .stz-pill-wrap>svg{position:absolute;left:20px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--ink-mute);pointer-events:none}
.kx-stitch .stz-pill{width:100%;height:58px;border:1.5px solid var(--stz-hair2);background:var(--paper,#fff);border-radius:99px;padding:0 22px 0 52px;font:500 15.5px var(--sans);color:var(--ink);outline:0;box-sizing:border-box}
.kx-stitch .stz-pill:focus{border-color:var(--stz-primary);box-shadow:0 0 0 3px var(--stz-tint)}
.kx-stitch .stz-field .field-input,
.kx-stitch .field-input{border:1.5px solid var(--stz-hair2);background:var(--paper,#fff);border-radius:12px;font:500 14.5px var(--sans)}
.kx-stitch .field-input:focus{border-color:var(--stz-primary);box-shadow:0 0 0 3px var(--stz-tint)}
.kx-stitch select.field-input{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%238f6f6f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:38px}

/* selectores en cascada de zonas */
.kx-stitch .stz-selects{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.kx-stitch .stz-selects .zs-row{display:flex;flex-direction:column;gap:6px}
.kx-stitch .stz-selects .zs-label{font:700 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute)}
.kx-stitch .stz-selects .zs-select{height:52px;border:1.5px solid var(--stz-hair2);background:var(--paper,#fff);border-radius:12px;padding:0 38px 0 14px;font:500 14.5px var(--sans);color:var(--ink);outline:0;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%238f6f6f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 12px center}
.kx-stitch .stz-selects .zs-select:focus{border-color:var(--stz-primary);box-shadow:0 0 0 3px var(--stz-tint)}
.kx-stitch .stz-selects .zs-select:disabled{background-color:var(--raised,#f6f1ea);color:var(--ink-mute)}
@media(max-width:560px){.kx-stitch .stz-selects{grid-template-columns:1fr}}

.kx-stitch .zs-or{display:flex;align-items:center;gap:14px;margin:18px 0 14px;color:var(--ink-mute)}
.kx-stitch .zs-or::before,.kx-stitch .zs-or::after{content:"";flex:1;height:1px;background:var(--stz-hair)}
.kx-stitch .zs-or span{font:600 12.5px var(--sans);white-space:nowrap}

/* ---------- chips píldora grandes ---------- */
.kx-stitch .chip{background:var(--paper,#fff);border:1.5px solid var(--stz-hair2);border-radius:99px;padding:10px 16px;font:600 13.5px var(--sans);color:var(--ink-soft);transition:all .14s}
.kx-stitch .chip:hover{border-color:var(--stz-primary);color:var(--stz-primary)}
.kx-stitch .chip.accent.selected,.kx-stitch .chip.selected{background:var(--stz-tint);border-color:var(--stz-primary);color:var(--stz-primary-deep);font-weight:700}
.kx-stitch .stz-zone-chip{background:var(--stz-tint);color:var(--stz-primary-deep);border:1px solid transparent;border-radius:99px;padding:9px 14px;font:700 13.5px var(--sans);display:inline-flex;align-items:center;gap:8px}

/* ---------- toggle de segmentos (2 opciones) ---------- */
.kx-stitch .stz-seg{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:var(--raised,#f3ede7);border-radius:13px;padding:4px;margin:14px 0}
.kx-stitch .stz-seg button{border:0;background:transparent;border-radius:10px;padding:12px 8px;font:700 14px var(--sans);color:var(--ink-mute);cursor:pointer;transition:all .16s}
.kx-stitch .stz-seg button.on{background:var(--paper,#fff);color:var(--ink);box-shadow:var(--stz-sh1)}

/* ---------- tarjetas ---------- */
.kx-stitch .stz-card{background:var(--paper,#fff);border:1px solid var(--stz-hair);border-radius:16px;box-shadow:var(--stz-sh1);padding:18px}
.kx-stitch .stz-card.tint{background:var(--stz-tint);border-color:transparent}

/* tarjetas de rol (entrada) */
.kx-stitch .stz-roles{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:820px;margin:0 auto}
@media(max-width:640px){.kx-stitch .stz-roles{grid-template-columns:1fr}}
.kx-stitch .stz-role{position:relative;display:flex;flex-direction:column;text-align:left;background:var(--paper,#fff);border:1px solid transparent;border-radius:16px;overflow:hidden;box-shadow:var(--stz-sh2);cursor:pointer;padding:0;transition:transform .25s ease,border-color .25s ease}
.kx-stitch .stz-role:hover{transform:translateY(-2px);border-color:var(--stz-tint)}
.kx-stitch .stz-role .ph{width:100%;height:150px;overflow:hidden;position:relative;background:linear-gradient(24deg,#8a7460,#cbb096)}
.kx-stitch .stz-role .ph svg,.kx-stitch .stz-role .ph img{width:100%;height:100%;object-fit:cover;display:block}
.kx-stitch .stz-role .bd{padding:18px 20px 20px;display:flex;flex-direction:column;gap:6px;flex:1}
.kx-stitch .stz-role .bd h3{font:600 21px var(--serif);margin:0;color:var(--ink)}
.kx-stitch .stz-role .bd p{font:500 13.5px/1.55 var(--sans);color:var(--ink-soft);margin:0;flex:1}
.kx-stitch .stz-role .bd .go{font:700 13.5px var(--sans);color:var(--stz-primary);display:inline-flex;align-items:center;gap:6px;margin-top:10px}

/* ---------- toggles fila (privacidad) ---------- */
.kx-stitch .toggle-row{background:var(--paper,#fff);border:1.5px solid var(--stz-hair);border-radius:14px}

/* ---------- pie fijo Atrás / Siguiente ---------- */
.kx-stitch .sticky-bottom-cta{position:fixed;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--bg,#FBF7F2) 94%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--stz-hair);padding:14px 22px calc(14px + env(safe-area-inset-bottom));display:flex;justify-content:center;z-index:40}
.kx-stitch .sticky-bottom-cta .btn.btn-primary{background:var(--stz-primary);color:#fff;border:0;border-radius:99px;padding:15px 30px;font:700 15px var(--sans);box-shadow:var(--stz-sh2);max-width:640px;width:100%}
.kx-stitch .sticky-bottom-cta .btn.btn-primary:hover{background:var(--stz-primary-deep)}
.kx-stitch .sticky-bottom-cta .btn:disabled{opacity:.45}
.kx-stitch .sticky-bottom-cta .btn.btn-ghost{border-radius:99px;max-width:640px;width:100%}

/* topNav restilado dentro de la piel (conserva backTo/lógica) */
.kx-stitch .top-nav,.kx-stitch [class*="topnav"]{background:transparent}

/* ---------- resumen del anuncio (alta propietario) ---------- */
.kx-stitch .stz-2col{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:26px;align-items:start;max-width:960px;margin:0 auto;padding:0 22px}
@media(max-width:860px){.kx-stitch .stz-2col{grid-template-columns:1fr}.kx-stitch .stz-resume{display:none}}
.kx-stitch .stz-resume{position:sticky;top:16px;background:var(--paper,#fff);border:1px solid var(--stz-hair);border-radius:16px;box-shadow:var(--stz-sh1);overflow:hidden}
.kx-stitch .stz-resume .rph{height:130px;background:linear-gradient(135deg,#eef1e9,#e4ebf0);background-size:cover;background-position:center;position:relative}
.kx-stitch .stz-resume .rbadge{position:absolute;left:10px;top:10px;background:var(--stz-primary);color:#fff;font:700 10px var(--sans);letter-spacing:.08em;padding:4px 10px;border-radius:99px}
.kx-stitch .stz-resume .rbd{padding:14px 16px 16px}
.kx-stitch .stz-resume .rbd .rt{font:600 16px var(--serif);color:var(--ink);margin:0 0 4px;min-height:20px}
.kx-stitch .stz-resume .rbd .rm{font:500 12.5px var(--sans);color:var(--ink-soft);margin:0 0 2px}
.kx-stitch .stz-resume .rbd .rp{font:700 18px var(--serif);color:var(--stz-primary-deep);margin:8px 0 0}
.kx-stitch .stz-resume .rcap{font:700 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);padding:12px 16px 0}

/* ---------- mapa ---------- */
.kx-stitch .leaflet-map-wrap{border:1.5px dashed var(--stz-hair2);border-radius:16px;overflow:hidden;position:relative;background:var(--raised,#f6f1ea)}
.kx-stitch .map-empty-hint{position:absolute;inset:auto 12px 12px;text-align:center;font:600 12px var(--sans);color:var(--ink-mute);background:rgba(255,255,255,.85);border-radius:99px;padding:7px 12px;pointer-events:none}

/* ---------- estancias recomendadas (fotos propietario) ---------- */
.kx-stitch .sp-rooms{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:560px){.kx-stitch .sp-rooms{grid-template-columns:1fr}}
.kx-stitch .sp-room{display:flex;align-items:center;gap:12px;background:var(--paper,#fff);border:1.5px solid var(--stz-hair2);border-radius:14px;padding:12px 14px;text-align:left;cursor:pointer;transition:border-color .15s}
.kx-stitch .sp-room:hover{border-color:var(--stz-primary)}
.kx-stitch .sp-room.done{background:var(--stz-tint);border-color:transparent}
.kx-stitch .sp-room.next{border-color:var(--stz-primary)}

/* ---------- feed: toggle swipe/lista y tarjetas de lista ---------- */
.kx-feedtoggle{display:flex;justify-content:flex-end;margin:0 22px 8px}
.kx-feedtoggle .seg{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--raised,#f3ede7);border-radius:12px;padding:3px}
.kx-feedtoggle .seg button{border:0;background:transparent;border-radius:9px;padding:8px 14px;font:700 12.5px var(--sans);color:var(--ink-mute);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.kx-feedtoggle .seg button svg{width:14px;height:14px}
.kx-feedtoggle .seg button.on{background:var(--paper,#fff);color:var(--ink);box-shadow:0 1px 2px rgba(35,25,18,.08)}
.kx-feedlist{display:grid;grid-template-columns:1fr;gap:14px;margin:0 22px 20px}
@media(min-width:760px){.kx-feedlist{grid-template-columns:1fr 1fr}}
.kx-feedlist .fl-card{background:var(--paper,#fff);border:1px solid rgba(45,32,22,.1);border-radius:16px;overflow:hidden;box-shadow:0 1px 2px rgba(35,25,18,.06);cursor:pointer;text-align:left;padding:0;display:flex;flex-direction:column}
/* v18.72x: foto de la vista lista como <img> con proporción fija.
   Antes: tira de fondo de 170px que en PC quedaba ~3:1 y recortaba
   fatal las fotos verticales. aspect-ratio mantiene un encuadre 16:10
   a cualquier ancho; el <img> respeta la orientación EXIF. */
.kx-feedlist .fl-ph{aspect-ratio:16/10;max-height:280px;width:100%;position:relative;overflow:hidden;background:#e6d8c8}
.kx-feedlist .fl-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.kx-feedlist .fl-bd{padding:12px 14px 14px}
.kx-feedlist .fl-price{font:700 22px var(--serif);color:var(--ink);margin:0}
.kx-feedlist .fl-meta{font:500 12.5px var(--sans);color:var(--ink-soft);margin:4px 0 0}
.kx-feedlist .fl-fit{position:absolute;right:10px;top:10px;background:rgba(255,255,255,.92);border-radius:99px;font:800 11.5px var(--sans);color:var(--stz-primary-deep);padding:5px 10px}
.kx-feedlist .fl-flag{position:absolute;left:10px;top:10px;background:rgba(0,0,0,.55);color:#fff;border-radius:99px;font:700 10px var(--sans);letter-spacing:.06em;padding:4px 9px}

/* v18.73c · Lista según maqueta: píldora de encaje granate a la izquierda,
   título serif + precio, zona y specs con iconos */
.kx-feedlist .fl-fit{left:10px;right:auto;background:var(--accent);color:#fff}
.kx-feedlist .fl-fit::before{content:"♥ ";font-size:10px}
.kx-feedlist .fl-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.kx-feedlist .fl-title{font:700 19px var(--serif);letter-spacing:-.01em;color:var(--ink);margin:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kx-feedlist .fl-price{font:700 19px var(--serif);color:var(--accent-deep);margin:0;white-space:nowrap}
.kx-feedlist .fl-loc{font:500 13px var(--sans);color:var(--ink-soft);margin:3px 0 10px}
.kx-feedlist .fl-specs{display:flex;gap:16px;border-top:1px solid var(--hairline);
  padding-top:10px;font:600 12.5px var(--sans);color:var(--ink)}
.kx-feedlist .fl-specs span{display:inline-flex;align-items:center;gap:6px}
.kx-feedlist .fl-specs svg{width:16px;height:16px;color:var(--ink-soft)}

/* auditoría 17-jul: la cabecera del perfil desbordaba 22px en móvil */
.profile-head.stz-head{max-width:100%;box-sizing:border-box;overflow:hidden}
