Licencia CBR PN-5737
Duran Real Estate

Inversión inmobiliaria y seguridad jurídica en Panamá

Compra, venta y alquiler de propiedades exclusivas y titulación de tierras ANATI. Servicio bilingüe para inversionistas locales e internacionales.

Ver Propiedades

PN-5737

Licencia oficial CBR, Panamá

$8.2M+

Portafolio en gestión

ES / EN

Atención bilingüe

ANATI

Especialistas en titulación

Listados verificados

Propiedades disponibles

Venta, alquiler y terrenos con estatus legal verificado bajo la Licencia CBR PN-5737. Abra cualquier propiedad para ver detalles y agendar visita.

Nuestros servicios inmobiliarios

Un solo interlocutor para comprar, vender, titular y proteger su inversión en Panamá, con respaldo legal en cada etapa.

Nota de transparencia legal: La firma cuenta con Licencia de Corredor de Bienes Raíces PN-5737 en Panamá. Los servicios legales especializados de la plataforma son ejecutados o delegados a abogados socios y aliados estratégicos con idoneidad en la República de Panamá, asignados puntualmente según la especialidad requerida.

Venta residencial

Casas, apartamentos, terrenos, house flippings y derechos posesorios.

Trámites ANATI

Titulación de tierras, deslinde, cesión de derechos posesorios y certificaciones.

Asesoría legal inmobiliaria

Servicios legales trabajados o delegados a socios de la firma según la especialidad y necesidad requerida en cada momento.

Administración de P.H. y alquileres

Gestión de edificios y de propiedades en renta. Cotice en línea más abajo.

Administración de P.H.

Tres modalidades según el tamaño del edificio, el presupuesto de la junta y el nivel de presencia que necesita. Calcule un estimado con tarifas de referencia del mercado panameño y reciba la cotización final por WhatsApp.

Ver el servicio completo de administración de P.H. → · Guía de la Ley 284 →

Apartamentos, locales o casas dentro del régimen de propiedad horizontal.

Modalidad

Sirve para ver qué porcentaje del presupuesto mensual representa la administración.

Estimado mensual de administración

$0

$0 por unidad al mes

