{"id":569,"date":"2025-07-14T22:12:34","date_gmt":"2025-07-14T22:12:34","guid":{"rendered":"https:\/\/ahorroteca.com\/mx\/?page_id=569"},"modified":"2025-07-19T10:34:12","modified_gmt":"2025-07-19T10:34:12","slug":"simulador","status":"publish","type":"page","link":"https:\/\/ahorroteca.com\/mx\/simulador\/","title":{"rendered":"Simulador"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"569\" class=\"elementor elementor-569\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b70217e e-flex e-con-boxed e-con e-parent\" data-id=\"3b70217e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-72eee2c8 elementor-widget elementor-widget-heading\" data-id=\"72eee2c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Simulador<\/h1>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7f96022e e-flex e-con-boxed e-con e-parent\" data-id=\"7f96022e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7a35da4c elementor-widget elementor-widget-text-editor\" data-id=\"7a35da4c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<strong>Tu casa te espera.<\/strong> Consigue la hipoteca en tiempo r\u00e9cord.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-68dfff41 elementor-widget elementor-widget-button\" data-id=\"68dfff41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/ahorroteca.com\/mx\/contacto\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-phone-alt\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u00bfHablamos?<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2f24b6fa e-flex e-con-boxed e-con e-parent\" data-id=\"2f24b6fa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16ff60df elementor-widget elementor-widget-heading\" data-id=\"16ff60df\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span style=\"color: #1A73E8\">Calcula tu Hipoteca<\/span> Ideal al Instante<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-20465d8e e-con-full e-flex e-con e-child\" data-id=\"20465d8e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bd227dd elementor-widget elementor-widget-heading\" data-id=\"bd227dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Con nuestro simulador intuitivo, puedes estimar r\u00e1pidamente tus pagos mensuales y entender el impacto de diferentes tasas de inter\u00e9s y plazos. Ingresa los datos y visualiza el camino hacia tu nuevo hogar.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-371efea elementor-widget elementor-widget-html\" data-id=\"371efea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"mortgage-simulator-container\">\n    <div class=\"input-section\">\n        <h2>Simulador de Cr\u00e9dito Hipotecario<\/h2>\n        <p class=\"subtitle\">Calcula el pago de tu hipoteca personalizando los datos.<\/p>\n\n        <div class=\"form-group\">\n            <label for=\"loanAmount\">\u00bfCu\u00e1nto te gustar\u00eda solicitar de cr\u00e9dito? ($ MXN)<\/label>\n            <input type=\"text\" id=\"loanAmount\" class=\"currency-input\" placeholder=\"Ej. 1,000,000\">\n        <\/div>\n        \n        <div class=\"form-group\">\n            <label for=\"annualInterestRateInput\">Ingresa la tasa de inter\u00e9s anual (%):<\/label>\n            <input type=\"number\" id=\"annualInterestRateInput\" min=\"0\" step=\"0.1\" placeholder=\"Ej. 10\">\n        <\/div>\n\n        <div class=\"form-group\">\n            <label for=\"loanTerm\">Elige un plazo para pagar (A\u00f1os):<\/label>\n            <input type=\"number\" id=\"loanTerm\" min=\"1\" step=\"1\" placeholder=\"Ej. 10\">\n        <\/div>\n\n        <button id=\"calculateBtn\">Calcular<\/button>\n    <\/div>\n\n    <div class=\"output-section\">\n        <h2 class=\"main-loan-amount\">CR\u00c9DITO SOLICITADO <span id=\"displayLoanAmount\">$0.00 MXN<\/span><\/h2>\n        \n        <div class=\"output-details-box\">\n            <h3>Detalle de tu Cuota<\/h3>\n            <div class=\"result-item\">\n                <span>Pago mensual estimado:<\/span>\n                <span id=\"monthlyPayment\">$0.00 MXN<\/span>\n            <\/div>\n            <div class=\"result-item\">\n                <span>Total pagado (Capital + Intereses):<\/span>\n                <span id=\"totalPaid\">$0.00 MXN<\/span>\n            <\/div>\n            <div class=\"result-item\">\n                <span>Total de Intereses:<\/span>\n                <span id=\"totalInterest\">$0.00 MXN<\/span>\n            <\/div>\n            <div class=\"result-item\">\n                <span>Tasa de inter\u00e9s anual ingresada:<\/span>\n                <span id=\"displayInterestRate\">0.00%<\/span>\n            <\/div>\n        <\/div>\n\n        <button id=\"showAmortizationTableBtn\">Ver tabla de amortizaci\u00f3n<\/button>\n\n        <div id=\"amortizationTableContainer\" class=\"amortization-table-container\" style=\"display: none;\">\n            <h3>Tabla de Amortizaci\u00f3n<\/h3>\n            <div style=\"max-height: 400px; overflow-y: scroll; border: 1px solid #ddd; border-radius: 5px;\">\n                <table id=\"amortizationTable\">\n                    <thead>\n                        <tr>\n                            <th>Pago<\/th>\n                            <th>Inter\u00e9s<\/th>\n                            <th>Capital<\/th>\n                            <th>Saldo Pendiente<\/th>\n                        <\/tr>\n                    <\/thead>\n                    <tbody>\n                        <\/tbody>\n                <\/table>\n            <\/div>\n        <\/div>\n\n        <p class=\"disclaimer\">\n            Los resultados de este simulador son aproximados y solo tienen fines informativos. \n            **Recuerda que todas las hipotecas tienen gastos asociados (como aval\u00fao, notar\u00eda y comisiones de apertura) que var\u00edan seg\u00fan el monto, el valor del inmueble y el tipo de cr\u00e9dito.** Este c\u00e1lculo no los incluye directamente. Para una cotizaci\u00f3n precisa y detallada, contacta a un asesor.\n        <\/p>\n    <\/div>\n<\/div>\n\n<style>\n    \/* Estilos Generales *\/\n    .mortgage-simulator-container {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 25px;\n        font-family: 'Arial', sans-serif;\n        max-width: 1200px;\n        margin: 0 auto;\n        padding: 25px;\n        background-color: #f9f9f9;\n        border-radius: 10px;\n        box-shadow: 0 5px 15px rgba(0,0,0,0.1);\n        color: #333;\n    }\n\n    \/* Secciones de Entrada y Salida *\/\n    .input-section, .output-section {\n        flex: 1;\n        min-width: 320px;\n        padding: 30px;\n        border-radius: 8px;\n        background-color: #ffffff;\n        box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n        border: 1px solid #e0e0e0;\n    }\n\n    .input-section h2, .output-section h2 {\n        color: #000;\n        font-size: 26px;\n        margin-bottom: 10px;\n        text-align: center;\n    }\n    .input-section .subtitle {\n        color: #666;\n        font-size: 15px;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    \/* Estilo del \"CR\u00c9DITO SOLICITADO\" *\/\n    .main-loan-amount {\n        background-color: #1A73E8; \/* Color azul *\/\n        color: white !important;\n        padding: 15px 20px;\n        border-radius: 5px;\n        text-align: center;\n        font-size: 28px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        box-shadow: 0 2px 5px rgba(26, 115, 232, 0.2);\n    }\n    .main-loan-amount span {\n        display: block;\n        font-size: 32px;\n        margin-top: 5px;\n    }\n\n    \/* Cajas de Detalle de Salida *\/\n    .output-details-box {\n        border: 1px solid #d0d0d0;\n        border-radius: 5px;\n        padding: 20px;\n        margin-bottom: 20px;\n        background-color: #fcfcfc;\n    }\n    .output-details-box h3 {\n        color: #000;\n        font-size: 20px;\n        margin-bottom: 15px;\n        border-bottom: 1px solid #eee;\n        padding-bottom: 10px;\n    }\n\n    \/* Grupos de Formulario (Labels e Inputs) *\/\n    .form-group {\n        margin-bottom: 20px;\n    }\n    .form-group label {\n        display: block;\n        margin-bottom: 8px;\n        font-weight: bold;\n        color: #555;\n        font-size: 15px;\n    }\n    \/* Estilo para los inputs de tipo texto que act\u00faan como moneda o n\u00famero *\/\n    .form-group input[type=\"number\"],\n    .form-group input[type=\"text\"].currency-input { \/* Eliminar el selector 'select' de aqu\u00ed *\/\n        width: calc(100% - 20px);\n        padding: 10px;\n        border: 1px solid #ccc;\n        border-radius: 5px;\n        box-sizing: border-box;\n        font-size: 16px;\n        color: #333;\n    }\n    .form-group input[type=\"number\"]:focus,\n    .form-group input[type=\"text\"].currency-input:focus { \/* Eliminar el selector 'select' de aqu\u00ed *\/\n        border-color: #1A73E8; \/* Color azul *\/\n        outline: none;\n        box-shadow: 0 0 5px rgba(26, 115, 232, 0.5);\n    }\n\n    \/* Botones *\/\n    button#calculateBtn, button#showAmortizationTableBtn {\n        background-color: #1A73E8; \/* Color azul *\/\n        color: white;\n        padding: 12px 25px;\n        border: none;\n        border-radius: 5px;\n        cursor: pointer;\n        font-size: 17px;\n        font-weight: bold;\n        width: 100%;\n        margin-top: 15px;\n        transition: background-color 0.3s ease;\n    }\n    button#calculateBtn:hover, button#showAmortizationTableBtn:hover {\n        background-color: #145CB3; \/* Tono m\u00e1s oscuro de azul para el hover *\/\n    }\n\n    \/* Elementos de Resultado Individuales *\/\n    .result-item {\n        display: flex;\n        justify-content: space-between;\n        margin-bottom: 12px;\n        padding: 5px 0;\n        border-bottom: 1px dashed #eee;\n        font-size: 16px;\n    }\n    .result-item span:first-child {\n        color: #444;\n    }\n    .result-item span:last-child {\n        font-weight: bold;\n        color: #000;\n    }\n\n    \/* Tabla de Amortizaci\u00f3n *\/\n    .amortization-table-container {\n        margin-top: 25px;\n        border: 1px solid #ddd;\n        border-radius: 8px;\n        overflow: hidden;\n    }\n    .amortization-table-container h3 {\n        padding: 15px;\n        background-color: #f2f2f2;\n        margin: 0;\n        border-bottom: 1px solid #ddd;\n        font-size: 18px;\n        text-align: center;\n        color: #333;\n    }\n    #amortizationTable {\n        width: 100%;\n        border-collapse: collapse;\n        font-size: 14px;\n    }\n    #amortizationTable th,\n    #amortizationTable td {\n        border: 1px solid #eee;\n        padding: 10px;\n        text-align: right;\n    }\n    #amortizationTable th {\n        background-color: #f8f8f8;\n        font-weight: bold;\n        text-align: center;\n        color: #555;\n    }\n    #amortizationTable tbody tr:nth-child(even) {\n        background-color: #fefefe;\n    }\n\n    \/* Aviso Legal (Disclaimer) *\/\n    .disclaimer {\n        font-size: 13px;\n        color: #777;\n        margin-top: 30px;\n        text-align: justify;\n        padding: 10px;\n        border-top: 1px solid #eee;\n    }\n\n    \/* Responsividad *\/\n    @media (max-width: 768px) {\n        .mortgage-simulator-container {\n            padding: 15px;\n        }\n        .input-section, .output-section {\n            min-width: unset;\n            width: 100%;\n            padding: 20px;\n        }\n        .main-loan-amount {\n            font-size: 24px;\n        }\n        .main-loan-amount span {\n            font-size: 28px;\n        }\n        button#calculateBtn, button#showAmortizationTableBtn {\n            font-size: 16px;\n            padding: 10px 15px;\n        }\n        #amortizationTable th,\n        #amortizationTable td {\n            padding: 8px;\n            font-size: 12px;\n        }\n    }\n<\/style>\n\n<script>\n    document.addEventListener('DOMContentLoaded', function() {\n        \/\/ Elementos del DOM\n        const calculateBtn = document.getElementById('calculateBtn');\n        const showAmortizationTableBtn = document.getElementById('showAmortizationTableBtn');\n        const amortizationTableContainer = document.getElementById('amortizationTableContainer');\n\n        \/\/ Campos de entrada del usuario\n        const loanAmountInput = document.getElementById('loanAmount'); \n        const annualInterestRateInput = document.getElementById('annualInterestRateInput'); \n        \/\/ CAMBIO AQU\u00cd: Referenciar el nuevo input de plazo\n        const loanTermInput = document.getElementById('loanTerm'); \n        \n        \/\/ Elementos para mostrar resultados\n        const displayLoanAmountSpan = document.getElementById('displayLoanAmount');\n        const monthlyPaymentSpan = document.getElementById('monthlyPayment');\n        const totalPaidSpan = document.getElementById('totalPaid');\n        const totalInterestSpan = document.getElementById('totalInterest');\n        const displayInterestRateSpan = document.getElementById('displayInterestRate');\n        const amortizationTableBody = document.querySelector('#amortizationTable tbody');\n\n        \/\/ Funci\u00f3n para formatear a moneda MXN para DISPLAY\n        function formatCurrencyDisplay(amount) {\n            if (!isFinite(amount)) {\n                return ''; \n            }\n            \/\/ Usa Intl.NumberFormat para un formato de moneda m\u00e1s consistente, sin el s\u00edmbolo de moneda inicial\n            \/\/ El 'currencyDisplay: \"code\"' asegura que no ponga el s\u00edmbolo '$' autom\u00e1ticamente, lo a\u00f1adimos nosotros.\n            return amount.toLocaleString('es-MX', { minimumFractionDigits: 0, maximumFractionDigits: 0 }); \n        }\n\n        \/\/ Funci\u00f3n para formatear a moneda MXN con sufijo \"MXN\" (para resultados)\n        function formatCurrencyResult(amount) {\n            if (!isFinite(amount)) {\n                return '$0.00 MXN'; \n            }\n            return '$' + amount.toLocaleString('es-MX', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + ' MXN';\n        }\n\n        \/\/ Funci\u00f3n para parsear el valor del input de moneda (elimina $, comas, etc.)\n        function parseCurrencyInput(inputString) {\n            \/\/ Elimina todo lo que no sea d\u00edgito o punto decimal\n            return parseFloat(inputString.replace(\/[^0-9.]\/g, ''));\n        }\n\n        \/\/ Funci\u00f3n para limpiar los resultados en caso de validaci\u00f3n fallida\n        function resetResults() {\n            displayLoanAmountSpan.textContent = formatCurrencyResult(0);\n            monthlyPaymentSpan.textContent = formatCurrencyResult(0);\n            totalPaidSpan.textContent = formatCurrencyResult(0);\n            totalInterestSpan.textContent = formatCurrencyResult(0);\n            displayInterestRateSpan.textContent = '0.00%';\n            amortizationTableBody.innerHTML = ''; \/\/ Limpiar tabla de amortizaci\u00f3n\n            amortizationTableContainer.style.display = 'none'; \/\/ Ocultar tabla\n        }\n\n        \/\/ Funci\u00f3n principal para calcular la hipoteca\n        function calculateMortgage() {\n            \/\/ Obtener el valor num\u00e9rico del input, eliminando cualquier formato\n            const loanAmount = parseCurrencyInput(loanAmountInput.value); \n            const annualInterestRate = parseFloat(annualInterestRateInput.value); \n            \/\/ CAMBIO AQU\u00cd: Leer el valor del nuevo input de plazo\n            const loanTermYears = parseInt(loanTermInput.value);\n\n            \/\/ Validaciones\n            if (isNaN(loanAmount) || loanAmount <= 0) {\n                alert('Por favor, ingrese un Monto de Cr\u00e9dito v\u00e1lido y positivo.');\n                resetResults(); \n                return;\n            }\n            if (isNaN(annualInterestRate) || annualInterestRate < 0) {\n                alert('Por favor, ingrese una Tasa de Inter\u00e9s Anual v\u00e1lida (un n\u00famero no negativo).');\n                resetResults();\n                return;\n            }\n            \/\/ Validaci\u00f3n para el plazo\n            if (isNaN(loanTermYears) || loanTermYears <= 0) {\n                alert('Por favor, ingrese un Plazo para pagar v\u00e1lido y positivo.');\n                resetResults();\n                return;\n            }\n\n            \/\/ Aplicar formato al input del monto una vez que el valor es v\u00e1lido\n            loanAmountInput.value = '$' + formatCurrencyDisplay(loanAmount); \/\/ A\u00f1adir el '$' de nuevo aqu\u00ed\n\n            \/\/ Preparaci\u00f3n de variables para la f\u00f3rmula de la hipoteca\n            const monthlyInterestRate = (annualInterestRate \/ 100) \/ 12; \n            const numberOfPayments = loanTermYears * 12; \n\n            let monthlyPayment; \n            if (monthlyInterestRate === 0) {\n                monthlyPayment = loanAmount \/ numberOfPayments; \n            } else {\n                monthlyPayment = loanAmount * (monthlyInterestRate * Math.pow(1 + monthlyInterestRate, numberOfPayments)) \/ \n                                 (Math.pow(1 + monthlyInterestRate, numberOfPayments) - 1);\n            }\n\n            \/\/ C\u00e1lculo de costos totales del cr\u00e9dito (intereses + capital)\n            const totalInterestPaid = (monthlyPayment * numberOfPayments) - loanAmount;\n            const totalPaid = monthlyPayment * numberOfPayments;\n\n            \/\/ Actualizar el DOM con los resultados calculados\n            displayLoanAmountSpan.textContent = formatCurrencyResult(loanAmount);\n            monthlyPaymentSpan.textContent = formatCurrencyResult(monthlyPayment);\n            totalPaidSpan.textContent = formatCurrencyResult(totalPaid);\n            displayInterestRateSpan.textContent = annualInterestRate.toFixed(2) + '%';\n            totalInterestSpan.textContent = formatCurrencyResult(Math.max(0, totalInterestPaid)); \n            \n            \/\/ Generar la tabla de amortizaci\u00f3n con los nuevos datos\n            generateAmortizationSchedule(loanAmount, monthlyInterestRate, numberOfPayments, monthlyPayment);\n        }\n\n        \/\/ Funci\u00f3n para generar la tabla de amortizaci\u00f3n\n        function generateAmortizationSchedule(principal, monthlyInterestRate, numberOfPayments, monthlyPayment) {\n            amortizationTableBody.innerHTML = ''; \n            let remainingBalance = principal; \n\n            for (let i = 1; i <= numberOfPayments; i++) {\n                let interestPayment = remainingBalance * monthlyInterestRate; \n                let principalPayment = monthlyPayment - interestPayment; \n                \n                if (i === numberOfPayments) {\n                    principalPayment = remainingBalance; \n                    interestPayment = monthlyPayment - principalPayment; \n                }\n                \n                remainingBalance -= principalPayment;\n                remainingBalance = Math.max(0, remainingBalance); \n\n                const row = amortizationTableBody.insertRow();\n                row.insertCell(0).textContent = i; \n                row.insertCell(1).textContent = formatCurrencyResult(interestPayment); \n                row.insertCell(2).textContent = formatCurrencyResult(principalPayment); \n                row.insertCell(3).textContent = formatCurrencyResult(remainingBalance); \n            }\n        }\n\n        \/\/ --- Event Listeners ---\n        calculateBtn.addEventListener('click', calculateMortgage);\n\n        \/\/ Event Listener para formatear el input al salir del foco\n        loanAmountInput.addEventListener('blur', function() {\n            const value = parseCurrencyInput(this.value);\n            if (!isNaN(value) && value > 0) {\n                this.value = '$' + formatCurrencyDisplay(value); \/\/ A\u00f1adir el '$' de nuevo aqu\u00ed\n            } else {\n                this.value = ''; \n            }\n        });\n\n        showAmortizationTableBtn.addEventListener('click', function() {\n            calculateMortgage(); \n            \n            if (amortizationTableBody.innerHTML === '') {\n                alert('No se pudo generar la tabla de amortizaci\u00f3n. Por favor, verifique los datos de entrada.');\n                return;\n            }\n\n            amortizationTableContainer.style.display = amortizationTableContainer.style.display === 'none' ? 'block' : 'none';\n            if (amortizationTableContainer.style.display === 'block') {\n                amortizationTableContainer.scrollIntoView({ behavior: 'smooth', block: 'start' });\n            }\n        });\n\n        \/\/ --- Ajustes para el inicio de la p\u00e1gina ---\n        \/\/ Al cargar la p\u00e1gina, solo asegurar que el campo de monto si tiene algo, se formatee.\n        \/\/ Y que los resultados est\u00e9n en blanco\/cero.\n        const initialLoanAmount = parseCurrencyInput(loanAmountInput.value);\n        if (!isNaN(initialLoanAmount) && initialLoanAmount > 0) {\n            loanAmountInput.value = '$' + formatCurrencyDisplay(initialLoanAmount);\n        }\n        \n        resetResults(); \n    });\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-48ea73aa e-flex e-con-boxed e-con e-parent\" data-id=\"48ea73aa\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-1c181182 e-con-full e-flex e-con e-child\" data-id=\"1c181182\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2cbfe266 elementor-widget elementor-widget-heading\" data-id=\"2cbfe266\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00bfTodavia <span style=\"color: #1A73E8\">tienes dudas?<\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f7eb3ea elementor-widget elementor-widget-text-editor\" data-id=\"7f7eb3ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u00bfA\u00fan te queda alguna pregunta sin respuesta? No dudes en contactarnos.<br \/><strong>\u00a1Ser\u00e1 un placer asistirte!<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1bf2d815 e-con-full e-flex e-con e-child\" data-id=\"1bf2d815\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-539b0ccd elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-button\" data-id=\"539b0ccd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contacto<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1cf86592 elementor-widget elementor-widget-button\" data-id=\"1cf86592\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-phone-alt\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u00bfHablamos?<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-65e546a0 elementor-absolute elementor-widget__width-initial elementor-widget elementor-widget-image\" data-id=\"65e546a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1237\" height=\"1200\" src=\"https:\/\/ahorroteca.com\/mx\/wp-content\/uploads\/2025\/07\/inversion-casa-llave-monton-dinero-columpio-inmobiliario-negocio-hipoteca-inversion-prestamo-financiero-concepto-propiedad-inmobiliaria-recorte-camino-3d-renderizacion-e1752253941760.png\" class=\"attachment-full size-full wp-image-64\" alt=\"\" srcset=\"https:\/\/ahorroteca.com\/mx\/wp-content\/uploads\/2025\/07\/inversion-casa-llave-monton-dinero-columpio-inmobiliario-negocio-hipoteca-inversion-prestamo-financiero-concepto-propiedad-inmobiliaria-recorte-camino-3d-renderizacion-e1752253941760.png 1237w, https:\/\/ahorroteca.com\/mx\/wp-content\/uploads\/2025\/07\/inversion-casa-llave-monton-dinero-columpio-inmobiliario-negocio-hipoteca-inversion-prestamo-financiero-concepto-propiedad-inmobiliaria-recorte-camino-3d-renderizacion-e1752253941760-300x291.png 300w, https:\/\/ahorroteca.com\/mx\/wp-content\/uploads\/2025\/07\/inversion-casa-llave-monton-dinero-columpio-inmobiliario-negocio-hipoteca-inversion-prestamo-financiero-concepto-propiedad-inmobiliaria-recorte-camino-3d-renderizacion-e1752253941760-1024x993.png 1024w, https:\/\/ahorroteca.com\/mx\/wp-content\/uploads\/2025\/07\/inversion-casa-llave-monton-dinero-columpio-inmobiliario-negocio-hipoteca-inversion-prestamo-financiero-concepto-propiedad-inmobiliaria-recorte-camino-3d-renderizacion-e1752253941760-768x745.png 768w\" sizes=\"(max-width: 1237px) 100vw, 1237px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Simulador Tu casa te espera. Consigue la hipoteca en tiempo r\u00e9cord. \u00bfHablamos? Calcula tu Hipoteca Ideal al Instante Con nuestro simulador intuitivo, puedes estimar r\u00e1pidamente tus pagos mensuales y entender el impacto de diferentes tasas de inter\u00e9s y plazos. Ingresa los datos y visualiza el camino hacia tu nuevo hogar. Simulador de Cr\u00e9dito Hipotecario Calcula [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-569","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ahorroteca.com\/mx\/wp-json\/wp\/v2\/pages\/569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahorroteca.com\/mx\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ahorroteca.com\/mx\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ahorroteca.com\/mx\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ahorroteca.com\/mx\/wp-json\/wp\/v2\/comments?post=569"}],"version-history":[{"count":73,"href":"https:\/\/ahorroteca.com\/mx\/wp-json\/wp\/v2\/pages\/569\/revisions"}],"predecessor-version":[{"id":910,"href":"https:\/\/ahorroteca.com\/mx\/wp-json\/wp\/v2\/pages\/569\/revisions\/910"}],"wp:attachment":[{"href":"https:\/\/ahorroteca.com\/mx\/wp-json\/wp\/v2\/media?parent=569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}