{"id":15339,"date":"2025-12-24T16:01:14","date_gmt":"2025-12-24T16:01:14","guid":{"rendered":"https:\/\/alavista.pe\/galilea\/?page_id=15339"},"modified":"2026-01-08T14:28:40","modified_gmt":"2026-01-08T14:28:40","slug":"libro-de-reclamaciones","status":"publish","type":"page","link":"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/","title":{"rendered":"Libro de reclamaciones"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15339\" class=\"elementor elementor-15339\">\n\t\t\t\t<div class=\"elementor-element elementor-element-75319f1 e-flex e-con-boxed e-con e-parent\" data-id=\"75319f1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-ea9ab40 e-con-full e-flex e-con e-child\" data-id=\"ea9ab40\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-07bac33 e-con-full e-flex e-con e-child\" data-id=\"07bac33\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-64120b1 elementor-widget elementor-widget-image\" data-id=\"64120b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/alavista.pe\/galilea\/wp-content\/uploads\/2025\/09\/galilea.webp\" title=\"galilea\" alt=\"galilea\" loading=\"lazy\" \/>\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<div class=\"elementor-element elementor-element-7eb22e3 e-con-full e-flex e-con e-child\" data-id=\"7eb22e3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-8387693 e-con-full e-flex e-con e-child\" data-id=\"8387693\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b781ae9 elementor-widget elementor-widget-heading\" data-id=\"b781ae9\" 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\">Libro de reclamaci\u00f3n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\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-6ee567e e-flex e-con-boxed e-con e-parent\" data-id=\"6ee567e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-07f69f0 e-con-full e-flex e-con e-child\" data-id=\"07f69f0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-982dc23 e-con-full e-flex e-con e-child\" data-id=\"982dc23\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d04873d elementor-widget elementor-widget-heading\" data-id=\"d04873d\" 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\">Libro de reclamaciones virtual portal Web<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef79a92 elementor-widget elementor-widget-heading\" data-id=\"ef79a92\" 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\">Av. Primavera Nro. 1796 (piso 6) - Lima - Lima - Santiago de Surco<br>\nEste formulario servir\u00e1 para que los usuarios puedan reclamar algo o que les haya incomodado durante el servicio brindado<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-47029e4 elementor-widget elementor-widget-shortcode\" data-id=\"47029e4\" 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\">\n<form class=\"fg-frontend-form\" method=\"post\" enctype=\"multipart\/form-data\" novalidate>\n    <input type=\"hidden\" id=\"fg_nonce\" name=\"fg_nonce\" value=\"8745a142ec\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/galilea\/wp-json\/wp\/v2\/pages\/15339\" \/>    <input type=\"hidden\" name=\"fg_form_id\" value=\"15344\">\n\n    \n        <div class=\"fg-field flex-basis-50 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <div class=\"dvflx_recl\">\n                    <label>Fecha y Hora<\/label>\n                    <p>09\/06\/2026 06:42<\/p>\n                <\/div>\n                <input type=\"hidden\" name=\"fechahora\" value=\"09\/06\/2026 06:42\">\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <div class=\"fg-field fg-counter-auto\">\n                    <div class=\"dvflx_recl\">\n                        <label class=\"fg-label\">Hoja de reclamo<\/label>\n                        <p>LR-000002<\/p>\n                    <\/div>\n                    <input type=\"hidden\" name=\"codigo_reclamo\" value=\"LR-000002\">\n                <\/div>\n\n\n\n            <!-- ======== TEXTAREA ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-100 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <h3 class=\"fg-title\">1. Identificaci\u00f3n del consumidor reclamante<\/h3>\n\n            <!-- ======== QUESTION ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"nombre\">\n                    Nombre*                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"nombre\"\n                           id=\"nombre\"\n                           class=\"fg-input \"\n                                                      >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Apellido Paterno\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"apellido_paterno\">\n                    Apellido Paterno                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"apellido_paterno\"\n                           id=\"apellido_paterno\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Apellido Materno\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"apellido_materno\">\n                    Apellido Materno                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"apellido_materno\"\n                           id=\"apellido_materno\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Tel\u00e9fono*\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"telefono\">\n                    Tel\u00e9fono*                <\/label>\n\n                                    <input type=\"number\"\n                           name=\"telefono\"\n                           id=\"telefono\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Correo electr\u00f3nico\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"email\">\n                    Correo electr\u00f3nico                <\/label>\n\n                                    <input type=\"email\"\n                           name=\"email\"\n                           id=\"email\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Documento de Identidad\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"tipo_doc\">\n                    Documento de Identidad                <\/label>\n                <select name=\"tipo_doc\" \n                        id=\"tipo_doc\"\n                        class=\"fg-select fg-required-field\"\n                        required aria-required=\"true\"                        >\n                    <option value=\"\" hidden>Seleccione<\/option>\n\n                                            <option value=\"1\">DNI<\/option>\n                                            <option value=\"2\">CE<\/option>\n                                            <option value=\"3\">Pasaporte<\/option>\n                                    <\/select>\n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            <!-- ======== CHECKBOX (individual) ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"N\u00famero de documento\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"documento\">\n                    N\u00famero de documento                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"documento\"\n                           id=\"documento\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Direcci\u00f3n\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"direccion\">\n                    Direcci\u00f3n                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"direccion\"\n                           id=\"direccion\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Departamento\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"departamento\">\n                    Departamento                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"departamento\"\n                           id=\"departamento\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Provincia\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"provincia\">\n                    Provincia                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"provincia\"\n                           id=\"provincia\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Distrito\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"distrito\">\n                    Distrito                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"distrito\"\n                           id=\"distrito\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"apoderado\">\n                    Nombre de padre o apoderado (En caso de ser menor de edad)                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"apoderado\"\n                           id=\"apoderado\"\n                           class=\"fg-input \"\n                                                      >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-100 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <h3 class=\"fg-title\">2. Identificaci\u00f3n del bien contratado<\/h3>\n\n            <!-- ======== QUESTION ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Tipo de bien\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"tipo_bien\">\n                    Tipo de bien                <\/label>\n                <select name=\"tipo_bien\" \n                        id=\"tipo_bien\"\n                        class=\"fg-select fg-required-field\"\n                        required aria-required=\"true\"                        >\n                    <option value=\"\" hidden>Seleccione<\/option>\n\n                                            <option value=\"producto\">Producto<\/option>\n                                            <option value=\"servicio\">Servicio<\/option>\n                                    <\/select>\n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            <!-- ======== CHECKBOX (individual) ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Monto reclamado\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"monto\">\n                    Monto reclamado                <\/label>\n\n                                    <input type=\"text\"\n                           name=\"monto\"\n                           id=\"monto\"\n                           class=\"fg-input fg-required-field\"\n                           required aria-required=\"true\"                           >\n                \n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Proyecto\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"proyecto\">\n                    Proyecto                <\/label>\n                <select name=\"proyecto\" \n                        id=\"proyecto\"\n                        class=\"fg-select fg-required-field\"\n                        required aria-required=\"true\"                        >\n                    <option value=\"\" hidden>Seleccione<\/option>\n\n                                            <option value=\"VAE\">Valle Alto - Piura<\/option>\n                                            <option value=\"SDPR\">Sol del Prado - Piura<\/option>\n                                            <option value=\"LAMBII\">Sol de Lambayeque II - Lambayeque<\/option>\n                                            <option value=\"SDPII\">Sol de Pimentel II - Chiclayo<\/option>\n                                            <option value=\"LOM\">Sol de las Lomas - Chiclayo<\/option>\n                                            <option value=\"PDSIII\">Puertas del Sol III - Chiclayo<\/option>\n                                            <option value=\"SDHII\">Sol de Huanchaco II - Trujillo<\/option>\n                                            <option value=\"CAM\">Sol de la Campi\u00f1a - Chimbote<\/option>\n                                            <option value=\"SDPA\">Sol de la Pradera - Chincha<\/option>\n                                            <option value=\"SVI\">Sol de las Vi\u00f1as - Ica<\/option>\n                                    <\/select>\n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            <!-- ======== CHECKBOX (individual) ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-50 \"  data-required=\"true\" data-field-name=\"Tipo de inmueble\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"tipo_inmueble\">\n                    Tipo de inmueble                <\/label>\n                <select name=\"tipo_inmueble\" \n                        id=\"tipo_inmueble\"\n                        class=\"fg-select fg-required-field\"\n                        required aria-required=\"true\"                        >\n                    <option value=\"\" hidden>Seleccione<\/option>\n\n                                            <option value=\"casa\">Casa<\/option>\n                                            <option value=\"departamento\">Departamento<\/option>\n                                    <\/select>\n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            <!-- ======== CHECKBOX (individual) ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-100 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <h3 class=\"fg-title\">3. Detalle de la reclamaci\u00f3n<\/h3>\n\n            <!-- ======== QUESTION ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-100 \"  data-required=\"true\" data-field-name=\"\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <fieldset>\n                    <legend>\n                                            <\/legend>\n                    <div class=\"fg-radio-group\">\n                                                    <div class=\"fg-radio-item dvchkbmrg_rad\">\n                                <input type=\"radio\" \n                                       name=\"detalle_reclamo\" \n                                       id=\"detalle_reclamo_0\"\n                                       value=\"RECLAMO (Disconformidad relacionada con los productos o servicios)\"\n                                       class=\"fg-radio fg-required-field\"\n                                       required aria-required=\"true\">\n                                <label for=\"detalle_reclamo_0\" class=\"fg-radio-label\">\n                                    RECLAMO (Disconformidad relacionada con los productos o servicios)                                <\/label>\n                            <\/div>\n                                                    <div class=\"fg-radio-item dvchkbmrg_rad\">\n                                <input type=\"radio\" \n                                       name=\"detalle_reclamo\" \n                                       id=\"detalle_reclamo_1\"\n                                       value=\"QUEJA (Disconformidad no relacionada con los productos o servicios malestar o descontento con respecto a la atenci\u00f3n)\"\n                                       class=\"fg-radio fg-required-field\"\n                                       required aria-required=\"true\">\n                                <label for=\"detalle_reclamo_1\" class=\"fg-radio-label\">\n                                    QUEJA (Disconformidad no relacionada con los productos o servicios malestar o descontento con respecto a la atenci\u00f3n)                                <\/label>\n                            <\/div>\n                                            <\/div>\n                <\/fieldset>\n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            <!-- ======== FILE ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-100 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <label for=\"motivo\">\n                    Detalle del motivo (Opcional)                <\/label>\n                <textarea name=\"motivo\" \n                          id=\"motivo\"\n                          placeholder=\"Escribir...\"\n                          class=\"fg-textarea \"\n                                                    ><\/textarea>\n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            <!-- ======== SELECT ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-100 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <p class=\"fg-description\">- La formulaci\u00f3n del reclamo no impide acudir a otras v\u00edas de soluci\u00f3n de controversias ni es requisito previo para interponer una denuncia ante el INDECOPI.<\/p>\n\n            <!-- ======== SECTION ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-100 \" >\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <p class=\"fg-description\">- El proveedor debe dar respuesta al reclamo o queja en un plazo no mayor a quince (15) d\u00edas h\u00e1biles, el cual es improrrogable.<\/p>\n\n            <!-- ======== SECTION ======== -->\n            \n        <\/div>\n    \n        <div class=\"fg-field flex-basis-100  chbkdv_group \"  data-required=\"true\" data-field-name=\"He le\u00eddo y acepto los T\u00e9rminos y condiciones.\">\n\n            <!-- ======== TEXT, EMAIL, NUMBER, DATE, TIME ======== -->\n                            <div class=\"fg-checkbox-wrapper dvchkbmrg\">\n                    <input type=\"checkbox\" \n                           name=\"terminos\" \n                           id=\"terminos\"\n                           value=\"1\"\n                           class=\"fg-checkbox fg-required-field\"\n                           required aria-required=\"true\">\n                    <label for=\"terminos\" class=\"fg-checkbox-label lblchbkacep\">\n                        He le\u00eddo y acepto los T\u00e9rminos y condiciones.                    <\/label>\n                <\/div>\n                <span class=\"fg-error-msg\" style=\"display:none;\"><\/span>\n\n            <!-- ======== RADIO (grupo) ======== -->\n            \n        <\/div>\n        \n    \n\n\n    <!-- BOT\u00d3N SUBMIT -->\n    <div class=\"fg-field-submit\" style=\"flex-basis:100%\">\n        <button class=\"fg-submit-btn\" type=\"submit\" name=\"fg_submit_form\">\n            Enviar\n        <\/button>\n    <\/div>\n<\/form>\n\n<script>\n(function() {\n    \"use strict\";\n\n    const form = document.querySelector(\"form.fg-frontend-form\");\n    if (!form) return;\n\n    \/\/ ========================================\n    \/\/ 1. CARGAR UTM DESDE URL (Fallback JS)\n    \/\/ ========================================\n    \n\n    \/\/ ========================================\n    \/\/ 2. VALIDACI\u00d3N FRONTEND CORREGIDA\n    \/\/ ========================================\n    function validateForm() {\n        let isValid = true;\n\n        \/\/ Buscar TODOS los campos requeridos (no solo data-required)\n        const requiredInputs = form.querySelectorAll('input[required], textarea[required], select[required]');\n        const requiredWrappers = form.querySelectorAll('[data-required=\"true\"]');\n\n        \/\/ Validar inputs con atributo HTML5 required\n        requiredInputs.forEach(input => {\n            validateSingleField(input);\n        });\n\n        \/\/ Validar wrappers con data-required (radios, checkbox groups)\n        requiredWrappers.forEach(wrapper => {\n            const fieldType = wrapper.querySelector('input[type=\"radio\"], input[type=\"checkbox\"]') ? 'group' : 'single';\n            if (fieldType === 'group') {\n                validateGroupField(wrapper);\n            }\n        });\n\n        function validateSingleField(input) {\n            const wrapper = input.closest('.fg-field');\n            const errorMsg = wrapper ? wrapper.querySelector('.fg-error-msg') : null;\n            const fieldName = wrapper ? wrapper.getAttribute('data-field-name') || 'Este campo' : 'Este campo';\n\n            let isValidField = true;\n\n            \/\/ Validaci\u00f3n espec\u00edfica por tipo\n            if (input.type === 'checkbox') {\n                isValidField = input.checked;\n            } else if (input.type === 'radio') {\n                \/\/ Radio: validar todo el grupo\n                const radioGroup = form.querySelectorAll(`input[name=\"${input.name}\"][required]`);\n                isValidField = Array.from(radioGroup).some(radio => radio.checked);\n            } else {\n                isValidField = input.value.trim().length > 0;\n            }\n\n            if (!isValidField) {\n                input.classList.add('fg-error');\n                if (errorMsg) {\n                    errorMsg.textContent = fieldName + ' es requerido';\n                    errorMsg.style.display = 'block';\n                }\n                isValid = false;\n            } else {\n                input.classList.remove('fg-error');\n                if (errorMsg) {\n                    errorMsg.style.display = 'none';\n                }\n            }\n        }\n\n        function validateGroupField(wrapper) {\n            const radios = wrapper.querySelectorAll('input[type=\"radio\"]');\n            const checkboxes = wrapper.querySelectorAll('input[type=\"checkbox\"]');\n            const errorMsg = wrapper.querySelector('.fg-error-msg');\n            const fieldName = wrapper.getAttribute('data-field-name') || 'Este campo';\n\n            let isValidGroup = false;\n\n            if (radios.length > 0) {\n                \/\/ Validar grupo de radios\n                isValidGroup = Array.from(radios).some(radio => radio.checked);\n            } else if (checkboxes.length > 0) {\n                \/\/ Validar checkbox individual\n                isValidGroup = checkboxes[0].checked;\n            }\n\n            const firstInput = wrapper.querySelector('input, textarea, select');\n            if (firstInput) {\n                if (!isValidGroup) {\n                    firstInput.classList.add('fg-error');\n                    if (errorMsg) {\n                        errorMsg.textContent = fieldName + ' es requerido';\n                        errorMsg.style.display = 'block';\n                    }\n                    isValid = false;\n                } else {\n                    firstInput.classList.remove('fg-error');\n                    if (errorMsg) {\n                        errorMsg.style.display = 'none';\n                    }\n                }\n            }\n        }\n\n        return isValid;\n    }\n\n    \/\/ ========================================\n    \/\/ 3. LIMPIAR ERRORES AL ESCRIBIR\/TIPLEAR\n    \/\/ ========================================\n    form.addEventListener('input', function(e) {\n        const input = e.target;\n        if (input.matches('input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"date\"], input[type=\"time\"], textarea, select')) {\n            const wrapper = input.closest('.fg-field');\n            if (wrapper) {\n                input.classList.remove('fg-error');\n                const errorMsg = wrapper.querySelector('.fg-error-msg');\n                if (errorMsg) errorMsg.style.display = 'none';\n            }\n        }\n    });\n\n    \/\/ ========================================\n    \/\/ 4. LIMPIAR ERRORES AL CAMBIAR CHECKBOX\/RADIO\n    \/\/ ========================================\n    form.addEventListener('change', function(e) {\n        const input = e.target;\n        if (input.matches('input[type=\"checkbox\"], input[type=\"radio\"]')) {\n            \/\/ Revalidar todo el formulario para actualizar estados\n            setTimeout(validateForm, 100);\n        }\n    });\n\n    \/\/ ========================================\n    \/\/ 5. VALIDAR EN SUBMIT (CR\u00cdTICO)\n    \/\/ ========================================\n    form.addEventListener('submit', function(e) {\n        e.preventDefault(); \/\/ Siempre prevenir para control total\n\n        if (!validateForm()) {\n            \/\/ Scroll suave al primer error\n            const firstError = form.querySelector('.fg-error');\n            if (firstError) {\n                firstError.scrollIntoView({ \n                    behavior: 'smooth', \n                    block: 'center' \n                });\n                firstError.focus();\n            }\n            return false;\n        }\n\n        \/\/ FORMULARIO V\u00c1LIDO - Proceder con submit nativo\n        const btn = form.querySelector('.fg-submit-btn');\n        if (btn) {\n            btn.disabled = true;\n            btn.style.opacity = '0.6';\n            btn.textContent = 'Enviando...';\n        }\n\n        \/\/ Submit nativo despu\u00e9s de validaci\u00f3n\n        form.submit();\n    });\n    \n    \/\/ ========================================\n    \/\/ 6. FILE INPUT: mostrar nombre de archivo\n    \/\/ ========================================\n    function initCustomFileInputs() {\n        const fileWrappers = form.querySelectorAll('.fg-file-wrapper');\n\n        fileWrappers.forEach(wrapper => {\n            const realInput = wrapper.querySelector('.fg-file-input');\n            const fakeLabel = wrapper.querySelector('.fg-file-label');\n\n            if (!realInput || !fakeLabel) return;\n\n            realInput.addEventListener('change', function () {\n                let fileName = '';\n                if (this.files && this.files.length > 0) {\n                    fileName = this.files[0].name;\n                } else {\n                    fileName = fakeLabel.getAttribute('data-default') || 'Elegir archivo';\n                }\n                fakeLabel.textContent = fileName;\n            });\n        });\n    }\n\n    \/\/ ========================================\n    \/\/ 7. INTL-TEL-INPUT: Selector de c\u00f3digo de pa\u00eds\n    \/\/ ========================================\n    function initPhoneInputs() {\n        if (typeof intlTelInput === 'undefined') return;\n\n        const phoneInputs = form.querySelectorAll('.fg-phone-input');\n\n        phoneInputs.forEach(function(input) {\n            const iti = intlTelInput(input, {\n                initialCountry: \"pe\",          \/\/ Per\u00fa por defecto\n                separateDialCode: true,         \/\/ Muestra el c\u00f3digo separado visualmente\n                preferredCountries: [\"pe\", \"us\", \"es\", \"co\", \"mx\", \"ar\", \"cl\"], \/\/ Pa\u00edses frecuentes arriba\n                nationalMode: false,\n            });\n\n            \/\/ Al hacer submit, concatenar c\u00f3digo + n\u00famero en el hidden\n            const hiddenInput = document.getElementById(input.id + '_full');\n\n            if (hiddenInput) {\n                \/\/ Actualizar hidden en tiempo real\n                input.addEventListener('change', function() {\n                    hiddenInput.value = iti.getNumber(); \/\/ ej: +51987654321\n                });\n                input.addEventListener('keyup', function() {\n                    hiddenInput.value = iti.getNumber();\n                });\n            }\n\n            \/\/ Sobrescribir el name del input visible para que no se env\u00ede vac\u00edo\n            \/\/ El valor real va por el hidden _full\n            input.removeAttribute('name');\n        });\n    }\n\n    \/\/ Esperar a que intl-tel-input cargue (es defer)\n    if (typeof intlTelInput !== 'undefined') {\n        initPhoneInputs();\n    } else {\n        document.addEventListener('DOMContentLoaded', initPhoneInputs);\n        window.addEventListener('load', initPhoneInputs); \/\/ fallback seguro\n    }\n\n    \/\/ llamar al iniciar\n    initCustomFileInputs();\n\n   \n\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-87a47b9 e-con-full e-flex e-con e-child\" data-id=\"87a47b9\" data-element_type=\"container\" data-e-type=\"container\">\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>Libro de reclamaci\u00f3n Libro de reclamaciones virtual portal Web Av. Primavera Nro. 1796 (piso 6) &#8211; Lima &#8211; Lima &#8211; Santiago de Surco Este formulario servir\u00e1 para que los usuarios puedan reclamar algo o que les haya incomodado durante el servicio brindado<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-15339","page","type-page","status-publish","hentry","entry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Libro de reclamaciones | Galilea<\/title>\n<meta name=\"description\" content=\"Ponemos a tu disposici\u00f3n nuestro Libro de Reclamaciones virtual para registrar reclamos o quejas de manera sencilla, transparente.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Libro de reclamaciones | Galilea\" \/>\n<meta property=\"og:description\" content=\"Ponemos a tu disposici\u00f3n nuestro Libro de Reclamaciones virtual para registrar reclamos o quejas de manera sencilla, transparente.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/\" \/>\n<meta property=\"og:site_name\" content=\"Galilea\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ConstructoraGalileaPeru\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-08T14:28:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/alavista.pe\/galilea\/wp-content\/uploads\/2025\/09\/galilea.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/libro-de-reclamaciones\\\/\",\"url\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/libro-de-reclamaciones\\\/\",\"name\":\"Libro de reclamaciones | Galilea\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/libro-de-reclamaciones\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/libro-de-reclamaciones\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/galilea.webp\",\"datePublished\":\"2025-12-24T16:01:14+00:00\",\"dateModified\":\"2026-01-08T14:28:40+00:00\",\"description\":\"Ponemos a tu disposici\u00f3n nuestro Libro de Reclamaciones virtual para registrar reclamos o quejas de manera sencilla, transparente.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/libro-de-reclamaciones\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/alavista.pe\\\/galilea\\\/libro-de-reclamaciones\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/libro-de-reclamaciones\\\/#primaryimage\",\"url\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/galilea.webp\",\"contentUrl\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/galilea.webp\",\"width\":136,\"height\":136},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/libro-de-reclamaciones\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Libro de reclamaciones\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/#website\",\"url\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/\",\"name\":\"Galilea\",\"description\":\"Venta de casas en el norte de Per\u00fa con Galilea. Hogares de calidad con financiamiento accesible y asesor\u00eda personalizada.\",\"publisher\":{\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/#organization\",\"name\":\"Galilea\",\"url\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/logo-galilea.svg\",\"contentUrl\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/logo-galilea.svg\",\"width\":111,\"height\":48,\"caption\":\"Galilea\"},\"image\":{\"@id\":\"https:\\\/\\\/alavista.pe\\\/galilea\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/ConstructoraGalileaPeru\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Libro de reclamaciones | Galilea","description":"Ponemos a tu disposici\u00f3n nuestro Libro de Reclamaciones virtual para registrar reclamos o quejas de manera sencilla, transparente.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Libro de reclamaciones | Galilea","og_description":"Ponemos a tu disposici\u00f3n nuestro Libro de Reclamaciones virtual para registrar reclamos o quejas de manera sencilla, transparente.","og_url":"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/","og_site_name":"Galilea","article_publisher":"https:\/\/www.facebook.com\/ConstructoraGalileaPeru","article_modified_time":"2026-01-08T14:28:40+00:00","og_image":[{"url":"https:\/\/alavista.pe\/galilea\/wp-content\/uploads\/2025\/09\/galilea.webp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/","url":"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/","name":"Libro de reclamaciones | Galilea","isPartOf":{"@id":"https:\/\/alavista.pe\/galilea\/#website"},"primaryImageOfPage":{"@id":"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/#primaryimage"},"image":{"@id":"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/#primaryimage"},"thumbnailUrl":"https:\/\/alavista.pe\/galilea\/wp-content\/uploads\/2025\/09\/galilea.webp","datePublished":"2025-12-24T16:01:14+00:00","dateModified":"2026-01-08T14:28:40+00:00","description":"Ponemos a tu disposici\u00f3n nuestro Libro de Reclamaciones virtual para registrar reclamos o quejas de manera sencilla, transparente.","breadcrumb":{"@id":"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/#primaryimage","url":"https:\/\/alavista.pe\/galilea\/wp-content\/uploads\/2025\/09\/galilea.webp","contentUrl":"https:\/\/alavista.pe\/galilea\/wp-content\/uploads\/2025\/09\/galilea.webp","width":136,"height":136},{"@type":"BreadcrumbList","@id":"https:\/\/alavista.pe\/galilea\/libro-de-reclamaciones\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/alavista.pe\/galilea\/"},{"@type":"ListItem","position":2,"name":"Libro de reclamaciones"}]},{"@type":"WebSite","@id":"https:\/\/alavista.pe\/galilea\/#website","url":"https:\/\/alavista.pe\/galilea\/","name":"Galilea","description":"Venta de casas en el norte de Per\u00fa con Galilea. Hogares de calidad con financiamiento accesible y asesor\u00eda personalizada.","publisher":{"@id":"https:\/\/alavista.pe\/galilea\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/alavista.pe\/galilea\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/alavista.pe\/galilea\/#organization","name":"Galilea","url":"https:\/\/alavista.pe\/galilea\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/alavista.pe\/galilea\/#\/schema\/logo\/image\/","url":"https:\/\/alavista.pe\/galilea\/wp-content\/uploads\/2025\/09\/logo-galilea.svg","contentUrl":"https:\/\/alavista.pe\/galilea\/wp-content\/uploads\/2025\/09\/logo-galilea.svg","width":111,"height":48,"caption":"Galilea"},"image":{"@id":"https:\/\/alavista.pe\/galilea\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ConstructoraGalileaPeru"]}]}},"_links":{"self":[{"href":"https:\/\/alavista.pe\/galilea\/wp-json\/wp\/v2\/pages\/15339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alavista.pe\/galilea\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alavista.pe\/galilea\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/alavista.pe\/galilea\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alavista.pe\/galilea\/wp-json\/wp\/v2\/comments?post=15339"}],"version-history":[{"count":10,"href":"https:\/\/alavista.pe\/galilea\/wp-json\/wp\/v2\/pages\/15339\/revisions"}],"predecessor-version":[{"id":15350,"href":"https:\/\/alavista.pe\/galilea\/wp-json\/wp\/v2\/pages\/15339\/revisions\/15350"}],"wp:attachment":[{"href":"https:\/\/alavista.pe\/galilea\/wp-json\/wp\/v2\/media?parent=15339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}