Indique la cuota promedio para ver el peso en el presupuesto.

    Comparativo de modalidades para su edificio

    Estimados referenciales basados en tarifas de mercado de Panamá (tarifa por unidad con mínimo mensual por modalidad). La cotización final depende del estado del edificio, personal existente y alcance acordado con la junta directiva.

    Rentabilice sin complicaciones

    Administración de propiedades en alquiler

    Ya sea que ya tenga una propiedad generando renta o que esté comprando para invertir, nos encargamos de todo el ciclo del alquiler. Usted solo recibe el depósito cada mes.

    Publicación y marketing

    Fotos, anuncio y promoción en los portales relevantes de Panamá.

    Selección de inquilinos

    Entrevista, referencias y contrato de arrendamiento.

    Cobro mensual de la renta

    Seguimiento de pagos y depósito directo al propietario.

    Mantenimiento e inspecciones

    Coordinación de reparaciones y visitas periódicas.

    Administración (%)

    Colocación de inquilino

    Neto mensual para usted

    Estimado referencial. La tarifa final puede variar según tipo de propiedad, ubicación y condiciones; se confirma en la cotización.

    Trámites ANATI

    Asesoría técnica y legal para regularizar, titular y sanear propiedades ante la Autoridad Nacional de Administración de Tierras.

    Titulación de tierras

    Conversión de derechos posesorios a título de propiedad inscrito en el Registro Público. El trámite que más valor agrega a una finca en Panamá.

    Deslinde y amojonamiento

    Levantamiento topográfico y plano catastral con agrimensores idóneos certificados.

    Cesión de derechos

    Contratos de mejoras con autenticación notarial y validación técnica ante registros públicos.

    Certificaciones

    Paz y salvo, estado de finca y calificación de tierras ante registros públicos.

    Segregación de fincas

    División de fincas matrices en unidades independientes para venta parcial o planificación.

    Consultas y estudios de título

    Informes catastrales y estudios de título previos a la compra de tierras en Panamá. Sepa exactamente qué está comprando antes de firmar.

    Conocimiento del mercado

    Centro de artículos

    Hablemos de su inversión

    Henry Isaac Durán Rowe atiende personalmente cada consulta. Respuesta en menos de 24 horas.

    +507 6929-7200 info@duranrealestate.com
    Ciudad de Panamá, República de Panamá
    \n","link":"https://duranrealestate.net/asistir-asamblea-ph-desde-el-extranjero/"},{"cat":"Marco Legal","catI":"fa-gavel","title":"Vivo fuera de Panamá y tengo apartamento: tras el sismo","date":"15 de October, 2026","read":"3 min de lectura","body":"
    \n
    Respuesta corta: Si tienes un apartamento en Panamá y nadie puede ir a verlo, en las primeras 72 horas haz cinco cosas: escribe al administrador, pide el estado de seguridad del edificio por escrito, consigue a alguien de confianza que fotografíe tu unidad, revisa los plazos de tu seguro y nombra a quien te represente en la asamblea. No hace falta viajar solo para mirar; casi todo se resuelve a distancia con un representante local.
    \n

    1. Escribe al administrador (día 1)

    \n

    Por correo y WhatsApp, pregunta si el edificio fue inspeccionado, si se puede ocupar y si se convocará una asamblea extraordinaria. Si no hay administrador, escribe a la junta directiva. Guarda todo por escrito.

    \n

    2. Pide el estado de seguridad por escrito

    \n

    No te quedes con “está bien”. Pregunta si un ingeniero estructural o la autoridad revisó el edificio y pide el informe o un resumen. Mientras no esté habilitado, no se debe entrar a zonas dañadas. Más en ¿puedo volver a mi apartamento después del sismo?.

    \n

    3. Que fotografíen tu unidad

    \n

    Necesitas fotos con fecha y una nota escrita: grietas en paredes y techos, puertas o ventanas que no cierran, filtraciones, objetos caídos. Puede hacerlo alguien de confianza o una administradora. No autorices a un vecino a abrir tu unidad sin dejarlo por escrito.

    \n

    4. Revisa tu seguro

    \n

    Normalmente hay dos pólizas: la del edificio (la contrata la asamblea) y la tuya, si la tienes. Ambas tienen plazo para reportar. Envía un aviso escrito ahora. Ver seguro contra terremoto en un P.H..

    \n

    5. Nombra quien te represente en la asamblea

    \n

    Después de un sismo suele haber asamblea extraordinaria para decidir reparaciones y, quizás, una cuota extraordinaria. Si no puedes asistir, normalmente puedes hacerlo con una autorización escrita o poder, y muchos edificios permiten asistencia virtual. Ver cómo asistir a la asamblea desde el extranjero.

    \n

    Lo que no debes hacer

    \n\n

    Cómo ayudamos

    \n

    Duran Real Estate atiende a propietarios en el exterior en español e inglés: informe fotográfico de tu unidad, representación en la asamblea de emergencia con tu autorización escrita y resumen claro de lo acordado. También administramos edificios completos y unidades en alquiler.

    \n

    Cotiza por WhatsApp

    \n

    Preguntas frecuentes

    \n

    ¿Puedo estar representado en la asamblea si vivo fuera?

    \n

    Normalmente sí, con autorización escrita y, en muchos edificios, asistencia virtual. Confirma los requisitos en el reglamento y con un abogado panameño.

    \n

    ¿Quién paga los daños del sismo en el edificio?

    \n

    Las áreas comunes las pagan los propietarios en conjunto (seguro o cuota extraordinaria); lo interior de tu unidad es tuyo. Ver quién paga los daños.

    \n

    ¿Tengo que viajar a Panamá?

    \n

    Muchas veces no. Un representante local inspecciona, reporta y asiste por ti.

    \n

    Información general, no asesoría legal. Consulta a un abogado panameño.

    \n

    Lee también

    \n\n

    English version: I own a condo in Panama and live abroad: what to do after an earthquake.

    \n

    \n","link":"https://duranrealestate.net/vivo-fuera-de-panama-apartamento-sismo/"},{"cat":"Mercado Inmobiliario","catI":"fa-chart-bar","title":"Condo Inspection Report for Owners Abroad in Panama","date":"15 de October, 2026","read":"2 min de lectura","body":"
    \n

    Short answer: A useful post-earthquake report for an owner abroad is a dated, photographed, written account of your unit: what you can see, what it means, and what to do next. A visual report is not a structural engineering certificate. If you see signs of structural damage, a licensed engineer must assess the building.

    \n

    What a good visual report contains

    \n
      \n
    1. Date, time and who inspected.
    2. \n
    3. Exterior and access: entrance, stairs, elevators in service or not, notices posted by the building.
    4. \n
    5. Inside the unit, room by room: cracks in walls, ceilings and floors (with a coin or ruler in the photo for scale); doors and windows that jam; ceiling or light fixtures loose; fallen items.
    6. \n
    7. Water and electricity: leaks, wet spots, tripped breakers, gas or water smells. Report immediately.
    8. \n
    9. Photos and short video of every item, with a location note.
    10. \n
    11. A plain summary: what looks cosmetic, what looks worrying, and what you recommend.
    12. \n
    \n

    What a visual report cannot say

    \n

    It cannot certify that the structure is safe. Diagonal cracks in columns or beams, a leaning building, or large cracks that open and close need a structural engineer. See what to do with a cracked column and cracked walls after an earthquake.

    \n

    What to do with the report

    \n\n

    How we help

    \n

    We send owners abroad a bilingual photo report within the agreed time, we flag what needs an engineer, and we can follow up on insurance and building communications for you.

    \n

    Ask on WhatsApp

    \n

    Frequently asked questions

    \n

    Is a photo report valid for the insurance company?

    \n

    It supports your claim, but the insurer may require its own adjuster. Report within your policy deadline.

    \n

    How often should an owner abroad have the unit checked?

    \n

    After any incident, and otherwise on a regular schedule such as monthly or quarterly.

    \n

    General information, not legal or engineering advice.

    \n

    Related guides

    \n\n

    \n","link":"https://duranrealestate.net/condo-inspection-report-panama-owners-abroad/"}]; const USD = new Intl.NumberFormat('en-US', { style:'currency', currency:'USD', maximumFractionDigits:0 }); const USD2 = new Intl.NumberFormat('en-US', { style:'currency', currency:'USD' }); /* ===== Portafolio ===== */ function filt(btn){ document.querySelectorAll('.flt-btn').forEach(b=>{b.classList.remove('sel');b.setAttribute('aria-pressed','false');}); btn.classList.add('sel'); btn.setAttribute('aria-pressed','true'); const cat=btn.dataset.cat; document.querySelectorAll('.prop-card').forEach(c=>{c.style.display=(cat==='all'||c.dataset.cat===cat)?'':'none';}); } let curP=0; function openProp(i,e){ if(e){ if(e.ctrlKey||e.metaKey||e.shiftKey||e.button===1) return true; e.preventDefault(); } curP=i; const p=PROPS[i]; if(!p) return false; document.getElementById('pm-photo').src=p.photo; document.getElementById('pm-photo').alt=p.title; document.getElementById('pm-badge').textContent=p.badge; document.getElementById('pm-price').textContent=p.price; document.getElementById('pm-loc').innerHTML=`${p.loc}`; document.getElementById('pm-title').textContent=p.title; document.getElementById('pm-desc').textContent=p.desc; document.getElementById('pm-legal').textContent=p.legal; document.getElementById('pm-wa').href=`https://wa.me/50769297200?text=${p.wa}`; document.getElementById('pm-more').href=p.permalink; const st=document.getElementById('pm-stats'); st.innerHTML=''; [{i:'fa-ruler-combined',l:'Área',v:p.areaLabel},{i:'fa-tag',l:'Precio',v:p.price},{i:'fa-location-dot',l:'Zona',v:p.loc.split(',')[0]}].forEach(s=>{ st.innerHTML+=`

    ${s.l}

    ${s.v}

    `; }); document.getElementById('pm-feats').innerHTML=(p.features||[]).map(f=>`
  • ${f}
  • `).join(''); document.getElementById('prop-modal').classList.add('open'); document.body.style.overflow='hidden'; return false; } function closeProp(){document.getElementById('prop-modal').classList.remove('open');document.body.style.overflow='';} function closePropOut(e){if(e.target===document.getElementById('prop-modal'))closeProp();} function bookFromProp(){closeProp();triggerBooking();} /* ===== Artículos ===== */ function openArt(i,e){ if(e){ if(e.ctrlKey||e.metaKey||e.shiftKey||e.button===1) return true; e.preventDefault(); } const a=ARTS[i];if(!a)return false;document.getElementById('a-cat').innerHTML=`${a.cat}`;document.getElementById('a-title').textContent=a.title;document.getElementById('a-date').textContent=a.date;document.getElementById('a-read').textContent=a.read;document.getElementById('a-body').innerHTML=a.body;document.getElementById('a-more').href=a.link;document.getElementById('art-modal').classList.add('open');document.body.style.overflow='hidden';return false;} function closeArt(){document.getElementById('art-modal').classList.remove('open');document.body.style.overflow='';} function closeArtOut(e){if(e.target===document.getElementById('art-modal'))closeArt();} /* ===== Agendar cita ===== */ let selD=null,selT=null,bvt='video'; let calM=new Date().getMonth(),calY=new Date().getFullYear(); const MN=['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre']; const DN=['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado']; /* Apariencia → Personalizar → "Reservas / Agendar Cita": 1) enlace directo (Google Calendar, Calendly, etc.) si está configurado 2) si no, Cal.com si está configurado 3) si no, el calendario propio del sitio */ const DURAN_BOOKING_LINK = "https:\/\/calendar.app.google\/Vjof5wtpLutCbJck6"; const DURAN_CALCOM_LINK = ""; function triggerBooking(){ if (DURAN_BOOKING_LINK) { window.open(DURAN_BOOKING_LINK, '_blank'); } else if (DURAN_CALCOM_LINK && window.Cal) { Cal('modal', { calLink: DURAN_CALCOM_LINK, config: { layout: 'month_view' } }); } else { openBook(); } } function openBook(){document.getElementById('book-modal').classList.add('open');document.body.style.overflow='hidden';renderCal();} function closeBook(){document.getElementById('book-modal').classList.remove('open');document.body.style.overflow='';} function closeBookOut(e){if(e.target===document.getElementById('book-modal'))closeBook();} const STEP_LABELS={1:'Paso 1: fecha y hora',2:'Paso 2: sus datos',3:'Paso 3: confirmación'}; function goStep(n){ [1,2,3].forEach(i=>{document.getElementById('bs'+i).classList.remove('act');const d=document.getElementById('sd'+i);d.classList.remove('act','done');}); document.getElementById('bs'+n).classList.add('act'); for(let i=1;i11){calM=0;calY++;}if(calM<0){calM=11;calY--;}renderCal();} function renderCal(){ const today=new Date(); const first=new Date(calY,calM,1); const last=new Date(calY,calM+1,0); let dow=first.getDay();dow=dow===0?6:dow-1; document.getElementById('cml').textContent=`${MN[calM]} ${calY}`; const g=document.getElementById('calg');g.innerHTML=''; for(let i=0;ipickD(td,cell); g.appendChild(cell); } } function pickD(date,cell){ selD=date;selT=null; document.querySelectorAll('.cday').forEach(c=>c.classList.remove('sel')); cell.classList.add('sel'); document.getElementById('tsl').textContent=`${DN[date.getDay()]} ${date.getDate()} de ${MN[date.getMonth()]}`; document.getElementById('tsw').classList.remove('hidden'); const slots=['9:00 AM','10:00 AM','11:00 AM','2:00 PM','3:00 PM','4:00 PM']; const tg=document.getElementById('tsg');tg.innerHTML=''; slots.forEach(s=>{const el=document.createElement('button');el.className='tslot';el.textContent=s;el.onclick=()=>pickT(s,el);tg.appendChild(el);}); document.getElementById('bs1n').disabled=true; } function pickT(t,el){selT=t;document.querySelectorAll('.tslot').forEach(s=>s.classList.remove('sel'));el.classList.add('sel');document.getElementById('bs1n').disabled=false;} function buildConf(){ if(!selD||!selT)return; const dt=`${DN[selD.getDay()]}, ${selD.getDate()} de ${MN[selD.getMonth()]} ${selD.getFullYear()} · ${selT}`; document.getElementById('c-dt').textContent=dt; document.getElementById('c-mode').textContent=bvt==='video'?'Videollamada':'Visita presencial'; const name=document.getElementById('b-name').value||'Inversionista'; const prop=document.getElementById('b-prop').value; const msg=encodeURIComponent(`Hola Henry, soy ${name}. Confirmo mi cita:\nFecha: ${dt}\nModalidad: ${bvt==='video'?'Videollamada':'Presencial'}${prop?`\nInterés: ${prop}`:''}`); document.getElementById('c-wa').href=`https://wa.me/50769297200?text=${msg}`; } /* ===== Cotizador de Administración de P.H. (tarifas: Apariencia → Personalizar) ===== */ const PH_RATES = {"offsite_unit":6,"offsite_min":350,"medio_unit":9,"medio_min":700,"planta_unit":16,"planta_min":1900,"extra_amenidades_pct":8,"extra_torres_pct":12}; const PH_PLANS = { offsite: { name:'Administración Off-Site (puntual)', short:'Visitas puntuales', desc:'Administración remota con visitas puntuales al edificio solo cuando se requiere. Ideal para P.H. pequeños, de bajo movimiento, o para juntas que ya tienen conserjería propia y solo necesitan la parte administrativa y legal.', bullets:['Visitas programadas al edificio, no diarias','Gestión administrativa, contable y legal remota','Atención a reuniones de junta y asambleas','Menor costo mensual para P.H. de bajo movimiento'] }, medio: { name:'Administrador a medio tiempo', short:'Horario parcial', desc:'Una persona asignada en jornada parcial, con horario fijo y visitas programadas según el movimiento del edificio. Un balance entre presencia constante y costo, pensado para P.H. medianos.', bullets:['Horario fijo acordado con la junta directiva','Gestión de cuotas, pagos y proveedores','Reportes periódicos a la junta de propietarios','Disponibilidad telefónica fuera de horario'] }, planta: { name:'Administrador de planta + subcoordinador', short:'Presencia diaria', desc:'Un administrador de planta y un subcoordinador dedicados exclusivamente a su edificio, presentes en el sitio todos los días hábiles. Ideal para P.H. grandes, torres con muchas unidades o edificios con alta rotación de visitantes y proveedores.', bullets:['Presencia física diaria en el edificio','Subcoordinador de respaldo para cobertura continua','Supervisión de personal de conserjería y mantenimiento','Atención inmediata a propietarios y residentes'] }, }; let phPlan='planta', phAmen=false, phTorres=false; function phUnits(){ return Math.max(1, parseInt(document.getElementById('ph-units').value,10) || 0); } function phEstimate(plan, units){ const r=PH_RATES; const base=Math.max(r[plan+'_min'], units*r[plan+'_unit']); let pct=0; if(phAmen) pct+=r.extra_amenidades_pct; if(phTorres) pct+=r.extra_torres_pct; return base*(1+pct/100); } function setPHPlan(p){ phPlan=p; ['offsite','medio','planta'].forEach(k=>{const b=document.getElementById('ph-seg-'+k);b.classList.toggle('sel',k===p);b.setAttribute('aria-pressed',k===p?'true':'false');}); calcPH(); } function togglePH(which){ if(which==='amen') phAmen=!phAmen; else phTorres=!phTorres; const b=document.getElementById('ph-tg-'+which); const on=which==='amen'?phAmen:phTorres; b.setAttribute('aria-pressed', on?'true':'false'); b.querySelector('.toggle-switch').classList.toggle('on', on); b.classList.toggle('border-g-500/50', on); calcPH(); } function calcPH(){ const units=phUnits(); const est=phEstimate(phPlan, units); document.getElementById('ph-total').textContent=USD.format(est); document.getElementById('ph-unit-cost').textContent=USD2.format(est/units); const cuota=parseFloat(document.getElementById('ph-cuota').value)||0; const bud=document.getElementById('ph-budget'); if(cuota>0){ const pct=est/(cuota*units)*100; bud.innerHTML=`Aprox. ${pct.toFixed(1)}% del presupuesto mensual (${USD.format(cuota*units)})`; } else { bud.textContent='Indique la cuota promedio para ver el peso en el presupuesto.'; } const plan=PH_PLANS[phPlan]; document.getElementById('ph-plan-name').textContent=plan.name; document.getElementById('ph-plan-desc').textContent=plan.desc; document.getElementById('ph-plan-bullets').innerHTML=plan.bullets.map(b=>`
  • ${b}
  • `).join(''); document.getElementById('ph-compare').innerHTML=['offsite','medio','planta'].map(k=>{ const v=phEstimate(k,units); const sel=k===phPlan; return ``; }).join(''); } calcPH(); /* ===== Modal de cotización P.H. ===== */ let phqPlan = 'planta'; function openPHQuote(plan){ setPHQPlan(plan || phPlan); const u=document.getElementById('phq-units'); if(!u.value) u.value=phUnits(); updatePHQEstimate(); document.getElementById('phq-error').classList.add('hidden'); document.getElementById('phq-modal').classList.add('open'); document.body.style.overflow='hidden'; } function closePHQ(){document.getElementById('phq-modal').classList.remove('open');document.body.style.overflow='';} function closePHQOut(e){if(e.target===document.getElementById('phq-modal'))closePHQ();} function setPHQPlan(plan){ phqPlan = plan; ['planta','medio','offsite'].forEach(p=>{ const el = document.getElementById('phq-plan-'+p); if(!el) return; el.classList.toggle('sel', p===plan); el.setAttribute('aria-pressed', p===plan ? 'true' : 'false'); }); updatePHQEstimate(); } function updatePHQEstimate(){ const units=Math.max(1, parseInt(document.getElementById('phq-units').value,10)||phUnits()); const est=phEstimate(phqPlan, units); document.getElementById('phq-est-amt').textContent=USD.format(est)+'/mes'; document.getElementById('phq-est-plan').textContent=`${PH_PLANS[phqPlan].name} · ${units} unidades`; } function sendPHQuote(e){ e.preventDefault(); const building = document.getElementById('phq-building').value.trim(); const units = document.getElementById('phq-units').value.trim(); const name = document.getElementById('phq-name').value.trim(); const wa = document.getElementById('phq-wa').value.trim(); const email = document.getElementById('phq-email').value.trim(); const extra = document.getElementById('phq-msg').value.trim(); const err = document.getElementById('phq-error'); if(!building || !units || !name || !wa){ err.textContent='Complete el nombre del P.H., número de unidades, su nombre y WhatsApp.'; err.classList.remove('hidden'); return false; } err.classList.add('hidden'); const est=phEstimate(phqPlan, Math.max(1,parseInt(units,10)||1)); const extras=[phAmen?'amenidades':null, phTorres?'más de una torre':null].filter(Boolean).join(', '); let msg = `Hola Henry, quiero una cotización de Administración de P.H.\n`; msg += `Modalidad: ${PH_PLANS[phqPlan].name}\n`; msg += `Edificio: ${building}\n`; msg += `Unidades: ${units}${extras?` (${extras})`:''}\n`; msg += `Estimado en línea: ${USD.format(est)}/mes\n`; msg += `Contacto: ${name}`; if(email) msg += ` (${email})`; if(extra) msg += `\nDetalles: ${extra}`; window.open(`https://wa.me/50769297200?text=${encodeURIComponent(msg)}`, '_blank'); closePHQ(); return false; } /* ===== Administración de propiedades en alquiler ===== */ const PM_FEE_PCT = 9; const PM_PLACEMENT_PCT = 100; function calcPM(){ const rent = parseFloat(document.getElementById('pm-rent').value) || 0; const fee = rent * (PM_FEE_PCT / 100); const placement = rent * (PM_PLACEMENT_PCT / 100); const net = rent - fee; document.getElementById('pm-fee-pct').textContent = PM_FEE_PCT; document.getElementById('pm-fee-amt').textContent = USD2.format(fee); document.getElementById('pm-placement-amt').textContent = USD2.format(placement); document.getElementById('pm-net-amt').textContent = USD2.format(net); } calcPM(); function openPMQuote(){ const rentInput = document.getElementById('pm-rent').value; if(rentInput) document.getElementById('pmq-rent').value = rentInput; document.getElementById('pmq-error').classList.add('hidden'); document.getElementById('pmq-modal').classList.add('open'); document.body.style.overflow='hidden'; } function closePMQ(){document.getElementById('pmq-modal').classList.remove('open');document.body.style.overflow='';} function closePMQOut(e){if(e.target===document.getElementById('pmq-modal'))closePMQ();} function sendPMQuote(e){ e.preventDefault(); const situacion = document.getElementById('pmq-situacion').value; const property = document.getElementById('pmq-property').value.trim(); const rent = document.getElementById('pmq-rent').value.trim(); const name = document.getElementById('pmq-name').value.trim(); const wa = document.getElementById('pmq-wa').value.trim(); const email = document.getElementById('pmq-email').value.trim(); const err = document.getElementById('pmq-error'); if(!property || !rent || !name || !wa){ err.textContent='Complete la propiedad, el alquiler estimado, su nombre y WhatsApp.'; err.classList.remove('hidden'); return false; } err.classList.add('hidden'); const rentNum = parseFloat(rent) || 0; const fee = rentNum * (PM_FEE_PCT / 100); const placement = rentNum * (PM_PLACEMENT_PCT / 100); let msg = `Hola Henry, quiero una cotización de Administración de Propiedades en Alquiler.\n`; msg += `Situación: ${situacion}\n`; msg += `Propiedad: ${property}\n`; msg += `Alquiler mensual estimado: ${USD2.format(rentNum)}\n`; msg += `Tarifa de administración estimada (${PM_FEE_PCT}%): ${USD2.format(fee)}/mes\n`; msg += `Colocación de inquilino estimada (${PM_PLACEMENT_PCT}%): ${USD2.format(placement)}\n`; msg += `Contacto: ${name}`; if(email) msg += ` (${email})`; window.open(`https://wa.me/50769297200?text=${encodeURIComponent(msg)}`, '_blank'); closePMQ(); return false; } /* Cerrar cualquier modal con Escape */ document.addEventListener('keydown', e=>{ if(e.key!=='Escape') return; ['prop-modal','art-modal','phq-modal','pmq-modal','book-modal'].forEach(id=>{const m=document.getElementById(id); if(m.classList.contains('open')){ m.classList.remove('open'); document.body.style.overflow=''; }}); });