/* Estilo "Noche" — InmobiliariasBolivia */
body { font-family: Manrope, sans-serif; -webkit-tap-highlight-color: transparent; }
.font-display { font-family: Unbounded, sans-serif; }

/* Aparición suave */
.rv { opacity: 0; transform: translateY(20px) scale(.98); filter: blur(6px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1), filter .8s; }
.rv.visto { opacity: 1; transform: none; filter: none; }
@media (prefers-reduced-motion: reduce) { .rv { opacity: 1; transform: none; filter: none; transition: none; } }

/* Vidrio */
.vidrio { background: rgba(20,23,28,.74); backdrop-filter: blur(18px) saturate(1.4); -webkit-backdrop-filter: blur(18px) saturate(1.4); }
.brillo { background: radial-gradient(600px 300px at 20% 0%, rgba(212,255,58,.14), transparent 60%), radial-gradient(500px 300px at 90% 20%, rgba(80,120,255,.12), transparent 60%); }

/* Mapa oscuro */
.leaflet-container { background: #0B0D10; font-family: Manrope, sans-serif; }
.leaflet-tile-pane { filter: invert(1) hue-rotate(185deg) brightness(.78) contrast(.92) saturate(.35); }
.leaflet-control-zoom a { background: #14171C !important; color: #fff !important; border-color: #242832 !important; }
.leaflet-control-attribution { background: rgba(11,13,16,.7) !important; color: #8B93A1 !important; font-size: 10px; }
.leaflet-control-attribution a { color: #8B93A1 !important; }
.pin { transform: translate(-50%, -100%); background: #14171C; color: #fff; font: 700 12px Manrope, sans-serif; padding: 6px 11px; border-radius: 10px; border: 1px solid #2f3440; white-space: nowrap; transition: transform .25s, background .25s, color .25s; position: relative; cursor: pointer; }
.pin::after { content: ''; position: absolute; left: 50%; bottom: -5px; width: 8px; height: 8px; background: inherit; border-right: 1px solid #2f3440; border-bottom: 1px solid #2f3440; transform: translateX(-50%) rotate(45deg); }
.activo .pin, .pin.lima { background: #D4FF3A; color: #0B0D10; transform: translate(-50%, -100%) scale(1.15); box-shadow: 0 0 0 6px rgba(212,255,58,.18); }

/* Detalles */
.tarjeta img { transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.tarjeta:hover img { transform: scale(1.07); }
.chip.on { background: #D4FF3A; color: #0B0D10; border-color: #D4FF3A; }
.scroll-fino::-webkit-scrollbar { width: 6px; height: 0; }
.scroll-fino::-webkit-scrollbar-thumb { background: #2f3440; border-radius: 9px; }
details summary::-webkit-details-marker { display: none; }
details[open] .mas { transform: rotate(45deg); }
@keyframes pulso { 0%,100% { opacity: .5 } 50% { opacity: 1 } }
.pulso { animation: pulso 2s infinite; }
@keyframes gira { to { transform: rotate(360deg) } }
.cargando { width: 34px; height: 34px; border-radius: 50%; border: 3px solid #242832; border-top-color: #D4FF3A; animation: gira .8s linear infinite; }

/* Formularios */
.campo { width: 100%; background: #0B0D10; border: 1px solid #242832; border-radius: 14px; padding: 12px 14px; font-size: 15px; outline: none; color: #fff; transition: border-color .2s; }
.campo:focus { border-color: #D4FF3A; }
.etiqueta { display: block; font-size: 13px; color: #8B93A1; margin-bottom: 6px; font-weight: 600; }
select.campo { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #8B93A1 50%), linear-gradient(135deg, #8B93A1 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }

/* Modal */
.modal { transition: opacity .3s; }
.modal .caja { transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.modal.cerrado { opacity: 0; pointer-events: none; }
.modal.cerrado .caja { transform: translateY(40px); }
