/* ===================== Ficha de propiedad (diseño ejemplo-propiedad) ===================== */
body.ficha{ background:#fff; color:#20182d; }
.fp, .fp *{ box-sizing:border-box; }
.fp{ font-family:Montserrat,Arial,sans-serif; font-size:13px; color:#20182d; padding:36px 0 10px; }
.fp [hidden]{ display:none !important; }
.fp button, .fp input, .fp textarea{ font:inherit; }
.fp button{ cursor:pointer; }
.fp a{ color:#660066; }
.fp button:focus-visible, .fp a:focus-visible, .fp input:focus-visible, .fp textarea:focus-visible{ outline:3px solid #ca3bc5; outline-offset:3px; }
.fp-aviso{ max-width:1360px; margin:0 auto 14px; padding:12px 18px; border-radius:14px; background:#fef3c7; border:1px solid #fcd34d; color:#78350f; font-size:12px; }
.fp-migas{ max-width:1360px; margin:0 auto 12px; padding:0 12px; font-size:12px; }
.fp-migas a{ text-decoration:none; font-weight:600; }
.fp-migas a:hover{ text-decoration:underline; }
.fp-vacia{ max-width:560px; margin:60px auto; text-align:center; padding:0 20px; }
.fp-vacia h1{ font-size:24px; font-weight:600; margin:0 0 10px; }
.fp-vacia p{ color:#827e99; line-height:1.8; margin:0 0 22px; }
.fp-pill, .fp .pill{ display:inline-block; border:0; border-radius:99px; padding:11px 18px; background:#390042; color:#fff !important; text-decoration:none; font-weight:600; font-size:12px; }
.fp-pill:hover, .fp .pill:hover{ background:#660066; }

.shell{ max-width:1360px; margin:0 auto 40px; background:#fff; border:6px solid #fff; border-radius:30px; padding:12px; display:grid; grid-template-columns:230px minmax(0,1fr); gap:16px; }
.left{ display:flex; flex-direction:column; gap:14px; }
.box, .panel, .advisor{ background:#fff; border:1px solid #eadfea; box-shadow:0 8px 24px -18px rgba(57,0,66,.3); }
.box{ border-radius:20px; padding:20px; }
.left .box:first-child{ background:linear-gradient(145deg,#fff,#faf0fa); }
.eyebrow{ font-size:10px; letter-spacing:.1em; font-weight:600; color:#660066; margin:0 0 12px; }
.price{ font-size:26px; font-weight:600; letter-spacing:-1px; margin:0 0 6px; }
.currency{ font-size:11px; font-weight:400; letter-spacing:normal; color:#827e99; }
.id{ font-size:10px; color:#827e99; margin:0 0 18px; }
.status{ display:inline-flex; background:#f3dff3; color:#660066; font-size:10px; font-weight:600; border-radius:99px; padding:7px 12px; }
.facts{ display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:18px; }
.fact{ padding:13px 8px; background:#faf6fc; border-radius:14px; text-align:center; }
.fact svg{ width:20px; height:20px; display:block; margin:0 auto 9px; color:#660066; }
.fact strong{ font-size:15px; font-weight:600; display:block; }
.fact small{ display:block; color:#827e99; font-size:9px; margin-top:5px; line-height:1.5; }
.map-box{ padding:14px; }
.map-title{ font-weight:600; margin:4px 4px 12px; font-size:13px; }
.map{ height:220px; border-radius:14px; overflow:hidden; background:#eef0ec; position:relative; z-index:0; }
.map-tag{ position:absolute; bottom:12px; left:12px; right:12px; z-index:2; background:#fff; border-radius:10px; padding:9px; text-align:center; font-size:9px; color:#827e99; }
.map-address{ font-size:10px; line-height:1.8; color:#827e99; margin:12px 4px; }
.map-link, .action{ width:100%; display:block; text-align:center; padding:12px; border:0; border-radius:99px; font-size:11px; font-weight:600; margin-top:9px; text-decoration:none; }
.map-link{ background:#f3dff3; color:#660066; padding:10px; font-size:10px; font-weight:400; margin-top:0; }
.fp-pin{ display:block; width:18px; height:18px; border-radius:50%; background:#660066; border:3px solid #fff; box-shadow:0 2px 8px rgba(57,0,66,.5); }
.leaflet-container{ font-family:Montserrat,Arial,sans-serif; }

.main{ min-width:0; }
.gallery{ height:380px; position:relative; border-radius:22px; overflow:hidden; background:#b4a8bd; }
.gallery img{ width:100%; height:100%; object-fit:cover; display:block; }
.gallery-vacia{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg,#a3529e,#4d004d); }
.gallery-vacia svg{ width:70px; height:70px; opacity:.5; }
.gallery::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.1),transparent 35%,rgba(18,12,29,.76)); pointer-events:none; }
.gallery-top{ position:absolute; z-index:2; top:16px; left:18px; right:18px; display:flex; justify-content:space-between; align-items:center; }
.gallery-tag{ background:rgba(255,255,255,.92); padding:8px 12px; border-radius:99px; font-size:10px; color:#660066; }
.icon-button{ width:34px; height:34px; border:0; border-radius:50%; background:#fff; display:grid; place-items:center; font-size:18px; color:#660066; padding:0; line-height:1; }
.icon-button:hover{ background:#f3dff3; }
.fp .favorite[aria-pressed=true]{ background:#660066; color:#fff; }
.favorite:disabled{ opacity:.6; cursor:wait; }
.photo-count{ position:absolute; z-index:2; right:18px; top:65px; background:rgba(20,12,30,.6); color:#fff; font-size:10px; padding:7px 10px; border-radius:99px; }
.gallery-title{ position:absolute; z-index:2; bottom:22px; left:24px; right:100px; color:#fff; }
.gallery-title h1{ font-size:30px; font-weight:500; letter-spacing:-1px; line-height:1.2; margin:0 0 8px; color:#fff; }
.gallery-title p{ font-size:11px; margin:0; color:#eee5f0; }
.gallery-actions{ position:absolute; z-index:2; right:18px; bottom:20px; display:flex; gap:7px; }

.content{ display:grid; grid-template-columns:minmax(0,1fr) 285px; gap:14px; margin-top:14px; }
.tabs{ display:flex; gap:7px; flex-wrap:wrap; margin-bottom:12px; padding:6px; border:1px solid #eee5f0; background:#faf6fc; border-radius:24px; }
.tab{ padding:11px 14px; border:0; border-radius:99px; background:#fff; color:#827e99; font-size:11px; }
.tab[aria-selected=true]{ background:#390042; color:#fff; }
.panel{ background:#fdfbfe; border-radius:20px; padding:24px; min-height:290px; }
.panel h2{ font-size:17px; font-weight:600; margin:0 0 15px; letter-spacing:-.3px; }
.panel p{ font-size:12px; line-height:1.95; color:#827e99; margin:0 0 16px; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ padding:8px 11px; background:#faf0fa; color:#660066; font-size:10px; border-radius:9px; }
.amenities{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.amenities li{ font-size:11px; line-height:1.7; color:#827e99; }
.amenities li:before{ content:'✓'; color:#660066; margin-right:8px; }
.near{ display:flex; justify-content:space-between; gap:12px; padding:14px 0; border-bottom:1px solid #eee5f0; font-size:11px; }

.advisor{ background:#faf6fc; border-radius:20px; padding:20px; align-self:start; }
.advisor h2{ font-size:15px; font-weight:600; margin:0 0 18px; }
.person{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.avatar{ width:48px; height:48px; flex:none; display:grid; place-items:center; background:#f3dff3; color:#660066; border-radius:16px; font-size:15px; font-weight:600; object-fit:cover; }
.person strong{ display:block; font-size:12px; font-weight:600; }
.person small{ display:block; font-size:10px; color:#827e99; margin-top:5px; }
.advisor p{ font-size:11px; color:#827e99; line-height:1.8; }
.whatsapp{ background:#e5f7ee; color:#176941 !important; }
.secondary{ background:#faf0fa; color:#660066 !important; }
.advisor-form label{ display:block; font-size:11px; margin:10px 0 6px; }
.advisor-form input, .advisor-form textarea{ width:100%; min-width:0; border:1px solid #e5dbe9; border-radius:10px; padding:9px; background:#fff; font-size:11px; color:#20182d; }
.advisor-form textarea{ min-height:70px; resize:vertical; padding:10px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.form-row > div{ min-width:0; }
.advisor-form .pill{ color:#fff; }
.advisor-form .pill:disabled{ opacity:.6; cursor:wait; }
#advisor-result{ margin:12px 0 0; padding:10px 12px; border-radius:10px; font-size:11px; line-height:1.6; text-align:center; background:#e5f7ee; color:#176941; }
#advisor-result.error{ background:#fef2f2; color:#991b1b; }
.trampa{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.similar{ max-width:1360px; margin:0 auto 32px; padding:24px; background:#faf6fc; border:1px solid #eadfea; border-radius:24px; }
.similar-header{ display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:20px; }
.similar-header h2{ font-size:23px; font-weight:600; letter-spacing:-.5px; margin:0; }
.similar-header .eyebrow{ margin-bottom:8px; }
.similar-controls{ display:flex; gap:8px; }
.similar-controls button{ border:1px solid #eadfea; }
.similar-track{ display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:12px; }
.similar-track::-webkit-scrollbar{ display:none; }
.similar-card{ flex:0 0 calc((100% - 48px)/4); min-width:230px; background:#fff; border:1px solid #eee5f0; border-radius:18px; overflow:hidden; scroll-snap-align:start; }
.similar-card img, .similar-sinfoto{ width:100%; height:150px; object-fit:cover; display:block; }
.similar-sinfoto{ display:flex; align-items:center; justify-content:center; background:#eee3f3; color:#a3529e; }
.similar-sinfoto svg{ width:34px; height:34px; }
.similar-body{ padding:16px; }
.similar-body small{ font-size:9px; color:#660066; }
.similar-body h3{ font-size:13px; font-weight:600; line-height:1.5; margin:10px 0; }
.similar-price{ font-size:16px; color:#390042; font-weight:600; margin:0 0 10px; }
.similar-features{ font-size:10px; color:#827e99; margin:0 0 12px; min-height:15px; }

.fp dialog{ border:0; border-radius:24px; padding:26px; width:min(440px,calc(100% - 32px)); color:#20182d; }
.fp dialog::backdrop{ background:rgba(30,15,40,.45); }
.fp dialog h2{ font-size:19px; margin:0 0 12px; }
.fp .close{ float:right; background:#faf0fa; border:0; border-radius:50%; width:30px; height:30px; color:#660066; }
.fp #gallery-dialog{ width:min(900px,calc(100% - 32px)); }
.fp #gallery-dialog img{ display:block; width:100%; max-height:65vh; object-fit:contain; border-radius:16px; }
.dialog-nav{ display:flex; justify-content:center; gap:12px; margin-top:14px; }

@media (max-width:1400px){ .similar{ margin-left:18px; margin-right:18px; } }
@media (max-width:1150px){
  .shell{ grid-template-columns:210px minmax(0,1fr); margin-left:18px; margin-right:18px; }
  .content{ grid-template-columns:minmax(0,1fr) 250px; }
  .gallery-title h1{ font-size:26px; }
  .panel{ padding:20px; }
  .advisor{ padding:16px; }
}
@media (max-width:950px){
  .content{ grid-template-columns:1fr; }
  .advisor{ display:block; }
  .gallery{ height:350px; }
  .similar-card{ flex-basis:calc((100% - 32px)/3); }
}
@media (max-width:650px){
  .shell{ grid-template-columns:1fr; margin:0 12px 24px; padding:8px; border-width:4px; border-radius:24px; }
  .left{ order:2; }
  .main{ order:1; }
  .facts{ grid-template-columns:repeat(3,1fr); }
  .map{ height:180px; }
  .gallery{ height:310px; }
  .gallery-title{ left:18px; right:70px; }
  .gallery-title h1{ font-size:23px; }
  .amenities{ grid-template-columns:1fr; }
  .panel{ min-height:0; }
  .similar{ padding:18px; margin-left:12px; margin-right:12px; }
  .similar-card{ flex-basis:80%; }
  .similar-header h2{ font-size:20px; }
  .fp-migas{ padding:0 18px; }
  .fp{ padding-top:22px; }
}
@media (prefers-reduced-motion:reduce){ .fp *{ transition:none !important; } }

/* Mapa estándar con los colores bajados para que combine con el diseño */
.mapa-suave .leaflet-tile-pane{ filter:grayscale(.75) saturate(.7) brightness(1.05) contrast(.92); }
