    

{"id":5617,"date":"2026-03-25T00:39:09","date_gmt":"2026-03-25T00:39:09","guid":{"rendered":"https:\/\/rmimoveis.pt\/credito\/?page_id=5617"},"modified":"2026-04-18T16:31:14","modified_gmt":"2026-04-18T16:31:14","slug":"calculadora-obra","status":"publish","type":"page","link":"https:\/\/rmimoveis.pt\/credito\/calculadora-obra\/","title":{"rendered":"PLUGIN &#8211; Calculadora de Obra"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5617\" class=\"elementor elementor-5617\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0f752ca e-flex e-con-boxed e-con e-parent\" data-id=\"0f752ca\" 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-9d781b2 elementor-widget elementor-widget-shortcode\" data-id=\"9d781b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n        \/* ... todo o CSS mantido como original, sem altera\u00e7\u00f5es ... *\/\n        .rmi-calc-wrap{\n            width:100%;\n            padding:18px 0 28px;\n        }\n\n        .rmi-calc-card{\n            max-width:980px;\n            margin:0 auto;\n            background:#ffffff;\n            border:1px solid #d9e6f3;\n            border-radius:0px;\n            box-shadow:0 10px 28px rgba(15,58,93,.08);\n            padding:28px 28px 24px;\n            position:relative;\n            overflow:hidden;\n        }\n\n        .rmi-calc-card::before{\n            content:\"\";\n            position:absolute;\n            top:50%;\n            left:50%;\n            width:900px;\n            height:900px;\n            background-image:url('\/wp-content\/uploads\/2026\/03\/Logo_512x512.png');\n            background-repeat:no-repeat;\n            background-position:center;\n            background-size:80%;\n            opacity:0.04;\n            transform:translate(-50%,-50%);\n            pointer-events:none;\n            z-index:0;\n        }\n\n        .rmi-calc-card > *{\n            position:relative;\n            z-index:1;\n        }\n\n        .rmi-calc-header{\n            max-width:860px;\n            margin:0 auto 18px;\n            padding:0 4px 14px;\n            border-bottom:1px solid #e6eef7;\n        }\n\n        .rmi-calc-header h2{\n            margin:0 0 6px;\n            font-size:30px;\n            line-height:1.15;\n            color:#163a5f;\n            font-weight:700;\n            letter-spacing:-0.02em;\n        }\n\n        .rmi-calc-header p{\n            margin:0;\n            font-size:14px;\n            color:#5f6f82;\n            line-height:1.5;\n        }\n\n        .rmi-calc-section{\n            margin:0px auto 0;\n            max-width:860px;\n            width:100%;\n            background:rgba(247,251,255,.82);\n            border:1px solid #d7e7f5;\n            border-radius:0px;\n            padding:18px 18px 16px;\n            box-shadow:0 4px 14px rgba(30,115,190,.04);\n        }\n\n        .rmi-calc-section-title{\n            margin:0 0 12px;\n            font-size:20px;\n            line-height:1.2;\n            font-weight:700;\n            color:#163a5f;\n            letter-spacing:-0.01em;\n        }\n\n        .rmi-section-subtitle{\n            margin:-4px 0 12px;\n            font-size:13px;\n            color:#6a7888;\n            line-height:1.5;\n        }\n\n        .rmi-grid-2{\n            display:grid;\n            gap:14px;\n            grid-template-columns:1fr 1fr;\n        }\n\n        .rmi-grid-3{\n            display:grid;\n            gap:14px;\n            grid-template-columns:1fr 1fr 1fr;\n        }\n\n        .rmi-field-group{\n            display:flex;\n            flex-direction:column;\n            gap:6px;\n        }\n\n        .rmi-field-group label{\n            font-size:12px;\n            font-weight:700;\n            color:#1e3a5f;\n            letter-spacing:.01em;\n        }\n\n        .rmi-input,\n        .rmi-select,\n        .rmi-textarea{\n            width:100%;\n            min-height:42px;\n            padding:10px 12px;\n            border:1px solid #cddcec;\n            border-radius:0px;\n            background:#ffffff;\n            font-size:13px;\n            color:#163a5f;\n            box-sizing:border-box;\n            outline:none;\n            transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;\n        }\n\n        .rmi-textarea{\n            min-height:110px;\n            resize:vertical;\n        }\n\n        .rmi-input:focus,\n        .rmi-select:focus,\n        .rmi-textarea:focus{\n            border-color:#1e73be;\n            background:#fff;\n            box-shadow:0 0 0 3px rgba(30,115,190,.10);\n        }\n\n        .rmi-checkbox-row{\n            margin:0 0 10px 0;\n        }\n\n        .rmi-checkbox-label{\n            display:flex;\n            align-items:flex-start;\n            gap:8px;\n            font-size:13px;\n            font-weight:400 !important;\n            color:#4b5d70;\n            line-height:1.45;\n        }\n\n        .rmi-checkbox-label input[type=\"checkbox\"]{\n            margin-top:2px;\n        }\n\n        .rmi-actions{\n            display:flex;\n            flex-wrap:wrap;\n            gap:10px;\n            margin:0 auto 0;\n            max-width:860px;\n            width:100%;\n            padding:0 2px;\n        }\n\n        .rmi-btn{\n            min-height:40px;\n            padding:9px 16px;\n            border-radius:0px;\n            border:1px solid #e64173;\n            background:#fff;\n            font-size:13px;\n            font-weight:600;\n            cursor:pointer;\n            color:#e64173;\n            transition:all .15s ease;\n        }\n\n        .rmi-btn:hover{\n            transform:translateY(-1px);\n            box-shadow:0 8px 18px rgba(230,65,115,.12);\n        }\n\n        .rmi-box{\n            margin:0px auto 0;\n            padding:18px 18px 16px;\n            background:rgba(247,251,255,.88);\n            border:1px solid #d7e7f5;\n            border-radius:0px;\n            max-width:860px;\n            width:100%;\n            box-shadow:0 4px 14px rgba(30,115,190,.04);\n        }\n\n        .rmi-box h3{\n            margin:0 0 12px;\n            font-size:20px;\n            line-height:1.2;\n            font-weight:700;\n            color:#163a5f;\n        }\n\n        .rmi-glossary-list{\n            display:flex;\n            flex-direction:column;\n            gap:12px;\n        }\n\n        .rmi-glossary-item{\n            padding:0 0 12px;\n            border-bottom:1px solid #e6eef7;\n        }\n\n        .rmi-glossary-item:last-child{\n            border-bottom:none;\n            padding-bottom:0;\n        }\n\n        .rmi-glossary-item strong{\n            display:block;\n            color:#163a5f;\n            margin-bottom:4px;\n            font-size:15px;\n        }\n\n        .rmi-legal-text,\n        .rmi-empty-state{\n            color:#5f6f82;\n            font-size:13px;\n            line-height:1.6;\n        }\n\n        .rmi-note{\n            margin:14px auto 0;\n            font-size:11px;\n            line-height:1.45;\n            color:#6a7888;\n            max-width:860px;\n            width:100%;\n        }\n\n        .rmi-table-wrap{\n            overflow-x:auto;\n        }\n\n        .rmi-table{\n            width:100%;\n            border-collapse:separate;\n            border-spacing:0;\n            background:#fff;\n            border:1px solid #dbe7f3;\n            border-radius:0px;\n            overflow:hidden;\n        }\n\n        .rmi-table th,\n        .rmi-table td{\n            padding:12px 14px;\n            border-bottom:1px solid #e6eef7;\n            font-size:13px;\n            text-align:left;\n            vertical-align:top;\n        }\n\n        .rmi-table tr:last-child td{\n            border-bottom:none;\n        }\n\n        .rmi-table th{\n            background:#f4f9ff;\n            color:#163a5f;\n            font-weight:700;\n        }\n\n        .rmi-indicator-card{\n            background:#fff;\n            border:1px solid #dbe7f3;\n            border-radius:0px;\n            padding:16px;\n            box-shadow:0 4px 14px rgba(30,115,190,.04);\n        }\n\n        .rmi-indicator-title{\n            margin:0 0 8px;\n            color:#163a5f;\n            font-size:18px;\n            font-weight:700;\n        }\n\n        \/* ===============================\n           ULTRA COMPACTO (M\u00c1XIMO)\n        =============================== *\/\n\n        .rmi-field-group {\n            display: grid;\n            grid-template-columns: 110px 1fr;\n            align-items: center;\n            gap: 2px !important;\n            margin-bottom: 0 !important;\n        }\n\n        .rmi-field-group label {\n            font-size: 11px;\n            font-weight: 600;\n            margin: 0;\n            line-height: 1;\n            white-space: nowrap;\n        }\n\n        .rmi-input,\n        .rmi-select {\n            height: 28px !important;\n            padding: 4px 6px;\n            font-size: 12px;\n            line-height: 1;\n        }\n\n        .rmi-textarea {\n            min-height: 50px;\n            padding: 6px;\n            font-size: 12px;\n        }\n\n        \/* reduzir espa\u00e7os entre blocos *\/\n        .rmi-calc-section {\n            margin-top: 0px;\n        }\n\n        .rmi-grid-2 {\n             gap: 0 !important;\n        }\n\n        .rmi-calc-card {\n            padding: 18px 18px 14px;\n        }\n\n        \/* checkboxes mais compactos *\/\n        .rmi-checkbox-row {\n            margin: 0;\n        }\n\n        .rmi-checkbox-label {\n            font-size: 12px;\n            gap: 6px;\n        }\n\n        \/* mobile mant\u00e9m leg\u00edvel *\/\n        @media (max-width: 767px) {\n            .rmi-field-group {\n                grid-template-columns: 1fr;\n            }\n        }\n\n        \/* ===============================\n           MODO RET\u00c2NGULO + SEM ESPA\u00c7OS\n        =============================== *\/\n\n        .rmi-calc-card,\n        .rmi-calc-section,\n        .rmi-box {\n            border-radius: 0 !important;\n        }\n\n        \/* remover espa\u00e7amento vertical *\/\n        .rmi-field-group {\n            margin-bottom: 0 !important;\n            gap: 2px !important;\n        }\n\n        \/* inputs totalmente colados *\/\n        .rmi-input,\n        .rmi-select {\n            margin: 0 !important;\n            border-radius: 0 !important;\n            height: 30px;\n        }\n\n        \/* labels mais colados *\/\n        .rmi-field-group label {\n            margin: 0;\n            padding: 0;\n        }\n\n        \/* eliminar espa\u00e7o entre sec\u00e7\u00f5es *\/\n        .rmi-calc-section {\n            margin-top: 0 !important;\n        }\n\n        \/* grelha sem espa\u00e7o *\/\n        .rmi-grid-2 {\n            gap: 0 !important;\n        }\n\n        \/* remover \u201car\u201d interno *\/\n        .rmi-calc-card {\n            padding: 12px !important;\n        }\n        \n        \/* Sec\u00e7\u00f5es Explica\u00e7\u00e3o das rubricas e Limita\u00e7\u00e3o de responsabilidade em azul *\/\n        .rmi-box:last-of-type,\n        .rmi-box:nth-last-of-type(2) {\n            background: #eef5ff !important;\n            border: 2px solid #163a5f !important;\n            box-shadow: 0 4px 12px rgba(30,115,190,0.1);\n        }\n        \n     \n        \n    <\/style>\n        <script>\n    document.addEventListener('DOMContentLoaded', function() {\n        \/\/ Formata\u00e7\u00e3o de n\u00fameros (milhares)\n        function formatNumberInput(el) {\n            let digits = el.value.replace(\/\\D+\/g, '');\n            if (!digits) {\n                el.value = '';\n                return;\n            }\n            el.value = digits.replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, ' ');\n        }\n\n        \/\/ Aplica a todos os campos com a classe rmi-number-input\n        document.querySelectorAll('.rmi-number-input').forEach(input => {\n            input.addEventListener('input', function() { formatNumberInput(this); });\n            \/\/ Se j\u00e1 tiver valor, formata\n            formatNumberInput(input);\n        });\n\n        \/\/ Bot\u00e3o de limpar (se existir)\n        const clearBtn = document.getElementById('rmi-clear-form');\n        if (clearBtn) {\n            clearBtn.addEventListener('click', function(e) {\n                const form = this.closest('form');\n                if (!form) return;\n                \/\/ Limpa inputs, selects e textareas (excepto hidden\/submit)\n                form.querySelectorAll('input:not([type=\"hidden\"]):not([type=\"submit\"]), select, textarea').forEach(field => {\n                    if (field.type === 'checkbox' || field.type === 'radio') {\n                        field.checked = false;\n                    } else {\n                        field.value = '';\n                    }\n                });\n                \/\/ Dispara evento customizado para que a calculadora limpe os resultados\n                const clearEvent = new CustomEvent('rmi_calc_clear', { detail: { form: form } });\n                form.dispatchEvent(clearEvent);\n            });\n        }\n    });\n    <\/script>\n    <style>\n        #rmi-analise-obras-wrap .rmi-calc-card{max-width:880px;padding:18px 16px 18px;}\n        #rmi-analise-obras-wrap .rmi-calc-header{margin-bottom:12px;padding-bottom:10px;}\n        #rmi-analise-obras-wrap .rmi-calc-header h2{font-size:24px;}\n        #rmi-analise-obras-wrap .rmi-calc-header p{font-size:13px;}\n        #rmi-analise-obras-wrap .rmi-calc-section, #rmi-analise-obras-wrap .rmi-box{margin-top:0 !important;padding:14px 14px 12px;border-radius:14px;}\n        #rmi-analise-obras-wrap .rmi-box{max-width:860px;}\n        #rmi-analise-obras-wrap .rmi-calc-section-title, #rmi-analise-obras-wrap .rmi-box h3{font-size:18px;margin-bottom:10px;}\n        #rmi-analise-obras-wrap .rmi-section-subtitle{font-size:12px;margin:-2px 0 10px;}\n        #rmi-analise-obras-wrap .rmi-field-group label{font-size:11px;}\n        #rmi-analise-obras-wrap .rmi-input, #rmi-analise-obras-wrap .rmi-select, #rmi-analise-obras-wrap .rmi-textarea{min-height:38px;padding:8px 10px;font-size:13px;border-radius:10px;}\n        #rmi-analise-obras-wrap .rmi-textarea{min-height:90px;}\n        #rmi-analise-obras-wrap .rmi-grid-2{gap:10px;}\n        #rmi-analise-obras-wrap .rmi-actions{max-width:860px;gap:8px;margin-top:14px;}\n        #rmi-analise-obras-wrap .rmi-btn{min-height:36px;padding:7px 12px;border-radius:10px;font-size:12px;}\n        #rmi-analise-obras-wrap .rmi-table th, #rmi-analise-obras-wrap .rmi-table td{padding:10px 12px;font-size:12px;}\n        #rmi-analise-obras-wrap .rmi-note{max-width:860px;}\n        \n        \n        \n        \n        \n        \n        \n        \n        #rmi-analise-obras-wrap .rmi-top-grid{\n            max-width:860px !important;\n            margin:0 auto;\n            display:grid;\n            grid-template-columns:1fr 1fr;\n            gap:6px;\n            align-items:end;\n        }\n        #rmi-analise-obras-wrap .rmi-top-grid > .rmi-calc-section{\n            max-width:100%;\n            margin:0;\n            padding:10px;\n            height:100%;\n        }\n        #rmi-analise-obras-wrap .rmi-top-grid .rmi-grid-2{\n            grid-template-columns:1fr;\n            gap:4px;\n        }\n        #rmi-analise-obras-wrap .rmi-checkbox-row{\n            margin-bottom:2px;\n        }\n        #rmi-analise-obras-wrap .rmi-top-grid > .rmi-calc-section:last-child{\n            min-height:190px;\n        }\n        \n        \n        \n        \n        \n        \n        \n        #rmi-analise-obras-wrap .rmi-box {background:#fff9e6 !important;border:2px solid #e64173 !important;box-shadow:0 4px 12px rgba(230,65,115,0.2);}\n        #rmi-analise-obras-wrap .rmi-box:last-of-type,\n        #rmi-analise-obras-wrap .rmi-box:nth-last-of-type(2) {background:#eef5ff !important;border:2px solid #163a5f !important;box-shadow:0 4px 12px rgba(30,115,190,0.1);}\n        #rmi-analise-obras-wrap .rmi-business-table .rmi-table td:first-child,\n        #rmi-analise-obras-wrap .rmi-business-table .rmi-table th:first-child{white-space:nowrap;}\n        #rmi-analise-obras-wrap .rmi-obras-technical-section{max-width:920px;}\n        #rmi-analise-obras-wrap .rmi-obras-tech-group{display:flex;flex-direction:column;gap:6px;}\n        #rmi-analise-obras-wrap .rmi-obras-tech-divider{margin:10px 0;border:none;border-top:1px solid #d7e7f5;}\n        #rmi-analise-obras-wrap .rmi-obras-tech-grid{\n            display:grid;\n            grid-template-columns:minmax(170px, 1fr) 120px minmax(170px, 1fr) 120px;\n            gap:8px 12px;\n            align-items:center;\n        }\n        #rmi-analise-obras-wrap .rmi-obras-tech-grid label{\n            font-size:13px;\n            font-weight:600;\n            color:#163a5f;\n            line-height:1.2;\n            min-width:0;\n            white-space:normal;\n        }\n        #rmi-analise-obras-wrap .rmi-obras-tech-input{\n            width:120px;\n            min-width:120px;\n            min-height:30px !important;\n            height:30px !important;\n            padding:4px 8px !important;\n            font-size:12px !important;\n            text-align:right;\n            justify-self:end;\n        }\n        #rmi-analise-obras-wrap .rmi-obras-tech-empty{\n            visibility:hidden;\n            height:0;\n            min-height:0;\n            padding:0;\n            margin:0;\n        }\n        \n        \n\/* =========================================================\n   MELHORIA VISUAL \u2014 EXPLICA\u00c7\u00c3O DAS RUBRICAS\n   ========================================================= *\/\n\n#rmi-analise-obras-wrap .rmi-box h3 {\n    font-size: 18px !important;\n    margin-bottom: 14px !important;\n}\n\n\/* T\u00edtulos principais *\/\n#rmi-analise-obras-wrap .rmi-glossary-item.rubrica-titulo strong {\n    display: block !important;\n    font-size: 15px !important;\n    font-weight: 700 !important;\n    color: #163a5f !important;\n    margin: 16px 0 8px !important;\n}\n\n\/* Blocos tipo \"Aquisi\u00e7\u00e3o e obra\" *\/\n#rmi-analise-obras-wrap .rmi-glossary-item.subgrupo strong {\n    display: block !important;\n    background: #f7fbff !important;\n    border-left: 4px solid #163a5f !important;\n    padding: 6px 10px !important;\n    margin: 12px 0 8px !important;\n    font-weight: 700 !important;\n}\n\n\/* Linhas normais *\/\n#rmi-analise-obras-wrap .rmi-glossary-item {\n    margin-bottom: 6px !important;\n}\n\n#rmi-analise-obras-wrap .rmi-glossary-item strong {\n    font-weight: 600 !important;\n}\n\n#rmi-analise-obras-wrap .rmi-glossary-item .rmi-legal-text {\n    color: #2c4a66 !important;\n}\n        \n        \n        \n        \n        @media (max-width: 900px){\n            #rmi-analise-obras-wrap .rmi-calc-card{\n                max-width: 100% !important;\n            }\n        \n            #rmi-analise-obras-wrap .rmi-calc-header,\n            #rmi-analise-obras-wrap .rmi-calc-section,\n            #rmi-analise-obras-wrap .rmi-actions,\n            #rmi-analise-obras-wrap .rmi-box,\n            #rmi-analise-obras-wrap .rmi-note{\n                max-width: 100% !important;\n            }\n        \n            #rmi-analise-obras-wrap .rmi-obras-tech-grid{\n                grid-template-columns: 1fr !important;\n            }\n        \n            #rmi-analise-obras-wrap .rmi-obras-tech-input{\n                max-width: 100% !important;\n            }\n        }\n                \n                \n                \n        \n        \n        @media (max-width:767px){\n            #rmi-analise-obras-wrap .rmi-calc-card{padding:12px 10px 14px;border-radius:14px;}\n            #rmi-analise-obras-wrap .rmi-calc-header h2{font-size:21px;}\n            #rmi-analise-obras-wrap .rmi-top-grid{max-width:100% !important;grid-template-columns:1fr !important;gap:10px !important;}\n            #rmi-analise-obras-wrap .rmi-top-grid > .rmi-calc-section:last-child{min-height:0;border-left:none !important;}\n            #rmi-analise-obras-wrap .rmi-top-grid .rmi-field-group{grid-template-columns:1fr !important;}\n            #rmi-analise-obras-wrap .rmi-calc-section, #rmi-analise-obras-wrap .rmi-box{padding:12px 10px 10px;border-radius:12px;}\n            #rmi-analise-obras-wrap .rmi-calc-section-title, #rmi-analise-obras-wrap .rmi-box h3{font-size:16px;}\n            #rmi-analise-obras-wrap .rmi-input, #rmi-analise-obras-wrap .rmi-select, #rmi-analise-obras-wrap .rmi-textarea{min-height:36px;font-size:12px;padding:7px 9px;}\n            #rmi-analise-obras-wrap .rmi-obras-tech-grid{grid-template-columns:1fr;}\n            #rmi-analise-obras-wrap .rmi-obras-tech-grid label{font-size:12px;}\n            #rmi-analise-obras-wrap .rmi-obras-tech-input{width:100%;min-width:0;justify-self:stretch;min-height:36px !important;height:36px !important;text-align:left;}\n            #rmi-analise-obras-wrap .rmi-obras-tech-empty{display:none;}\n            #rmi-analise-obras-wrap .rmi-btn{width:100%;}\n        }\n    \n    \n    \n    \n    \n\/* ============================================================\n   EXPLICA\u00c7\u00c3O DAS RUBRICAS \u2014 LINHA \u00daNICA (FRONTEND REAL)\n   ============================================================ *\/\n\n    #rmi-analise-obras-wrap .rmi-glossary-item{\n        padding:0 0 8px !important;\n        margin:0 !important;\n    }\n\n    #rmi-analise-obras-wrap .rmi-glossary-item strong{\n        display:inline !important;\n        margin-right:4px !important;\n    }\n\n    #rmi-analise-obras-wrap .rmi-glossary-item strong::after{\n        content:\" \u2014 \";\n    }\n\n    #rmi-analise-obras-wrap .rmi-glossary-item .rmi-legal-text{\n        display:inline !important;\n        font-size:13px !important;\n        line-height:1.5 !important;\n    }\n\n    #rmi-analise-obras-wrap .rmi-glossary-item.rubrica-titulo strong{\n        display:block !important;\n        font-size:15px !important;\n        font-weight:700 !important;\n        color:#163a5f !important;\n        margin:10px 0 4px !important;\n    }\n\n    #rmi-analise-obras-wrap .rmi-glossary-item.rubrica-titulo strong::after{\n        content:\"\" !important;\n    }\n\n    #rmi-analise-obras-wrap .rmi-glossary-item.rubrica-titulo .rmi-legal-text{\n        display:none !important;\n    }\n    \n    \n    \n    \n    \n    \n    \n    \n    <\/style>    <div class=\"rmi-calc-wrap\" id=\"rmi-analise-obras-wrap\">\n        <div class=\"rmi-calc-card \">\n            <div class=\"rmi-calc-header\">\n                <h2>An\u00e1lise de Obras<\/h2>\n                                    <p>Ferramenta para an\u00e1lise de investimento, custos, venda prevista e rentabilidade do neg\u00f3cio imobili\u00e1rio.<\/p>\n                            <\/div>\n    <form method=\"post\" id=\"rmi-obras-form\"><input type=\"hidden\" id=\"rmi_obras_nonce\" name=\"rmi_obras_nonce\" value=\"6bf5226666\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/credito\/wp-json\/wp\/v2\/pages\/5617\" \/><div class=\"rmi-top-grid\"><input type=\"hidden\" id=\"is_admin_session\" value=\"0\">    <div class=\"rmi-calc-section\">\n        <h3 class=\"rmi-calc-section-title\">Dados do potencial cliente<\/h3>\n\n        <div class=\"rmi-grid-2\">\n            <div class=\"rmi-field-group\">\n                <label for=\"client_name\">Nome *<\/label>\n                <input type=\"text\" id=\"client_name\" name=\"client_name\" class=\"rmi-input\" value=\"\" placeholder=\"Nome completo\">\n            <\/div>\n\n            <div class=\"rmi-field-group\">\n                <label for=\"client_email\">Email *<\/label>\n                <input type=\"email\" id=\"client_email\" name=\"client_email\" class=\"rmi-input\" value=\"\" placeholder=\"email@exemplo.pt\">\n            <\/div>\n        <\/div>\n\n                    <div class=\"rmi-grid-2\">\n                <div class=\"rmi-field-group\">\n                    <label for=\"client_phone\">Telefone<\/label>\n                    <input type=\"text\" id=\"client_phone\" name=\"client_phone\" class=\"rmi-input\" value=\"\" placeholder=\"Opcional\">\n                <\/div>\n                <div><\/div>\n            <\/div>\n        \n        <div>\n            <div class=\"rmi-checkbox-row\">\n                <label for=\"client_consent\" class=\"rmi-checkbox-label\">\n                    <input type=\"checkbox\" id=\"client_consent\" name=\"client_consent\" value=\"1\" >\n                    Aceito a partilha dos meus dados para c\u00e1lculo e eventual contacto *.\n                <\/label>\n            <\/div>\n\n                    <\/div>\n    <\/div>\n        <div class=\"rmi-calc-section\">\n        <h3 class=\"rmi-calc-section-title\">Informa\u00e7\u00e3o do im\u00f3vel<\/h3>\n\n        <div class=\"rmi-grid-2\">\n                            <div class=\"rmi-field-group\">\n                    <label for=\"property_address\">Rua \/ Morada<\/label>\n                    <input type=\"text\" id=\"property_address\" name=\"property_address\" class=\"rmi-input\" value=\"\" placeholder=\"Morada do im\u00f3vel\">\n                <\/div>\n            \n                            <div class=\"rmi-field-group\">\n                    <label for=\"property_parish\">Freguesia<\/label>\n                    <input type=\"text\" id=\"property_parish\" name=\"property_parish\" class=\"rmi-input\" value=\"\" placeholder=\"Freguesia\">\n                <\/div>\n                    <\/div>\n\n                    <div class=\"rmi-grid-2\">\n                <div class=\"rmi-field-group\">\n                    <label for=\"property_district\">Distrito<\/label>\n                    <input type=\"text\" id=\"property_district\" name=\"property_district\" class=\"rmi-input\" value=\"\" placeholder=\"Distrito\">\n                <\/div>\n                <div><\/div>\n            <\/div>\n            <\/div>\n    <\/div>    <div class=\"rmi-calc-section rmi-obras-technical-section\">\n        <h3 class=\"rmi-calc-section-title\">Conte\u00fado t\u00e9cnico da calculadora<\/h3>\n\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">Aquisi\u00e7\u00e3o e obra<\/div>\n\n            <div class=\"rmi-obras-tech-grid\">\n                <label for=\"works_cost\">Custo estimado das obras (\u20ac)<\/label>\n                <input type=\"text\" id=\"works_cost\" name=\"works_cost\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"works_margin\">Margem de seguran\u00e7a (%)<\/label>\n                <input type=\"text\" id=\"works_margin\" name=\"works_margin\" class=\"rmi-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"other_costs\">Outros custos (\u20ac)<\/label>\n                <input type=\"text\" id=\"other_costs\" name=\"other_costs\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <div class=\"rmi-obras-tech-empty\" aria-hidden=\"true\"><\/div>\n            <\/div>\n        <\/div>\n\n        <hr class=\"rmi-obras-tech-divider\">\n\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">Custos de aquisi\u00e7\u00e3o<\/div>\n\n            <div class=\"rmi-obras-tech-grid\">\n                <label for=\"purchase_price\">Pre\u00e7o de aquisi\u00e7\u00e3o (\u20ac)<\/label>\n                <input type=\"text\" id=\"purchase_price\" name=\"purchase_price\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"deed_costs\">Diversos (\u20ac)<\/label>\n                <input type=\"text\" id=\"deed_costs\" name=\"deed_costs\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"region\">Localiza\u00e7\u00e3o<\/label>\n                <select id=\"region\" name=\"region\" class=\"rmi-select rmi-obras-tech-input\">\n                    <option value=\"continente\"  selected='selected'>Portugal<\/option>\n                    <option value=\"madeira\" >Madeira<\/option>\n                    <option value=\"acores\" >A\u00e7ores<\/option>\n                <\/select>\n\n                <label for=\"property_type\">Tipo<\/label>\n                <select id=\"property_type\" name=\"property_type\" class=\"rmi-select rmi-obras-tech-input\">\n                    <option value=\"hpp\"  selected='selected'>HPP<\/option>\n                    <option value=\"secundaria\" >Secund\u00e1ria<\/option>\n                    <option value=\"rustico\" >R\u00fastico<\/option>\n                    <option value=\"outros\" >Outros<\/option>\n                <\/select>\n\n\n                <label for=\"acquisition_costs\">Custos de aquisi\u00e7\u00e3o (\u20ac)<\/label>\n                <input type=\"text\" id=\"acquisition_costs\" name=\"acquisition_costs\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\" readonly>\n                <small style=\"display:block;margin-top:4px;color:#5f6f82;font-size:11px;\">Calculado automaticamente<\/small>\n\n                <div class=\"rmi-obras-tech-empty\" aria-hidden=\"true\"><\/div>\n                \n            <\/div>\n        <\/div>\n\n        <hr class=\"rmi-obras-tech-divider\">\n\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">Par\u00e2metros do projeto<\/div>\n\n            <div class=\"rmi-obras-tech-grid\">\n                <label for=\"project_months\">Prazo estimado (meses)<\/label>\n                <input type=\"text\" id=\"project_months\" name=\"project_months\" class=\"rmi-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"discount_rate\">Taxa de desconto anual (%)<\/label>\n                <input type=\"text\" id=\"discount_rate\" name=\"discount_rate\" class=\"rmi-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"commission_rate\">Taxa comiss\u00e3o (%)<\/label>\n                <input type=\"text\" id=\"commission_rate\" name=\"commission_rate\" class=\"rmi-input rmi-obras-tech-input\" value=\"5,00\">\n                                \n                <label for=\"profit_tax_rate\">Imposto sobre o lucro (%)<\/label>\n                <input type=\"text\" id=\"profit_tax_rate\" name=\"profit_tax_rate\" class=\"rmi-input rmi-obras-tech-input\" value=\"16,00\">\n\n                <label for=\"target_net_profitability_pct\">Meta m\u00ednima de rentabilidade l\u00edquida (%)<\/label>\n                <input type=\"text\" id=\"target_net_profitability_pct\" name=\"target_net_profitability_pct\" class=\"rmi-input rmi-obras-tech-input\" value=\"\">\n\n\n                        <div style=\"margin-top:6px;font-size:12px;color:#6b7c93;\">\n                            <strong>Notas:<\/strong> \n                            (A) IVA 23% aplicado automaticamente | \n                            (B) Custos de venda calculados automaticamente com base na comiss\u00e3o e IVA\n                        <\/div>\n   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n            <\/div>\n        <\/div>\n        \n\n        <hr class=\"rmi-obras-tech-divider\">\n\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">Cen\u00e1rios de venda<\/div>\n\n            <div class=\"rmi-obras-tech-grid\">\n                <label for=\"sale_price_1\">Venda prevista \u2014 Cen\u00e1rio 1 (\u20ac)<\/label>\n                <input type=\"text\" id=\"sale_price_1\" name=\"sale_price_1\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"sale_price_2\">Venda prevista \u2014 Cen\u00e1rio 2 (\u20ac)<\/label>\n                <input type=\"text\" id=\"sale_price_2\" name=\"sale_price_2\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"sale_price_3\">Venda prevista \u2014 Cen\u00e1rio 3 (\u20ac)<\/label>\n                <input type=\"text\" id=\"sale_price_3\" name=\"sale_price_3\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <div class=\"rmi-obras-tech-empty\" aria-hidden=\"true\"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n        <div class=\"rmi-actions\">\n                    <button type=\"submit\" name=\"rmi_obras_submit\" value=\"1\" class=\"rmi-btn\">Calcular<\/button>\n                            <button type=\"button\" id=\"rmi-clear-form\" class=\"rmi-btn rmi-btn-clear\">Limpar<\/button>\n                                            <button type=\"button\" id=\"rmi-share-btn\" class=\"rmi-btn\" onclick=\"window.location.href='mailto:?subject=Simulador&body=https%3A%2F%2Frmimoveis.pt%2Fcredito%2Fcalculadora-obra%2F';\">Partilhar por email<\/button>\n                                                        <\/div>\n    <\/form>    <div class=\"rmi-box\" style=\"text-align: center; padding: 15px;\">\n        <h3 style=\"margin-top: 0;\">Precisa de ajuda para validar a viabilidade da opera\u00e7\u00e3o?<\/h3>\n        <p>Entre em contacto comigo. Posso ajudar a enquadrar aquisi\u00e7\u00e3o, obra, financiamento e venda prevista de forma mais realista antes da decis\u00e3o final.<\/p>\n        <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 15px; text-align: left;\">\n            <div>\n                <strong>Domingos Costa<\/strong><br>\n                Email: domingos.costa@intermediariocredito.eu<br>\n                Telefone: 914317052\n            <\/div>\n            <div style=\"text-align: center;\">\n                <div style=\"display: flex; gap: 15px; justify-content: center; flex-wrap: wrap;\">\n                    <a href=\"https:\/\/rmimoveis.pt\/credito\" class=\"rmi-btn\" target=\"_blank\" style=\"background: #e64173; color: #fff; text-decoration: none;\">Iniciar pedido de empr\u00e9stimo<\/a>\n                    <a href=\"https:\/\/rmimoveis.pt\/mediacao\" class=\"rmi-btn\" target=\"_blank\" style=\"background: #163a5f; color: #fff; text-decoration: none;\">Comprar casa<\/a>\n                <\/div>\n                <p style=\"font-size: 12px; margin-top: 10px;\">Ou <a href=\"https:\/\/rmimoveis.pt\/menu-3-contactos\" target=\"_blank\">contacte\u2011me<\/a> para mais informa\u00e7\u00f5es.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n    <div class=\"rmi-note\">Esta vers\u00e3o foca-se no investimento total, custo real das obras, venda prevista e principais indicadores de rentabilidade. A an\u00e1lise detalhada da obra pode ser aprofundada mais tarde, mantendo esta base como refer\u00eancia.<\/div><\/div><\/div>    <div id=\"rmi-validation-modal\" style=\"display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:9999;align-items:center;justify-content:center;\">\n        <div style=\"background:#fff;padding:24px;border-radius:16px;max-width:500px;width:90%;box-shadow:0 4px 24px rgba(0,0,0,0.2);\">\n            <h3 style=\"margin:0 0 16px 0;font-size:20px;color:#cc0000;\">Aten\u00e7\u00e3o<\/h3>\n            <div id=\"rmi-validation-messages\" style=\"margin-bottom:20px;color:#333;\"><\/div>\n            <div style=\"display:flex;gap:10px;justify-content:flex-end;margin-top:20px;\">\n                <button type=\"button\" id=\"rmi-validation-close\" style=\"min-height:36px;padding:7px 16px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;border:none;background:#e64173;color:#fff;\">Fechar<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n        <script>\n    \n    \n    \n    document.addEventListener('DOMContentLoaded', function () {\n        var form = document.getElementById('rmi-obras-form');\n        var calculateBtn = form ? form.querySelector('button[name=\"rmi_obras_submit\"]') : null;\n        var clearBtn = document.getElementById('rmi-clear-form');\n        var validationModal = document.getElementById('rmi-validation-modal');\n        var validationMessages = document.getElementById('rmi-validation-messages');\n\n        \n        \n        \n\n        function showValidationModal(errors) {\n            if (!validationModal || !validationMessages) return;\n            validationMessages.innerHTML = '';\n            var list = document.createElement('ul');\n            list.style.margin = '0';\n            list.style.paddingLeft = '20px';\n            errors.forEach(function(err) {\n                var li = document.createElement('li');\n                li.textContent = err;\n                list.appendChild(li);\n            });\n            validationMessages.appendChild(list);\n            validationModal.style.display = 'flex';\n        }\n\n        function closeValidationModal() {\n            if (validationModal) validationModal.style.display = 'none';\n        }\n\n        var validationClose = document.getElementById('rmi-validation-close');\n        if (validationClose) validationClose.addEventListener('click', closeValidationModal);\n        if (validationModal) {\n            validationModal.addEventListener('click', function(e) {\n                if (e.target === validationModal) closeValidationModal();\n            });\n        }\n\n        function validateForm() {\n            var name = document.getElementById('client_name');\n            var email = document.getElementById('client_email');\n            var consent = document.getElementById('client_consent');\n            var isAdminSession = document.getElementById('is_admin_session');\n            var isAdmin = isAdminSession && isAdminSession.value === '1';\n            var errors = [];\n        \n        if (!isAdmin) {\n            if (!name || name.value.trim() === '') errors.push('O nome \u00e9 obrigat\u00f3rio.');\n            if (!email || email.value.trim() === '') errors.push('O email \u00e9 obrigat\u00f3rio.');\n            else if (!\/^[^\\s@]+@([^\\s@]+\\.)+[^\\s@]+$\/.test(email.value.trim())) errors.push('O email n\u00e3o \u00e9 v\u00e1lido.');\n            if (!consent || !consent.checked) errors.push('Deve aceitar a partilha de dados.');\n        }\n            var purchasePrice = document.getElementById('purchase_price');\n            var worksCost = document.getElementById('works_cost');\n            var sale1 = document.getElementById('sale_price_1');\n            var sale2 = document.getElementById('sale_price_2');\n            var sale3 = document.getElementById('sale_price_3');\n\n            if (!purchasePrice || purchasePrice.value.trim() === '') errors.push('Preencha o Pre\u00e7o de aquisi\u00e7\u00e3o (\u20ac).');\n            if (!worksCost || worksCost.value.trim() === '') errors.push('Preencha o Custo estimado das obras (\u20ac).');\n            if ((!sale1 || sale1.value.trim() === '') && (!sale2 || sale2.value.trim() === '') && (!sale3 || sale3.value.trim() === '')) {\n                errors.push('Preencha pelo menos um pre\u00e7o de venda previsto.');\n            }\n\n            if (errors.length > 0) {\n                showValidationModal(errors);\n                return false;\n            }\n            return true;\n        }\n\n        if (form) form.addEventListener('submit', function(e){ if (!validateForm()) e.preventDefault(); });\n        if (calculateBtn) calculateBtn.addEventListener('click', function(e){ if (!validateForm()) e.preventDefault(); });\n\n        if (clearBtn) {\n            clearBtn.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                if (form) {\n                    form.querySelectorAll('input:not([type=\"hidden\"]):not([type=\"submit\"]), select, textarea').forEach(function(field) {\n                        if (field.type === 'checkbox' || field.type === 'radio') field.checked = false;\n                        else field.value = '';\n                    });\n                }\n                var defaults = {\n                    works_margin: '',\n                    project_months: '',\n                    discount_rate: '',\n                    commission_rate: '',\n                    profit_tax_rate: '',\n                    target_net_profitability_pct: '',\n                    selling_cost_rate: '',\n                    deed_costs: '',\n                    region: '',\n                    property_type: '',\n                    status: 'calculado'\n                };\n\n                Object.keys(defaults).forEach(function(id){\n                    var el = document.getElementById(id);\n                    if (el) el.value = defaults[id];\n                });\n                \n\n                var resultsBox = document.getElementById('rmi-results-box');\n                if (resultsBox) resultsBox.style.display = 'none';\n                var glossaryBox = document.getElementById('rmi-glossary-box');\n                var legalBox = document.getElementById('rmi-legal-box');\n                if (glossaryBox) glossaryBox.style.display = 'none';\n                if (legalBox) legalBox.style.display = 'none';\n                closeValidationModal();\n                return false;\n            });\n        }\n\n        document.addEventListener('click', function(e) {\n            if (e.target && e.target.id === 'rmi-print-btn') {\n                if (typeof rmi_report_data !== 'undefined' && rmi_report_data.print_html) {\n                    var printWindow = window.open('', '_blank');\n                    if (printWindow) {\n                        printWindow.document.write(rmi_report_data.print_html);\n                        printWindow.document.close();\n                        printWindow.focus();\n                        setTimeout(function(){ printWindow.print(); }, 400);\n                    }\n                }\n            }\n\n            if (e.target && e.target.id === 'rmi-email-btn') {\n                if (typeof rmi_report_data === 'undefined' || !rmi_report_data.file_path) {\n                    alert('O relat\u00f3rio ainda n\u00e3o est\u00e1 dispon\u00edvel para envio.');\n                    return;\n                }\n\n                var formData = new FormData();\n                formData.append('action', 'rmi_send_report_email');\n                formData.append('email', rmi_report_data.email || '');\n                formData.append('file_path', rmi_report_data.file_path || '');\n                formData.append('nonce', rmi_report_data.nonce || '');\n                formData.append('client_name', rmi_report_data.client_name || '');\n\n                fetch('https:\/\/rmimoveis.pt\/credito\/wp-admin\/admin-ajax.php', {\n                    method: 'POST',\n                    body: formData,\n                    credentials: 'same-origin'\n                })\n                .then(function(r){ return r.json(); })\n                .then(function(data){\n                    if (data && data.success) alert('Relat\u00f3rio enviado por email com sucesso.');\n                    else alert((data && data.data) ? data.data : 'N\u00e3o foi poss\u00edvel enviar o email.');\n                })\n                .catch(function(){ alert('Ocorreu um erro no envio do email.'); });\n            }\n        });\n    });\n    <\/script>\n    <\/div>\n\t\t\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":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-5617","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/pages\/5617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/comments?post=5617"}],"version-history":[{"count":6,"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/pages\/5617\/revisions"}],"predecessor-version":[{"id":5623,"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/pages\/5617\/revisions\/5623"}],"wp:attachment":[{"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/media?parent=5617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}