1<!DOCTYPE html> 2<html lang="es-ES" prefix="og: https://ogp.me/ns#"> 3<head> 4 <meta charset="UTF-8">
5<script> 6var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),document.addEventListener("gform/theme/scripts_loaded",function(){gform.themeScriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>"function"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn("The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1."),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener("gform_main_scripts_loaded",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener("gform/theme/scripts_loaded",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener("DOMContentLoaded",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook("action",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook("filter",o,r,e,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,r){gform.removeHook("action",o,r)},removeFilter:function(o,r,e){gform.removeHook("filter",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+"_"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==r?t.apply(null,e):e[0]=t.apply(null,e)})),"filter"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}}); 7</script>
7 8 9 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 10 <link rel="profile" href="https://gmpg.org/xfn/11"> 11 <link rel="preconnect" href="https://fonts.googleapis.com"> 12 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 13 <link rel="preload" href="https://hausum.com/wp-content/themes/hausum-theme/fonts/aptos-display-bold.woff2" as="font" type="font/woff2" crossorigin> 14 <link rel="preload" href="https://hausum.com/wp-content/themes/hausum-theme/fonts/aptos-regular.woff2" as="font" type="font/woff2" crossorigin> 15 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 16<link rel="alternate" hreflang="en" href="https://hausum.com/en/inspection/" /> 17<link rel="alternate" hreflang="fr" href="https://hausum.com/fr/inspection/" /> 18<link rel="alternate" hreflang="de" href="https://hausum.com/de/inspektion/" /> 19<link rel="alternate" hreflang="es" href="https://hausum.com/inspeccion/" /> 20<link rel="alternate" hreflang="ca" href="https://hausum.com/ca/inspeccio/" /> 21<link rel="alternate" hreflang="nl" href="https://hausum.com/nl/ins
21pectie/" /> 22<link rel="alternate" hreflang="x-default" href="https://hausum.com/inspeccion/" /> 23 24<!-- Google Tag Manager for WordPress by gtm4wp.com -->
25<script data-cfasync="false" data-pagespeed-no-defer> 26 var gtm4wp_datalayer_name = "dataLayer"; 27 var dataLayer = dataLayer || []; 28 (function(){dataLayer.push(arguments);})('set', 'developer_id.dNGJiYT', true); 29</script>
29 30<!-- End Google Tag Manager for WordPress by gtm4wp.com --> <!-- Google Consent Mode v2 Default --> 31
31<script> 32 window.dataLayer = window.dataLayer || []; 33 function gtag(){dataLayer.push(arguments);} 34 35 // Read cookie helper 36 function hsmGetConsentCookie() { 37 var name = "hsm_cookie_consent="; 38 var decodedCookie = decodeURIComponent(document.cookie); 39 var ca = decodedCookie.split(';'); 40 for(var i = 0; i < ca.length; i++) { 41 var c = ca[i].trim(); 42 if (c.indexOf(name) === 0) return c.substring(name.length, c.length); 43 } 44 return ""; 45 } 46 47 var userConsent = hsmGetConsentCookie(); 48 var consentState = userConsent === 'all' ? 'granted' : 'denied'; 49 50 gtag('consent', 'default', { 51 'ad_storage': consentState, 52 'analytics_storage': consentState, 53 'ad_user_data': consentState, 54 'ad_personalization': consentState, 55 'wait_for_update': 500 56 }); 57 </script>
57 58
58<script id="grecaptcha-adblock-polyfill"> 59 (function() { 60 if (typeof window.grecaptcha === 'undefined') { 61 window.grecaptcha = { 62 ready: function(cb) { if (typeof cb === 'function') { try { cb(); } catch(e){} } }, 63 execute: function() { return Promise.resolve('adblock_fallback_token'); }, 64 render: function() { return 0; }, 65 getResponse: function() { return 'adblock_fallback_token'; }, 66 reset: function() {} 67 }; 68 } 69 })(); 70 </script>
70 71 <style id="hausum-select-contrast-fix"> 72 select option, 73 .gform_wrapper select option, 74 .gfield select option, 75 .form-row select option, 76 .modal select option, 77 .lightbox_form select option, 78 .gform_wrapper select.gfield_select option { 79 background-color: #0A1E3C !important; 80 color: #FFFFFF !important; 81 } 82 select option:hover, 83 select option:focus, 84 select option:active, 85 select option:checked { 86 background-color: #2E9BFF !important; 87 color: #FFFFFF !important; 88 } 89 90 /* ===== POPUP DARK MODALS & LIGHTBOX FORM HIGH-CONTRAST FIX ===== */ 91 #hsm-modal-gf-39 .gfield_label, 92 #hsm-modal-gf-39 label, 93 #modal-lead .gfield_label, 94 #modal-lead label, 95 .lightbox_form .gfield_label, 96 .lightbox_form label { 97 color: #FFFFFF !important; 98 opacity: 1 !important; 99 } 100 101 /* Form Inputs & Textareas High Contrast for Dark Modals */ 102 #hsm-modal-gf-39 input[type="text"], 103 #hsm-modal-gf-39 input[type="email"], 104 #hsm-modal-gf-39 input[type="tel"], 105 #hsm-modal-gf-39 input[type="url"], 106 #hsm-modal-gf-39 input[type="number"], 107 #hsm-modal-gf-39 textarea, 108 #modal-lead input[type="text"], 109 #modal-lead input[type="email"], 110 #modal-lead input[type="tel"], 111 #modal-lead textarea, 112 .lightbox_form input { 113 color: #FFFFFF !important; 114 background-color: rgba(255, 255, 255, 0.12) !important; 115 border: 1.5px solid rgba(255, 255, 255, 0.35) !important; 116 border-radius: 8px !important; 117 } 118 119 #hsm-modal-gf-39 input::placeholder, 120 #hsm-modal-gf-39 textarea::placeholder, 121 #modal-lead input::placeholder, 122 .lightbox_form input::placeholder { 123 color: #CBD5E1 !important; 124 opacity: 1 !important; 125 } 126 127 /* Standard Light Background Gravity Form Styles (e.g. /reserva/) */ 128 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) .gfield_label, 129 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) label, 130 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) .gform-field-label, 131 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) .gfield_consent_label, 132 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) .gform_title, 133 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) .gfield_description, 134 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) .gsection_title, 135 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) legend { 136 color: #0A1E3C !important; 137 opacity: 1 !important; 138 font-weight: 600 !important; 139 } 140 141 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) input[type="text"], 142 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) input[type="email"], 143 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) input[type="tel"], 144 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) input[type="url"], 145 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) input[type="number"], 146 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) input[type="password"], 147 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) textarea, 148 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) select { 149 color: #0F172A !important; 150 background-color: #FFFFFF !important; 151 border: 1.5px solid #CBD5E1 !important; 152 border-radius: 8px !important; 153 } 154 155 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) input::placeholder, 156 .gform_wrapper:not(#hsm-modal-gf-39):not(#modal-lead) textarea::placeholder { 157 color: #64748B !important; 158 opacity: 1 !important; 159 } 160 161 /* Required Asterisk Red Contrast */ 162 .gform_wrapper .gfield_required, 163 .gfield_required, 164 label .gfield_required, 165 span.gfield_required { 166 color: #EF4444 !important; 167 font-weight: bold !important; 168 opacity: 1 !important; 169 } 170 171 .gform_wrapper .gfield_checkbox label a, 172 .gform_wrapper .ginput_container_consent label a { 173 color: #2563EB !important; 174 font-weight: 700 !important; 175 text-decoration: underline !important; 176 } 177 178 /* Restore readable white title text on the darker "Sobre el inmueble" cards in /reserva/. 179 The global .gform-field-label navy rule above otherwise wins by specificity and makes 180 these cards' dark-blue/navy backgrounds hard to read. */ 181 #gform_wrapper_28 .hausum-tipo-inmueble .gchoice:not(#_):nth-of-type(3) .gform-field-label, 182 #gform_wrapper_28 .hausum-tipo-inmueble .gchoice:not(#_):nth-of-type(4) .gform-field-label, 183 #gform_wrapper_28 .hausum-tipo-inmueble .gchoice:not(#_):nth-of-type(5) .gform-field-label { 184 color: #FFFFFF !important; 185 } 186 </style> 187 188<!-- Optimización en motores de búsqueda por Rank Math PRO - https://rankmath.com/ --> 189<title>Inspección de inmuebles: Profesionales en inspecciones de vivienda | Hausum</title> 190<meta name="description" content="Hausum profesionales en inspecciones de viviendas te ayudamos a revisar cualquier desperfecto antes de comprar tu futura vivienda. Contrata a un home inspector de confianza."/> 191<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
192<link rel="canonical" href="https://hausum.com/inspeccion/" /> 193<meta property="og:locale" content="es_ES" /> 194<meta property="og:type" content="article" /> 195<meta property="og:title" content="Inspección de inmuebles: Profesionales en inspecciones de vivienda | Hausum" /> 196<meta property="og:description" content="Hausum profesionales en inspecciones de viviendas te ayudamos a revisar cualquier desperfecto antes de comprar tu futura vivienda. Contrata a un home inspector de confianza." /> 197<meta property="og:url" content="https://hausum.com/inspeccion/" /> 198<meta property="og:site_name" content="Buyyourhome" /> 199<meta property="og:updated_time" content="2026-07-17T09:08:00+02:00" /> 200<meta property="og:image" content="https://hausum.com/wp-content/uploads/2026/08/hausum-og-inspector.jpg?v=3" /> 201<meta property="og:image:secure_url" content="https://hausum.com/wp-content/uploads/2026/08/hausum-og-inspector.jpg?v=3" /> 202<meta property="og:image:alt" content="Inspección de inmuebles" /> 203<meta property="article:published_time" content="2025-01-19T09:26:59+01:00" /> 204<meta property="article:modified_time" content="2026-07-17T09:08:00+02:00" /> 205<meta name="twitter:card" content="summary_large_image" /> 206<meta name="twitter:title" content="Inspección de inmuebles: Profesionales en inspecciones de vivienda | Hausum" /> 207<meta name="twitter:description" content="Hausum profesionales en inspecciones de viviendas te ayudamos a revisar cualquier desperfecto antes de comprar tu futura vivienda. Contrata a un home inspector de confianza." /> 208<meta name="twitter:image" content="https://hausum.com/wp-content/uploads/2026/08/hausum-og-inspector.jpg?v=3" /> 209<meta name="twitter:label1" content="Tiempo de lectura" /> 210<meta name="twitter:data1" content="Menos de un minuto" />
211<script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://hausum.com/#organization","name":"Buyyourhome"},{"@type":"WebSite","@id":"https://hausum.com/#website","url":"https://hausum.com","name":"Buyyourhome","publisher":{"@id":"https://hausum.com/#organization"},"inLanguage":"es"},{"@type":"WebPage","@id":"https://hausum.com/inspeccion/#webpage","url":"https://hausum.com/inspeccion/","name":"Inspecci\u00f3n de inmuebles: Profesionales en inspecciones de vivienda | Hausum","datePublished":"2025-01-19T09:26:59+01:00","dateModified":"2026-07-17T09:08:00+02:00","isPartOf":{"@id":"https://hausum.com/#website"},"inLanguage":"es"},{"@type":"Person","@id":"https://hausum.com/author/admbyht4/","name":"Hausum","url":"https://hausum.com/author/admbyht4/","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/46d1d14a97aea9adfcf2ca7dbf3c19a1396284214b3bd06594409e23a59277d5?s=96&d=mm&r=g","url":"https://secure.gravatar.com/avatar/46d1d14a97aea9adfcf2ca7dbf3c19a1396284214b3bd06594409e23a59277d5?s=96&d=mm&r=g","caption":"Hausum","inLanguage":"es"},"worksFor":{"@id":"https://hausum.com/#organization"}},{"@type":"Article","headline":"Inspecci\u00f3n de inmuebles: Profesionales en inspecciones de vivienda | Hausum","datePublished":"2025-01-19T09:26:59+01:00","dateModified":"2026-07-17T09:08:00+02:00","author":{"@id":"https://hausum.com/author/admbyht4/","name":"Hausum"},"publisher":{"@id":"https://hausum.com/#organization"},"description":"Hausum profesionales en inspecciones de viviendas te ayudamos a revisar cualquier desperfecto antes de comprar tu futura vivienda. Contrata a un home inspector de confianza.","name":"Inspecci\u00f3n de inmuebles: Profesionales en inspecciones de vivienda | Hausum","@id":"https://hausum.com/inspeccion/#richSnippet","isPartOf":{"@id":"https://hausum.com/inspeccion/#webpage"},"inLanguage":"es","mainEntityOfPage":{"@id":"https://hausum.com/inspeccion/#webpage"}}]}</script>
211 212<!-- /Plugin Rank Math WordPress SEO --> 213 214<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' /> 215<link rel='dns-prefetch' href='//maps.googleapis.com' /> 216<link rel='dns-prefetch' href='//unpkg.com' /> 217<link rel='dns-prefetch' href='//www.google.com' /> 218<meta property="og:locale" content="es_ES" /> 219<meta property="og:type" content="website" /> 220<meta property="og:title" content="Inspección de inmuebles · Hausum" /> 221<meta property="og:description" content="Conoce el estado real de la vivienda que vas a comprar con un informe técnico independiente hecho por arquitectos colegiados." /> 222<meta property="og:url" content="https://hausum.com/inspeccion/" /> 223<meta property="og:site_name" content="Hausum" /> 224<meta property="og:image" content="https://hausum.com/wp-content/uploads/2026/08/hausum-og-inspector.jpg?v=3" /> 225<meta property="og:image:secure_url" content="https://hausum.com/wp-content/uploads/2026/08/hausum-og-inspector.jpg?v=3" /> 226<meta property="og:image:width" content="1200" /> 227<meta property="og:image:height" content="630" /> 228<meta property="og:image:type" content="image/jpeg" /> 229<meta name="twitter:card" content="summary_large_image" /> 230<meta name="twitter:title" content="Inspección de inmuebles · Hausum" /> 231<meta name="twitter:description" content="Conoce el estado real de la vivienda que vas a comprar con un informe técnico independiente hecho por arquitectos colegiados." /> 232<meta name="twitter:image" content="https://hausum.com/wp-content/uploads/2026/08/hausum-og-inspector.jpg?v=3" /> 233<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://hausum.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fhausum.com%2Finspeccion%2F" /> 234<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://hausum.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fhausum.com%2Finspeccion%2F&format=xml" /> 235<style id="wp-img-auto-sizes-contain-inline-css"> 236img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 237/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 238</style> 239<style id="wp-emoji-styles-inline-css"> 240 241 img.wp-smiley, img.emoji { 242 display: inline !important; 243 border: none !important; 244 box-shadow: none !important; 245 height: 1em !important; 246 width: 1em !important; 247 margin: 0 0.07em !important; 248 vertical-align: -0.1em !important; 249 background: none !important; 250 padding: 0 !important; 251 } 252/*# sourceURL=wp-emoji-styles-inline-css */ 253</style> 254<style id="wp-block-library-inline-css"> 255:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
255--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 256 257/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 258</style> 259<style id="classic-theme-styles-inline-css"> 260/*! This file is auto-generated */ 261.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 262/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 263</style> 264 265<style id="global-styles-inline-css"> 266:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
2660) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
266.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 267:where(.wp-block-gp-entry-blocks-entries-loop.is-layout-flex){gap: 1.25em;}:where(.wp-block-gp-entry-blocks-entries-loop.is-layout-grid){gap: 1.25em;} 268/*# sourceURL=global-styles-inline-css */ 269</style> 270 271<link rel='stylesheet' id='intl-tel-input-css-css' href='https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/css/intlTelInput.css?ver=17.0.19' media='all' /> 272<link rel='stylesheet' id='wpml-menu-item-0-css' href='https://hausum.com/wp-content/plugins/sitepress-multilingual-cms/templates/language-switchers/menu-item/style.min.css?ver=1' media='all' /> 273<link rel='stylesheet' id='leaflet-css-css' href='https://unpkg.com/[email protected]/dist/leaflet.css?ver=1.9.4' media='all' /> 274<link rel='stylesheet' id='wp-cadastre-public-css-css' href='https://hausum.com/wp-content/plugins/WPCadastre/assets/css/wp-cadastre-public.css?ver=1.0.7' media='all' /> 275<link rel='stylesheet' id='hausum-style-css' href='https://hausum.com/wp-content/themes/hausum-theme/style.css?ver=1.0.0' media='all' /> 276<link rel='stylesheet' id='hausum-inspeccion-css' href='https://hausum.com/wp-content/themes/hausum-theme/css/inspeccion.css?ver=1.0.0' media='all' />
277<script id="wpml-cookie-js-extra"> 278var wpml_cookies = {"wp-wpml_current_language":{"value":"es","expires":1,"path":"/"}}; 279var wpml_cookies = {"wp-wpml_current_language":{"value":"es","expires":1,"path":"/"}}; 280//# sourceURL=wpml-cookie-js-extra 281</script>
vendor: 1 bytes, line 281
281
282<script data-wp-strategy="defer" defer id="wpml-cookie-js" src="https://hausum.com/wp-content/plugins/sitepress-multilingual-cms/res/js/cookies/language-cookie.js?ver=497000"></script>
vendor: 1 bytes, line 282
282
283<script id="jquery-core-js" src="https://hausum.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 283
283
284<script id="jquery-migrate-js" src="https://hausum.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
284 285<link rel="https://api.w.org/" href="https://hausum.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://hausum.com/wp-json/wp/v2/pages/18102" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://hausum.com/xmlrpc.php?rsd" /> 286<meta name="generator" content="WordPress 7.1.2" /> 287<link rel='shortlink' href='https://hausum.com/?p=18102' /> 288<meta name="generator" content="WPML ver:4.9.7 stt:8,37,1,4,3,2;" /> 289<meta name="ti-site-data" content="eyJyIjoiMTowITc6MCEzMDowIiwibyI6Imh0dHBzOlwvXC9oYXVzdW0uY29tP3RpLW9ubGluZS11c2Vycy1nb29nbGU9MSZhbXA7cD0lMkZpbnNwZWNjaW9uJTJGJmFtcDtfd3Bub25jZT1jZDI4MTcwZTIwIn0=" /> 290<!-- Google Tag Manager for WordPress by gtm4wp.com --> 291<!-- GTM Container placement set to automatic -->
292<script data-cfasync="false" data-pagespeed-no-defer> 293 var dataLayer_content = {"pagePostType":"page","pagePostType2":"single-page","pagePostAuthor":"Hausum"}; 294 dataLayer.push( dataLayer_content ); 295</script>
vendor: 1 bytes, line 295
295
296<script data-cfasync="false" data-pagespeed-no-defer>
vendor: 322 bytes, lines 296-301
296 297(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 298new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 299j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 300'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 301})(window,document,'script','dataLayer','
301GTM-TL44TWPX
vendor: 4 bytes, line 301
301');
302</script>
302 303<!-- End Google Tag Manager for WordPress by gtm4wp.com -->
304<script type="application/ld+json"> 305{ 306 "@context": "https://schema.org", 307 "@type": "Organization", 308 "@id": "https://hausum.com/#organization", 309 "name": "Hausum", 310 "url": "https://hausum.com/", 311 "logo": "https://hausum.com/wp-content/uploads/2023/04/hausum-principal.svg", 312 "email": "[email protected]", 313 "telephone": "+34930900232", 314 "address": { 315 "@type": "PostalAddress", 316 "streetAddress": "Diputació 170, Baixos", 317 "postalCode": "08011", 318 "addressLocality": "Barcelona", 319 "addressCountry": "ES" 320 }, 321 "contactPoint": { 322 "@type": "ContactPoint", 323 "contactType": "customer service", 324 "telephone": "+34930900232", 325 "email": "[email protected]", 326 "areaServed": "ES", 327 "availableLanguage": ["es", "en"] 328 }, 329 "sameAs": [ 330 "https://www.instagram.com/hausum_com/", 331 "https://www.tiktok.com/@hausum.com", 332 "https://es.linkedin.com/company/hausum" 333 ] 334} 335</script>
335 336 337
338<script> 339(function () { 340 const SCRIPT_ID = "ldjson-faqpage"; 341 const MAX_FAQS = 50; 342 343 const containersSelectors = [ 344 ".faq", 345 ".faqs", 346 ".faq-list", 347 ".accordion", 348 ".elementor-accordion", 349 ".elementor-toggle", 350 ".wp-block-details", 351 "[data-faq]", 352 "[itemtype*='FAQPage']" 353 ]; 354 355 const cleanText = (t) => 356 (t || "") 357 .replace(/\s+/g, " ") 358 .replace(/\u00A0/g, " ") 359 .trim(); 360 361 const htmlToText = (node) => { 362 if (!node) return ""; 363 const clone = node.cloneNode(true); 364 clone.querySelectorAll("script, style, noscript").forEach((el) => el.remove()); 365 clone.querySelectorAll("br").forEach((br) => br.replaceWith("\n")); 366 clone.querySelectorAll("p, li, div, section, article").forEach((el) => el.insertAdjacentText("beforeend", "\n")); 367 return cleanText(clone.textContent || ""); 368 }; 369 370 const uniqueBy = (arr, keyFn) => { 371 const seen = new Set(); 372 return arr.filter((x) => { 373 const k = keyFn(x); 374 if (!k || seen.has(k)) return false; 375 seen.add(k); 376 return true; 377 }); 378 }; 379 380 const findContainers = () => { 381 const set = new Set(); 382 containersSelectors.forEach((sel) => { 383 document.querySelectorAll(sel).forEach((el) => set.add(el)); 384 }); 385 if (set.size === 0) { 386 document.querySelectorAll("details, [role='tablist'], [aria-expanded]").forEach((el) => set.add(el)); 387 } 388 return Array.from(set); 389 }; 390 391 const extractFaqsFromContainer = (container) => { 392 const faqs = []; 393 394 container.querySelectorAll("details").forEach((d) => { 395 const q = cleanText(d.querySelector("summary")?.textContent); 396 if (!q) return; 397 const answerNodes = Array.from(d.childNodes).filter((n) => !(n.nodeType === 1 && n.tagName === "SUMMARY")); 398 const wrapper = document.createElement("div"); 399 answerNodes.forEach((n) => wrapper.appendChild(n.cloneNode(true))); 400 const a = cleanText(htmlToText(wrapper)); 401 if (a) faqs.push({ q, a }); 402 }); 403 404 container.querySelectorAll(".elementor-accordion-item").forEach((item) => { 405 const q = cleanText(item.querySelector(".elementor-tab-title")?.textContent); 406 const aNode = item.querySelector(".elementor-tab-content"); 407 const a = cleanText(htmlToText(aNode)); 408 if (q && a) faqs.push({ q, a }); 409 }); 410 411 container.querySelectorAll(".accordion-item").forEach((item) => { 412 const q = 413 cleanText(item.querySelector(".accordion-header, .accordion-button")?.textContent) || 414 cleanText(item.querySelector("[data-bs-toggle], button, a")?.textContent); 415 const aNode = item.querySelector(".accordion-body, .collapse, .accordion-collapse"); 416 const a = cleanText(htmlToText(aNode)); 417 if (q && a) faqs.push({ q, a }); 418 }); 419 420 container.querySelectorAll("[itemtype*='schema.org/Question']").forEach((qNode) => { 421 const q = 422 cleanText(qNode.querySelector("[itemprop='name']")?.textContent) || 423 cleanText(qNode.querySelector("[itemprop='text']")?.textContent) || 424 cleanText(qNode.textContent); 425 const aNode = 426 qNode.querySelector("[itemtype*='schema.org/Answer'] [itemprop='text']") || 427 qNode.querySelector("[itemtype*='schema.org/Answer']") || 428 qNode.querySelector("[itemprop='acceptedAnswer']") || 429 qNode.querySelector("[itemprop='suggestedAnswer']"); 430 const a = cleanText(htmlToText(aNode)); 431 if (q && a) faqs.push({ q, a }); 432 }); 433 434 if (faqs.length < 2) { 435 const headings = container.querySelectorAll("h3, h4, h5");
436 headings.forEach((h) => { 437 const q = cleanText(h.textContent); 438 if (!q) return; 439 440 let next = h.nextElementSibling; 441 let a = ""; 442 let steps = 0; 443 444 while (next && steps < 4 && !a) { 445 if (/^H[3-6]$/i.test(next.tagName)) break; 446 if (["P", "DIV", "UL", "OL", "SECTION", "ARTICLE"].includes(next.tagName)) { 447 a = cleanText(htmlToText(next)); 448 } 449 next = next.nextElementSibling; 450 steps++; 451 } 452 453 if (a && (q.includes("?") || q.length <= 120)) faqs.push({ q, a }); 454 }); 455 } 456 457 return faqs 458 .map(({ q, a }) => ({ q: cleanText(q), a: cleanText(a) })) 459 .filter(({ q, a }) => q && a && q.length >= 3 && a.length >= 3); 460 }; 461 462 const buildJsonLd = (faqs) => ({ 463 "@context": "https://schema.org", 464 "@type": "FAQPage", 465 "mainEntity": faqs.slice(0, MAX_FAQS).map(({ q, a }) => ({ 466 "@type": "Question", 467 "name": q, 468 "acceptedAnswer": { "@type": "Answer", "text": a } 469 })) 470 }); 471 472 const upsertLdScript = (json) => { 473 if (!json || !json.mainEntity || json.mainEntity.length === 0) { 474 const existing = document.getElementById(SCRIPT_ID); 475 if (existing) existing.remove(); 476 return; 477 } 478 479 const jsonText = JSON.stringify(json); 480 let script = document.getElementById(SCRIPT_ID); 481 482 if (!script) { 483 script = document.createElement("script"); 484 script.type = "application/ld+json"; 485 script.id = SCRIPT_ID; 486 document.head.appendChild(script); 487 } 488 489 if (script.textContent !== jsonText) { 490 script.textContent = jsonText; 491 } 492 }; 493 494 const render = () => { 495 const containers = findContainers(); 496 let allFaqs = []; 497 containers.forEach((c) => (allFaqs = allFaqs.concat(extractFaqsFromContainer(c)))); 498 allFaqs = uniqueBy(allFaqs, (x) => x.q.toLowerCase()); 499 500 if (allFaqs.length < 2) { 501 upsertLdScript(null); 502 return; 503 } 504 505 upsertLdScript(buildJsonLd(allFaqs)); 506 }; 507 508 if (document.readyState === "loading") { 509 document.addEventListener("DOMContentLoaded", render, { once: true }); 510 } else { 511 render(); 512 } 513 514 const observer = new MutationObserver(() => { 515 clearTimeout(observer.__t); 516 observer.__t = setTimeout(render, 300); 517 }); 518 519 observer.observe(document.documentElement, { 520 childList: true, 521 subtree: true, 522 characterData: true 523 }); 524})(); 525</script>
525 526 527
528<script type="application/ld+json"> 529{ 530 "@context": "https://schema.org", 531 "@graph": [ 532 { 533 "@type": "Organization", 534 "@id": "https://hausum.com/#organization", 535 "name": "Hausum", 536 "url": "https://hausum.com/", 537 "logo": "https://hausum.com/wp-content/uploads/2023/04/hausum-principal.svg", 538 "email": "[email protected]", 539 "telephone": "+34930900232", 540 "address": { 541 "@type": "PostalAddress", 542 "streetAddress": "Diputació 170, Baixos", 543 "postalCode": "08011", 544 "addressLocality": "Barcelona", 545 "addressCountry": "ES" 546 }, 547 "sameAs": [ 548 "https://www.instagram.com/hausum_com/", 549 "https://www.tiktok.com/@hausum.com", 550 "https://es.linkedin.com/company/hausum" 551 ] 552 }, 553 { 554 "@type": "Service", 555 "@id": "https://hausum.com/#service-inspeccion-viviendas", 556 "name": "Inspección de Viviendas", 557 "serviceType": "Inspección de viviendas", 558 "description": "Conoce el estado real del inmueble, evita sorpresas y reparaciones costosas, negocia con fundamento, y recibe tu informe en menos de 24h, todo 100% online.", 559 "provider": { "@id": "https://hausum.com/#organization" }, 560 "areaServed": { "@type": "Country", "name": "ES" }, 561 "audience": { 562 "@type": "Audience", 563 "audienceType": "Particular y empresa" 564 } 565 } 566 ] 567} 568</script>
568 569 570
571<script type="application/ld+json"> 572{ 573 "@context": "https://schema.org", 574 "@type": "WebSite", 575 "@id": "https://hausum.com/#website", 576 "url": "https://hausum.com/", 577 "name": "Hausum", 578 "publisher": { 579 "@id": "https://hausum.com/#organization" 580 } 581} 582</script>
582 583 584<link rel="icon" href="https://hausum.com/wp-content/uploads/2023/04/segell-hausum.svg" sizes="32x32" /> 585<link rel="icon" href="https://hausum.com/wp-content/uploads/2023/04/segell-hausum.svg" sizes="192x192" /> 586<link rel="apple-touch-icon" href="https://hausum.com/wp-content/uploads/2023/04/segell-hausum.svg" /> 587<meta name="msapplication-TileImage" content="https://hausum.com/wp-content/uploads/2023/04/segell-hausum.svg" /> 588<style id="wp-custom-css"> 589 590.gform_required_legend, #gform_previous_button_28_117{ 591 display: none!important; 592} 593 594/* CONTENIDOR DELS MÃTODES DE PAGAMENT */ 595.metode-pagament .gfield_radio { 596 display: flex; 597 flex-wrap: wrap; 598 align-items: center; 599 gap: 18px 28px; 600} 601 602/* CADA OPCIà */ 603.metode-pagament .gchoice { 604 display: flex !important; 605 align-items: center; 606 gap: 9px; 607 margin: 0 !important; 608} 609 610/* RADIO BUTTON */ 611.metode-pagament .gchoice input[type="radio"] { 612 flex: 0 0 auto; 613 margin: 0 !important; 614 cursor: pointer; 615} 616 617/* CONFIGURACIà GENERAL DELS LOGOS */ 618.metode-pagament .gchoice label { 619 display: block !important; 620 height: 42px; 621 margin: 0 !important; 622 padding: 0 !important; 623 624 background-repeat: no-repeat; 625 background-position: left center; 626 background-size: contain; 627 628 color: transparent !important; 629 font-size: 0 !important; 630 line-height: 0 !important; 631 632 cursor: pointer; 633 max-width: none !important; 634} 635 636/* VISA / MASTERCARD */ 637.metode-pagament .gchoice:nth-child(1) label { 638 width: 125px; 639 background-image: url("https://hausum.com/wp-content/uploads/2026/07/Visa-def.png"); 640} 641 642/* BIZUM */ 643.metode-pagament .gchoice:nth-child(2) label { 644 width: 140px; 645 background-image: url("https://hausum.com/wp-content/uploads/2026/07/bizum-def.png"); 646} 647 648/* GOOGLE PAY / APPLE PAY */ 649.metode-pagament .gchoice:nth-child(3) label { 650 width: 150px; 651 background-image: url("https://hausum.com/wp-content/uploads/2026/07/google-apple-pay.png"); 652} 653 654/* MÃBIL */ 655@media only screen and (max-width: 767px) { 656 657 .metode-pagament .gfield_radio { 658 display: flex !important; 659 flex-direction: column !important; 660 align-items: flex-start !important; 661 gap: 18px !important; 662 width: 100% !important; 663 } 664 665 .metode-pagament .gchoice { 666 display: flex !important; 667 flex-direction: row !important; 668 align-items: center !important; 669 gap: 12px !important; 670 width: 100% !important; 671 min-height: 40px !important; 672 margin: 0 !important; 673 } 674 675 .metode-pagament .gchoice input[type="radio"] { 676 display: block !important; 677 flex: 0 0 auto !important; 678 width: 16px !important; 679 height: 16px !important; 680 margin: 0 !important; 681 } 682 683 .metode-pagament .gchoice label { 684 display: block !important; 685 flex: 0 0 auto !important; 686 min-width: 120px !important; 687 min-height: 40px !important; 688 margin: 0 !important; 689 padding: 0 !important; 690 691 background-repeat: no-repeat !important; 692 background-position: left center !important; 693 background-size: contain !important; 694 695 color: transparent !important; 696 font-size: 0 !important; 697 line-height: 0 !important; 698 699 opacity: 1 !important; 700 visibility: visible !important; 701 } 702 703 /* VISA */ 704 .metode-pagament .gchoice:nth-child(1) label { 705 width: 125px !important; 706 background-image: url("https://hausum.com/wp-content/uploads/2026/07/Visa-def.png") !important; 707 } 708 709 /* BIZUM */ 710 .metode-pagament .gchoice:nth-child(2) label { 711 width: 140px !important; 712 background-image: url("https://hausum.com/wp-content/uploads/2026/07/bizum-def.png") !important; 713 } 714 715 /* GOOGLE PAY + APPLE PAY */ 716 .metode-pagament .gchoice:nth-child(3) label { 717 width: 150px !important; 718 background-image: url("https://hausum.com/wp-content/uploads/2026/07/google-apple-pay.png") !important; 719 } 720} 721} 722</style> 723 <style id="hausum-phone-field-fix"> 724 /* Fix intlTelInput flag overlapping phone number in Gravity Forms */ 725 .gform_wrapper .gfield .iti input[type="tel"], 726 .gform_wrapper .gfield .iti input[type="text"], 727 .gform_wrapper .ginput_container_phone .iti input, 728 .gfield .iti input, 729 .iti input[type="tel"], 730 .iti input[type="text"] { 731 padding-left: 55px !important; 732 } 733 734 /* If separate dial code or country code prefix is shown next to flag */ 735 .gform_wrapper .gfield .iti--separate-dial-code input[type="tel"], 736 .gform_wrapper .gfield .iti--separate-dial-code input[type="text"], 737 .gform_wrapper .ginput_container_phone .iti--separate-dial-code input, 738 .gfield .iti--separate-dial-code input, 739 .iti--separate-dial-code input[type="tel"], 740 .iti--separate-dial-code input[type="text"] { 741 padding-left: 85px !important; 742 } 743 744 /* Ensure flag container is properly positioned */ 745 .gform_wrapper .iti__flag-container, 746 .iti__flag-container { 747 z-index: 5 !important; 748 } 749 750 .gform_wrapper .iti__selected-flag, 751 .iti__selected-flag { 752 padding: 0 6px 0 8px !important; 753 border-top-left-radius: inherit; 754 border-bottom-left-radius: inherit; 755 } 756 </style> 757 <link rel='stylesheet' id='spf_intlTelInput-css' href='https://hausum.com/wp-content/plugins/smart-phone-field-for-gravity-forms/assets/css/intlTelInput.min.css?ver=2.2.2' media='all' /> 758<link rel='stylesheet' id='gform_basic-css' href='https://hausum.com/wp-content/plugins/gravityforms/assets/css/dist/basic.min.css?ver=3.1.3' media='all' /> 759<link rel='stylesheet' id='gform_theme_components-css' href='https://hausum.com/wp-content/plugins/gravityforms/assets/css/dist/theme-components.min.css?ver=3.1.3' media='all' /> 760<link rel='stylesheet' id='gform_theme-css' href='https://hausum.com/wp-content/plugins/gravityforms/assets/css/dist/theme.min.css?ver=3.1.3' media='all' /> 761 762</head> 763<body class="wp-singular page-template page-template-page-inspeccion page-template-page-inspeccion-php page page-id-18102 wp-theme-hausum-theme"> 764 765<!-- GTM Container placement set to automatic --> 766<!-- Google Tag Manager (noscript) --> 767 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TL44TWPX" height="0" width="0" style="display:none;visibility:hidden" aria-hidden="true"></iframe></noscript> 768<!-- End Google Tag Manager (noscript) --> 769<!-- PROMO --> 770<div class="promo">ð¡ GarantÃa total · si no encontramos defectos, te devolvemos el dinero</div> 771 772<!-- NAV --> 773<nav class="nav"> 774 <div class="nav-wrap"> 775 <a href="https://hausum.com/" class="logo" aria-label="Hausum Home"> 776 <img src="https://hausum.com/wp-content/uploads/2023/04/hausum-blanco.svg" alt="HAUSUM" class="logo-img" style="height: 32px; width: auto; display: block;" /> 777 </a> 778 779 <div class="nav-links"> 780 <ul class="nav-menu-list"><li id="menu-item-51613" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51613"><a href="https://hausum.com/legal/">Legal</a></li> 781<li id="menu-item-51615" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51615"><a href="https://hausum.com/tarifas/">Tarifas</a></li> 782<li id="menu-item-51617" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-18102 current_page_item menu-item-51617"><a href="https://hausum.com/inspeccion/" aria-current="page">Inspección</a></li> 783<li id="menu-item-51616" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51616"><a href="https://hausum.com/home-inspector/">Home inspector</a></li> 784<li id="menu-item-54356" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-54356"><a href="https://hausum.com/preguntas-frequentes/">FAQS</a></li> 785</ul> </div> 786 787 <div class="nav-right"> 788 <div class="lang-dropdown"> 789 <button type="button" class="lang-btn" aria-label="Idioma"> 790 <svg class="globe" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="#2E9BFF" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M3.6 9h16.8M3.6 15h16.8"/><path d="M11.5 3a17 17 0 0 0 0 18M12.5 3a17 17 0 0 1 0 18"/></svg> 791 <span>ES</span> 792 <svg class="chev" viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="#9DB4D6" stroke-width="2.2"><path d="M6 9l6 6 6-6"/></svg> 793 </button> 794 <div class="lang-menu">
795 <a href="https://hausum.com/nl/inspectie/" class="lang-menu-item "> 796 Nederlands (NL) 797 </a> 798 <a href="https://hausum.com/fr/inspection/" class="lang-menu-item "> 799 Français (FR) 800 </a> 801 <a href="https://hausum.com/inspeccion/" class="lang-menu-item active"> 802 Español (ES) 803 </a> 804 <a href="https://hausum.com/en/inspection/" class="lang-menu-item "> 805 English (EN) 806 </a> 807 <a href="https://hausum.com/de/inspektion/" class="lang-menu-item "> 808 Deutsch (DE) 809 </a> 810 <a href="https://hausum.com/ca/inspeccio/" class="lang-menu-item "> 811 Català (CA) 812 </a> 813 </div> 814 </div> 815 <a href="https://hausum.com/reserva/" class="nav-cta"> 816 <span class="nav-cta-text-full">Programar inspección</span> 817 <span class="nav-cta-text-mobile">Reservar</span> 818 <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="#fff" stroke-width="2.6"><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></svg> 819 </a> 820 <button class="burger" type="button" aria-label="Abrir menú" aria-expanded="false" onclick="var n=document.querySelector('.nav');var open=n.classList.toggle('menu-open');this.setAttribute('aria-expanded',open);"> 821 <svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="#fff" stroke-width="2.2"><path d="M4 7h16M4 12h16M4 17h16"/></svg> 822 </button> 823 </div> 824 </div> 825 826 <!-- Mobile Menu --> 827 <div class="mobile-menu"> 828 <ul class="mobile-menu-list"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51613"><a href="https://hausum.com/legal/">Legal</a></li> 829<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51615"><a href="https://hausum.com/tarifas/">Tarifas</a></li> 830<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-18102 current_page_item menu-item-51617"><a href="https://hausum.com/inspeccion/" aria-current="page">Inspección</a></li> 831<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51616"><a href="https://hausum.com/home-inspector/">Home inspector</a></li> 832<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-54356"><a href="https://hausum.com/preguntas-frequentes/">FAQS</a></li> 833</ul> </div> 834</nav> 835 836<div id="content" class="site-content"> 837 838<main> 839 840 <!-- HERO SECTION (DARK NAVY BANNER - SEO & LEAD CAPTURE ENHANCED) --> 841 <header class="page-hero" style="padding: 70px 0 55px; background:#0A1E3C;"> 842 <div class="wrap"> 843 <div class="eyebrow" style="color:#2E9BFF; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; font-size:13px; margin-bottom:12px;"> 844 Inspección Técnica de Viviendas & Valoración de Inmuebles </div> 845 <h1 class="headline" style="max-width:940px; margin-bottom:22px; color:#FFFFFF; font-weight:800; line-height:1.2; font-size:clamp(28px, 4vw, 46px);"> 846 Informe Técnico de Inspección de Viviendas y Valoración de Compra </h1> 847 <p class="lede" style="max-width:840px; margin-bottom:32px; font-size:18px; line-height:1.65; color:#B0C5E2;"> 848 En Hausum te ayudamos a comprar tu vivienda con total seguridad. Nuestros arquitectos colegiados realizan informes técnicos exhaustivos de +200 puntos de control y te ofrecemos herramientas gratuitas de análisis de riesgos y checklists de visita. </p> 849 <div style="display:flex; gap:16px; flex-wrap:wrap; align-items:center;"> 850 <a href="#" class="cta lightbox_form_btn_2" aria-label="Informe de ejemplo">Informe de ejemplo <svg viewbox="0 0 24 24" width="18" height="18" fill="none" stroke="#fff" stroke-width="2.5"><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></svg> 851 </a> 852 <div style="position:relative; display:inline-block;" id="hsm-tools-dropdown-wrapper"> 853 <button type="button" id="hsm-tools-dropdown-btn" class="cta" style="background:transparent; border:1px solid rgba(46,155,255,0.4); color:#2E9BFF; cursor:pointer; display:inline-flex; align-items:center; gap:8px;">
854 <span>Ver herramientas gratuitas</span> 855 <svg id="hsm-dropdown-arrow" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="#2E9BFF" stroke-width="2.5" style="transition:transform 0.25s ease;"><path d="M19 9l-7 7-7-7"/></svg> 856 </button> 857 <div id="hsm-tools-dropdown-menu" style="display:none; position:absolute; top:calc(100% + 8px); left:0; min-width:280px; background:#0F2A52; border:1px solid rgba(46,155,255,0.35); border-radius:14px; box-shadow:0 14px 35px rgba(0,0,0,0.5); z-index:99; padding:8px 0; overflow:hidden; backdrop-filter:blur(10px);"> 858 <a href="#herramientas" class="hsm-dropdown-item" style="display:flex; align-items:center; gap:10px; padding:12px 18px; color:#FFFFFF; text-decoration:none; font-size:14.5px; font-weight:600; transition:background 0.2s ease, color 0.2s ease;"> 859 <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="#2E9BFF" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/></svg> 860 <span>Checklist técnica de visita</span> 861 </a> 862 <div style="height:1px; background:rgba(46,155,255,0.15); margin:4px 0;"></div> 863 <a href="#catastro" class="hsm-dropdown-item" style="display:flex; align-items:center; gap:10px; padding:12px 18px; color:#FFFFFF; text-decoration:none; font-size:14.5px; font-weight:600; transition:background 0.2s ease, color 0.2s ease;"> 864 <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="#2E9BFF" stroke-width="2.5"><path d="M3 21h18M5 21V7l7-4 7 4v14M9 10h6M9 14h6M9 18h6"/></svg> 865 <span>Informe catastral y de riesgos</span> 866 </a> 867 </div> 868 </div> 869 </div> 870 </div> 871 </header> 872 873 <!-- HERRAMIENTAS GRATUITAS DE VALORACIÃN PRELIMINAR (#herramientas) --> 874 <section class="sec light" id="herramientas" style="padding:64px 0; background:#F4F8FD;"> 875 <div class="wrap"> 876 <div class="sec-head" style="margin-bottom:38px;"> 877 <p class="eyebrow" style="color:#0072BC; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px;">Valoración preliminar gratuita</p> 878 <h2 class="headline" style="color:#0F2A52; font-size:32px; font-weight:800;">HERRAMIENTAS GRATUITAS PARA EVALUAR UN INMUEBLE ANTES DE COMPRAR</h2> 879 <p class="lede" style="max-width:820px; color:#3A4F6E; font-size:16.5px; line-height:1.6; margin-top:10px;">Antes de realizar una oferta económica o firmar el contrato de arras, evalúa los indicios de riesgo estructural, conservación y estado técnico de la propiedad sin coste.</p> 880 </div> 881 882 <!-- CHECKLIST DEFINITIVA (HERRAMIENTAS BANNER) --> 883 <div style="background:#FFFFFF; border:1px solid #D5E4F5; border-radius:24px; padding:32px; box-shadow:0 12px 30px rgba(15,42,82,0.06); margin-top:20px; display:flex; flex-direction:column; justify-content:space-between;"> 884 <div> 885 <div style="display:inline-flex; align-items:center; gap:6px; background:#EBF3FC; color:#0072BC; padding:5px 14px; border-radius:12px; font-weight:700; font-size:12px; text-transform:uppercase; margin-bottom:16px; letter-spacing:0.05em;"> 886 <svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/></svg> 887 <span>GuÃa PDF gratuita</span> 888 </div> 889 <h3 style="font-size:22px; color:#0F2A52; margin-bottom:14px; font-weight:700;">Checklist técnica para visitas a viviendas</h3> 890 <p style="color:#3A4F6E; font-size:15px; line-height:1.6; margin-bottom:18px;"> 891 Descarga nuestra guÃa técnica en PDF para revisar los puntos crÃticos en tus 20 minutos de visita: estructura, fontanerÃa, electricidad, humedades y cierres. </p> 892 </div> 893 <div> 894 <a href="#" class="cta lightbox_form_btn_3" style="width:100%; justify-content:center; background:#2E9BFF; color:#fff; border:0; padding:12px 20px; border-radius:12px; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:8px;">Descargar checklist gratuita <svg viewbox="0 0 24 24" width="18" height="18" fill="none" stroke="#fff" stroke-width="2.5"><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></svg> 895 </a> 896 </div> 897 </div> 898 </div> 899 </section> 900 901 <!-- SECCIÃN CATASTRO DEDICADA (#catastro) --> 902 <section class="sec sec-a" id="catastro" style="border-top:1px solid #D5E4F5; border-bottom:1px solid #D5E4F5; padding:64px 0; background:#0A1E3C;"> 903 <div class="wrap"> 904 <div class="sec-head" style="margin-bottom:32px;"> 905 <p class="eyebrow" style="color:#2E9BFF; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px;">
905Informe técnico de riesgos del inmueble</p> 906 <h2 class="headline" style="color:#FFFFFF; font-size:32px; font-weight:800;">Informe catastral y valoración de riesgos</h2> 907 <p class="lede" style="max-width:820px; color:#B0C5E2; font-size:16.5px; line-height:1.6; margin-top:10px;">Introduce cualquier dirección o referencia catastral oficial en España para generar un informe instantáneo con datos catastrales oficiales, superficie real, valoración de mercado, IBI estimado y riesgos naturales (radón, inundabilidad e incendios).</p> 908 </div> 909 910 <div style="background:rgba(10,30,60,0.75); border:1px solid rgba(46,155,255,0.25); border-radius:24px; padding:32px; box-shadow:0 24px 60px rgba(0,0,0,0.45);"> 911 <style>:root { --wp-cadastre-accent: #2563eb; }</style> <div id="wp-cadastre-container" class="wp-cadastre-wrap theme-glassmorphic"> 912 913 <!-- Indicador de Pasos (Wizard) --> 914 <div class="wpc-steps-bar" id="wpc-steps-bar"> 915 <div class="wpc-step active" data-step="1"> 916 <div class="wpc-step-icon">1</div> 917 <div class="wpc-step-label">Dirección</div> 918 </div> 919 <div class="wpc-step-line" data-line="1"></div> 920 <div class="wpc-step" data-step="2"> 921 <div class="wpc-step-icon">2</div> 922 <div class="wpc-step-label">Tu inmueble</div> 923 </div> 924 <div class="wpc-step-line" data-line="2"></div> 925 <div class="wpc-step" data-step="3"> 926 <div class="wpc-step-icon">3</div> 927 <div class="wpc-step-label">Datos</div> 928 </div> 929 <div class="wpc-step-line" data-line="3"></div> 930 <div class="wpc-step" data-step="4"> 931 <div class="wpc-step-icon">4</div> 932 <div class="wpc-step-label">Informe</div> 933 </div> 934 </div> 935 936 <!-- PASO 1: Dirección del inmueble --> 937 <div id="wpc-step1-card" class="wpc-step1-card"> 938 <h2>¿Qué piso quieres analizar?</h2> 939 <p class="wpc-step1-subtitle">Introduce la dirección completa del inmueble</p> 940 941 <!-- Cercador Principal --> 942 <div class="wp-cadastre-search-bar"> 943 <div class="wp-cadastre-input-wrapper"> 944 <span class="wp-cadastre-search-icon" id="wp-cadastre-search-icon"></span> 945 <input type="text" id="wp-cadastre-search-input" placeholder="Ej: Calle Mayor 15, Madrid" autocomplete="off" /> 946 <button type="button" id="wp-cadastre-submit-rc-btn" class="wp-cadastre-rc-submit-btn" style="display: none;"> 947 Consultar </button> 948 <button type="button" id="wp-cadastre-clear-btn" style="display: none;">×</button> 949 <span class="wp-cadastre-spinner" id="wp-cadastre-search-spinner" style="display: none;"></span> 950 </div> 951 <div id="wp-cadastre-autocomplete-results" class="wp-cadastre-autocomplete-dropdown" style="display: none;"></div> 952 </div> 953
954 <!-- Commutador de Mode de Cerca: Adreça vs Referència Catastral (com a enllaços discrets) --> 955 <div class="wp-cadastre-search-mode-bar wpc-step1-mode-links"> 956 <button type="button" class="wp-cadastre-mode-btn active" data-mode="address"> 957 Buscar por dirección </button> 958 <button type="button" class="wp-cadastre-mode-btn" data-mode="rc"> 959 ¿No aparece? Busca por referencia catastral </button> 960 </div> 961 962 <div class="wpc-step1-divider">o si no la encuentras</div> 963 964 <button type="button" id="wpc-show-map-btn" class="wpc-btn-map-picker"> 965 ðºï¸ Seleccionar en el mapa </button> 966 </div> 967 968 <!-- PASO 2 y 3: Mapa + Barra Lateral (Drawer), ocult fins que hi ha una cerca o clic al mapa --> 969 <div id="wpc-step2-area" style="display: none;"> 970 971 <!-- Cos Principal: Mapa + Barra Lateral (Drawer). El mapa comença ocult 972 (classe wpc-no-map): només es mostra quan l'usuari l'obre explÃcitament, 973 des del Pas 1 ("Seleccionar en el mapa") o des del Pas 2 ("Búscalo en el mapa"). --> 974 <div class="wp-cadastre-main-content wpc-no-map" id="wpc-main-content"> 975 976 <!-- Contenidor del Mapa --> 977 <div class="wp-cadastre-map-wrapper"> 978 <div id="wp-cadastre-map"></div> 979 </div> 980 981 <!-- Barra de Detalls (Drawer) --> 982 <div id="wp-cadastre-drawer" class="wp-cadastre-drawer"> 983 984 <button type="button" class="wpc-step2-back-link" id="wpc-back-to-step1-btn"> 985 â Nueva búsqueda </button> 986 987 <!-- Estat Inicial --> 988 <div class="wp-cadastre-drawer-state" id="state-initial"> 989 <div class="wp-cadastre-info-helper"> 990 <span class="wp-cadastre-icon-large"></span> 991 <h3>Búsqueda catastral</h3> 992 <p>Busca una dirección en el buscador superior o haz clic directamente sobre cualquier edificio del mapa para consultar su información catastral oficial.</p> 993 </div> 994 </div> 995 996 <!-- Estat de Cà rrega amb Spinner i Text ExplÃcit --> 997 <div class="wp-cadastre-drawer-state" id="state-loading" style="display: none;"> 998 <div class="wp-cadastre-info-helper" style="padding: 24px 16px;"> 999 <div class="wp-cadastre-spinner-large"></div> 1000 <h3 id="wpc-loading-title" style="margin-top: 16px; font-size: 16px; font-weight: 700; color: var(--wpc-text);">Consultando el Catastro...</h3> 1001 <p id="wpc-loading-sub" style="font-size: 13px; color: var(--wpc-text-muted); margin-top: 4px;">Obteniendo las fincas e inmuebles de la Sede Electrónica del Catastro de España...</p> 1002 </div> 1003 <div class="wp-cadastre-skeleton-wrapper" style="margin-top: 16px;"> 1004 <div class="wp-cadastre-skeleton-header"></div> 1005 <div class="wp-cadastre-skeleton-text"></div> 1006 <div class="wp-cadastre-skeleton-text short"></div> 1007 <div class="wp-cadastre-skeleton-grid"> 1008 <div></div><div></div><div></div><div></div> 1009 </div> 1010 </div> 1011 </div> 1012 1013 <!-- Estat de Resultats de la Parcel·la / Edifici (PAS 2: "Tu inmueble") --> 1014 <div class="wp-cadastre-drawer-state" id="state-results" style="display: none;"> 1015 1016 <!-- Capçalera de l'edifici --> 1017 <div class="wp-cadastre-building-header"> 1018 <h3 id="wp-cadastre-b-address">Calle del Edificio</h3> 1019 <div class="wp-cadastre-b-meta"> 1020 <span><strong>Finca Ref:</strong> <span id="wp-cadastre-b-ref">1234567XX1234X</span></span> 1021 </div> 1022 <button type="button" id="wpc-toggle-map-btn" class="wpc-toggle-map-inline"> 1023 ðºï¸ ¿No es el inmueble que buscabas? Búscalo en el mapa </button> 1024 </div> 1025 1026 <!-- Selector de Divisions / Unitats --> 1027 <div class="wp-cadastre-divisions-section"> 1028 <h4>Divisiones del edificio (<span id="wp-cadastre-divisions-count">0</span>)</h4> 1029 <p class="wp-cadastre-helper-text">El edificio tiene divisiones horizontales. Selecciona una unidad para ver su información:</p> 1030 <div id="wp-cadastre-divisions-container" class="wp-cadastre-divisions-grid"> 1031 <!-- Es renderitza dinà micament per JS --> 1032 </div> 1033 </div> 1034 1035 </div> <!-- Fi Estat Resultats --> 1036
1037 </div> <!-- Fi Barra de Detalls (Drawer) --> 1038 1039 </div> <!-- Fi Cos Principal --> 1040 1041 </div> <!-- Fi wpc-step2-area --> 1042 1043 <!-- PASO 3: Datos del inmueble seleccionado --> 1044 <div id="wpc-step3-card" class="wpc-wizard-card" style="display: none;"> 1045 <button type="button" class="wpc-step2-back-link" id="wpc-back-to-step2-btn"> 1046 â Elegir otra unidad </button> 1047 1048 <div id="wp-cadastre-unit-details" class="wp-cadastre-unit-details-card"> 1049 1050 <!-- Imatge Street View Façana --> 1051 <div id="wp-cadastre-streetview-container" class="wp-cadastre-streetview-box"> 1052 <!-- S'incrusta dinà micament per JS (iframe o botó) --> 1053 </div> 1054 1055 <!-- Dades de la Unitat --> 1056 <div class="wp-cadastre-details-header"> 1057 <h4 id="wp-cadastre-u-label">Planta 0, Porta A</h4> 1058 </div> 1059 1060 <div class="wp-cadastre-details-grid"> 1061 <div class="wp-cadastre-detail-item"> 1062 <span class="label">Superficie construida</span> 1063 <span class="value" id="wp-cadastre-u-surface">0 m²</span> 1064 </div> 1065 <div class="wp-cadastre-detail-item"> 1066 <span class="label">Año construcción</span> 1067 <span class="value" id="wp-cadastre-u-year">1900</span> 1068 </div> 1069 <div class="wp-cadastre-detail-item"> 1070 <span class="label">Uso principal</span> 1071 <span class="value" id="wp-cadastre-u-use">Residencial</span> 1072 </div> 1073 <div class="wp-cadastre-detail-item"> 1074 <span class="label">IBI Estimado</span> 1075 <span class="value" id="wp-cadastre-u-ibi">0,00 â¬/año</span> 1076 </div> 1077 <div class="wp-cadastre-detail-item"> 1078 <span class="label">Tasa Residuos Est.</span> 1079 <span class="value" id="wp-cadastre-u-residuos">0,00 â¬/año</span> 1080 </div> 1081 <div class="wp-cadastre-detail-item"> 1082 <span class="label">Ref. Catastral completa</span> 1083 <div class="wp-cadastre-copy-wrapper"> 1084 <span class="value mono" id="wp-cadastre-u-rc">00000000000000000000</span> 1085 <button type="button" id="wp-cadastre-copy-rc-btn" class="wp-cadastre-copy-btn" title="Copiar Referencia"></button> 1086 </div> 1087 </div> 1088 </div> 1089 1090 <!-- Components de l'immoble --> 1091 <div class="wp-cadastre-components-section" id="wp-cadastre-components-wrapper" style="display: none; margin-top: 16px;"> 1092 <h5 style="color: #0A1E3C; font-size: 14px; margin-bottom: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;">Elementos constructivos</h5> 1093 <ul id="wp-cadastre-components-list" class="wp-cadastre-components-list"> 1094 <!-- Elements constructius --> 1095 </ul> 1096 </div> 1097 1098 <!-- Explicación de los m² del Catastro (plegada per defecte) --> 1099 <details class="wpc-info-note"> 1100 <summary>¿Cómo calcula el Catastro los m²?</summary> 1101 <p>La superficie indicada es la Superficie Construida con Elementos Comunes. Esto incluye la superficie propia de la vivienda más el coeficiente proporcional de pasillos, escaleras y portal. La superficie útil real de la vivienda suele ser entre un 15% y un 25% inferior. Las terrazas descubiertas no computan, mientras que las cubiertas computan al 50% (o al 100% si están cerradas por tres de sus lados).</p> 1102 </details> 1103 1104 <!-- Advertencia sobre impuestos municipales estimados --> 1105 <p class="wpc-taxes-disclaimer-small"> 1106 * Los importes de IBI y tasa de residuos son estimaciones teóricas orientativas calculadas por el sistema según los coeficientes del municipio. No sustituyen al recibo oficial emitido por el Ayuntamiento. </p> 1107 </div> 1108 1109 <button type="button" id="wpc-goto-step4-btn" class="wpc-step-continue-btn"> 1110 Continuar â </button> 1111 </div> 1112 1113 <!-- PASO 4: Descarga del informe --> 1114 <div id="wpc-step4-card" class="wpc-wizard-card wpc-step4-card" style="display: none;"> 1115 <button type="button" class="wpc-step2-back-link" id="wpc-back-to-step3-btn"> 1116 â Volver a los datos </button> 1117 1118 <div class="wpc-upsell-badge">GRATUITO</div> 1119 <h2 class="wpc-upsell-title">Descarga el Informe Completo en PDF</h2> 1120 <p class="wpc-upsell-subtitle">Obtén un informe profesional de 9 páginas al instante para este inmueble, incluyendo:</p> 1121 1122 <ul class="wpc-upsell-list"> 1123 <li><span class="wpc-upsell-check">â</span><span><strong>Análisis de fachada y cubierta por IA</strong> (grietas, humedades, etc.)</span></li> 1124 <li><span class="wpc-upsell-check">â</span><span>Verificación de <strong>ITE obligatoria</strong> y certificado energético</span></li> 1125 <li><span class="wpc-upsell-check">â</span><span>
1125Riesgos naturales de la zona (sÃsmicos, inundabilidad e incendio)</span></li> 1126 <li><span class="wpc-upsell-check">â</span><span>Riesgo de <strong>Gas Radón</strong> (CTE DB-HS6)</span></li> 1127 <li><span class="wpc-upsell-check">â</span><span>Estimación de <strong>precio de mercado y coste de reformas</strong></span></li> 1128 </ul> 1129 1130 <button type="button" class="wpc-upsell-download-btn" id="wp-cadastre-buy-report-btn"> 1131 Descargar Informe (Gratis) </button> 1132 </div> 1133 1134 </div> <!-- Fi Plugin Wrap --> 1135 1136 <!-- Modal per a Formulari 39 (Descarga de Informe) --> 1137 <div id="hsm-modal-gf-39" class="hsm-modal" style="display:none; position:fixed; inset:0; z-index:999999; background:rgba(10,30,60,0.88); backdrop-filter:blur(8px); justify-content:center; align-items:center; padding:20px; overflow-y:auto;"> 1138 <style> 1139 /* Catch-all: force every text node inside the dark modal to be white, 1140 regardless of which Gravity Forms theme/markup version is active. 1141 Inputs, buttons and links are excluded here and styled explicitly below, 1142 since they sit on a light field background, not the dark modal background. */ 1143 #hsm-modal-gf-39, 1144 #hsm-modal-gf-39 *:not(input):not(textarea):not(select):not(button):not(a) { 1145 color: #FFFFFF !important; 1146 opacity: 1 !important; 1147 } 1148 #hsm-modal-gf-39 h3, 1149 #hsm-modal-gf-39 .gform_title { 1150 color: #FFFFFF !important; 1151 font-weight: 700 !important; 1152 text-align: center !important; 1153 } 1154 #hsm-modal-gf-39 label, 1155 #hsm-modal-gf-39 .gfield_label, 1156 #hsm-modal-gf-39 .gform-field-label, 1157 #hsm-modal-gf-39 .gform-field-label__text { 1158 color: #FFFFFF !important; 1159 font-weight: 600 !important; 1160 font-size: 14px !important; 1161 } 1162 #hsm-modal-gf-39 .gfield_required, 1163 #hsm-modal-gf-39 .gfield_required * { 1164 color: #FF6B6B !important; 1165 font-weight: 700 !important; 1166 } 1167 #hsm-modal-gf-39 .gfield_description, 1168 #hsm-modal-gf-39 .gform_description { 1169 color: #C7D6EC !important; 1170 } 1171 /* Inputs: solid, opaque, high-contrast field style (dark text on a light field) 1172 instead of white-on-translucent, which is what made the previous version unreadable. */ 1173 #hsm-modal-gf-39 input[type="text"], 1174 #hsm-modal-gf-39 input[type="email"], 1175 #hsm-modal-gf-39 input[type="tel"], 1176 #hsm-modal-gf-39 input[type="number"], 1177 #hsm-modal-gf-39 select, 1178 #hsm-modal-gf-39 textarea { 1179 color: #0F2A52 !important; 1180 background-color: #FFFFFF !important; 1181 border: 1.5px solid rgba(255, 255, 255, 0.5) !important; 1182 border-radius: 10px !important; 1183 font-size: 15px !important; 1184 padding: 12px 16px !important; 1185 opacity: 1 !important; 1186 -webkit-text-fill-color: #0F2A52 !important; 1187 } 1188 #hsm-modal-gf-39 input::placeholder, 1189 #hsm-modal-gf-39 textarea::placeholder { 1190 color: #64748B !important; 1191 opacity: 1 !important; 1192 } 1193 #hsm-modal-gf-39 input::-webkit-input-placeholder, 1194 #hsm-modal-gf-39 textarea::-webkit-input-placeholder { 1195 color: #64748B !important; 1196 opacity: 1 !important; 1197 } 1198 #hsm-modal-gf-39 input::-moz-placeholder, 1199 #hsm-modal-gf-39 textarea::-moz-placeholder { 1200 color: #64748B !important; 1201 opacity: 1 !important; 1202 } 1203 #hsm-modal-gf-39 .gfield_consent_label, 1204 #hsm-modal-gf-39 .ginput_container_consent label, 1205 #hsm-modal-gf-39 .gfield_checkbox label, 1206 #hsm-modal-gf-39 .gfield_checkbox *, 1207 #hsm-modal-gf-39 .gfield_radio label { 1208 color: #FFFFFF !important; 1209 font-size: 13px !important; 1210 } 1211 #hsm-modal-gf-39 a { 1212 color: #7FC2FF !important; 1213 font-weight: 700 !important; 1214 text-decoration: underline !important; 1215 } 1216 #hsm-modal-gf-39 .validation_message, 1217 #hsm-modal-gf-39 .gfield_validation_message, 1218 #hsm-modal-gf-39 .gform_validation_errors, 1219 #hsm-modal-gf-39 .gform_validation_errors * { 1220 color: #FFD3D3 !important; 1221 font-weight: 600 !important; 1222 } 1223 #hsm-modal-gf-39 input[type="submit"], 1224 #hsm-modal-gf-39 button[type="submit"], 1225 #hsm-modal-gf-39 .gform_button { 1226 background-color: #1d4ed8 !important; 1227 color: #FFFFFF !important; 1228 font-size: 16px !important; 1229 font-weight: 700 !important; 1230 border-radius: 10px !important; 1231 border: none !important; 1232 padding: 14px 24px !important; 1233 width: 100% !important; 1234 cursor: pointer !important; 1235 box-shadow: 0 4px 14px rgba(29, 78, 216, 0.4) !important; 1236 } 1237 </style> 1238 <div class="hsm-modal-content" style="position:relative; width:100%; max-width:540px; background:#0F2A52; border:1px solid rgba(46,155,255,0.3); border-radius:20px; padding:30px; color:#fff; box-shadow:0 20px 50px rgba(0,0,0,0.5);"> 1239 <button type="button" class="hsm-modal-close" onclick="document.getElementById('hsm-modal-gf-39').style.display='none'" style="position:absolute; top:15px; right:15px; background:none; border:none;
1239 color:#9FC6F2; font-size:24px; cursor:pointer; width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:50%;">×</button> 1240 <h3 style="margin-bottom:15px; font-size:20px; color:#ffffff !important; font-family:'Aptos',sans-serif; text-align:center; opacity: 1 !important;">ANÃLISIS DE RIESGOS VIVIENDA</h3> 1241 1242 <div class='gf_browser_chrome gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_39' > 1243 <div class='gform_heading'> 1244 <p class='gform_required_legend'>"<span class="gfield_required gfield_required_asterisk">*</span>" señala los campos obligatorios</p> 1245 </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_39' id='gform_39' action='/inspeccion/' data-formid='39' novalidate><div class='gf_invisible ginput_recaptchav3' data-sitekey='6LdTW0spAAAAALFeuF-v--QUUGrYoyWxqhHfY3_b' data-tabindex='0'><input id="input_7cc471b21c38ab084beaaabb5227a3fd" class="gfield_recaptcha_response" type="hidden" name="input_7cc471b21c38ab084beaaabb5227a3fd" value=""/></div> 1246 <div class='gform-body gform_body'><div id='gform_fields_39' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_39_15" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_39_15'><span class='gform-field-label__text'>Comments</span></label><div class='ginput_container'><input name='input_15' id='input_39_15' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_39_15'>Este campo es un campo de validación y debe quedar sin cambios.</div></div><div id="field_39_2" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_39_2'><span class='gform-field-label__text'>Nombre</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_2' id='input_39_2' type='text' value='' class='large' placeholder='Nombre *' aria-required="true" aria-invalid="false" /></div></div><div id="field_39_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gpev-field" data-field-class="gpev-field" ><label class='gfield_label gform-field-label' for='input_39_1'><span class='gform-field-label__text'>Email</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> 1247 <input name='input_1' id='input_39_1' type='email' value='' class='large' placeholder='Email *' aria-required="true" aria-invalid="false" /> 1248 </div></div><div id="field_39_9" class="gfield gfield--type-phone gfield--input-type-phone gfield--phone-format-international gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_39_9'><span class='gform-field-label__text'>Teléfono</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_9' id='input_39_9' type='tel' value='' class='large' placeholder='Teléfono *' aria-required="true" aria-invalid="false" /></div></div><fieldset id="field_39_8" class="gfield gfield--type-consent gfield--type-choice gfield--in
1248put-type-consent gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible gfield--choice-align-vertical" ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>Consentimiento</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></legend><div class='ginput_container ginput_container_consent'><input name='input_8.1' id='input_39_8_1' type='checkbox' value='1' aria-required="true" aria-invalid="false" /> <label class="gform-field-label gform-field-label--type-inline gfield_consent_label" for='input_39_8_1' ><span class='gform-field-label__text'>Acepto la <a href="/politica-privacidad/" target="_blank" style="text-decoration: underline;">polÃtica de privacidad</a> y los <a href="/terminos-y-condiciones/" target="_blank" style="text-decoration: underline;">términos y condiciones</a>.</span><span class="gfield_required gfield_required_asterisk">*</span></label><input type='hidden' name='input_8.2' value='Acepto la <a href="/politica-privacidad/" target="_blank" style="text-decoration: underline;">polÃtica de privacidad</a> y los <a href="/terminos-y-condiciones/" target="_blank" style="text-decoration: underline;">términos y condiciones</a>.' class='gform_hidden' /><input type='hidden' name='input_8.3' value='22' class='gform_hidden' /></div></fieldset><div id="field_39_10" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_10' id='input_39_10' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></div><div id="field_39_11" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_11' id='input_39_11' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></div><div id="field_39_12" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_12' id='input_39_12' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></div><div id="field_39_13" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_13' id='input_39_13' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></div><div id="field_39_14" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_14' id='input_39_14' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></div></div></div> 1249 <div class='gform-footer gform_footer top_label'> <button type='submit' id='gform_submit_button_39' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Descargar</button> <input type='hidden' name='gform_ajax' value='form_id=39&title=&description=&tabindex=0&theme=gravity-theme&hash=92fd563ba8ee195ad9f74c00c1aacd0b' /> 1250 <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_39' value='iframe' /> 1251 <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_39' id='gform_theme_39' value='gravity-theme' /> 1252 <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_39' id='gform_style_settings_39' value='' /> 1253 <input type='hidden' class='gform_hidden' name='is_submit_39' value='1' /> 1254 <input type='hidden' class='gform_hidden' name='gform_submit' value='39' /> 1255 1256 <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='EUR' value='vKQUMzJ9NYUbCaU6rMViRYydP4Vx7MI2xQol6clGSmOxUCx15FEg7YYmMUhAPSLjG5PJ1TcBndOI6uVdW45GGLoS4kLTJ8J+zR9HC9VOZ9PLBKk=' /> 1257 <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> 1258 <input type='hidden' class='gform_hidden' name='state_39' value='WyJ7XCI4LjFcIjpcIjQ2MDU4NTRmMjlmZjhlMmM0ZTQ5NWI1ZjVmZjY1OGFiXCIsXCI4LjJcIjpcImI4ZWY5ZGNhYTA1OGEyNzRkMmQwOWFjNGJkOWMwYzA1XCIsXCI4LjNcIjpcIjQ1NWVjNGVlODVmZGYyM2E4MjQxOTg5ZTk3ZGRjMDg1XCIsXCJnZm9ybV9zdWJtaXNzaW9uX21ldGhvZFwiOltcIjk3ODY5ZDdlYjk2MGFiMmE0MDE1ZDAwMTg3MDMxMmQ0XCIsXCI4OGMxODY3ODc0MjVkZGUzODc2MzAwZTcwODUyZGM5ZFwiLFwiOTllYWJjN2QyZGEwYzY5YmJjZjEyYTYwYzViNzRkZWFcIl0sXCJnZm9ybV90aGVtZVwiOlwiNmExNGUzY2Q4YmVhYWZkYjc3NDRmZjVjMDA3MTU1YTVcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCJkMGRkOTMxY2Q1YjM4MzViMmViODRjYWUwMThkMmFmOFwiLFwiZm9ybV9pZFwiOlwiOTY0ZGZjYmUwZWRlYmUzNjJiYjhkNWQwYmYzODVmMmRcIixcInVybFwiOlwiMDg5YWE5NzRhYWYzYWY2NjdlYzI2NTc5YzMwNzY1YjNcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiM2VjY2UyOTk0YmU5NGY5YzA0ZTk0NjYwZjRkYzk5MjNcIn0iLCI2MzQwNjExZDYzNWRkMDIxZDg1ZGVlNzdmODAxMGM5MiIsMTc5MTEwOTI5Nl0=' /> 1259 <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_39' id='gform_target_page_number_39' value='0' /> 1260 <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_39' id='gform_source_page_number_39' value='1' /> 1261 <input type='hidden' name='gform_field_values' value='' /> 1262 1263 </div> 1264 </form> 1265 </div> 1266 <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_39' id='gform_ajax_frame_39' title='Este iframe contiene la lógica necesaria para gestionar formularios con ajax activado.'></iframe> 1267
1267<script> 1268gform.initializeOnLoaded( function() {jQuery('#gform_ajax_frame_39').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_39');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_39').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_39').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_39').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_39').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ }, 50 );var current_page = jQuery('#gform_source_page_number_39').val();jQuery(document).trigger('gform_page_loaded', [39, current_page]);window['gf_submitting_39'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_39').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [39]);window['gf_submitting_39'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_39').text());}else{jQuery('#gform_39').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "39", currentPage: "current_page", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_39" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_39"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_39" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; gform.core.triggerPostRenderEvents( 39, current_page ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } );} ); 1269</script>
vendor: 1 bytes, line 1269
1269
1270<script> 1271gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 39) {if(typeof Placeholders != 'undefined'){ 1272 Placeholders.enable(); 1273 }} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } ); 1274</script>
vendor: 1 bytes, line 1274
1274
1275<script> 1276gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "39", currentPage: "1", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_39" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_39"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_39" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; gform.core.triggerPostRenderEvents( 39, 1 ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } ); 1277</script>
1277 1278 </div> 1279 </div> 1280 </div> 1281 </div> 1282 </section> 1283 1284 <!-- INFORME TÃCNICO DE INSPECCIÃN (+200 PUNTOS) (#informe-tecnico) --> 1285 <section class="sec light" id="informe-tecnico" style="padding:64px 0; background:#F4F8FD;"> 1286 <div class="wrap"> 1287 <div class="sec-head"> 1288 <div class="eyebrow" style="color:#0072BC; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px;">Diagnóstico técnico profesional</div> 1289 <h2 class="headline" style="color:#0F2A52; font-size:32px; font-weight:800;">Informe Técnico de Inspección con más de 200 puntos de control</h2> 1290 <p class="lede" style="max-width:840px; color:#3A4F6E; font-size:16.5px; line-height:1.6; margin-top:10px;">Inspección in situ minuciosa realizada por un arquitecto colegiado. Analizamos con instrumentación especializada (cámaras termográficas, higrómetros y medidores de presión) el estado real del inmueble para que decidas con total certeza.</p> 1291 </div> 1292 1293 <!-- 6 PILLARS GRID WITH MULTILINGUAL SEO OPTIMIZED COPY --> 1294 <div class="benefit-grid" style="margin-top:36px; display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:24px;"> 1295 <div class="card" style="background:#FFFFFF; border:1px solid #D5E4F5; border-radius:20px; padding:28px; box-shadow:0 8px 24px rgba(15,42,82,0.05);"> 1296 <div style="margin-bottom:14px; color:#0072BC;"> 1297 <svg viewBox="0 0 24 24" width="32" height="32" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21h18M5 21V7l7-4 7 4v14M9 10h6M9 14h6M9 18h6"/></svg> 1298 </div> 1299 <h3 style="font-size:19px; color:#0F2A52; font-weight:700; margin-bottom:10px;">Estructura y Cimentación</h3> 1300 <p style="color:#3A4F6E; font-size:14.5px; line-height:1.55;">Evaluación de elementos portantes, muros de carga, forjados, pilares, vigas, grietas y estabilidad estructural del edificio.</p> 1301 </div> 1302 1303 <div class="card" style="background:#FFFFFF; border:1px solid #D5E4F5; border-radius:20px; padding:28px; box-shadow:0 8px 24px rgba(15,42,82,0.05);"> 1304 <div style="margin-bottom:14px; color:#0072BC;"> 1305 <svg viewBox="0 0 24 24" width="32" height="32" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg> 1306 </div> 1307 <h3 style="font-size:19px; color:#0F2A52; font-weight:700; margin-bottom:10px;">Humedades y Filtraciones</h3> 1308 <p style="color:#3A4F6E; font-size:14.5px; line-height:1.55;">Localización de humedades por capilaridad, condensación o filtración mediante cámaras termográficas e higrómetros.</p> 1309 </div> 1310 1311 <div class="card" style="background:#FFFFFF; border:1px solid #D5E4F5; border-radius:20px; padding:28px; box-shadow:0 8px 24px rgba(15,42,82,0.05);"> 1312 <div style="margin-bottom:14px; color:#0072BC;"> 1313 <svg viewBox="0 0 24 24" width="32" height="32" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg> 1314 </div> 1315 <h3 style="font-size:19px; color:#0F2A52; font-weight:700; margin-bottom:10px;">Instalaciones y Suministros</h3> 1316 <p style="color:#3A4F6E; font-size:14.5px; line-height:1.55;">Pruebas del cuadro eléctrico, cableado, fontanerÃa, presión de agua, desagües, caldera y climatización.</p> 1317 </div> 1318 1319 <div class="card" style="background:#FFFFFF; border:1px solid #D5E4F5; border-radius:20px; padding:28px; box-shadow:0 8px 24px rgba(15,42,82,0.05);"> 1320 <div style="margin-bottom:14px; color:#0072BC;"> 1321 <svg viewBox="0 0 24 24" width="32" height="32" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M12 3v18M3 12h18"/></svg> 1322 </div> 1323 <h3 style="font-size:19px; color:#0F2A52; font-weight:700; margin-bottom:10px;">CarpinterÃas y Aislamiento</h3> 1324 <p style="color:#3A4F6E; font-size:14.5px; line-height:1.55;">Inspección de ventanas, cierres perimetrales, persianas, puentes térmicos y estanqueidad acústica y térmica.</p> 1325 </div> 1326 1327 <div class="card" style="background:#FFFFFF; border:1px solid #D5E4F5; border-radius:20px; padding:28px; box-shadow:0 8px 24px rgba(15,42,82,0.05);"> 1328 <div style="margin-bottom:14px; color:#0072BC;"> 1329 <svg viewBox="0 0 24 24" width="32" height="32" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 21V8a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v13M3 21h18M9 10h1M14 10h1M9 14h1M14 14h1"/></svg> 1330 </div> 1331 <h3 style="font-size:19px; color:#0F2A52; font-weight:700; margin-bottom:10px;">Zonas Comunes e ITE/IEE</h3> 1332 <p style="color:#3A4F6E; font-size:14.5px; line-height:1.55;">Revisión de fachada, cubierta, tejado, ascensor, zonas comunitarias y situación de la ITE/IEE para evitar derramas.</p> 1333 </div> 1334 1335 <div class="card" style="background:#FFFFFF; border:1px solid #D5E4F5; border-radius:20px; padding:28px; box-shadow:0 8px 24px rgba(15,42,82,0.05);"> 1336 <div style="margin-bottom:14px; color:#0072BC;"> 1337 <svg viewBox="0 0 24 24" width="32" height="32" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6M16 13H8M16 17H8M10 9H8"/></svg> 1338 </div> 1339 <h3 style="font-size:19px; color:#0F2A52; font-weight:700; margin-bottom:10px;">Estimación de Costes y Negociación</h3> 1340 <p style="color:#3A4F6E; font-size:14.5px; line-height:1.55;">Resumen ejecutivo con reportaje fotográfico y presupuesto estimado de reparaciones para negociar el precio de compra.</p> 1341 </div> 1342 </div> 1343 1344 <div style="margin-top:40px; text-align:center;"> 1345 <a href="https://hausum.com/reserva/" class="cta" style="font-size:16px; padding:14px 34px; background:#2E9BFF; color:#fff; border-radius:12px; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:8px;">Programar inspección técnica <svg viewbox="0 0 24 24" width="18" height="18" fill="none" stroke="#fff" stroke-width="2.5"><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></svg> 1346 </a> 1347 </div> 1348 </div> 1349 </section> 1350 1351 <!-- COLABORADORS Y PARTNERS (#colaboradores) --> 1352 <section class="sec light" id="colaboradores" style="border-top:1px solid #D5E4F5; padding:64px 0; background:#FFFFFF;"> 1353 <div class="wrap" style="text-align:center;"> 1354 <div class="sec-head center"> 1355 <div class="eyebrow" style="color:#0072BC; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px;">
1355Alianzas estratégicas</div> 1356 <h2 class="headline" style="color:#0F2A52; font-size:32px; font-weight:800;">Colaboradores y portales inmobiliarios de confianza</h2> 1357 <p class="lede" style="max-width:780px; margin:10px auto 0; color:#3A4F6E; font-size:16.5px; line-height:1.6;">Trabajamos en alianza con los principales portales inmobiliarios, entidades financieras y profesionales del sector para ofrecer una cobertura y garantÃa integral.</p> 1358 </div> 1359 1360 <!-- COLLABORATORS PLUGIN SHORTCODE --> 1361 <div style="margin-top:24px;"> 1362 <style id="hsm-collaborators-styles"> 1363 .hsm-collaborators-grid { 1364 display: flex; 1365 flex-wrap: wrap; 1366 align-items: center; 1367 justify-content: center; 1368 gap: 24px 32px; 1369 margin-top: 32px; 1370 margin-bottom: 20px; 1371 } 1372 .hsm-collab-card { 1373 display: flex; 1374 flex-direction: column; 1375 align-items: center; 1376 justify-content: center; 1377 padding: 22px 32px; 1378 background: #FFFFFF; 1379 border: 1px solid #D5E4F5; 1380 border-radius: 20px; 1381 text-decoration: none; 1382 transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); 1383 box-shadow: 0 8px 24px rgba(15, 42, 82, 0.06); 1384 min-width: 190px; 1385 text-align: center; 1386 } 1387 .hsm-collab-card:hover { 1388 background: #F0F6FE; 1389 border-color: #2E9BFF; 1390 transform: translateY(-3px); 1391 box-shadow: 0 14px 32px rgba(15, 42, 82, 0.12); 1392 } 1393 .sec-a .hsm-collab-card { 1394 background: rgba(10, 30, 60, 0.45); 1395 border-color: rgba(46, 155, 255, 0.2); 1396 box-shadow: none; 1397 } 1398 .sec-a .hsm-collab-card:hover { 1399 background: rgba(20, 48, 88, 0.7); 1400 border-color: rgba(46, 155, 255, 0.5); 1401 } 1402 .hsm-collab-logo-wrap { 1403 display: flex; 1404 align-items: center; 1405 justify-content: center; 1406 min-height: 38px; 1407 margin-bottom: 8px; 1408 } 1409 .hsm-collab-logo-wrap img { 1410 max-height: 38px; 1411 max-width: 170px; 1412 width: auto; 1413 object-fit: contain; 1414 transition: filter 0.25s ease; 1415 } 1416 .hsm-collab-name { 1417 font-family: 'Aptos', -apple-system, BlinkMacSystemFont, sans-serif; 1418 font-size: 16px; 1419 font-weight: 800; 1420 color: #0F2A52; 1421 letter-spacing: 0.02em; 1422 transition: color 0.25s ease; 1423 } 1424 .sec-a .hsm-collab-name { 1425 color: #FFFFFF; 1426 } 1427 .hsm-collab-card:hover .hsm-collab-name { 1428 color: #0072BC; 1429 } 1430 .sec-a .hsm-collab-card:hover .hsm-collab-name { 1431 color: #2E9BFF; 1432 } 1433 @media (max-width: 768px) { 1434 .hsm-collaborators-grid { 1435 gap: 16px 20px; 1436 } 1437 .hsm-collab-card { 1438 padding: 16px 24px; 1439 min-width: 140px; 1440 } 1441 .hsm-collab-logo-wrap img { 1442 max-height: 30px; 1443 max-width: 140px; 1444 } 1445 .hsm-collab-name { 1446 font-size: 14.5px; 1447 } 1448 } 1449 </style> 1450 1451 <div class="hsm-collaborators-grid"> 1452 <a class="hsm-collab-card" href="https://www.estilguru.com/" target="_blank" rel="noopener noreferrer" title="Estil Guru"> 1453 <div class="hsm-collab-logo-wrap"> 1454 <img src="https://hausum.com/wp-content/uploads/2026/08/IMG_5634.jpeg" alt="Estil Guru" loading="lazy" /> 1455 </div> 1456 <span class="hsm-collab-name">Estil Guru</span> 1457 </a> 1458 <a class="hsm-collab-card" href="https://cajaislant.com/" target="_blank" rel="noopener noreferrer" title="Cajaislant"> 1459 <div class="hsm-collab-logo-wrap"> 1460 <img src="https://hausum.com/wp-content/uploads/2026/08/IMG_5635.png" alt="Cajaislant" loading="lazy" /> 1461 </div> 1462 <span class="hsm-collab-name">Cajaislant</span> 1463 </a> 1464 <a class="hsm-collab-card" href="https://www.solerpalau.com/es-es/" target="_blank" rel="noopener noreferrer" title="Soler & Palau"> 1465 <div class="hsm-collab-logo-wrap"> 1466 <img src="https://hausum.com/wp-content/uploads/2026/08/IMG_5633.png" alt="Soler & Palau" loading="lazy" /> 1467 </div> 1468 <span class="hsm-collab-name">Soler & Palau</span> 1469 </a> 1470 </div> 1471 </div> 1472 </div> 1473 </section> 1474 1475 <!-- PROTECCIÃN JURÃDICA Y VICIOS OCULTOS (#vicios-ocultos) --> 1476 <section class="sec light" id="vicios-ocultos" style="border-top:1px solid #D5E4F5; padding:64px 0; background:#F4F8FD;"> 1477 <div class="wrap"> 1478 <div class="sec-head"> 1479 <div class="eyebrow" style="color:#0072BC; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px;">Protección jurÃdica al comprador</div> 1480 <h2 class="headline" style="color:#0F2A52; font-size:32px; font-weight:800;">Vicios ocultos, obra nueva y defectos de construcción</h2> 1481 </div> 1482 <div class="body-text" style="margin-top:24px; max-width:840px; color:#26405F; font-size:15.5px; line-height:1.65;"> 1483 <p style="margin-bottom:14px;">Si estás pensando en comprar un inmueble de segunda mano (piso, casa, chalet o local comercial), conocer su estado real es fundamental para negociar un precio justo o desestimar opciones de alto riesgo.</p> 1484 <p style="margin-bottom:14px;">Si ya has realizado la compra y has detectado patologÃas no informadas, te asesoramos en la reclamación por vicios ocultos ante el vendedor.</p> 1485 <p style="margin-bottom:14px;">En viviendas de obra nueva, ponemos a tu disposición arquitectos expertos para redactar el acta de repasos previa a la entrega de llaves y exigir la subsanación al promotor.</p> 1486 </div> 1487 <div style="display:flex; gap:16px; flex-wrap:wrap; margin-top:28px;"> 1488 <a href="https://hausum.com/inspeccion-de-casas-nuevas/" class="cta" style="background:#2E9BFF; color:#fff; padding:12px 24px; border-radius:12px; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:8px;">Inspección obra nueva <svg viewbox="0 0 24 24" width="18" height="18" fill="none" stroke="#fff" stroke-width="2.5"><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></svg> 1489 </a> 1490 <a href="https://hausum.com/inspeccion-locales-comerciales/" class="cta" style="background:#EBF3FC; border:1px solid #B8D6F5; color:#0072BC; padding:12px 24px; border-radius:12px; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:8px;">Inspección local comercial <svg viewbox="0 0 24 24" width="18" height="18" fill="none" stroke="#0072BC" stroke-width="2.5"><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></svg> 1491 </a> 1492 </div> 1493 </div> 1494 </section> 1495 1496 <!-- TECNOLOGÃA Y COBERTURA NACIONAL (#cobertura) --> 1497 <section class="sec sec-a" id="cobertura" style="padding:64px 0; background:#0A1E3C; border-top:1px solid #D5E4F5;"> 1498 <div class="wrap" style="text-align:center;"> 1499 <div class="sec-head center"> 1500 <div class="eyebrow" style="color:#2E9BFF; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px;">TecnologÃa propia y garantÃa</div> 1501 <h2 class="headline" style="color:#FFFFFF; font-size:32px; font-weight:800;">Aplicación propia de inspección e informe técnico en menos de 24 horas</h2> 1502 <p class="lede" style="max-width:820px; margin:10px auto 0; color:#B0C5E2; font-size:16.5px; line-height:1.6;">Nuestra aplicación de inspección propia permite a nuestros arquitectos digitalizar los hallazgos en tiempo real durante la visita. Recibirás tu informe técnico completo en menos de 24 horas y dispondrás de una consulta personalizada con el técnico.</p> 1503 </div> 1504 1505 <div style="margin-top:32px; margin-bottom:44px;"> 1506 <div class="city-pill-row" style="justify-content:center;"> 1507 <a href="https://hausum.com/home-inspector-madrid/">Madrid</a> 1508 <a href="https://hausum.com/home-inspector-barcelona/">Barcelona</a> 1509 <a href="https://hausum.com/home-inspector-valencia/">Valencia</a> 1510 <a href="https://hausum.com/home-inspector-girona/">Girona</a> 1511 <a href="https://hausum.com/home-inspector-lleida/">Lleida</a> 1512 <a href="https://hausum.com/home-inspector-tarragona/">Tarragona</a> 1513 </div> 1514 </div> 1515 1516 <div> 1517 <a href="https://hausum.com/reserva/" class="cta" style="font-size:16px; padding:14px 34px; background:#2E9BFF; color:#fff; border-radius:12px; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:8px;">Programar visita ahora <svg viewbox="0 0 24 24" width="18" height="18" fill="none" stroke="#fff" stroke-width="2.5"><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></svg> 1518 </a> 1519 </div> 1520 </div> 1521 </section> 1522
1523<script> 1524document.addEventListener('DOMContentLoaded', function() { 1525 var btn = document.getElementById('hsm-tools-dropdown-btn'); 1526 var menu = document.getElementById('hsm-tools-dropdown-menu'); 1527 var arrow = document.getElementById('hsm-dropdown-arrow'); 1528 if (btn && menu) { 1529 btn.addEventListener('click', function(e) { 1530 e.stopPropagation(); 1531 var isVisible = menu.style.display === 'block'; 1532 menu.style.display = isVisible ? 'none' : 'block'; 1533 if (arrow) arrow.style.transform = isVisible ? 'rotate(0deg)' : 'rotate(180deg)'; 1534 }); 1535 1536 document.addEventListener('click', function(e) { 1537 if (!btn.contains(e.target) && !menu.contains(e.target)) { 1538 menu.style.display = 'none'; 1539 if (arrow) arrow.style.transform = 'rotate(0deg)'; 1540 } 1541 }); 1542 1543 var items = menu.querySelectorAll('a'); 1544 items.forEach(function(item) { 1545 item.addEventListener('click', function() { 1546 menu.style.display = 'none'; 1547 if (arrow) arrow.style.transform = 'rotate(0deg)'; 1548 }); 1549 item.addEventListener('mouseenter', function() { 1550 this.style.background = 'rgba(46,155,255,0.18)'; 1551 }); 1552 item.addEventListener('mouseleave', function() { 1553 this.style.background = 'transparent'; 1554 }); 1555 }); 1556 } 1557}); 1558</script>
1558 1559 1560</main> 1561 1562</div><!-- #content --> 1563 1564<footer class="footer"> 1565 <div class="wrap"> 1566 <div class="foot-top"> 1567 <div class="foot-brand"> 1568 <a href="https://hausum.com/" class="logo" aria-label="Hausum Home"> 1569 <img src="https://hausum.com/wp-content/uploads/2023/04/hausum-blanco.svg" alt="HAUSUM" class="logo-img" style="height: 32px; width: auto; display: block;" /> 1570 </a> 1571 <p>Inspección independiente de viviendas por arquitectos colegiados. Informe técnico en menos de 24h para que decidas con datos reales.</p> 1572 </div> 1573 <div class="foot-links"> 1574 <div class="foot-col"> 1575 <h4>Servicios</h4> 1576 <a href="https://hausum.com/#servicios">Inspección de 2ª mano</a> 1577 <a href="https://hausum.com/#servicios">Obra nueva</a> 1578 <a href="https://hausum.com/#servicios">Local comercial</a> 1579 <a href="https://hausum.com/#servicios">Cobertura legal</a> 1580 </div> 1581 <div class="foot-col"> 1582 <h4>Hausum</h4> 1583 <a href="https://hausum.com/legal/">Legal</a> 1584 <a href="https://hausum.com/tarifas/">Tarifas</a> 1585 <a href="https://hausum.com/inspeccion/">Inspección</a> 1586 <a href="https://hausum.com/home-inspector/">Home inspector</a> 1587 <a href="https://hausum.com/preguntas-frequentes/">FAQS</a> 1588 <a href="https://hausum.com/contacto/">Contacto</a> 1589 <a href="https://hausum.com/manifiesto/">Sobre Nosotros</a> 1590 </div> 1591 <div class="foot-col"> 1592 <h4>SÃguenos</h4> 1593 <a href="https://www.youtube.com/@Hausum" target="_blank" rel="noopener">YouTube</a> 1594 <a href="https://www.instagram.com/hausum_com/" target="_blank" rel="noopener">Instagram</a> 1595 <a href="https://www.tiktok.com/@hausum.com" target="_blank" rel="noopener">TikTok</a> 1596 <a href="https://www.linkedin.com/company/Hausum/" target="_blank" rel="noopener">LinkedIn</a> 1597 </div> 1598 </div> 1599 </div> 1600 1601 <div class="foot-bottom"> 1602 <span>© 2026 Hausum · Arquitectos colegiados</span> 1603 <span class="foot-legal-links" style="display:inline-flex; gap:12px; align-items:center; opacity:0.85;"> 1604 <a href="https://hausum.com/aviso-legal/" style="color:inherit; text-decoration:none; transition:color 0.15s;">Aviso legal</a> 1605 <span style="opacity:0.4;">·</span> 1606 <a href="https://hausum.com/terminos-y-condiciones/" style="color:inherit; text-decoration:none; transition:color 0.15s;">Términos y condiciones</a> 1607 <span style="opacity:0.4;">·</span> 1608 <a href="https://hausum.com/politica-privacidad/" style="color:inherit; text-decoration:none; transition:color 0.15s;">PolÃtica de privacidad</a> 1609 <span style="opacity:0.4;">·</span> 1610 <a href="https://hausum.com/politica-de-cookies-ue/" style="color:inherit; text-decoration:none; transition:color 0.15s;">PolÃtica de cookies</a> 1611 <span style="opacity:0.4;">·</span> 1612 <a href="https://hausum.com/contacto/" style="color:inherit; text-decoration:none; transition:color 0.15s;">Contacto</a> 1613 </span> 1614 <span>ð¡ GarantÃa total · si no encontramos defectos, te devolvemos el dinero</span> 1615 </div> 1616 1617 <div class="foot-provinces"> 1618 <b>Inspecciones por provincia</b> 1619 <a href="https://hausum.com/home-inspector-madrid/">Madrid</a><span class="sep">·</span> 1620 <a href="https://hausum.com/home-inspector-barcelona/">Barcelona</a><span class="sep">·</span> 1621 <a href="https://hausum.com/home-inspector-valencia/">Valencia</a><span class="sep">·</span> 1622 <a href="https://hausum.com/home-inspector-sevilla/">Sevilla</a><span class="sep">·</span> 1623 <a href="https://hausum.com/home-inspector-malaga/">Málaga</a><span class="sep">·</span> 1624 <a href="https://hausum.com/home-inspector-zaragoza/">Zaragoza</a><span class="sep">·</span> 1625 <a href="https://hausum.com/home-inspector-bilbao/">Bilbao</a><span class="sep">·</span> 1626 <a href="https://hausum.com/home-inspector-alicante/">Alicante</a><span class="sep">·</span> 1627 <a href="https://hausum.com/home-inspector-murcia/">Murcia</a><span class="sep">·</span> 1628 <a href="https://hausum.com/home-inspector-mallorca/">Mallorca</a><span class="sep">·</span> 1629 <a href="https://hausum.com/home-inspector-las-palmas/">Las Palmas</a><span class="sep">·</span> 1630 <a href="https://hausum.com/home-inspector-cordoba/">Córdoba</a><span class="sep">·</span> 1631 <a href="https://hausum.com/home-inspector-valladolid/">Valladolid</a><span class="sep">·</span> 1632 <a href="https://hausum.com/home-inspector-granada/">Granada</a><span class="sep">·</span> 1633 <a href="https://hausum.com/home-inspector-vitoria/">Vitoria</a><span class="sep">·</span> 1634 <a href="https://hausum.com/home-inspector-oviedo/">Oviedo</a><span class="sep">·</span> 1635 <a href="https://hausum.com/home-inspector-cantabria/">Cantabria</a><span class="sep">·</span> 1636 <a href="https://hausum.com/home-inspector-navarra/">Navarra</a><span class="sep">·</span> 1637 <a href="https://hausum.com/home-inspector-la-rioja/">La Rioja</a><span class="sep">·</span> 1638 <a href="https://hausum.com/home-inspector-san-sebastian/">San Sebastián</a><span class="sep">·</span> 1639 <a href="https://hausum.com/home-inspector-toledo/">Toledo</a><span class="sep">·</span> 1640 <a href="https://hausum.com/home-inspector-caceres/">Cáceres</a><span class="sep">·</span> 1641 <a href="https://hausum.com/home-inspector-badajoz/">Badajoz</a><span class="sep">·</span> 1642 <a href="https://hausum.com/home-inspector-huelva/">Huelva</a><span class="sep">·</span> 1643 <a href="https://hausum.com/home-inspector-jaen/">Jaén</a><span class="sep">·</span> 1644 <a href="https://hausum.com/home-inspector-almeria/">AlmerÃa</a><span class="sep">·</span> 1645 <a href="https://hausum.com/home-inspector-cadiz/">Cádiz</a><span class="sep">·</span> 1646 <a href="https://hausum.com/home-inspector-salamanca/">Salamanca</a><span class="sep">·</span> 1647 <a href="https://hausum.com/home-inspector-burgos/">Burgos</a><span class="sep">·</span> 1648 <a href="https://hausum.com/home-inspector-leon/">León</a><span class="sep">·</span> 1649 <a href="https://hausum.com/home-inspector-palencia/">Palencia</a><span class="sep">·</span> 1650 <a href="https://hausum.com/home-inspector-zamora/">Zamora</a><span class="sep">·</span> 1651 <a href="https://hausum.com/home-inspector-segovia/">Segovia</a><span class="sep">·</span> 1652 <a href="https://hausum.com/home-inspector-avila/">Ãvila</a><span class="sep">·</span> 1653 <a href="https://hausum.com/home-inspector-soria/">Soria</a><span class="sep">·</span> 1654 <a href="https://hausum.com/home-inspector-guadalajara/">Guadalajara</a><span class="sep">·</span> 1655 <a href="https://hausum.com/home-inspector-cuenca/">Cuenca</a><span class="sep">·</span> 1656 <a href="https://hausum.com/home-inspector-albacete/">Albacete</a><span class="sep">·</span> 1657 <a href="https://hausum.com/home-inspector-ciudad-real/">Ciudad Real</a><span class="sep">·</span> 1658 <a href="https://hausum.com/home-inspector-lugo/">Lugo</a><span class="sep">·</span> 1659 <a href="https://hausum.com/home-inspector-ourense/">Ourense</a><span class="sep">·</span> 1660 <a href="https://hausum.com/home-inspector-pontevedra/">Pontevedra</a><span class="sep">·</span> 1661 <a href="https://hausum.com/home-inspector-a-coruna/">A Coruña</a><span class="sep">·</span> 1662 <a href="https://hausum.com/home-inspector-teruel/">Teruel</a><span class="sep">·</span> 1663 <a href="https://hausum.com/home-inspector-huesca/">Huesca</a><span class="sep">·</span> 1664 <a href="https://hausum.com/home-inspector-lleida/">Lleida</a><span class="sep">·</span> 1665 <a href="https://hausum.com/home-inspector-tarragona/">Tarragona</a><span class="sep">·</span> 1666 <a href="https://hausum.com/home-inspector-girona/">Girona</a><span class="sep">·</span> 1667 <a href="https://hausum.com/home-inspector-castellon/">Castellón</a><span class="sep">·</span> 1668 <a href="https://hausum.com/home-inspector-tenerife/">Tenerife</a><span class="sep">·</span> 1669 <a href="https://hausum.com/home-inspector-ibiza/">Ibiza</a><span class="sep">·</span> 1670 <a href="https://hausum.com/home-inspector-menorca/">Menorca</a> 1671 </div> 1672 </div> 1673</footer> 1674 1675<!-- BARRA FIJA MÃVIL --> 1676<div class="mobile-cta-bar"> 1677 <a href="tel:+34930900232" class="call" aria-label="Llamar a Hausum"> 1678 <svg viewBox="0 0 24 24">
1678<path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.36 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.34 1.85.573 2.81.7A2 2 0 0 1 22 16.92z"/></svg> 1679 </a> 1680 <a href="https://hausum.com/reserva/" class="book">Programar visita</a> 1681 <a href="https://wa.me/34930900232?text=%C2%A1Hola%20Hausum!" class="wa" target="_blank" rel="noopener noreferrer" aria-label="WhatsApp"> 1682 <svg viewBox="0 0 24 24" fill="#fff" stroke="none"><path d="M12 2C6.48 2 2 6.48 2 12c0 1.85.5 3.58 1.38 5.07L2 22l5.06-1.33A9.94 9.94 0 0 0 12 22c5.52 0 10-4.48 10-10S17.52 2 12 2zm0 18c-1.6 0-3.1-.43-4.4-1.18l-.32-.19-3.28.86.88-3.2-.21-.33A7.96 7.96 0 0 1 4 12c0-4.41 3.59-8 8-8s8 3.59 8 8-3.59 8-8 8zm4.4-5.88c-.24-.12-1.43-.7-1.65-.78-.22-.08-.38-.12-.54.12-.16.24-.62.78-.76.94-.14.16-.28.18-.52.06-.24-.12-1.01-.37-1.92-1.18-.71-.63-1.19-1.41-1.33-1.65-.14-.24-.01-.37.11-.49.11-.11.24-.28.36-.42.12-.14.16-.24.24-.4.08-.16.04-.3-.02-.42-.06-.12-.54-1.3-.74-1.78-.19-.46-.39-.4-.54-.4h-.46c-.16 0-.42.06-.64.3-.22.24-.84.82-.84 2s.86 2.32.98 2.48c.12.16 1.7 2.6 4.13 3.64.58.25 1.03.4 1.38.51.58.18 1.11.16 1.53.1.47-.07 1.43-.58 1.63-1.14.2-.56.2-1.04.14-1.14-.06-.1-.22-.16-.46-.28z"/></svg> 1683 </a> 1684</div> 1685 1686<!-- NATIVE GDPR COOKIE CONSENT BANNER (EU LAW / AEPD COMPLIANT, ZERO OVERHEAD) --> 1687<div id="hsm-cookie-banner" style="display:none; position:fixed; bottom:20px; right:20px; max-width:420px; z-index:999999; background:#0A1E3C; border:1px solid rgba(46,155,255,0.3); border-radius:18px; padding:22px; box-shadow:0 16px 40px rgba(0,0,0,0.6); color:#EAF3FF; font-family:'Aptos',sans-serif; font-size:13.5px; line-height:1.5;"> 1688 <div style="font-weight:700; font-size:16px; color:#fff; margin-bottom:8px; display:flex; align-items:center; gap:8px;"> 1689 <span>ðª Control de Cookies y Privacidad</span> 1690 </div> 1691 <p style="margin-bottom:12px; color:#A6BAD6; font-size:13px; line-height:1.45;"> 1692 Utilizamos cookies propias y de terceros para garantizar la funcionalidad técnica del sitio, analizar la navegación y recordar tus preferencias de conformidad con el RGPD y la LSSI-CE. </p> 1693 <div style="margin-bottom:14px; font-size:12.5px; color:#7C90AE; display:flex; gap:10px; align-items:center;"> 1694 <a href="https://hausum.com/aviso-legal/" target="_blank" style="color:#2E9BFF; text-decoration:underline;">Aviso legal</a> 1695 <span>·</span> 1696 <a href="https://hausum.com/politica-privacidad/" target="_blank" style="color:#2E9BFF; text-decoration:underline;">PolÃtica de privacidad</a> 1697 <span>·</span> 1698 <a href="https://hausum.com/politica-de-cookies-ue/" target="_blank" style="color:#2E9BFF; text-decoration:underline;">PolÃtica de cookies</a> 1699 </div> 1700 <div style="display:flex; gap:8px; flex-wrap:wrap; align-items:center;"> 1701 <!-- Symmetric design complying with LSSI-CE/AEPD guidelines --> 1702 <button id="hsm-accept-cookies" style="flex:1; min-width:110px; background:#2E9BFF; color:#fff; border:0; padding:10px 14px; border-radius:10px; font-weight:700; font-size:13px; cursor:pointer; text-align:center; transition:background 0.15s;">Aceptar todas</button> 1703 <button id="hsm-reject-cookies" style="flex:1; min-width:110px; background:#1C3456; color:#CBDAF0; border:1px solid rgba(46,155,255,0.3); padding:10px 14px; border-radius:10px; font-weight:700; font-size:13px; cursor:pointer; text-align:center; transition:background 0.15s;">Solo esenciales</button> 1704 </div> 1705</div> 1706 1707<!-- Floating Revocation Button --> 1708<button id="hsm-cookie-trigger" aria-label="Ajustes de privacidad" style="position:fixed; bottom:20px; left:20px; width:40px; height:40px; border-radius:50%; background:#0A1E3C; border:1px solid rgba(46,155,255,0.4); color:#2E9BFF; cursor:pointer; z-index:195; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,0.3); transition:transform 0.15s;"> 1709 <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z"/><circle cx="12" cy="12" r="3"/></svg> 1710</button> 1711 1712<style id="hsm-cookie-mobile-override"> 1713/* Position cookie consent buttons & banners above the mobile sticky action bar */ 1714@media (max-width: 768px) { 1715 #hsm-cookie-trigger, 1716 .hsm-cookie-trigger-btn, 1717 #cmplz-manage-consent-container, 1718 .cmplz-manage-consent-container, 1719 #cmplz-manage-consent, 1720 .cmplz-manage-consent, 1721 button.cmplz-manage-consent, 1722 .cmplz-btn.cmplz-manage-consent, 1723 .cookie-notice-revoke,
1724 .cookieyes-badge, 1725 #cky-badge, 1726 .cky-btn-revisit, 1727 .iubenda-cs-badge, 1728 #catapult-cookie-bar, 1729 .cc-revoke, 1730 .ot-sdk-show-settings, 1731 #ot-sdk-btn-floating { 1732 bottom: 84px !important; 1733 left: 16px !important; 1734 right: auto !important; 1735 top: auto !important; 1736 z-index: 195 !important; 1737 } 1738 #hsm-cookie-banner, 1739 #cmplz-cookiebanner, 1740 .cmplz-cookiebanner, 1741 #cky-consent-banner, 1742 .cookie-notice-container { 1743 bottom: 84px !important; 1744 left: 12px !important; 1745 right: 12px !important; 1746 max-width: calc(100vw - 24px) !important; 1747 } 1748} 1749</style> 1750
1751<script> 1752(function(){ 1753 function getCookie(name) { 1754 var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); 1755 return v ? v[2] : null; 1756 } 1757 function setCookie(name, value, days) { 1758 var d = new Date(); 1759 d.setTime(d.getTime() + 24*60*60*1000*days); 1760 document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString() + ";Secure;SameSite=Lax"; 1761 } 1762 function updateConsent(all) { 1763 var state = all ? 'granted' : 'denied'; 1764 setCookie('hsm_cookie_consent', all ? 'all' : 'essential', 365); // 12 months expiration 1765 if (typeof gtag !== 'undefined') { 1766 gtag('consent', 'update', { 1767 'ad_storage': state, 1768 'analytics_storage': state, 1769 'ad_user_data': state, 1770 'ad_personalization': state 1771 }); 1772 } 1773 document.getElementById('hsm-cookie-banner').style.display = 'none'; 1774 } 1775 1776 // Show banner if no consent cookie is set 1777 if (!getCookie('hsm_cookie_consent')) { 1778 document.getElementById('hsm-cookie-banner').style.display = 'block'; 1779 } 1780 1781 var btnAccept = document.getElementById('hsm-accept-cookies'); 1782 var btnReject = document.getElementById('hsm-reject-cookies'); 1783 if (btnAccept) btnAccept.onclick = function() { updateConsent(true); }; 1784 if (btnReject) btnReject.onclick = function() { updateConsent(false); }; 1785 1786 // Revocation triggers 1787 var openBanner = function() { document.getElementById('hsm-cookie-banner').style.display = 'block'; }; 1788 var trigger = document.getElementById('hsm-cookie-trigger'); 1789 if (trigger) trigger.onclick = openBanner; 1790 1791 // Delegate to reopen links (.hsm-reopen-cookies) inside page policy texts 1792 document.addEventListener('click', function(e) { 1793 if (e.target.closest('.hsm-reopen-cookies')) { 1794 e.preventDefault(); 1795 openBanner(); 1796 } 1797 }); 1798})(); 1799</script>
1799 1800 1801 1802<!-- GRAVITY FORMS POPUP MODALS --> 1803<div id="hsm-modal-gf-21" class="hsm-modal" style="display:none; position:fixed; inset:0; z-index:999999; background:rgba(10,30,60,0.85); backdrop-filter:blur(8px); justify-content:center; align-items:center; padding:20px; overflow-y:auto;"> 1804 <div class="hsm-modal-content" style="position:relative; width:100%; max-width:540px; background:#0F2A52; border:1px solid rgba(46,155,255,0.3); border-radius:20px; padding:30px; color:#fff; box-shadow:0 20px 50px rgba(0,0,0,0.5);"> 1805 <button type="button" class="hsm-modal-close" onclick="document.getElementById('hsm-modal-gf-21').style.display='none'" style="position:absolute; top:15px; right:15px; background:none; border:none; color:#9FC6F2; font-size:24px; cursor:pointer; width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:50%;">×</button> 1806 <h3 style="margin-bottom:15px; font-size:20px; color:#fff; font-family:'Aptos',sans-serif; text-align:center;">Informe de ejemplo</h3> 1807 1808 <div class='gf_browser_chrome gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_21' > 1809 <div class='gform_heading'> 1810 <p class='gform_required_legend'>"<span class="gfield_required gfield_required_asterisk">*</span>" señala los campos obligatorios</p> 1811 </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_21' id='gform_21' action='/inspeccion/' data-formid='21' novalidate><div class='gf_invisible ginput_recaptchav3' data-sitekey='6LdTW0spAAAAALFeuF-v--QUUGrYoyWxqhHfY3_b' data-tabindex='0'><input id="input_d7a6db9dd654e595355eeec24f75b368" class="gfield_recaptcha_response" type="hidden" name="input_d7a6db9dd654e595355eeec24f75b368" value=""/></div> 1812 <div class='gform-body gform_body'><div id='gform_fields_21' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_21_10" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_21_10'><span class='gform-field-label__text'>Phone</span></label><div class='ginput_container'><input name='input_10' id='input_21_10' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_21_10'>Este campo es un campo de validación y debe quedar sin cambios.</div></div><div id="field_21_2" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_21_2'><span class='gform-field-label__text'>Nombre</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_2' id='input_21_2' type='text' value='' class='large' placeholder='Nombre *' aria-required="true" aria-invalid="false" /></div></div><div id="field_21_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gpev-field" data-field-class="gpev-field" ><label class='gfield_label gform-field-label' for='input_21_1'><span class='gform-field-label__text'>Email</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> 1813 <input name='input_1' id='input_21_1' type='email' value='' class='large' placeholder='Email *' aria-required="true" aria-invalid="false" /> 1814 </div></div><div id="field_21_9" class="gfield gfield--type-phone gfield--in
1814put-type-phone gfield--phone-format-international gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_21_9'><span class='gform-field-label__text'>Teléfono</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_9' id='input_21_9' type='tel' value='' class='large' placeholder='Teléfono *' aria-required="true" aria-invalid="false" /></div></div><div id="field_21_6" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_21_6'><span class='gform-field-label__text'>¿Dónde se encuentra la propiedad?</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_select'><select name='input_6' id='input_21_6' class='large gfield_select' aria-required="true" aria-invalid="false" ><option value='' selected='selected' class='gf_placeholder' disabled>Provincia</option><option value='Albacete' >Albacete</option><option value='Alicante/Alacant' >Alicante/Alacant</option><option value='AlmerÃa' >AlmerÃa</option><option value='Araba/Ãlava' >Araba/Ãlava</option><option value='Asturias' >Asturias</option><option value='Ãvila' >Ãvila</option><option value='Badajoz' >Badajoz</option><option value='Balears, Illes' >Balears, Illes</option><option value='Barcelona' >Barcelona</option><option value='Bizkaia' >Bizkaia</option><option value='Burgos' >Burgos</option><option value='Cáceres' >Cáceres</option><option value='Cádiz' >Cádiz</option><option value='Cantabria' >Cantabria</option><option value='Castellón/Castelló' >Castellón/Castelló</option><option value='Ciudad Real' >Ciudad Real</option><option value='Córdoba' >Córdoba</option><option value='Coruña, A' >Coruña, A</option><option value='Cuenca' >Cuenca</option><option value='Gipuzkoa' >Gipuzkoa</option><option value='Girona' >Girona</option><option value='Granada' >Granada</option><option value='Guadalajara' >Guadalajara</option><option value='Huelva' >Huelva</option><option value='Huesca' >Huesca</option><option value='Jaén' >Jaén</option><option value='León' >León</option><option value='Lleida' >Lleida</option><option value='Lugo' >Lugo</option><option value='Madrid' >Madrid</option><option value='Málaga' >Málaga</option><option value='Murcia' >Murcia</option><option value='Navarra' >Navarra</option><option value='Ourense' >Ourense</option><option value='Palencia' >Palencia</option><option value='Palmas, Las' >Palmas, Las</option><option value='Pontevedra' >Pontevedra</option><option value='Rioja, La' >Rioja, La</option><option value='Salamanca' >Salamanca</option><option value='Santa Cruz de Tenerife' >Santa Cruz de Tenerife</option><option value='Segovia' >Segovia</option><option value='Sevilla' >Sevilla</option><option value='Soria' >Soria</option><option value='Tarragona' >Tarragona</option><option value='Teruel' >Teruel</option><option value='Toledo' >Toledo</option><option value='Valencia/València' >Valencia/València</option><option value='Valladolid' >Valladolid</option><option value='Zamora' >Zamora</option><option value='Zaragoza' >Zaragoza</option></select></div></div><div id="field_21_7" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_21_7'><span class='gform-field-label__text'>¿Por qué estás valorando contratar el servicio?</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_select'><select name='input_7' id='input_21_7' class='large gfield_select' aria-required="true" aria-invalid="false" ><option value='' selected='selected' class='gf_placeholder' disabled>Razón</option><option value='Estoy pensando en adquirir una inmueble de segundamano' >Estoy pensando en adquirir un inmueble de segunda mano</option><option value='He adquirido un inmueble de segundamano recientemente y quiero inspeccionarla' >He adquirido un inmueble de segunda mano recientemente y quiero inspeccionarlo</option><option value='Me entregarán un inmueble de Obra nueva en breves' >Me entregarán un inmueble de obra nueva en breve</option></select></div></div><fieldset id="field_21_8" class="gfield gfield--type-consent gfield--type-choice gfield--in
1814put-type-consent gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible gfield--choice-align-vertical" ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>Consentimiento</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></legend><div class='ginput_container ginput_container_consent'><input name='input_8.1' id='input_21_8_1' type='checkbox' value='1' aria-required="true" aria-invalid="false" /> <label class="gform-field-label gform-field-label--type-inline gfield_consent_label" for='input_21_8_1' ><span class='gform-field-label__text'>Acepto la <a href="/politica-privacidad/" target="_blank" style="text-decoration: underline;">polÃtica de privacidad</a> y los <a href="/terminos-y-condiciones/" target="_blank" style="text-decoration: underline;">términos y condiciones</a>.</span><span class="gfield_required gfield_required_asterisk">*</span></label><input type='hidden' name='input_8.2' value='Acepto la <a href="/politica-privacidad/" target="_blank" style="text-decoration: underline;">polÃtica de privacidad</a> y los <a href="/terminos-y-condiciones/" target="_blank" style="text-decoration: underline;">términos y condiciones</a>.' class='gform_hidden' /><input type='hidden' name='input_8.3' value='5' class='gform_hidden' /></div></fieldset></div></div> 1815 <div class='gform-footer gform_footer top_label'> <button type='submit' id='gform_submit_button_21' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Enviar</button> <input type='hidden' name='gform_ajax' value='form_id=21&title=&description=&tabindex=0&theme=gravity-theme&hash=6195d2900ce95adda8af367d83c1dfcb' /> 1816 <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_21' value='iframe' /> 1817 <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_21' id='gform_theme_21' value='gravity-theme' /> 1818 <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_21' id='gform_style_settings_21' value='' /> 1819 <input type='hidden' class='gform_hidden' name='is_submit_21' value='1' /> 1820 <input type='hidden' class='gform_hidden' name='gform_submit' value='21' /> 1821 1822 <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='EUR' value='rPupLs4DmSK0MziVY5aRCiMKTVvdBHmVGc/27wuo8Urn4r4Bg6yVG9FAxvGB5yUBPSZ6xjkeofk3m2l5fU/sy+13UMdA6HiggxNzbHt8wa4aU8E=' /> 1823 <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> 1824 <input type='hidden' class='gform_hidden' name='state_21' value='WyJ7XCI2XCI6W1wiMTI0MGI1Nzc5NTQxMThiMTdmYWNlODU0OTVmYTk4OGZcIixcImFlMWE3MjI3MWIwZDAxOTBhYzM0OGI5MjIwMmU4ODUzXCIsXCIzZWI2MTE1OTA5Y2Q4MGJiMWI3ZTUyMjAzNDI3MjRlYVwiLFwiNmFkMGJkNGY1OGViNTU3NzMzZDEzMzgwZTM2NDczMDBcIixcIjA2NTE3NGZjNmRiMTgzODM5Yzk2MDlmZDU1NDA0ZDMzXCIsXCIyMjJlMDNjOTYwODQyODQ0ZTM1YTQ2ZDhjMjYyZjZhY1wiLFwiYjRhNTBiN2ZiMmNlNDA5ZmU2MzNlMmFmNmVhZTljZTBcIixcImJlNjI2OGM2NGE2YWJmN2U3ZTBlYTQyYzdmNjMzZmEwXCIsXCIzN2ExMTRiNTc2NDVhNWI4NDExNzBiNGNmNDFjMzliYlwiLFwiMzI5NTA3ODEyOGE5YTgxMTRkOTcyNDA4NTA1NWNjMzRcIixcIjQ3MjdlNDdjN2YwODVjMzc3MTg1NDI0YzZlZDhmNDAxXCIsXCIyMmIzNzUwNjE4MDgyM2Y0ZDllZGZmZDBkZjA0NDg4Y1wiLFwiODMxY2I5ZjQ5MTk2ZDJjZThkNWU3Yjg1OTA2Y2FkOWRcIixcIjFlYzgzNDZjNzAxNGVjZmM5Njg1NDdhMzA2NjMwN2YwXCIsXCIwM2MwMjZiYjE5YWNkZDFmY2FjN2FhMDEwYjBiNWU2N1wiLFwiNjc0ZDkzZmY0NzkwZTNlZmIxN2E5ZjU0NzQ3Yjk1ZWFcIixcImE4YTU3NDIxZTMwZTJjYWMxNjU4ZWM0OTZkMDI4ZjQ2XCIsXCI4NDU1NzkxNTQ0YzM0YWQ5MDVkNmI2NTEyOTBkN2U5OFwiLFwiYTMwZDJlZWQ2ZjFkOTM2MThiMDc3NWI4MTY3NWQyZjNcIixcImI5YzExZGI2ZWNkZTYxYTBhOGZmY2E0NTNiMTA2OGZiXCIsXCI3ZjU2YmFiOTJhMjYxMjA0NTIzYTgyY2RjOWNiYzk4NVwiLFwiMjkxYWE5ZWY0NzA5NDJmNjkyNDE4ZDljM2IxMzY2MTNcIixcIjlmZjEyNTM5YTRjZjgzMGJkOGMxN2IzYjg5ZjNkOWE0XCIsXCJmOWUyZDA2NWNjZGJlMDE3ZGExYjVkOWYyYTYyM2VlNlwiLFwiYmJiYjE2ZGUxZTUxNDAyNzRiZWI3ZWFkMzI5YTNjNGVcIixcImNkMmVjNjEwMTM3N2ExYmE0MzJjYTU0MDI1OTIxYjBjXCIsXCIyYWU4MzBiODcwMTA1Njc1ZDY2MzE2YjY5M2NlZDRkZFwiLFwiOWI0ZjkyOTIxMjE4M2JmMWZkZDJkN2Y5NDAyYjVkNWZcIixcImJjNTlhNTdhOGE2ZjA4ODkxOTcyZDRjYjI2ZjY1YTc0XCIsXCJkNzg1NWQ0ODU5MzQ2ZjUxYWM1NTg1NDJlOGViNjk2OVwiLFwiN2RiMzMzMGExNzk1NTcwYzg0ZDE2NTk2NzI2YzQ1ZmZcIixcIjE1NzUzNTBlNGU4YWFmYmRlZDQ1MDU1NDg2N2NlNWZkXCIsXCJmZTdkYjVmMDVlYjdjMmI0NTVlOGM0ODliZmM2Zjc1NlwiLFwiMDAyZDBjNzM4NDI4NDBmYTE3ZjBlNTU3MzUzNjVkMzRcIixcIjFiZDI3OGVmNzFmMTAyNGJmYWJkOTcwODUxNzdhNGI3XCIsXCIwNWU4NjQwMTNlOWQ1MTkyZWQ2ZDhmZGIxZjc3NDlmZlwiLFwiZmIwZThmNjk3YTE3NWMwZjQxNjMxNzRjZTU1NGUxNGZcIixcImNlZDg0YTFlOTc2YzM3MzEzZTc5M2I5MWJiY2ZmZThhXCIsXCIzMDQzYjdlMzBiODM4MGMzNDkwYzkwYjdjZDcyZTkwOFwiLFwiNDk3MzMwOTZlYmZkMzVlYjY4MzBlNTQwZGY2YWE1OGZcIixcIjk0Y2JjY2RiMzQxMjgzNjIzOGE3NjMwODVmMWE4YWQyXCIsXCI2OGJkMTJkOTk3ZjA3MzI4ZGI2OWIwMDlkMDlhNjE0OVwiLFwiMjliOTQwNWVmODJmMmNmNjIyNTM4YTVjOWRmNjc0NzBcIixcIjI4MjdhMmI2ZGU5YmJ
1824kYjJiNzg4M2MwZWFhOTg4NGVjXCIsXCI0NGQ5ZWU1MjQ0ODM5ODdiNzdiODI1ZDA3ODg2M2YyNFwiLFwiMDJjNjg1ZjZiN2NmMGU5MTdlNjBlZWQ2Y2Y0N2YxNzVcIixcImY4Y2JmZDgyMTI3NzEyODMwNTVkY2E2ZGJhMjVjNzUxXCIsXCI2N2YxODVhNzE5MDdiNDVkMTM1MjE0MmM5ZjVjYzY4MlwiLFwiZDcyMGQyMzA3YTdiYWM4N2YzMDY5NWRkYWYwMzJjNjdcIixcImViMzhmNTJmNGZkNzAzNjdkZDc1ZTJhOGY1MDZhZWI4XCJdLFwiN1wiOltcIjliOGM0OGM1OGU1MTdmYzMzNzMwZWFkYjkwYzI4ZjBhXCIsXCJkMzdkNTAzODIzZGY0OGQ4NzhhOGFjODcwMWY4NTdlZlwiLFwiYTg0ODNmOWU1YjZhNTgwOGU4NmQ0YzNhMmVjN2Y3MTNcIl0sXCI4LjFcIjpcIjQ2MDU4NTRmMjlmZjhlMmM0ZTQ5NWI1ZjVmZjY1OGFiXCIsXCI4LjJcIjpcImI4ZWY5ZGNhYTA1OGEyNzRkMmQwOWFjNGJkOWMwYzA1XCIsXCI4LjNcIjpcImY3ZTIxNWE0YWY0MTIwNzZmODZlM2M2YTVkYTJhZDI3XCIsXCJnZm9ybV9zdWJtaXNzaW9uX21ldGhvZFwiOltcIjk3ODY5ZDdlYjk2MGFiMmE0MDE1ZDAwMTg3MDMxMmQ0XCIsXCI4OGMxODY3ODc0MjVkZGUzODc2MzAwZTcwODUyZGM5ZFwiLFwiOTllYWJjN2QyZGEwYzY5YmJjZjEyYTYwYzViNzRkZWFcIl0sXCJnZm9ybV90aGVtZVwiOlwiNmExNGUzY2Q4YmVhYWZkYjc3NDRmZjVjMDA3MTU1YTVcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCJkMGRkOTMxY2Q1YjM4MzViMmViODRjYWUwMThkMmFmOFwiLFwiZm9ybV9pZFwiOlwiZTRhZGU4YWUyYTAzYjM0ZjA4ZjhjYTFmNGY4ZTFhZWRcIixcInVybFwiOlwiMDg5YWE5NzRhYWYzYWY2NjdlYzI2NTc5YzMwNzY1YjNcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiM2VjY2UyOTk0YmU5NGY5YzA0ZTk0NjYwZjRkYzk5MjNcIn0iLCI2MGE0YmI5ODIxY2YyNzA5ZDI1YWUzZWUyNDgwNTEwZCIsMTc5MTEwOTI5Nl0=' /> 1825 <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_21' id='gform_target_page_number_21' value='0' /> 1826 <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_21' id='gform_source_page_number_21' value='1' /> 1827 <input type='hidden' name='gform_field_values' value='' /> 1828 1829 </div> 1830 </form> 1831 </div> 1832 <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_21' id='gform_ajax_frame_21' title='Este iframe contiene la lógica necesaria para gestionar formularios con ajax activado.'></iframe> 1833
1833<script> 1834gform.initializeOnLoaded( function() {jQuery('#gform_ajax_frame_21').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_21');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_21').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_21').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_21').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_21').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ }, 50 );var current_page = jQuery('#gform_source_page_number_21').val();jQuery(document).trigger('gform_page_loaded', [21, current_page]);window['gf_submitting_21'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_21').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [21]);window['gf_submitting_21'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_21').text());}else{jQuery('#gform_21').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "21", currentPage: "current_page", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_21" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_21"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_21" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; gform.core.triggerPostRenderEvents( 21, current_page ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } );} ); 1835</script>
vendor: 1 bytes, line 1835
1835
1836<script> 1837gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 21) {if(typeof Placeholders != 'undefined'){ 1838 Placeholders.enable(); 1839 }} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } ); 1840</script>
vendor: 1 bytes, line 1840
1840
1841<script> 1842gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "21", currentPage: "1", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_21" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_21"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_21" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; gform.core.triggerPostRenderEvents( 21, 1 ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } ); 1843</script>
1843 1844 </div> 1845</div> 1846 1847<div id="hsm-modal-gf-35" class="hsm-modal" style="display:none; position:fixed; inset:0; z-index:999999; background:rgba(10,30,60,0.85); backdrop-filter:blur(8px); justify-content:center; align-items:center; padding:20px; overflow-y:auto;"> 1848 <div class="hsm-modal-content" style="position:relative; width:100%; max-width:540px; background:#0F2A52; border:1px solid rgba(46,155,255,0.3); border-radius:20px; padding:30px; color:#fff; box-shadow:0 20px 50px rgba(0,0,0,0.5);"> 1849 <button type="button" class="hsm-modal-close" onclick="document.getElementById('hsm-modal-gf-35').style.display='none'" style="position:absolute; top:15px; right:15px; background:none; border:none; color:#9FC6F2; font-size:24px; cursor:pointer; width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:50%;">×</button> 1850 <h3 style="margin-bottom:15px; font-size:20px; color:#fff; font-family:'Aptos',sans-serif; text-align:center;">Checklist definitiva</h3> 1851 1852 <div class='gf_browser_chrome gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_35' > 1853 <div class='gform_heading'> 1854 <p class='gform_required_legend'>"<span class="gfield_required gfield_required_asterisk">*</span>" señala los campos obligatorios</p> 1855 </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_35' id='gform_35' action='/inspeccion/' data-formid='35' novalidate><div class='gf_invisible ginput_recaptchav3' data-sitekey='6LdTW0spAAAAALFeuF-v--QUUGrYoyWxqhHfY3_b' data-tabindex='0'><input id="input_668f8ad2ae323c857956fefc63e0865e" class="gfield_recaptcha_response" type="hidden" name="input_668f8ad2ae323c857956fefc63e0865e" value=""/></div> 1856 <div class='gform-body gform_body'><div id='gform_fields_35' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_35_10" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_35_10'><span class='gform-field-label__text'>URL</span></label><div class='ginput_container'><input name='input_10' id='input_35_10' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_35_10'>Este campo es un campo de validación y debe quedar sin cambios.</div></div><div id="field_35_2" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_35_2'><span class='gform-field-label__text'>Nombre</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_2' id='input_35_2' type='text' value='' class='large' placeholder='Nombre *' aria-required="true" aria-invalid="false" /></div></div><div id="field_35_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gpev-field" data-field-class="gpev-field" ><label class='gfield_label gform-field-label' for='input_35_1'><span class='gform-field-label__text'>Email</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> 1857 <input name='input_1' id='input_35_1' type='email' value='' class='large' placeholder='Email *' aria-required="true" aria-invalid="false" /> 1858 </div></div><div id="field_35_9" class="gfield gfield--type-phone gfield--input-type-phone gfield--phone-format-international gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_35_9'><span class='gform-field-label__text'>Teléfono</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_9' id='input_35_9' type='tel' value='' class='large' placeholder='Teléfono *' aria-required="true" aria-invalid="false" /></div></div>
1858<div id="field_35_6" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" ><label class='gfield_label gform-field-label' for='input_35_6'><span class='gform-field-label__text'>¿Dónde se encuentra la propiedad?</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_select'><select name='input_6' id='input_35_6' class='large gfield_select' aria-required="true" aria-invalid="false" ><option value='' selected='selected' class='gf_placeholder' disabled>Provincia</option><option value='Albacete' >Albacete</option><option value='Alicante/Alacant' >Alicante/Alacant</option><option value='AlmerÃa' >AlmerÃa</option><option value='Araba/Ãlava' >Araba/Ãlava</option><option value='Asturias' >Asturias</option><option value='Ãvila' >Ãvila</option><option value='Badajoz' >Badajoz</option><option value='Balears, Illes' >Balears, Illes</option><option value='Barcelona' >Barcelona</option><option value='Bizkaia' >Bizkaia</option><option value='Burgos' >Burgos</option><option value='Cáceres' >Cáceres</option><option value='Cádiz' >Cádiz</option><option value='Cantabria' >Cantabria</option><option value='Castellón/Castelló' >Castellón/Castelló</option><option value='Ciudad Real' >Ciudad Real</option><option value='Córdoba' >Córdoba</option><option value='Coruña, A' >Coruña, A</option><option value='Cuenca' >Cuenca</option><option value='Gipuzkoa' >Gipuzkoa</option><option value='Girona' >Girona</option><option value='Granada' >Granada</option><option value='Guadalajara' >Guadalajara</option><option value='Huelva' >Huelva</option><option value='Huesca' >Huesca</option><option value='Jaén' >Jaén</option><option value='León' >León</option><option value='Lleida' >Lleida</option><option value='Lugo' >Lugo</option><option value='Madrid' >Madrid</option><option value='Málaga' >Málaga</option><option value='Murcia' >Murcia</option><option value='Navarra' >Navarra</option><option value='Ourense' >Ourense</option><option value='Palencia' >Palencia</option><option value='Palmas, Las' >Palmas, Las</option><option value='Pontevedra' >Pontevedra</option><option value='Rioja, La' >Rioja, La</option><option value='Salamanca' >Salamanca</option><option value='Santa Cruz de Tenerife' >Santa Cruz de Tenerife</option><option value='Segovia' >Segovia</option><option value='Sevilla' >Sevilla</option><option value='Soria' >Soria</option><option value='Tarragona' >Tarragona</option><option value='Teruel' >Teruel</option><option value='Toledo' >Toledo</option><option value='Valencia/València' >Valencia/València</option><option value='Valladolid' >Valladolid</option><option value='Zamora' >Zamora</option><option value='Zaragoza' >Zaragoza</option></select></div></div><fieldset id="field_35_8" class="gfield gfield--type-consent gfield--type-choice gfield--input-type-consent gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible gfield--choice-align-vertical" ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>Consentimiento</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></legend><div class='ginput_container ginput_container_consent'><input name='input_8.1' id='input_35_8_1' type='checkbox' value='1' aria-required="true" aria-invalid="false" /> <label class="gform-field-label gform-field-label--type-inline gfield_consent_label" for='input_35_8_1' ><span class='gform-field-label__text'>Acepto la <a href="/politica-privacidad/" target="_blank" style="text-decoration: underline;">polÃtica de privacidad</a> y los <a href="/terminos-y-condiciones/" target="_blank" style="text-decoration: underline;">términos y condiciones</a>.</span><span class="gfield_required gfield_required_asterisk">*</span></label><input type='hidden' name='input_8.2' value='Acepto la <a href="/politica-privacidad/" target="_blank" style="text-decoration: underline;">polÃtica de privacidad</a> y los <a href="/terminos-y-condiciones/" target="_blank" style="text-decoration: underline;">términos y condiciones</a>.' class='gform_hidden' /><input type='hidden' name='input_8.3' value='18' class='gform_hidden' /></div></fieldset></div></div> 1859 <div class='gform-footer gform_footer top_label'> <button type='submit' id='gform_submit_button_35' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Descargar</button> <input type='hidden' name='gform_ajax' value='form_id=35&title=&description=&tabindex=0&theme=gravity-theme&hash=39895c61ff19e882d08ea17488c0875a' /> 1860 <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_35' value='iframe' /> 1861 <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_35' id='gform_theme_35' value='gravity-theme' /> 1862 <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_35' id='gform_style_settings_35' value='' /> 1863 <input type='hidden' class='gform_hidden' name='is_submit_35' value='1' /> 1864 <input type='hidden' class='gform_hidden' name='gform_submit' value='35' /> 1865 1866 <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='EUR' value='MFbBrdJZlZBqqhADF7pIbE7wjDE3ydSen+Qc/mp3XEJknSRNwIMCmNaeJknq/7ykyKgK+XrcYp7L3GktNKpKymyFffMduc6BES7wwZrrpStnbSc=' /> 1867 <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> 1868 <input type='hidden' class='gform_hidden' name='state_35' value='WyJ7XCI2XCI6W1wiMTI0MGI1Nzc5NTQxMThiMTdmYWNlODU0OTVmYTk4OGZcIixcImFlMWE3MjI3MWIwZDAxOTBhYzM0OGI5MjIwMmU4ODUzXCIsXCIzZWI2MTE1OTA5Y2Q4MGJiMWI3ZTUyMjAzNDI3MjRlYVwiLFwiNmFkMGJkNGY1OGViNTU3NzMzZDEzMzgwZTM2NDczMDBcIixcIjA2NTE3NGZjNmRiMTgzODM5Yzk2MDlmZDU1NDA0ZDMzXCIsXCIyMjJlMDNjOTYwODQyODQ0ZTM1YTQ2ZDhjMjYyZjZhY1wiLFwiYjRhNTBiN2ZiMmNlNDA5ZmU2MzNlMmFmNmVhZTljZTBcIixcImJlNjI2OGM2NGE2YWJmN2U3ZTBlYTQyYzdmNjMzZmEwXCIsXCIzN2ExMTRiNTc2NDVhNWI4NDExNzBiNGNmNDFjMzliYlwiLFwiMzI5NTA3ODEyOGE5YTgxMTRkOTcyNDA4NTA1NWNjMzRcIixcIjQ3MjdlNDdjN2YwODVjMzc3MTg1NDI0YzZlZDhmNDAxXCIsXCIyMmIzNzUwNjE4MDgyM2Y0ZDllZGZmZDBkZjA0NDg4Y1wiLFwiODMxY2I5ZjQ5MTk2ZDJjZThkNWU3Yjg1OTA2Y2FkOWRcIixcIjFlYzgzNDZjNzAxNGVjZmM5Njg1NDdhMzA2NjMwN2YwXCIsXCIwM2MwMjZiYjE5YWNkZDFmY2FjN2FhMDEwYjBiNWU2N1wiLFwiNjc0ZDkzZmY0NzkwZTNlZmIxN2E5ZjU0NzQ3Yjk1ZWFcIixcImE4YTU3NDIxZTMwZTJjYWMxNjU4ZWM0OTZkMDI4ZjQ2XCIsXCI4NDU1NzkxNTQ0YzM0YWQ5MDVkNmI2NTEyOTBkN2U5OFwiLFwiYTMwZDJlZWQ2ZjFkOTM2MThiMDc3NWI4MTY3NWQyZjNcIixcImI5YzExZGI2ZWNkZTYxYTBhOGZmY2E0NTNiMTA2OGZiXCIsXCI3ZjU2YmFiOTJhMjYxMjA0NTIzYTgyY2RjOWNiYzk4NVwiLFwiMjkxYWE5ZWY0NzA5NDJmNjkyNDE4ZDljM2IxMzY2MTNcIixcIjlmZjEyNTM5YTRjZjgzMGJkOGMxN2IzYjg5ZjNkOWE0XCIsXCJmOWUyZDA2NWNjZGJlMDE3ZGExYjVkOWYyYTYyM2VlNlwiLFwiYmJiYjE2ZGUxZTUxNDAyNzRiZWI3ZWFkMzI5YTNjNGVcIixcImNkMmVjNjEwMTM3N2ExYmE0MzJjYTU0MDI1OTIxYjBjXCIsXCIyYWU4MzBiODcwMTA1Njc1ZDY2MzE2YjY5M2NlZDRkZFwiLFwiOWI0ZjkyOTIxMjE4M2JmMWZkZDJkN2Y5NDAyYjVkNWZcIixcImJjNTlhNTdhOGE2ZjA4ODkxOTcyZDRjYjI2ZjY1YTc0XCIsXCJkNzg1NWQ0ODU5MzQ2ZjUxYWM1NTg1NDJlOGViNjk2OVwiLFwiN2RiMzMzMGExNzk1NTcwYzg0ZDE2NTk2NzI2YzQ1ZmZcIixcIjE1NzUzNTBlNGU4YWFmYmRlZDQ1MDU1NDg2N2NlNWZkXCIsXCJmZTdkYjVmMDVlYjdjMmI0NTVlOGM0ODliZmM2Zjc1NlwiLFwiMDAyZDBjNzM4NDI4NDBmYTE3ZjBlNTU3MzUzNjVkMzRcIixcIjFiZDI3OGVmNzFmMTAyNGJmYWJkOTcwODUxNzdhNGI3XCIsXCIwNWU4NjQwMTNlOWQ1MTkyZWQ2ZDhmZGIxZjc3NDlmZlwiLFwiZmIwZThmNjk3YTE3NWMwZjQxNjMxNzRjZTU1NGUxNGZcIixcImNlZDg0YTFlOTc2YzM3MzEzZTc5M2I5MWJiY2ZmZThhXCIsXCIzMDQzYjdlMzBiODM4MGMzNDkwYzkwYjdjZDcyZTkwOFwiLFwiNDk3MzMwOTZlYmZkMzVlYjY4MzBlNTQwZGY2YWE1OGZcIixcIjk0Y2JjY2RiMzQxMjgzNjIzOGE3NjMwODVmMWE4YWQyXCIsXCI2OGJkMTJkOTk3ZjA3MzI4ZGI2OWIwMDlkMDlhNjE0OVwiLFwiMjliOTQwNWVmODJmMmNmNjIyNTM4YTVjOWRmNjc0NzBcIixcIjI4MjdhMmI2ZGU5YmJ
1868kYjJiNzg4M2MwZWFhOTg4NGVjXCIsXCI0NGQ5ZWU1MjQ0ODM5ODdiNzdiODI1ZDA3ODg2M2YyNFwiLFwiMDJjNjg1ZjZiN2NmMGU5MTdlNjBlZWQ2Y2Y0N2YxNzVcIixcImY4Y2JmZDgyMTI3NzEyODMwNTVkY2E2ZGJhMjVjNzUxXCIsXCI2N2YxODVhNzE5MDdiNDVkMTM1MjE0MmM5ZjVjYzY4MlwiLFwiZDcyMGQyMzA3YTdiYWM4N2YzMDY5NWRkYWYwMzJjNjdcIixcImViMzhmNTJmNGZkNzAzNjdkZDc1ZTJhOGY1MDZhZWI4XCJdLFwiOC4xXCI6XCI0NjA1ODU0ZjI5ZmY4ZTJjNGU0OTViNWY1ZmY2NThhYlwiLFwiOC4yXCI6XCJiOGVmOWRjYWEwNThhMjc0ZDJkMDlhYzRiZDljMGMwNVwiLFwiOC4zXCI6XCIxODdhZjEyYmNkOWRlOWIxZGZlNTA2MGU3OTY4OWE5YlwiLFwiZ2Zvcm1fc3VibWlzc2lvbl9tZXRob2RcIjpbXCI5Nzg2OWQ3ZWI5NjBhYjJhNDAxNWQwMDE4NzAzMTJkNFwiLFwiODhjMTg2Nzg3NDI1ZGRlMzg3NjMwMGU3MDg1MmRjOWRcIixcIjk5ZWFiYzdkMmRhMGM2OWJiY2YxMmE2MGM1Yjc0ZGVhXCJdLFwiZ2Zvcm1fdGhlbWVcIjpcIjZhMTRlM2NkOGJlYWFmZGI3NzQ0ZmY1YzAwNzE1NWE1XCIsXCJnZm9ybV9zdHlsZV9zZXR0aW5nc1wiOlwiZDBkZDkzMWNkNWIzODM1YjJlYjg0Y2FlMDE4ZDJhZjhcIixcImZvcm1faWRcIjpcImZhYWUwMWJjMTJkMDQwYWQ0YjkxMmI4ZTljYjMyYjNjXCIsXCJ1cmxcIjpcIjA4OWFhOTc0YWFmM2FmNjY3ZWMyNjU3OWMzMDc2NWIzXCIsXCJzdGF0ZV90aW1lc3RhbXBcIjpcIjNlY2NlMjk5NGJlOTRmOWMwNGU5NDY2MGY0ZGM5OTIzXCJ9IiwiOThkMjQ2NGY4MjJiN2MxYjI5YTBmMmYxMjZkYWY1ZTQiLDE3OTExMDkyOTZd' /> 1869 <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_35' id='gform_target_page_number_35' value='0' /> 1870 <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_35' id='gform_source_page_number_35' value='1' /> 1871 <input type='hidden' name='gform_field_values' value='' /> 1872 1873 </div> 1874 </form> 1875 </div> 1876 <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_35' id='gform_ajax_frame_35' title='Este iframe contiene la lógica necesaria para gestionar formularios con ajax activado.'></iframe> 1877
1877<script> 1878gform.initializeOnLoaded( function() {jQuery('#gform_ajax_frame_35').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_35');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_35').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_35').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_35').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_35').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ }, 50 );var current_page = jQuery('#gform_source_page_number_35').val();jQuery(document).trigger('gform_page_loaded', [35, current_page]);window['gf_submitting_35'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_35').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [35]);window['gf_submitting_35'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_35').text());}else{jQuery('#gform_35').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "35", currentPage: "current_page", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_35" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_35"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_35" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; gform.core.triggerPostRenderEvents( 35, current_page ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } );} ); 1879</script>
vendor: 1 bytes, line 1879
1879
1880<script> 1881gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 35) {if(typeof Placeholders != 'undefined'){ 1882 Placeholders.enable(); 1883 }} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } ); 1884</script>
vendor: 1 bytes, line 1884
1884
1885<script> 1886gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "35", currentPage: "1", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_35" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_35"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_35" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; gform.core.triggerPostRenderEvents( 35, 1 ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } ); 1887</script>
1887 1888 </div> 1889</div> 1890
1891<script> 1892document.addEventListener('DOMContentLoaded', function(){ 1893 document.addEventListener('click', function(e){ 1894 var b2 = e.target.closest('.lightbox_form_btn_2'); 1895 if (b2) { 1896 e.preventDefault(); 1897 var m2 = document.getElementById('hsm-modal-gf-21'); 1898 if (m2) m2.style.display = 'flex'; 1899 } 1900 var b3 = e.target.closest('.lightbox_form_btn_3'); 1901 if (b3) { 1902 e.preventDefault(); 1903 var m3 = document.getElementById('hsm-modal-gf-35'); 1904 if (m3) m3.style.display = 'flex'; 1905 } 1906 }); 1907}); 1908</script>
1908 1909
1910<script type="speculationrules"> 1911{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/hausum-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 1912</script>
1912 1913
1914<script> 1915/* Hausum Landing Ads -> n8n Omnia (dedup negocio por telefono). ADITIVO: no toca el envio a HubSpot ni el precio. */ 1916(function(){ 1917 if(location.pathname.indexOf('inspeccion-vivienda-landing')===-1) return; 1918 var OMNIA='https://hausum-n8n.conexiatec.com/webhook/hausum-landing-ads-deal'; 1919 function sendOmnia(){ 1920 try{ 1921 var g=function(id){var el=document.getElementById(id);return el?String(el.value||'').trim():'';}; 1922 var m2=parseInt(g('f-m2'),10)||0; 1923 var precio=m2<100?345:m2<200?395:m2<300?445:m2<400?495:545; 1924 var mot=document.querySelector('input[name="motivo"]:checked'); 1925 var body={firstname:g('f-nombre'),phone:g('f-telefono'),zip:g('f-cp'),email:g('f-email'), 1926 metros_cuadrados:String(m2),motivo_inspeccion:mot?mot.value:'',precio_inspeccion:String(precio)}; 1927 if(!body.phone && !body.email) return; 1928 fetch(OMNIA,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(body),keepalive:true}).catch(function(){}); 1929 }catch(e){} 1930 } 1931 function tryWrap(){ 1932 if(window.__omniaWrapped) return true; 1933 if(typeof window.submitForm!=='function') return false; 1934 var _orig=window.submitForm; 1935 window.submitForm=function(){ sendOmnia(); return _orig.apply(this,arguments); }; 1936 window.__omniaWrapped=true; 1937 return true; 1938 } 1939 if(!tryWrap()){ 1940 var n=0,iv=setInterval(function(){ if(tryWrap()||++n>100) clearInterval(iv); },50); 1941 document.addEventListener('DOMContentLoaded',tryWrap); 1942 window.addEventListener('load',tryWrap); 1943 } 1944})(); 1945</script>
vendor: 1 bytes, line 1945
1945
1946<script type="text/javascript"> 1947jQuery( function() { 1948if ( window.Cookies ) { 1949Cookies.set( "gp_easy_passthrough_session", "f6932d6a6091a2e07ae38aed79ab3d38||1791111096||1791110736", {"expires": new Date( new Date().getTime() + 1800000 ),"path": "/","domain": "","SameSite": "Lax","secure": false} ); 1950} 1951} ); 1952</script>
vendor: 1 bytes, line 1952
1952
1953<script id="intl-tel-input-js-js" defer src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/intlTelInput.min.js?ver=17.0.19"></script>
vendor: 1 bytes, line 1953
1953
1954<script id="google-maps-api-js" defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC1mhSjg--HSbn9udYqIGnahp458sKgLWo&libraries=places"></script>
vendor: 1 bytes, line 1954
1954
1955<script id="leaflet-js-js" defer src="https://unpkg.com/[email protected]/dist/leaflet.js?ver=1.9.4"></script>
vendor: 1 bytes, line 1955
1955
1956<script id="wp-cadastre-public-js-js-extra"> 1957var wpCadastreParams = {"ajax_url":"https://hausum.com/wp-admin/admin-ajax.php","nonce":"94382712be","map_provider":"google","google_key":"AIzaSyC1mhSjg--HSbn9udYqIGnahp458sKgLWo","default_lat":"40.416729","default_lng":"-3.703339","default_zoom":"16","street_view":"embed","accent_color":"#2563eb","theme":"glassmorphic","texts":{"search_mode_address":"Buscar por Direcci\u00f3n","search_mode_rc":"Buscar por Referencia Catastral","search_placeholder":"Buscar una calle y n\u00famero (ej: Alcal\u00e1 1, Madrid)...","rc_placeholder":"Introduce la referencia catastral (14 o 20 caracteres)...","btn_consultar":"Consultar","invalid_rc_length":"La referencia catastral debe tener 14 o 20 caracteres (ej: 7188304DF3878G).","no_results":"No se han encontrado resultados","searching":"Buscando datos en el Catastro...","loading_details":"Cargando datos del catastro...","select_division":"Selecciona una unidad del edificio","step1_title":"1. Selecciona la Escalera o Zona del edificio:","
1957step2_title":"2. Selecciona la Planta / Vivienda:","quick_filter_placeholder":"Buscar piso o puerta (ej: 2\u00ba 1\u00aa)...","no_filtered_units":"No se ha encontrado ning\u00fan inmueble que coincida con la b\u00fasqueda.","unit_singular":"unidad","unit_plural":"unidades","parking":"Aparcamientos","trasteros":"Trasteros","locales":"Locales","escalera":"Escalera","num_prefix":"N\u00ba","copy_success":"\u00a1Referencia copiada!","error_catastro":"Error al comunicar con el servicio del Catastro"}}; 1958var wpCadastreParams = {"ajax_url":"https://hausum.com/wp-admin/admin-ajax.php","nonce":"94382712be","map_provider":"google","google_key":"AIzaSyC1mhSjg--HSbn9udYqIGnahp458sKgLWo","default_lat":"40.416729","default_lng":"-3.703339","default_zoom":"16","street_view":"embed","accent_color":"#2563eb","theme":"glassmorphic","texts":{"search_mode_address":"Buscar por Direcci\u00f3n","search_mode_rc":"Buscar por Referencia Catastral","search_placeholder":"Buscar una calle y n\u00famero (ej: Alcal\u00e1 1, Madrid)...","rc_placeholder":"Introduce la referencia catastral (14 o 20 caracteres)...","btn_consultar":"Consultar","invalid_rc_length":"La referencia catastral debe tener 14 o 20 caracteres (ej: 7188304DF3878G).","no_results":"No se han encontrado resultados","searching":"Buscando datos en el Catastro...","loading_details":"Cargando datos del catastro...","select_division":"Selecciona una unidad del edificio","step1_title":"1. Selecciona la Escalera o Zona del edificio:","step2_title":"2. Selecciona la Planta / Vivienda:","quick_filter_placeholder":"Buscar piso o puerta (ej: 2\u00ba 1\u00aa)...","no_filtered_units":"No se ha encontrado ning\u00fan inmueble que coincida con la b\u00fasqueda.","unit_singular":"unidad","unit_plural":"unidades","parking":"Aparcamientos","trasteros":"Trasteros","locales":"Locales","escalera":"Escalera","num_prefix":"N\u00ba","copy_success":"\u00a1Referencia copiada!","error_catastro":"Error al comunicar con el servicio del Catastro"}}; 1959//# sourceURL=wp-cadastre-public-js-js-extra 1960</script>
vendor: 1 bytes, line 1960
1960
1961<script id="wp-cadastre-public-js-js" defer src="https://hausum.com/wp-content/plugins/WPCadastre/assets/js/wp-cadastre-public.js?ver=1.0.7"></script>
vendor: 1 bytes, line 1961
1961
1962<script id="hausum-navigation-js" defer src="https://hausum.com/wp-content/themes/hausum-theme/js/navigation.js?ver=1.0.0"></script>
vendor: 1 bytes, line 1962
1962
1963<script id="gforms_recaptcha_recaptcha-js-extra"> 1964var gforms_recaptcha_recaptcha_strings = {"nonce":"da1adc24e5","disconnect":"Disconnecting","change_connection_type":"Resetting","spinner":"https://hausum.com/wp-content/plugins/gravityforms/images/spinner.svg","connection_type":"classic","disable_badge":"1","change_connection_type_title":"Change Connection Type","change_connection_type_message":"Changing the connection type will delete your current settings. Do you want to proceed?","disconnect_title":"Disconnect","disconnect_message":"Disconnecting from reCAPTCHA will delete your current settings. Do you want to proceed?","site_key":"6LdTW0spAAAAALFeuF-v--QUUGrYoyWxqhHfY3_b"}; 1965//# sourceURL=gforms_recaptcha_recaptcha-js-extra 1966</script>
vendor: 121 bytes, lines 1966-1967
1966 1967<script data-wp-strategy="defer" id="gforms_recaptcha_recaptcha-js" src="https://www.google.com/recaptcha/api.js?render=
19676LdTW0spAAAAALFeuF-v--QUUGrYoyWxqhHfY3_b
vendor: 27 bytes, line 1967
1967&ver=2.2.2"></script>
1968<script data-wp-strategy="defer" id="gforms_recaptcha_frontend-js" src="https://hausum.com/wp-content/plugins/gravityformsrecaptcha/js/frontend.min.js?ver=2.2.2"></script>
vendor: 1 bytes, line 1968
1968
1969<script id="wp-dom-ready-js" defer src="https://hausum.com/wp-includes/js/dist/dom-ready.min.js?ver=3fe927cab37bf38d6a23"></script>
vendor: 1 bytes, line 1969
1969
1970<script id="wp-hooks-js" src="https://hausum.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 1970
1970
1971<script id="wp-i18n-js" src="https://hausum.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 1971
1971
1972<script id="wp-i18n-js-after"> 1973wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 1974//# sourceURL=wp-i18n-js-after 1975</script>
vendor: 1 bytes, line 1975
1975
1976<script id="wp-a11y-js-translations"> 1977( function( domain, translations ) { 1978 var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; 1979 localeData[""].domain = domain; 1980 wp.i18n.setLocaleData( localeData, domain ); 1981} )( "default", {"translation-revision-date":"2026-09-18 06:15:56+0000","generator":"GlotPress\/4.1.0","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Notifications":["Avisos"]}},"comment":{"reference":"wp-includes\/js\/dist\/a11y.js"}} ); 1982//# sourceURL=wp-a11y-js-translations 1983</script>
vendor: 1 bytes, line 1983
1983
1984<script id="wp-a11y-js" src="https://hausum.com/wp-includes/js/dist/a11y.min.js?ver=31c6cec5a4ff7aff483d"></script>
vendor: 1 bytes, line 1984
1984
1985<script id="gform_json-js" src="https://hausum.com/wp-content/plugins/gravityforms/js/jquery.json.min.js?ver=3.1.3"></script>
vendor: 1 bytes, line 1985
1985
1986<script id="gform_gravityforms-js-extra"> 1987var gform_i18n = {"datepicker":{"wdOffset":1,"helpTextShort":"Press F1 for help","helpText":"Press the arrow keys to navigate by day, PageUp and PageDown to navigate by month, Alt+PageUp and Alt+PageDown to navigate by year, or Escape to cancel.","openOnFocusHelpText":"Press Down arrow to browse the calendar, or Escape to close.","tooltipTxt":"Press Escape to cancel","disabledTxt":"Desactivado","markedTxt":"Seleccionado","prevTxt":"Anterior","nextTxt":"Siguiente","monthTxt":"Mes","yearTxt":"A\u00f1o","months":["Enero","Febrero","Marzo","Abril","May","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],"days":[{"s":"S","l":"Domingo"},{"s":"M","l":"Lunes"},{"s":"T","l":"Martes"},{"s":"W","l":"Mi\u00e9rcoles"},{"s":"T","l":"Jueves"},{"s":"F","l":"Viernes"},{"s":"S","l":"S\u00e1bado"}]}}; 1988var gf_legacy_multi = []; 1989var gform_gravityforms = {"strings":{"invalid_file_extension":"Este tipo de archivo no est\u00e1 permitido. Debe ser uno de los siguientes:","file_uploaded":"Archivo subido","delete_file":"Borrar este archivo","in_progress":"en curso","file_exceeds_limit":"El archivo excede el l\u00edmite de tama\u00f1o","illegal_extension":"Este tipo de archivo no est\u00e1 permitido.","max_reached":"N\u00ba m\u00e1ximo de archivos alcanzado","unknown_error":"Hubo un problema al guardar el archivo en el servidor","currently_uploading":"Por favor espera a que se complete la subida","cancel":"Cancelar","cancel_upload":"Cancelar esta subida","cancelled":"Cancelada","error":"Error","message":"Mensaje"},"vars":{"images_url":"https://hausum.com/wp-content/plugins/gravityforms/images"}}; 1990var gf_global = {"gf_currency_config":{"name":"Euro","symbol_left":"","symbol_right":"€","symbol_padding":" ","thousand_separator":".","decimal_separator":",","decimals":2,"code":"EUR"},"base_url":"https://hausum.com/wp-content/plugins/gravityforms","number_formats":[],"version_hash":"6283974bc66209b23a599fea367b0d77","countries":{"AF":"Afghanist\u00e1n","AX":"Islas \u00c5land","AL":"Albania","DZ":"Argelia","AS":"Samoa Americana","AD":"Andorra","AO":"Angola","AI":"Anguilla","AQ":"Ant\u00e1rtida","AG":"Antigua y Barbuda","AR":"Argentina","AM":"Armenia","AW":"Aruba","AU":"Australia","AT":"Austria","AZ":"Azerbaiy\u00e1n","BS":"Bahamas","BH":"Bar\u00e9in","BD":"Bangladesh","BB":"Barbados","BY":"Bielorusia","BE":"B\u00e9lgica","BZ":"Belice","BJ":"Benin","BM":"Bermuda","BT":"Bhut\u00e1n","BO":"Bolivia","BQ":"Bonaire, San Eustaquio y Saba","BA":"Bosnia y Herzegovina","BW":"Botswana","BV":"Isla Bouvet","BR":"Brasil","IO":"Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico","BN":"Brunei Darussalam","BG":"Bulgaria","BF":"Burkina Faso","BI":"Burundi","CV":"Cabo Verde","KH":"Camboya","CM":"Camer\u00fan","CA":"Canada","KY":"Islas Caim\u00e1n","CF":"Rep\u00fablica Centroafricana","TD":"Chad","CL":"Chile","CN":"China","CX":"Isla de Navidad","CC":"Islas Cocos","CO":"Colombia","KM":"Comoras","CD":"Congo, Rep\u00fablica Democr\u00e1tica del","CG":"Congo","CK":"Islas Cook","CR":"Costa Rica","CI":"Costa de Marfil","HR":"Croacia","CU":"Cuba","CW":"Curazao","CY":"Chipre","CZ":"Chequia","DK":"Dinamarca","DJ":"Djibouti","DM":"Dominica","DO":"Rep\u00fablica Dominicana","EC":"Ecuador","EG":"Egipto","SV":"El Salvador","GQ":"Guinea Ecuatorial","ER":"Eritrea","EE":"Estonia","SZ":"Esuatini","ET":"Etiop\u00eda","FK":"Islas Malvinas","FO":"Islas Faroe","FJ":"Fiji","FI":"Finlandia","FR":"Francia","GF":"Guayana Francesa","PF":"Polinesia Francesa","TF":"Tierras Australes y Ant\u00e1rticas Francesas","GA":"Gab\u00f3n","GM":"Gambia","GE":"Georgia","DE":"Alemania","GH":"Ghana","GI":"Gibraltar","GR":"Grecia","GL":"Groenlandia","GD":"Granada","GP":"Guadalupe","GU":"Guam","GT":"Guatemala","GG":"Guernsey","GN":"Guinea","GW":"Guinea Bissau","GY":"Guayana","HT":"Hait\u00ed","HM":"Islas Heard y McDonald","VA":"Santa Sede","HN":"Honduras","HK":"Hong Kong","HU":"Hungr\u00eda","IS":"Islandia","IN":"India","ID":"Indonesia","IR":"Ir\u00e1n","IQ":"Iraq","IE":"Irlanda","IM":"Isla de Man","IL":"Israel","IT":"Italia","JM":"Jamaica","JP":"Jap\u00f3n","JE":"Jersey","JO":"Jord\u00e1n","KZ":"Kazajist\u00e1n","KE":"Kenia","KI":"Kiribati","KP":"Corea, Rep\u00fablica Popular Democr\u00e1tica de","KR":"Corea, Rep\u00fablica de","KW":"Kuwait","KG":"Kirguist\u00e1n","LA":"Rep\u00fablica Democr\u00e1tica Popular de Laos","LV":"Lituania","LB":"L\u00edbano","LS":"Lesoto","LR":"Liberia","LY":"LIbia","LI":"Liechtenstein","LT":"Lituania","LU":"Luxemburgo","MO":"Macau","MG":"Madagascar","MW":"Malawi","MY":"Malasia","MV":"Maldivas","ML":"Mali","MT":"Malta","MH":"Islas Marshall","MQ":"Martinica","MR":"Mauritania","MU":"Mauricio","YT":"Mayotte","MX":"M\u00e9xico","FM":"Micronesia","MD":"Moldavia","MC":"Monaco","MN":"Mongolia","ME":"Montenegro","MS":"Montserrat","MA":"Marruecos","MZ":"Mozambique","MM":"Myanmar","NA":"Namibia","NR":"Nauru","NP":"Nepal","NL":"Paises Bajos","NC":"Nueva Caledonia","NZ":"Nueva Zelanda","NI":"Nicaragua","NE":"N\u00edger","NG":"Nigeria","NU":"Niue","NF":"Isla Norfolk","MK":"Macedonia del Norte","MP":"Islas Marianas del Norte","NO":"Noruega","OM":"Om\u00e1n","PK":"Pakist\u00e1n","PW":"Palau","PS":"Palestina, Estado de","PA":"Panam\u00e1","PG":"Pap\u00faa Nueva Guinea","PY":"Paraguay","PE":"Per\u00fa","PH":"Filipinas","PN":"Pitcairn","PL":"Polonia","PT":"Portugal","PR":"Puerto Rico","QA":"Qatar","RE":"Reuni\u00f3n","RO":"Ruman\u00eda","RU":"Federaci\u00f3n Rusa","RW":"Ruanda","BL":"San Bartolom\u00e9","SH":"Santa Elena, Ascensi\u00f3n y Trist\u00e1n de Acu\u00f1a","KN":"San Crist\u00f3bal y Nieves","LC":"Santa Luc\u00eda","MF":"San Mart\u00edn","PM":"San Pedro y Miquel\u00f3n","VC":"San Vicente y las Granadinas","WS":"Samoa","SM":"San Marino","ST":"Santo Tom\u00e9 y Principe","SA":"Arabia Saudita","SN":"Senegal","RS":"Serbia","SC":"Seychelles","SL":"Sierra Leona","SG":"Singapur","SX":"Sint Maarten","SK":"Eslovaquia","SI":"Eslovenia","SB":"Islas Salom\u00f3n","SO":"Somalia","ZA":"Sud\u00e1frica","GS":"Ji\u017en\u00ed Georgie a Ji\u017en\u00ed Sandwichovy ostrovy","SS":"Sud\u00e1n del Sur","ES":"Espa\u00f1a","LK":"Sri Lanka","SD":"Sud\u00e1n","SR":"Surinam","SJ":"Svalbard y Jan Mayen","SE":"Suecia","CH":"Suiza","SY":"Rep\u00fablica \u00c1rabe de Siria","TW":"Taiwan","TJ":"Tayikist\u00e1n","TZ":"Tanzania (Rep\u00fablica Unida de)","TH":"Tailandia","TL":"Timor Oriental","TG":"Togo","TK":"Tokelau","TO":"Tonga","TT":"Trinidad y Tobago","TN":"T\u00fanez","TR":"Turqu\u00eda","TM":"Turkmenist\u00e1n","TC":"Islas Turcas y Caicos","TV":"Tuvalu","UG":"Uganda","UA":"Ucrania","AE":"Emiratos \u00c1rabes Unidos","GB":"Reino Unido","US":"Estados Unidos","UY":"Uruguay","UM":"Islas Ultramarinas Menores de Estados Unidos","UZ":"Uzbekist\u00e1n","VU":"Vanuatu","VE":"Venezuela","VN":"Vietnam","VG":"Islas V\u00edrgenes Brit\u00e1nicas","VI":"Islas V\u00edrgenes de los Estados Unidos","WF":"Wallis y Futuna","EH":"Sahara Occidental","YE":"Yemen","ZM":"Zambia","ZW":"Zimbaue"},"strings":{"newRowAdded":"Nueva fila a\u00f1adida.","rowRemoved":"Fila eliminada","formSaved":"Se ha guardado el formulario. El contenido incluye el enlace para volver y completar el formulario."}}; 1991var gf_global = {"gf_currency_config":{"name":"Euro","symbol_left":"","symbol_right":"€
1991","symbol_padding":" ","thousand_separator":".","decimal_separator":",","decimals":2,"code":"EUR"},"base_url":"https://hausum.com/wp-content/plugins/gravityforms","number_formats":[],"version_hash":"6283974bc66209b23a599fea367b0d77","countries":{"AF":"Afghanist\u00e1n","AX":"Islas \u00c5land","AL":"Albania","DZ":"Argelia","AS":"Samoa Americana","AD":"Andorra","AO":"Angola","AI":"Anguilla","AQ":"Ant\u00e1rtida","AG":"Antigua y Barbuda","AR":"Argentina","AM":"Armenia","AW":"Aruba","AU":"Australia","AT":"Austria","AZ":"Azerbaiy\u00e1n","BS":"Bahamas","BH":"Bar\u00e9in","BD":"Bangladesh","BB":"Barbados","BY":"Bielorusia","BE":"B\u00e9lgica","BZ":"Belice","BJ":"Benin","BM":"Bermuda","BT":"Bhut\u00e1n","BO":"Bolivia","BQ":"Bonaire, San Eustaquio y Saba","BA":"Bosnia y Herzegovina","BW":"Botswana","BV":"Isla Bouvet","BR":"Brasil","IO":"Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico","BN":"Brunei Darussalam","BG":"Bulgaria","BF":"Burkina Faso","BI":"Burundi","CV":"Cabo Verde","KH":"Camboya","CM":"Camer\u00fan","CA":"Canada","KY":"Islas Caim\u00e1n","CF":"Rep\u00fablica Centroafricana","TD":"Chad","CL":"Chile","CN":"China","CX":"Isla de Navidad","CC":"Islas Cocos","CO":"Colombia","KM":"Comoras","CD":"Congo, Rep\u00fablica Democr\u00e1tica del","CG":"Congo","CK":"Islas Cook","CR":"Costa Rica","CI":"Costa de Marfil","HR":"Croacia","CU":"Cuba","CW":"Curazao","CY":"Chipre","CZ":"Chequia","DK":"Dinamarca","DJ":"Djibouti","DM":"Dominica","DO":"Rep\u00fablica Dominicana","EC":"Ecuador","EG":"Egipto","SV":"El Salvador","GQ":"Guinea Ecuatorial","ER":"Eritrea","EE":"Estonia","SZ":"Esuatini","ET":"Etiop\u00eda","FK":"Islas Malvinas","FO":"Islas Faroe","FJ":"Fiji","FI":"Finlandia","FR":"Francia","GF":"Guayana Francesa","PF":"Polinesia Francesa","TF":"Tierras Australes y Ant\u00e1rticas Francesas","GA":"Gab\u00f3n","GM":"Gambia","GE":"Georgia","DE":"Alemania","GH":"Ghana","GI":"Gibraltar","GR":"Grecia","GL":"Groenlandia","GD":"Granada","GP":"Guadalupe","GU":"Guam","GT":"Guatemala","GG":"Guernsey","GN":"Guinea","GW":"Guinea Bissau","GY":"Guayana","HT":"Hait\u00ed","HM":"Islas Heard y McDonald","VA":"Santa Sede","HN":"Honduras","HK":"Hong Kong","HU":"Hungr\u00eda","IS":"Islandia","IN":"India","ID":"Indonesia","IR":"Ir\u00e1n","IQ":"Iraq","IE":"Irlanda","IM":"Isla de Man","IL":"Israel","IT":"Italia","JM":"Jamaica","JP":"Jap\u00f3n","JE":"Jersey","JO":"Jord\u00e1n","KZ":"Kazajist\u00e1n","KE":"Kenia","KI":"Kiribati","KP":"Corea, Rep\u00fablica Popular Democr\u00e1tica de","KR":"Corea, Rep\u00fablica de","KW":"Kuwait","KG":"Kirguist\u00e1n","LA":"Rep\u00fablica Democr\u00e1tica Popular de Laos","LV":"Lituania","LB":"L\u00edbano","LS":"Lesoto","LR":"Liberia","LY":"LIbia","LI":"Liechtenstein","LT":"Lituania","LU":"Luxemburgo","MO":"Macau","MG":"Madagascar","MW":"Malawi","MY":"Malasia","MV":"Maldivas","ML":"Mali","MT":"Malta","MH":"Islas Marshall","MQ":"Martinica","MR":"Mauritania","MU":"Mauricio","YT":"Mayotte","MX":"M\u00e9xico","FM":"Micronesia","MD":"Moldavia","MC":"Monaco","MN":"Mongolia","ME":"Montenegro","MS":"Montserrat","MA":"Marruecos","MZ":"Mozambique","MM":"Myanmar","NA":"Namibia","NR":"Nauru","NP":"Nepal","NL":"Paises Bajos","NC":"Nueva Caledonia","NZ":"Nueva Zelanda","NI":"Nicaragua","NE":"N\u00edger","NG":"Nigeria","NU":"Niue","NF":"Isla Norfolk","MK":"Macedonia del Norte","MP":"Islas Marianas del Norte","NO":"Noruega","OM":"Om\u00e1n","PK":"Pakist\u00e1n","PW":"Palau","PS":"Palestina, Estado de","PA":"Panam\u00e1","PG":"Pap\u00faa Nueva Guinea","PY":"Paraguay","PE":"Per\u00fa","PH":"Filipinas","PN":"Pitcairn","PL":"Polonia","PT":"Portugal","PR":"Puerto Rico","QA":"Qatar","RE":"Reuni\u00f3n","RO":"Ruman\u00eda","RU":"Federaci\u00f3n Rusa","RW":"Ruanda","BL":"San Bartolom\u00e9","SH":"Santa Elena, Ascensi\u00f3n y Trist\u00e1n de Acu\u00f1a","KN":"San Crist\u00f3bal y Nieves","LC":"Santa Luc\u00eda","MF":"San Mart\u00edn","PM":"San Pedro y Miquel\u00f3n","VC":"San Vicente y las Granadinas","WS":"Samoa","SM":"San Marino","ST":"Santo Tom\u00e9 y Principe","SA":"Arabia Saudita","SN":"Senegal","RS":"Serbia","SC":"Seychelles","SL":"Sierra Leona","SG":"Singapur","SX":"Sint Maarten","SK":"Eslovaquia","SI":"Eslovenia","SB":"Islas Salom\u00f3n","SO":"Somalia","ZA":"Sud\u00e1frica","GS":"Ji\u017en\u00ed Georgie a Ji\u017en\u00ed Sandwichovy ostrovy","SS":"Sud\u00e1n del Sur","ES":"Espa\u00f1a","LK":"Sri Lanka","SD":"Sud\u00e1n","SR":"Surinam","SJ":"Svalbard y Jan Mayen","SE":"Suecia","CH":"Suiza","SY":"Rep\u00fablica \u00c1rabe de Siria","TW":"Taiwan","TJ":"Tayikist\u00e1n","TZ":"Tanzania (Rep\u00fablica Unida de)","TH":"Tailandia","TL":"Timor Oriental","TG":"Togo","TK":"Tokelau","TO":"Tonga","TT":"Trinidad y Tobago","TN":"T\u00fanez","TR":"Turqu\u00eda","TM":"Turkmenist\u00e1n","TC":"Islas Turcas y Caicos","TV":"Tuvalu","UG":"Uganda","UA":"Ucrania","AE":"Emiratos \u00c1rabes Unidos","GB":"Reino Unido","US":"Estados Unidos","UY":"Uruguay","UM":"Islas Ultramarinas Menores de Estados Unidos","UZ":"Uzbekist\u00e1n","VU":"Vanuatu","VE":"Venezuela","VN":"Vietnam","VG":"Islas V\u00edrgenes Brit\u00e1nicas","VI":"Islas V\u00edrgenes de los Estados Unidos","WF":"Wallis y Futuna","EH":"Sahara Occidental","YE":"Yemen","ZM":"Zambia","ZW":"Zimbaue"},"strings":{"newRowAdded":"Nueva fila a\u00f1adida.","rowRemoved":"Fila eliminada","formSaved":"Se ha guardado el formulario. El contenido incluye el enlace para volver y completar el formulario."}}; 1992var gf_global = {"gf_currency_config":{"name":"Euro","symbol_left":"","symbol_right":"€
1992","symbol_padding":" ","thousand_separator":".","decimal_separator":",","decimals":2,"code":"EUR"},"base_url":"https://hausum.com/wp-content/plugins/gravityforms","number_formats":[],"version_hash":"6283974bc66209b23a599fea367b0d77","countries":{"AF":"Afghanist\u00e1n","AX":"Islas \u00c5land","AL":"Albania","DZ":"Argelia","AS":"Samoa Americana","AD":"Andorra","AO":"Angola","AI":"Anguilla","AQ":"Ant\u00e1rtida","AG":"Antigua y Barbuda","AR":"Argentina","AM":"Armenia","AW":"Aruba","AU":"Australia","AT":"Austria","AZ":"Azerbaiy\u00e1n","BS":"Bahamas","BH":"Bar\u00e9in","BD":"Bangladesh","BB":"Barbados","BY":"Bielorusia","BE":"B\u00e9lgica","BZ":"Belice","BJ":"Benin","BM":"Bermuda","BT":"Bhut\u00e1n","BO":"Bolivia","BQ":"Bonaire, San Eustaquio y Saba","BA":"Bosnia y Herzegovina","BW":"Botswana","BV":"Isla Bouvet","BR":"Brasil","IO":"Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico","BN":"Brunei Darussalam","BG":"Bulgaria","BF":"Burkina Faso","BI":"Burundi","CV":"Cabo Verde","KH":"Camboya","CM":"Camer\u00fan","CA":"Canada","KY":"Islas Caim\u00e1n","CF":"Rep\u00fablica Centroafricana","TD":"Chad","CL":"Chile","CN":"China","CX":"Isla de Navidad","CC":"Islas Cocos","CO":"Colombia","KM":"Comoras","CD":"Congo, Rep\u00fablica Democr\u00e1tica del","CG":"Congo","CK":"Islas Cook","CR":"Costa Rica","CI":"Costa de Marfil","HR":"Croacia","CU":"Cuba","CW":"Curazao","CY":"Chipre","CZ":"Chequia","DK":"Dinamarca","DJ":"Djibouti","DM":"Dominica","DO":"Rep\u00fablica Dominicana","EC":"Ecuador","EG":"Egipto","SV":"El Salvador","GQ":"Guinea Ecuatorial","ER":"Eritrea","EE":"Estonia","SZ":"Esuatini","ET":"Etiop\u00eda","FK":"Islas Malvinas","FO":"Islas Faroe","FJ":"Fiji","FI":"Finlandia","FR":"Francia","GF":"Guayana Francesa","PF":"Polinesia Francesa","TF":"Tierras Australes y Ant\u00e1rticas Francesas","GA":"Gab\u00f3n","GM":"Gambia","GE":"Georgia","DE":"Alemania","GH":"Ghana","GI":"Gibraltar","GR":"Grecia","GL":"Groenlandia","GD":"Granada","GP":"Guadalupe","GU":"Guam","GT":"Guatemala","GG":"Guernsey","GN":"Guinea","GW":"Guinea Bissau","GY":"Guayana","HT":"Hait\u00ed","HM":"Islas Heard y McDonald","VA":"Santa Sede","HN":"Honduras","HK":"Hong Kong","HU":"Hungr\u00eda","IS":"Islandia","IN":"India","ID":"Indonesia","IR":"Ir\u00e1n","IQ":"Iraq","IE":"Irlanda","IM":"Isla de Man","IL":"Israel","IT":"Italia","JM":"Jamaica","JP":"Jap\u00f3n","JE":"Jersey","JO":"Jord\u00e1n","KZ":"Kazajist\u00e1n","KE":"Kenia","KI":"Kiribati","KP":"Corea, Rep\u00fablica Popular Democr\u00e1tica de","KR":"Corea, Rep\u00fablica de","KW":"Kuwait","KG":"Kirguist\u00e1n","LA":"Rep\u00fablica Democr\u00e1tica Popular de Laos","LV":"Lituania","LB":"L\u00edbano","LS":"Lesoto","LR":"Liberia","LY":"LIbia","LI":"Liechtenstein","LT":"Lituania","LU":"Luxemburgo","MO":"Macau","MG":"Madagascar","MW":"Malawi","MY":"Malasia","MV":"Maldivas","ML":"Mali","MT":"Malta","MH":"Islas Marshall","MQ":"Martinica","MR":"Mauritania","MU":"Mauricio","YT":"Mayotte","MX":"M\u00e9xico","FM":"Micronesia","MD":"Moldavia","MC":"Monaco","MN":"Mongolia","ME":"Montenegro","MS":"Montserrat","MA":"Marruecos","MZ":"Mozambique","MM":"Myanmar","NA":"Namibia","NR":"Nauru","NP":"Nepal","NL":"Paises Bajos","NC":"Nueva Caledonia","NZ":"Nueva Zelanda","NI":"Nicaragua","NE":"N\u00edger","NG":"Nigeria","NU":"Niue","NF":"Isla Norfolk","MK":"Macedonia del Norte","MP":"Islas Marianas del Norte","NO":"Noruega","OM":"Om\u00e1n","PK":"Pakist\u00e1n","PW":"Palau","PS":"Palestina, Estado de","PA":"Panam\u00e1","PG":"Pap\u00faa Nueva Guinea","PY":"Paraguay","PE":"Per\u00fa","PH":"Filipinas","PN":"Pitcairn","PL":"Polonia","PT":"Portugal","PR":"Puerto Rico","QA":"Qatar","RE":"Reuni\u00f3n","RO":"Ruman\u00eda","RU":"Federaci\u00f3n Rusa","RW":"Ruanda","BL":"San Bartolom\u00e9","SH":"Santa Elena, Ascensi\u00f3n y Trist\u00e1n de Acu\u00f1a","KN":"San Crist\u00f3bal y Nieves","LC":"Santa Luc\u00eda","MF":"San Mart\u00edn","PM":"San Pedro y Miquel\u00f3n","VC":"San Vicente y las Granadinas","WS":"Samoa","SM":"San Marino","ST":"Santo Tom\u00e9 y Principe","SA":"Arabia Saudita","SN":"Senegal","RS":"Serbia","SC":"Seychelles","SL":"Sierra Leona","SG":"Singapur","SX":"Sint Maarten","SK":"Eslovaquia","SI":"Eslovenia","SB":"Islas Salom\u00f3n","SO":"Somalia","ZA":"Sud\u00e1frica","GS":"Ji\u017en\u00ed Georgie a Ji\u017en\u00ed Sandwichovy ostrovy","SS":"Sud\u00e1n del Sur","ES":"Espa\u00f1a","LK":"Sri Lanka","SD":"Sud\u00e1n","SR":"Surinam","SJ":"Svalbard y Jan Mayen","SE":"Suecia","CH":"Suiza","SY":"Rep\u00fablica \u00c1rabe de Siria","TW":"Taiwan","TJ":"Tayikist\u00e1n","TZ":"Tanzania (Rep\u00fablica Unida de)","TH":"Tailandia","TL":"Timor Oriental","TG":"Togo","TK":"Tokelau","TO":"Tonga","TT":"Trinidad y Tobago","TN":"T\u00fanez","TR":"Turqu\u00eda","TM":"Turkmenist\u00e1n","TC":"Islas Turcas y Caicos","TV":"Tuvalu","UG":"Uganda","UA":"Ucrania","AE":"Emiratos \u00c1rabes Unidos","GB":"Reino Unido","US":"Estados Unidos","UY":"Uruguay","UM":"Islas Ultramarinas Menores de Estados Unidos","UZ":"Uzbekist\u00e1n","VU":"Vanuatu","VE":"Venezuela","VN":"Vietnam","VG":"Islas V\u00edrgenes Brit\u00e1nicas","VI":"Islas V\u00edrgenes de los Estados Unidos","WF":"Wallis y Futuna","EH":"Sahara Occidental","YE":"Yemen","ZM":"Zambia","ZW":"Zimbaue"},"strings":{"newRowAdded":"Nueva fila a\u00f1adida.","rowRemoved":"Fila eliminada","formSaved":"Se ha guardado el formulario. El contenido incluye el enlace para volver y completar el formulario."}}; 1993//# sourceURL=gform_gravityforms-js-extra 1994</script>
vendor: 1 bytes, line 1994
1994
1995<script id="gform_gravityforms-js" src="https://hausum.com/wp-content/plugins/gravityforms/js/gravityforms.min.js?ver=3.1.3"></script>
vendor: 1 bytes, line 1995
1995
1996<script id="gform_placeholder-js" src="https://hausum.com/wp-content/plugins/gravityforms/js/placeholders.jquery.min.js?ver=3.1.3"></script>
vendor: 1 bytes, line 1996
1996
1997<script id="gform_gravityforms_utils-js" defer='defer' src="https://hausum.com/wp-content/plugins/gravityforms/assets/js/dist/utils.min.js?ver=d7e103405223e60d2719f4c330fd11cf"></script>
vendor: 1 bytes, line 1997
1997
1998<script id="gform_gravityforms_theme_vendors-js" defer='defer' src="https://hausum.com/wp-content/plugins/gravityforms/assets/js/dist/vendor-theme.min.js?ver=0c901cb641ce64b99c20ea1a4d208cc9"></script>
vendor: 1 bytes, line 1998
1998
1999<script id="gform_gravityforms_theme-js-extra"> 2000var gform_theme_config = {"common":{"form":{"honeypot":{"version_hash":"6283974bc66209b23a599fea367b0d77"},"ajax":{"ajaxurl":"https://hausum.com/wp-admin/admin-ajax.php","ajax_submission_nonce":"979956d6f7","i18n":{"step_announcement":"Paso %1$s de %2$s, %3$s","unknown_error":"Se ha producido un error desconocido al procesar tu solicitud. Por favor, int\u00e9ntalo de nuevo.","error_403":"La solicitud ha sido bloqueada (error 403) por motivos de seguridad desconocidos. Elimina cualquier texto que parezca c\u00f3digo (scripts o consultas a la base de datos) y vuelve a intentarlo."}}}},"hmr_dev":"","public_path":"https://hausum.com/wp-content/plugins/gravityforms/assets/js/dist/","config_nonce":"c292d60187"}; 2001//# sourceURL=gform_gravityforms_theme-js-extra 2002</script>
vendor: 1 bytes, line 2002
2002
2003<script id="gform_gravityforms_theme-js" defer='defer' src="https://hausum.com/wp-content/plugins/gravityforms/assets/js/dist/scripts-theme.min.js?ver=373fcf115e257ba62fdd1a205717b981"></script>
vendor: 1 bytes, line 2003
2003
2004<script id="redsys_for_gravity-js" src="https://hausum.com/wp-content/plugins/redsys-for-gravity/assets/redsys-for-gravity.js?ver=3.1.3"></script>
vendor: 1 bytes, line 2004
2004
2005<script id="spf_intlTelInput-js" src="https://hausum.com/wp-content/plugins/smart-phone-field-for-gravity-forms/assets/js/intlTelInputWithUtils.min.js?ver=2.2.2"></script>
vendor: 1 bytes, line 2005
2005
2006<script id="spf_main-js" src="https://hausum.com/wp-content/plugins/smart-phone-field-for-gravity-forms/assets/js/spf_main.js?ver=1791109296"></script>
vendor: 1 bytes, line 2006
2006
2007<script id="gpep_vendor_cookie-js" defer src="https://hausum.com/wp-content/plugins/gp-easy-passthrough/js/vendor/js.cookie.js?ver=1.10.3"></script>
vendor: 1 bytes, line 2007
2007
2008<script id="wp-emoji-settings" type="application/json"> 2009{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://hausum.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 2010</script>
vendor: 1 bytes, line 2010
2010
2011<script type="module"> 2012/*! This file is auto-generated */ 2013var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 2014//# sourceURL=https://hausum.com/wp-includes/js/wp-emoji-loader.min.js 2015</script>
2015 2016
2016<script> 2017 (function () { 2018 'use strict'; 2019 2020 // Textos traducidos por WPML según el idioma de la página actual. 2021 const T = {"selecciona_vivienda":"-- Selecciona tu vivienda --","cual_es_tu_vivienda":"\u00bfCu\u00e1l es tu vivienda?","buscando_unidades":"Buscando unidades en el edificio...","no_unidades":"No se encontraron unidades. Selecciona la superficie manualmente.","error_catastro":"Error al consultar el Catastro. Selecciona la superficie manualmente.","dir_confirmada":"\u2713 Direcci\u00f3n del inmueble confirmada","datos_vivienda":"\u2713 Datos de la vivienda seleccionada","dir":"Direcci\u00f3n","provincia":"Provincia","cp":"C\u00f3digo postal","ref_catastral":"Ref. catastral","planta":"Planta","anio_construccion":"A\u00f1o construcci\u00f3n","superficie":"Superficie","puerta":"Puerta","bloque":"Bloque","escalera":"Escalera","segundo_sotano":"Segundo S\u00f3tano","sotano":"S\u00f3tano","planta_baja":"Planta Baja","entreplanta":"Entreplanta","atico":"\u00c1tico","planta_n":"Planta %s","sotano_n":"S\u00f3tano %s","planta_ordinal":"%s\u00aa Planta","m2_construidos":"m\u00b2 construidos","no_disponible":"\u2014","m2_1":"Menos de 100m2","m2_2":"De 100 a 199 m2","m2_3":"De 200 a 299 m2","m2_4":"De 300 a 399 m2","m2_5":"De 400 a 499 m2","m2_6":"De 500 a 699 m2","m2_7":"De 700 a 899 m2","m2_8":"M\u00e1s de 900 m2"}; 2022 // Textos en castellano: para los VALORES que viajan con el formulario 2023 // (n8n/HubSpot). T solo se usa para lo que ve el usuario. 2024 const T_ES = {"selecciona_vivienda":"-- Selecciona tu vivienda --","cual_es_tu_vivienda":"\u00bfCu\u00e1l es tu vivienda?","buscando_unidades":"Buscando unidades en el edificio...","no_unidades":"No se encontraron unidades. Selecciona la superficie manualmente.","error_catastro":"Error al consultar el Catastro. Selecciona la superficie manualmente.","dir_confirmada":"\u2713 Direcci\u00f3n del inmueble confirmada","datos_vivienda":"\u2713 Datos de la vivienda seleccionada","dir":"Direcci\u00f3n","provincia":"Provincia","cp":"C\u00f3digo postal","ref_catastral":"Ref. catastral","planta":"Planta","anio_construccion":"A\u00f1o construcci\u00f3n","superficie":"Superficie","puerta":"Puerta","bloque":"Bloque","escalera":"Escalera","segundo_sotano":"Segundo S\u00f3tano","sotano":"S\u00f3tano","planta_baja":"Planta Baja","entreplanta":"Entreplanta","atico":"\u00c1tico","planta_n":"Planta %s","sotano_n":"S\u00f3tano %s","planta_ordinal":"%s\u00aa Planta","m2_construidos":"m\u00b2 construidos","no_disponible":"\u2014","m2_1":"Menos de 100m2","m2_2":"De 100 a 199 m2","m2_3":"De 200 a 299 m2","m2_4":"De 300 a 399 m2","m2_5":"De 400 a 499 m2","m2_6":"De 500 a 699 m2","m2_7":"De 700 a 899 m2","m2_8":"M\u00e1s de 900 m2"}; 2025 2026 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2027 CONFIGURACIÃN â ajustar los IDs de campo de Gravity Forms aquà 2028 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2029 const FORM_ID = 28; 2030 2031 const FIELDS = { 2032 tipo: 114, // ID del campo "Sobre el inmueble" (radio) 2033 direccion: 119, // input de búsqueda de dirección 2034 cp: 53, 2035 refCatastral: 118, 2036 provincia: 54, 2037 superficie: 73, 2038 dirCompleta: 11, 2039 // Campo select de GF "¿Cuál es tu vivienda?" que el script rellena 2040 // con los pisos del Catastro. Requisitos en el editor de GF: 2041 // tipo Desplegable, SIN lógica condicional, NO obligatorio. 2042 // Si es null se usa el listado propio de radios como fallback. 2043 piso: 116, 2044 }; 2045 2046 // Bloquear el botón "Continuar" hasta que el paso esté completo (como en la demo) 2047 const BLOQUEAR_AVANCE = true; 2048 2049 // âââ Endpoints n8n âââââââââââââââââââââââââââââââââââââââââââââââ 2050 const N8N_BASE = 'https://n8n.hausum.com/webhook'; 2051 const AUTOCOMPLETE_URL = N8N_BASE + '/hausum-autocomplete'; 2052 const PORTAL_URL = N8N_BASE + '/hausum-portal'; 2053 const INMUEBLES_URL = N8N_BASE + '/hausum-inmuebles'; 2054 2055 // Mapeo etiqueta visible â clave lógica del tipo de inmueble 2056 const TIPOS = [ 2057 { key: 'obra_nueva', match: ['obra nueva'] }, 2058 { key: 'segunda', match: ['segunda mano', 'segunda'] }, 2059 { key: 'propiedad', match: ['mi propiedad', 'propiedad'] }, 2060 { key: 'demanda', match: ['demanda'] }, 2061 { key: 'legal', match: ['dudas legales', 'legal'] }, 2062 ]; 2063 2064 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2065 ESTADO 2066 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2067 const state = { 2068 tipo: '', // '' | 'obra_nueva' | 'segunda' | 'propiedad' | 'demanda' | 'legal' 2069 modoCatastro: false, // true = el input de dirección usa autocompletado 2070 direccionBase: '', // dirección del portal elegido (base para construir la etiqueta) 2071 selectedStreet: null, 2072 provincia: '', 2073 pisoRc: null, // RC del inmueble seleccionado 2074 inmuebles: [], // lista de pisos del portal resuelto (para el select de GF) 2075 manual: false, // true = Catastro sin datos: m2 y dirección a mano 2076 }; 2077 2078 let debounce; 2079 let dropdown, pisosWrap, resumenWrap, tipoField, form; 2080 // Cancela la petición de autocompletado (o de portal) anterior si 2081 // sigue en vuelo cuando se dispara una nueva del MISMO tipo â evita 2082 // que una respuesta lenta y desactualizada pise a una más reciente. 2083 // Van en variables separadas: son independientes (autocompletado 2084 // busca calles, portal resuelve el número) y pueden solaparse en el 2085 // tiempo si el usuario elige una calle y sigue escribiendo el número; 2086 // compartir una sola variable harÃa que una cancelase a la otra. 2087 let peticionAutocomplete, peticionPortal; 2088 2089 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2090 HELPERS DOM / GRAVITY FORMS 2091 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2092 function norm(s) { 2093 return (s || '').toString().toLowerCase() 2094 .normalize('NFD').replace(/[\u0300-\u036f]/g, '').trim(); 2095 } 2096 2097 function inputEl(key) { 2098 const id = FIELDS[key]; 2099 return id ? document.getElementById('input_' + FORM_ID + '_' + id) : null; 2100 } 2101 2102 function setInput(el, value, readonly) { 2103 if (!el) return; 2104 el.value = value || ''; 2105 if (readonly) { 2106 el.setAttribute('readonly', 'readonly'); 2107 el.style.background = '#f3f4f6'; 2108 el.style.color = '#6b7280'; 2109 el.style.cursor = 'not-allowed'; 2110 } else { 2111 el.removeAttribute('readonly'); 2112 el.style.background = ''; 2113 el.style.color = ''; 2114 el.style.cursor = ''; 2115 } 2116 el.dispatchEvent(new Event('change', { bubbles: true })); 2117 } 2118 2119 /* Campo 11 (dirección completa) es un campo de tipo DIRECCIÃN de GF: 2120 no existe #input_28_11 a secas, sino subcampos _1 (calle), _4 2121 (provincia) y _5 (CP). Es el que viaja a n8n, asà que se pinta 2122 cada vez que se resuelve una dirección. Si algún dÃa se
2122cambia 2123 por un campo de texto simple, también funciona. */ 2124 function setDirCompleta(label, cp, province) { 2125 const base = 'input_' + FORM_ID + '_' + FIELDS.dirCompleta; 2126 const simple = document.getElementById(base); 2127 if (simple) { setInput(simple, label, true); sincronizarDuplicados(); return; } 2128 [['_1', label], ['_4', province], ['_5', cp]].forEach(function (par) { 2129 if (par[0] !== '_1' && !par[1]) return; // solo la calle puede vaciarse 2130 const el = document.getElementById(base + par[0]); 2131 if (!el) return; 2132 el.value = par[1] || ''; 2133 // Solo lo escribe el script: bloqueado para el usuario (también en móvil) 2134 el.setAttribute('readonly', 'readonly'); 2135 el.style.background = '#f3f4f6'; 2136 el.style.color = '#6b7280'; 2137 el.dispatchEvent(new Event('change', { bubbles: true })); 2138 }); 2139 // Si el plugin de transiciones clonó el DOM y hay más de un nodo 2140 // con este mismo ID, propaga el valor a TODOS ahora mismo â no 2141 // esperar al submit final, porque la siguiente escritura (p.ej. 2142 // al elegir el piso) podrÃa aterrizar en un clon distinto al que 2143 // finalmente se envÃa, dejando 11_1 con un valor incompleto. 2144 sincronizarDuplicados(); 2145 } 2146 2147 function setSelect(el, value) { 2148 if (!el || !value) return; 2149 Array.from(el.options).forEach(opt => { 2150 if (opt.value.trim() === value.trim() || opt.text.trim() === value.trim()) { 2151 el.value = opt.value; 2152 el.dispatchEvent(new Event('change', { bubbles: true })); 2153 } 2154 }); 2155 } 2156 2157 function bloquearSelect(el, bloquear) { 2158 if (!el) return; 2159 el.style.background = bloquear ? '#f3f4f6' : ''; 2160 el.style.color = bloquear ? '#6b7280' : ''; 2161 el.style.pointerEvents = bloquear ? 'none' : ''; 2162 el.style.cursor = bloquear ? 'not-allowed' : ''; 2163 } 2164 2165 function limpiarCampo(key) { 2166 const el = inputEl(key); 2167 if (!el) return; 2168 if (el.tagName === 'SELECT') { el.selectedIndex = 0; } 2169 else { el.value = ''; } 2170 el.dispatchEvent(new Event('change', { bubbles: true })); 2171 } 2172 2173 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2174 TIPO DE INMUEBLE 2175 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2176 function tipoKeyFromText(text) { 2177 const t = norm(text); 2178 if (!t) return ''; 2179 for (const tipo of TIPOS) { 2180 if (tipo.match.some(m => t.indexOf(m) !== -1)) return tipo.key; 2181 } 2182 return ''; 2183 } 2184 2185 // Localiza el campo del tipo de inmueble: por ID configurado o buscando 2186 // el campo que contenga una opción "Obra nueva". 2187 function findTipoField() { 2188 if (FIELDS.tipo) return document.getElementById('field_' + FORM_ID + '_' + FIELDS.tipo); 2189 const f = document.getElementById('gform_' + FORM_ID); 2190 if (!f) return null; 2191 2192 const campos = f.querySelectorAll('.gfield'); 2193 for (const campo of campos) { 2194 const opciones = campo.querySelectorAll('input[type=radio], input[type=checkbox], option'); 2195 for (const op of opciones) { 2196 const texto = op.tagName === 'OPTION' 2197 ? op.textContent 2198 : (campo.querySelector('label[for="' + op.id + '"]') || {}).textContent; 2199 if (tipoKeyFromText(texto) === 'obra_nueva') return campo; 2200 } 2201 } 2202 return null; 2203 } 2204 2205 function getTipoSeleccionado() { 2206 if (!tipoField) return ''; 2207 const radio = tipoField.querySelector('input[type=radio]:checked, input[type=checkbox]:checked'); 2208 if (radio) { 2209 const lbl = tipoField.querySelector('label[for="' + radio.id + '"]'); 2210 return tipoKeyFromText(lbl ? lbl.textContent : radio.value) || tipoKeyFromText(radio.value); 2211 } 2212 const select = tipoField.querySelector('select'); 2213 if (select && select.value) { 2214 const opt = select.options[select.selectedIndex]; 2215 return tipoKeyFromText(opt ? opt.textContent : select.value); 2216 } 2217 return ''; 2218 } 2219 2220 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2221 DATOS CATASTRALES 2222 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2223 /* Tramos de superficie. El VALOR del campo 73 es SIEMPRE el texto en 2224 castellano (lo fuerza hausum_valores_es_pro() en PHP): la lógica condicional de los campos de precio 74-91 y 2225 de los planos 33-45, y el precio de las tarjetas, comparan contra 2226 este valor. WPML solo traduce la ETIQUETA visible (T.m2_x). 2227 Mismo orden que las opciones del campo 73. */ 2228 const M2_VALUES = [ 2229 'Menos de 100m2', 'De 100 a 199 m2', 'De 200 a 299 m2', 'De 300 a 399 m2', 2230 'De 400 a 499 m2', 'De 500 a 699 m2', 'De 700 a 899 m2', 'Más de 900 m2', 2231 ]; 2232 const M2_LABELS = [T.m2_1, T.m2_2, T.m2_3, T.m2_4, T.m2_5, T.m2_6, T.m2_7, T.m2_8]; 2233 2234 // Devuelve el valor canónico (castellano) del tramo 2235 function m2ARango(m2) { 2236 const n = parseInt(m2); 2237 if (isNaN(n)) return ''; 2238 if (n < 100) return M2_VALUES[0]; 2239 if (n < 200) return M2_VALUES[1]; 2240 if (n < 300) return M2_VALUES[2]; 2241 if (n < 400) return M2_VALUES[3]; 2242 if (n < 500) return M2_VALUES[4]; 2243 if (n < 700) return M2_VALUES[5]; 2244 if (n < 900) return M2_VALUES[6]; 2245 return M2_VALUES[7]; 2246 } 2247 2248 function m2Label(valor) { 2249 const i = M2_VALUES.indexOf(valor); 2250 return i === -1 ? valor : (M2_LABELS[i] || valor); 2251 } 2252 2253 // Opciones reales del select 73 (sin placeholder vacÃo), en orden 2254 function opcionesSuperficie(el) { 2255 return Array.from(el.options).filter(o => o.value.trim() !== ''); 2256 } 2257 2258 // Selecciona el tramo por valor canónico. Si el valor de las opciones 2259 // llegara traducido (campo sin "Mostrar valores"), cae a la posición.
2260 function setSuperficie(valor) { 2261 const el = inputEl('superficie'); 2262 if (!el || !valor) return; 2263 const opts = opcionesSuperficie(el); 2264 let opt = opts.find(o => o.value.trim() === valor); 2265 if (!opt) opt = opts[M2_VALUES.indexOf(valor)]; 2266 if (!opt) return; 2267 el.value = opt.value; 2268 el.dispatchEvent(new Event('change', { bubbles: true })); 2269 } 2270 2271 // Valor canónico del tramo elegido en el select 73 (por valor o posición) 2272 function superficieSeleccionada() { 2273 const el = inputEl('superficie'); 2274 if (!el || !el.value) return ''; 2275 const v = el.value.trim(); 2276 if (M2_VALUES.indexOf(v) !== -1) return v; 2277 return M2_VALUES[opcionesSuperficie(el).indexOf(el.options[el.selectedIndex])] || ''; 2278 } 2279 2280 function guardarM2Sesion(valor) { 2281 if (!valor) return; 2282 sessionStorage.setItem('hausum_m2', valor); // castellano (lógica/precio) 2283 sessionStorage.setItem('hausum_m2_label', m2Label(valor)); // traducido (solo mostrar) 2284 } 2285 2286 function plantaLabel(pt, D) { 2287 D = D || T; 2288 if (!pt || pt === '') return ''; 2289 const upper = pt.toUpperCase(); 2290 if (upper === 'SS') return D.segundo_sotano; 2291 if (upper === 'ST') return D.sotano; 2292 if (upper === 'BJ' || upper === 'PB') return D.planta_baja; 2293 if (upper === 'EN') return D.entreplanta; 2294 if (upper === 'PR') return D.planta_baja; 2295 if (upper === 'AT') return D.atico; 2296 const n = parseInt(pt); 2297 if (isNaN(n)) return D.planta_n.replace('%s', pt); 2298 if (n < -1) return D.sotano_n.replace('%s', Math.abs(n)); 2299 if (n === -1) return D.sotano; 2300 if (n === 0) return D.planta_baja; 2301 return D.planta_ordinal.replace('%s', n); 2302 } 2303 2304 // D = diccionario de textos (por defecto el del idioma de la página) 2305 function buildLabel(item, D) { 2306 D = D || T; 2307 const parts = [state.direccionBase]; 2308 if (item.bq) parts.push(D.bloque + ' ' + item.bq); 2309 const pt = plantaLabel(item.pt, D); 2310 if (pt) parts.push(pt); 2311 if (item.pu) parts.push(D.puerta + ' ' + item.pu); 2312 if (item.es) parts.push(D.escalera + ' ' + item.es); 2313 return parts.filter(Boolean).join(', '); 2314 } 2315 2316 // Misma dirección SIEMPRE en castellano: es la que viaja con el form 2317 function buildValor(item) { 2318 return buildLabel(item, T_ES); 2319 } 2320 2321 // hausum_dir = castellano (valor); hausum_dir_label = traducido (mostrar) 2322 function guardarDirSesion(valor, etiqueta) { 2323 sessionStorage.setItem('hausum_dir', valor || ''); 2324 if (etiqueta && etiqueta !== valor) sessionStorage.setItem('hausum_dir_label', etiqueta); 2325 else sessionStorage.removeItem('hausum_dir_label'); 2326 } 2327 2328 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2329 PERSISTENCIA ENTRE PÃGINAS DEL FORMULARIO 2330 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2331 const SS_KEYS = ['hausum_rc', 'hausum_cp', 'hausum_m2', 'hausum_m2_label', 'hausum_prov', 'hausum_dir', 'hausum_dir_label', 'hausum_tipo', 2332 'hausum_item', 'hausum_base', 'hausum_inmuebles', 'hausum_manual']; 2333 2334 function guardarSesion(item, province) { 2335 sessionStorage.setItem('hausum_rc', item.rc); 2336 sessionStorage.setItem('hausum_cp', item.cp); 2337 guardarM2Sesion(m2ARango(item.sfc)); 2338 sessionStorage.setItem('hausum_prov', province || ''); 2339 guardarDirSesion(buildValor(item), buildLabel(item)); 2340 sessionStorage.setItem('hausum_tipo', state.tipo); 2341 // Necesario para reconstruir la pantalla al volver atrás 2342 sessionStorage.setItem('hausum_item', JSON.stringify(item)); 2343 sessionStorage.setItem('hausum_base', state.direccionBase || ''); 2344 sessionStorage.setItem('hausum_inmuebles', JSON.stringify(state.inmuebles || [])); 2345 } 2346 2347 function limpiarSesion() {
2348 SS_KEYS.forEach(k => sessionStorage.removeItem(k)); 2349 } 2350 2351 // Páginas posteriores del formulario: rellena y bloquea los campos ya resueltos 2352 function aplicarSesion() { 2353 const rc = sessionStorage.getItem('hausum_rc'); 2354 const cp = sessionStorage.getItem('hausum_cp'); 2355 const m2 = sessionStorage.getItem('hausum_m2'); 2356 const prov = sessionStorage.getItem('hausum_prov'); 2357 const dir = sessionStorage.getItem('hausum_dir'); 2358 2359 if (rc) setInput(inputEl('refCatastral'), rc, true); 2360 if (cp) setInput(inputEl('cp'), cp, true); 2361 if (dir) setDirCompleta(dir, cp, prov); 2362 if (prov) { setSelect(inputEl('provincia'), prov); bloquearSelect(inputEl('provincia'), true); } 2363 if (m2) { setSuperficie(m2); bloquearSelect(inputEl('superficie'), true); } 2364 } 2365 2366 /* Campos 54 (provincia), 53 (CP) y 118 (ref. catastral) de la página 2367 de inspección: visibles SOLO si el paso de dirección no pudo 2368 autorrellenarlos (modo manual) o el tipo es obra nueva. Si el 2369 Catastro ya los resolvió, se ocultan â pero siguen sin lógica 2370 condicional de GF, asà que su valor sigue viajando igualmente. 2371 En su lugar se muestra un banner de resumen (mismo estilo que el 2372 de la página de dirección) con los datos ya confirmados. */ 2373 function renderResumenInspeccion() { 2374 const wrapProvincia = document.getElementById('field_' + FORM_ID + '_' + FIELDS.provincia); 2375 if (!wrapProvincia) return; 2376 2377 const dir = sessionStorage.getItem('hausum_dir_label') || sessionStorage.getItem('hausum_dir') || ''; 2378 const prov = sessionStorage.getItem('hausum_prov') || ''; 2379 const cp = sessionStorage.getItem('hausum_cp') || ''; 2380 const rc = sessionStorage.getItem('hausum_rc') || ''; 2381 2382 let banner = document.getElementById('hausum-resumen-inspeccion'); 2383 if (!banner) { 2384 banner = document.createElement('div'); 2385 banner.id = 'hausum-resumen-inspeccion'; 2386 banner.style.cssText = 'grid-column:1 / -1;width:100%;box-sizing:border-box;'; 2387 wrapProvincia.parentNode.insertBefore(banner, wrapProvincia); 2388 } 2389 2390 banner.innerHTML = 2391 '<div style="background:#eff6ff;border:1.5px solid #dbeafe;border-radius:8px;padding:12px 14px;margin-bottom:16px;">' + 2392 '<div style="font-size:13px;color:#003e73;font-weight:600;margin-bottom:8px;">' + T.dir_confirmada + '</div>' + 2393 '<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;">' + 2394 '<div style="grid-column:1 / -1;">' + celda(T.dir, dir || T.no_disponible) + '</div>' + 2395 celda(T.provincia, prov || T.no_disponible) + 2396 celda(T.cp, cp || T.no_disponible) + 2397 celda(T.ref_catastral, rc || T.no_disponible) + 2398 '</div>' + 2399 '</div>'; 2400 banner.style.display = 'block'; 2401 } 2402 2403 function aplicarVisibilidadInspeccion() { 2404 const tipo = sessionStorage.getItem('hausum_tipo') || ''; 2405 const rc = sessionStorage.getItem('hausum_rc') || ''; 2406 // Regla: con ref. catastral conocida se muestra el banner de 2407 // resumen; sin ella (obra nueva, modo manual o Catastro sin 2408 // resolver), los campos quedan visibles para rellenar a mano. 2409 const mostrar = tipo === 'obra_nueva' || !rc; 2410 2411 [FIELDS.provincia, FIELDS.cp, FIELDS.refCatastral].forEach(function (id) { 2412 const wrap = document.getElementById('field_' + FORM_ID + '_' + id); 2413 if (wrap) wrap.style.display = mostrar ? '' : 'none'; 2414 }); 2415 2416 if (mostrar) { 2417 const banner = document.getElementById('hausum-resumen-inspeccion'); 2418 if (banner) banner.style.display = 'none'; 2419 } else { 2420 renderResumenInspeccion(); 2421 } 2422 } 2423 2424 // Al volver a la página de dirección: reconstruye el input, el select 2425 // de piso/vivienda y el recuadro de resumen con lo guardado en sesión. 2426 // Devuelve true si habÃa algo que restaurar. 2427 function restaurarPaso(dirInput) { 2428 if (!state.tipo || state.tipo === 'obra_nueva') return false;
2429 2430 let item = null; 2431 try { item = JSON.parse(sessionStorage.getItem('hausum_item') || 'null'); } catch (e) {} 2432 if (!item) { 2433 // Flujo manual (Catastro sin dirección/unidades): restaurar la 2434 // dirección escrita y volver a mostrar el desplegable de m2. 2435 if (sessionStorage.getItem('hausum_manual') === '1') { 2436 if (!dirInput.value.trim()) dirInput.value = sessionStorage.getItem('hausum_dir') || ''; 2437 activarManual(true); 2438 return true; 2439 } 2440 return false; 2441 } 2442 2443 state.direccionBase = sessionStorage.getItem('hausum_base') || ''; 2444 state.provincia = sessionStorage.getItem('hausum_prov') || ''; 2445 try { state.inmuebles = JSON.parse(sessionStorage.getItem('hausum_inmuebles') || '[]'); } catch (e) { state.inmuebles = []; } 2446 2447 if (!dirInput.value.trim() && state.direccionBase) dirInput.value = state.direccionBase; 2448 state.selectedStreet = { type: 'portal', address: state.direccionBase }; 2449 2450 const sel = inputEl('piso'); 2451 if (sel && state.inmuebles.length > 1) { 2452 sel.innerHTML = ''; 2453 const ph = document.createElement('option'); 2454 ph.value = ''; 2455 ph.textContent = T.selecciona_vivienda; 2456 sel.appendChild(ph); 2457 state.inmuebles.forEach(function (i) { 2458 const opt = document.createElement('option'); 2459 const etiqueta = buildLabel(i); 2460 opt.value = buildValor(i); // castellano (viaja con el form) 2461 opt.setAttribute('data-rc', i.rc); 2462 opt.textContent = etiqueta + (i.sfc ? ' · ' + i.sfc + ' m²' : ''); 2463 sel.appendChild(opt); 2464 }); 2465 sel.value = buildValor(item); 2466 mostrarCampoPiso(true); 2467 } 2468 2469 rellenarCampos(item, state.provincia); 2470 return true; 2471 } 2472 2473 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2474 MODO DEL INPUT DE DIRECCIÃN 2475 La visibilidad de los campos la decide la lógica condicional de GF; 2476 aquà solo se decide si el input usa autocompletado o texto libre. 2477 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2478 function actualizarModo() { 2479 if (!tipoField) { 2480 // Sin campo de tipo localizable: autocompletado siempre activo 2481 // para no bloquear el flujo por un fallo de detección. 2482 state.modoCatastro = true; 2483 return; 2484 } 2485 state.modoCatastro = !!state.tipo && state.tipo !== 'obra_nueva'; 2486 // Campo 73 (superficie): solo lo elige el usuario en obra nueva. 2487 // En el resto de flujos queda oculto y lo rellena el JS con el 2488 // tramo del Catastro (por eso NO lleva lógica condicional de GF: 2489 // GF lo desactivarÃa y su valor no viajarÃa con el formulario). 2490 mostrarCampoSuperficie(state.tipo === 'obra_nueva' || state.manual); 2491 if (state.tipo === 'obra_nueva') { 2492 bloquearSelect(inputEl('superficie'), false); 2493 cerrarDropdown(); 2494 // Se oculta el bloque de pisos pero SIN vaciarlo: si el usuario 2495 // vuelve a un tipo con Catastro, recupera lo que tenÃa. 2496 mostrarCampoPiso(false); 2497 if (pisosWrap) pisosWrap.style.display = 'none'; 2498 if (resumenWrap) resumenWrap.style.display = 'none'; 2499 } else { 2500 const sel = inputEl('piso'); 2501 if (sel && sel.options.length > 1) mostrarCampoPiso(true); 2502 if (resumenWrap && resumenWrap.innerHTML) resumenWrap.style.display = 'block'; 2503 } 2504 } 2505 2506 function mostrarCampoSuperficie(visible) { 2507 const wrapEl = document.getElementById('field_' + FORM_ID + '_' + FIELDS.superficie); 2508 if (wrapEl) wrapEl.style.display = visible ? '' : 'none'; 2509 } 2510 2511 /* Modo manual: el Catastro no encuentra la dirección/unidades o la 2512 superficie viene a 0. Se muestra el desplegable de m2 sea cual sea 2513 el tipo elegido en "Sobre el inmueble", y el paso se completa con 2514 dirección escrita + tramo elegido a mano. */ 2515 function activarManual(on) { 2516 state.manual = !!on; 2517 if (on) sessionStorage.setItem('hausum_manual', '1'); 2518 else sessionStorage.removeItem('hausum_manual'); 2519 mostrarCampoSuperficie(state.tipo === 'obra_nueva' || state.manual); 2520 if (state.manual) bloquearSelect(inputEl('superficie'), false); 2521 actualizarBoton(); 2522 } 2523 2524 /* âââ Campo select de GF para el piso ââââââââââââââââââââââââââââ 2525 Este campo NO tiene lógica condicional de GF (por eso podemos 2526 mostrar/ocultar su contenedor desde JS sin el problema del 2527 disabled). El script regenera sus <option> con cada portal. */ 2528 function pisoFieldWrap() { 2529 return FIELDS.piso ? document.getElementById('field_' + FORM_ID + '_' + FIELDS.piso) : null; 2530 } 2531 2532 function mostrarCampoPiso(visible) { 2533 const wrapEl = pisoFieldWrap(); 2534 if (wrapEl) wrapEl.style.display = visible ? '' : 'none'; 2535 } 2536 2537 function resetCampoPiso() { 2538 const sel = inputEl('piso'); 2539 if (!sel) return; 2540 sel.innerHTML = ''; 2541 mostrarCampoPiso(false); 2542 } 2543 2544 function ocultarPisos() { 2545 if (pisosWrap) { pisosWrap.style.display = 'none'; pisosWrap.innerHTML = ''; } 2546 if (resumenWrap) { resumenWrap.style.display = 'none'; resumenWrap.innerHTML = ''; } 2547 resetCampoPiso(); 2548 state.inmuebles = []; 2549 } 2550 2551 function cerrarDropdown() { 2552 if (dropdown) { dropdown.style.display = 'none'; dropdown.innerHTML = ''; } 2553 } 2554 2555 /* Si el plugin de transiciones clona páginas (swiper), hay IDs 2556 duplicados: getElementById rellena solo el primero y el input que 2557 realmente se envÃa puede quedar vacÃo. Antes de cada envÃo se copia 2558 el valor del elemento relleno a todos los que compartan ID. */ 2559 function sincronizarDuplicados() { 2560 const ids = [FIELDS.direccion, FIELDS.cp, FIELDS.refCatastral, FIELDS.provincia, FIELDS.superficie] 2561 .map(function (id) { return 'input_' + FORM_ID + '_' + id; }) 2562 .concat(['_1', '_2', '_3', '_4', '_5', '_6'].map(function (s) { 2563 return 'input_' + FORM_ID + '_' + FIELDS.dirCompleta + s; 2564 })); 2565 2566 ids.forEach(function (id) { 2567 const els = document.querySelectorAll('[id="' + id + '"]'); 2568 if (els.length < 2) return; 2569 const src = Array.prototype.find.call(els, function (e) { return (e.value || '').trim() !== ''; }); 2570 if (!src) return;
2571 els.forEach(function (e) { if (e !== src) e.value = src.value; }); 2572 }); 2573 } 2574 2575 // Cambio de tipo de inmueble: NO borra la dirección ni el piso ya 2576 // elegidos (petición expresa) â solo cambia el modo del input y 2577 // guarda el tipo para las pantallas siguientes. 2578 function onTipoChange() { 2579 const nuevo = getTipoSeleccionado(); 2580 if (nuevo === state.tipo) return; 2581 2582 state.tipo = nuevo; 2583 sessionStorage.setItem('hausum_tipo', nuevo); 2584 2585 cerrarDropdown(); 2586 actualizarModo(); 2587 actualizarBoton(); 2588 } 2589 2590 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2591 VALIDACIÃN DEL PASO (equivalente a canStep1 de la demo) 2592 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2593 function pasoCompleto() { 2594 if (!state.tipo) return false; 2595 if (state.tipo === 'obra_nueva' || state.manual) { 2596 const dir = inputEl('direccion'); 2597 const sup = inputEl('superficie'); 2598 return !!(dir && dir.value.trim().length > 3) && !!(sup && sup.value); 2599 } 2600 return !!state.pisoRc; 2601 } 2602 2603 function botonAvance() { 2604 if (!tipoField) return null; 2605 const page = tipoField.closest('.gform_page') || form; 2606 if (!page) return null; 2607 return page.querySelector('.gform_next_button') 2608 || page.querySelector('#gform_submit_button_' + FORM_ID); 2609 } 2610 2611 function actualizarBoton() { 2612 if (!BLOQUEAR_AVANCE) return; 2613 const btn = botonAvance(); 2614 if (!btn) return; 2615 const ok = pasoCompleto(); 2616 btn.disabled = !ok; 2617 btn.style.opacity = ok ? '' : '.4'; 2618 btn.style.cursor = ok ? '' : 'not-allowed'; 2619 btn.setAttribute('aria-disabled', ok ? 'false' : 'true'); 2620 } 2621 2622 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2623 RELLENO DE CAMPOS AL ELEGIR VIVIENDA 2624 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2625 function rellenarCampos(item, province) { 2626 const label = buildLabel(item); // traducido: solo para mostrar 2627 const valor = buildValor(item); // castellano: viaja con el form 2628 state.pisoRc = item.rc; 2629 2630 guardarSesion(item, province); 2631 2632 // Los rellena el script: bloqueados para el usuario (también en móvil) 2633 setInput(inputEl('refCatastral'), item.rc, true); 2634 setInput(inputEl('cp'), item.cp, true); 2635 setDirCompleta(valor, item.cp, province); 2636 if (province) { 2637 setSelect(inputEl('provincia'), province); 2638 bloquearSelect(inputEl('provincia'), true); 2639 } 2640 2641 // Superficie del Catastro: si viene a 0 o vacÃa, que el usuario 2642 // elija el tramo a mano (modo manual). 2643 const rango = m2ARango(item.sfc); 2644 if (rango && parseInt(item.sfc) > 0) { 2645 setSuperficie(rango); 2646 activarManual(false); 2647 } else { 2648 activarManual(true); 2649 } 2650 2651 renderResumen(item, label); 2652 actualizarBoton(); 2653 } 2654 2655 // Panel "Datos de la vivienda seleccionada" de la demo 2656 function renderResumen(item, label) { 2657 if (!resumenWrap) return; 2658 const planta = plantaLabel(item.pt) || T.no_disponible; 2659 const puerta = item.pu ? T.puerta + ' ' + item.pu : ''; 2660 const ano = item.ant || item.ano || ''; // requiere devolver `ant` desde n8n (opcional) 2661 2662 resumenWrap.innerHTML = 2663 '<div style="background:#eff6ff;border:1.5px solid #dbeafe;border-radius:8px;padding:12px 14px;margin-top:12px;">' + 2664 '<div style="font-size:13px;color:#003e73;font-weight:600;margin-bottom:8px;">' + T.datos_vivienda + '</div>' + 2665 '<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;">' + 2666 celda(T.dir, label) + 2667 celda(T.planta, planta + (puerta ? ' · ' + puerta : '')) + 2668 (ano ? celda(T.anio_construccion, ano) : '') + 2669 celda(T.superficie, (item.sfc || T.no_disponible) + ' ' + T.m2_construidos) + 2670 '</div>' + 2671 '<div style="margin-top:8px;font-size:11px;color:#6b7280;overflow-wrap:anywhere;">' + T.ref_catastral + ': ' + item.rc + '</div>' + 2672 '</div>'; 2673 resumenWrap.style.display = 'block'; 2674 } 2675 2676 function celda(titulo, valor) { 2677 // white-space:nowrap en el tÃtulo evita que "Código postal" se 2678 // parta; overflow-wrap en el valor permite cortar cadenas largas 2679 // sin espacios (ref. catastral) en vez de desbordar en móvil. 2680 return '<div style="min-width:0;">
2680' + 2681 '<span style="font-size:11px;color:#6b7280;white-space:nowrap;">' + titulo + '</span><br>' + 2682 '<strong style="font-size:13px;color:#111827;overflow-wrap:anywhere;">' + valor + '</strong></div>'; 2683 } 2684 2685 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2686 CATASTRO: PORTAL â INMUEBLES 2687 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2688 function loadInmuebles(refCatastral, province) { 2689 state.provincia = province || ''; 2690 state.pisoRc = null; 2691 if (resumenWrap) { resumenWrap.innerHTML = ''; resumenWrap.style.display = 'none'; } 2692 actualizarBoton(); 2693 2694 pisosWrap.innerHTML = '<p style="font-size:13px;color:#6b7280;margin:0;">' + T.buscando_unidades + '</p>'; 2695 pisosWrap.style.display = 'block'; 2696 2697 fetch(INMUEBLES_URL + '?rc=' + encodeURIComponent(refCatastral)) 2698 .then(r => r.json()) 2699 .then(data => { 2700 if (!data.inmuebles || !data.inmuebles.length) { 2701 pisosWrap.innerHTML = '<p style="color:#dc2626;font-size:13px;margin:0;">' + T.no_unidades + '</p>'; 2702 activarManual(true); 2703 return; 2704 } 2705 // Unifamiliar: una sola unidad, se autoselecciona 2706 if (data.tipo === 'unifamiliar' && data.inmuebles.length === 1) { 2707 pisosWrap.innerHTML = ''; 2708 pisosWrap.style.display = 'none'; 2709 rellenarCampos(data.inmuebles[0], province); 2710 return; 2711 } 2712 renderPisos(data.inmuebles, province); 2713 }) 2714 .catch(() => { 2715 pisosWrap.innerHTML = '<p style="color:#dc2626;font-size:13px;margin:0;">' + T.error_catastro + '</p>'; 2716 activarManual(true); 2717 }); 2718 } 2719 2720 function renderPisos(inmuebles, province) { 2721 state.inmuebles = inmuebles; 2722 2723 // VÃa principal: select nativo de GF (FIELDS.piso configurado) 2724 const sel = inputEl('piso'); 2725 if (sel) { 2726 pisosWrap.innerHTML = ''; 2727 pisosWrap.style.display = 'none'; 2728 2729 sel.innerHTML = ''; 2730 const ph = document.createElement('option'); 2731 ph.value = ''; 2732 ph.textContent = T.selecciona_vivienda; 2733 sel.appendChild(ph); 2734 2735 inmuebles.forEach(item => { 2736 const opt = document.createElement('option'); 2737 const etiqueta = buildLabel(item); 2738 // El VALOR que viaja con el formulario es la dirección 2739 // completa EN CASTELLANO (la RC ya va en el campo 118); el 2740 // texto visible va traducido. La RC se guarda en data-rc 2741 // para localizar el inmueble al seleccionar. 2742 opt.value = buildValor(item); 2743 opt.setAttribute('data-rc', item.rc); 2744 opt.textContent = etiqueta + (item.sfc ? ' · ' + item.sfc + ' m²' : ''); 2745 sel.appendChild(opt); 2746 }); 2747 2748 sel.value = ''; 2749 mostrarCampoPiso(true); 2750 return; 2751 } 2752 2753 // Fallback: listado propio de radios (si no hay campo GF configurado) 2754 pisosWrap.innerHTML = ''; 2755 2756 const titulo = document.createElement('p'); 2757 titulo.style.cssText = 'font-size:14px;font-weight:600;color:#111827;margin:0 0 12px 0;'; 2758 titulo.textContent = T.cual_es_tu_vivienda; 2759 pisosWrap.appendChild(titulo); 2760
2761 inmuebles.forEach(item => { 2762 const label = buildLabel(item); 2763 2764 const opcion = document.createElement('label'); 2765 opcion.style.cssText = 'display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:13px;color:#374151;background:#fff;margin-bottom:6px;user-select:none;'; 2766 opcion.title = item.uso + ' · ' + item.sfc + ' m²'; 2767 2768 const radio = document.createElement('input'); 2769 radio.type = 'radio'; 2770 radio.name = 'hausum_piso'; 2771 radio.value = item.rc; 2772 radio.style.cssText = 'accent-color:#003e73;margin-top:2px;flex-shrink:0;'; 2773 2774 const texto = document.createElement('span'); 2775 texto.textContent = label; 2776 2777 radio.addEventListener('change', () => { 2778 pisosWrap.querySelectorAll('label').forEach(l => { 2779 l.style.borderColor = '#d1d5db'; 2780 l.style.background = '#fff'; 2781 l.style.color = '#374151'; 2782 }); 2783 opcion.style.borderColor = '#003e73'; 2784 opcion.style.background = '#eff6ff'; 2785 opcion.style.color = '#003e73'; 2786 2787 rellenarCampos(item, province); 2788 }); 2789 2790 opcion.appendChild(radio); 2791 opcion.appendChild(texto); 2792 pisosWrap.appendChild(opcion); 2793 }); 2794 2795 pisosWrap.style.display = 'block'; 2796 } 2797 2798 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2799 INIT 2800 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2801 function init() { 2802 form = document.getElementById('gform_' + FORM_ID); 2803 tipoField = findTipoField(); 2804 const dirInput = inputEl('direccion'); 2805 2806 if (!tipoField) { 2807 console.warn('[Hausum] No se encontró el campo "Sobre el inmueble". Fija su ID en FIELDS.tipo si la autodetección falla.'); 2808 } 2809 2810 // Página del formulario sin el bloque de dirección: solo restaurar datos 2811 if (!dirInput) { 2812 console.warn('[Hausum] No se encontró #input_' + FORM_ID + '_' + FIELDS.direccion + '. Revisa el ID en FIELDS.direccion â sin él no se activa el autocompletado.'); 2813 aplicarSesion(); 2814 aplicarVisibilidadInspeccion(); 2815 if (form && !form.dataset.hausumSync) { 2816 form.dataset.hausumSync = '1'; 2817 form.addEventListener('submit', sincronizarDuplicados, true); 2818 } 2819 return; 2820 } 2821 if (dirInput.dataset.hausumInit) return; 2822 dirInput.dataset.hausumInit = '1'; 2823 2824 const wrap = dirInput.parentNode; 2825 wrap.style.position = 'relative'; 2826 2827 dropdown = document.createElement('ul'); 2828 dropdown.id = 'hausum-dropdown'; 2829 dropdown.style.cssText = 'position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #d1d5db;border-top:none;border-radius:0 0 6px 6px;box-shadow:0 4px 12px rgba(0,0,0,0.1);list-style:none;margin:0;padding:0;z-index:9999;display:none;max-height:280px;overflow-y:auto;'; 2830 wrap.appendChild(dropdown); 2831 2832 pisosWrap = document.createElement('div'); 2833 pisosWrap.id = 'hausum-pisos'; 2834 pisosWrap.style.cssText = 'margin-top:16px;display:none;'; 2835 wrap.parentNode.insertBefore(pisosWrap, wrap.nextSibling); 2836 2837 resumenWrap = document.createElement('div'); 2838 resumenWrap.id = 'hausum-resumen'; 2839 // grid-column a ancho completo: el contenedor de campos de GF es un 2840 // grid, y un <div> suelto insertado dentro hereda el ancho de una 2841 // sola columna si no se le indica lo contrario. 2842 resumenWrap.style.cssText = 'display:none;grid-column:1 / -1;width:100%;box-sizing:border-box;'; 2843 // El resumen va DEBAJO del campo de superficie (m²). Si por lo que 2844 // sea no existe, cae al select de piso o al listado propio de radios. 2845 const superficieWrapEl = document.getElementById('field_' + FORM_ID + '_' + FIELDS.superficie); 2846 const pisoWrapEl = pisoFieldWrap(); 2847 if (superficieWrapEl) { 2848 superficieWrapEl.parentNode.insertBefore(resumenWrap, superficieWrapEl.nextSibling); 2849 } else if (pisoWrapEl) { 2850 pisoWrapEl.parentNode.insertBefore(resumenWrap, pisoWrapEl.nextSibling); 2851 } else { 2852 pisosWrap.parentNode.insertBefore(resumenWrap, pisosWrap.nextSibling); 2853 } 2854 2855 // Sincronizar IDs duplicados en cada envÃo (avance de página o 2856 // envÃo final). Fase de captura: se ejecuta antes de que el 2857 // navegador serialice el formulario. 2858 if (form && !form.dataset.hausumSync) { 2859 form.dataset.hausumSync = '1'; 2860 form.addEventListener('submit', sincronizarDuplicados, true); 2861 } 2862 2863 // Estado inicial del tipo (puede venir preseleccionado al volver atrás en el form) 2864 state.tipo = getTipoSeleccionado(); 2865 actualizarModo(); 2866 2867 if (tipoField) { 2868 tipoField.addEventListener('change', onTipoChange); 2869 tipoField.addEventListener('click', () => setTimeout(onTipoChange, 0)); 2870 } 2871 2872 // âââ Autocompletado de calle âââââââââââââââââââââââââââââââââ 2873 dirInput.addEventListener('input', function () { 2874 clearTimeout(debounce); 2875 2876 if (state.tipo === 'obra_nueva') { 2877 // Dirección libre: se copia tal cual al campo que viaja con el 2878 // formulario y se guarda en sesión para el recuadro de resumen 2879 // de la página de precios.
2880 setDirCompleta(this.value, '', ''); 2881 guardarDirSesion(this.value); 2882 actualizarBoton(); 2883 return; 2884 } 2885 if (!state.modoCatastro) return; 2886 2887 ocultarPisos(); 2888 state.selectedStreet = null; 2889 state.direccionBase = ''; 2890 state.pisoRc = null; 2891 actualizarBoton(); 2892 2893 // El campo 11 viaja a n8n: mantenerlo sincronizado con lo 2894 // escrito también cubre el modo manual (dirección no encontrada). 2895 setDirCompleta(this.value, '', ''); 2896 guardarDirSesion(this.value); 2897 2898 const q = this.value.trim(); 2899 if (q.length < 3) { cerrarDropdown(); return; } 2900 2901 debounce = setTimeout(() => { 2902 if (peticionAutocomplete) peticionAutocomplete.abort(); 2903 const ctrl = new AbortController(); 2904 peticionAutocomplete = ctrl; 2905 fetch(AUTOCOMPLETE_URL + '?q=' + encodeURIComponent(q), { signal: ctrl.signal }) 2906 .then(r => r.json()) 2907 .then(results => { 2908 dropdown.innerHTML = ''; 2909 if (!results || !results.length) { 2910 // Dirección no encontrada: superficie a mano 2911 dropdown.style.display = 'none'; 2912 activarManual(true); 2913 return; 2914 } 2915 activarManual(false); 2916 results.forEach(r => { 2917 const li = document.createElement('li'); 2918 li.style.cssText = 'padding:10px 14px;cursor:pointer;font-size:14px;border-bottom:1px solid #f3f4f6;color:#111827;background:#fff;'; 2919 li.textContent = r.address; 2920 li.addEventListener('mouseenter', () => li.style.background = '#f9fafb'); 2921 li.addEventListener('mouseleave', () => li.style.background = '#fff'); 2922 li.addEventListener('mousedown', (e) => { 2923 e.preventDefault(); 2924 dirInput.value = r.address; 2925 dropdown.style.display = 'none'; 2926 state.selectedStreet = r; 2927 state.direccionBase = r.address; 2928 if (r.type === 'portal' && r.refCatastral) { 2929 setInput(inputEl('cp'), r.postalCode, true); 2930 setSelect(inputEl('provincia'), r.province); 2931 bloquearSelect(inputEl('provincia'), true); 2932 setDirCompleta(r.address, r.postalCode, r.province); 2933 loadInmuebles(r.refCatastral, r.province); 2934 } 2935 }); 2936 dropdown.appendChild(li); 2937 }); 2938 dropdown.style.display = 'block'; 2939 }) 2940 .catch(err => { 2941 if (err.name === 'AbortError') return; 2942 dropdown.style.display = 'none'; 2943 activarManual(true); 2944 }); 2945 }, 350); 2946 }); 2947 2948 // âââ Resolución de portal al teclear el número âââââââââââââââ 2949 dirInput.addEventListener('keyup', function () { 2950 if (!state.modoCatastro) return; 2951 if (!state.selectedStreet || state.selectedStreet.type === 'portal') return; 2952 const val = this.value.trim(); 2953 if (!/\d+\s*$/.test(val)) return; 2954 2955 clearTimeout(debounce); 2956 debounce = setTimeout(() => { 2957 if (peticionPortal) peticionPortal.abort(); 2958 const ctrl = new AbortController(); 2959 peticionPortal = ctrl; 2960 fetch(PORTAL_URL + '?q=' + encodeURIComponent(val), { signal: ctrl.signal }) 2961 .then(r => r.json()) 2962 .then(portal => { 2963 if (!portal || !portal.refCatastral) return; 2964 state.direccionBase = portal.address || val; 2965 setInput(inputEl('cp'), portal.postalCode, true); 2966 setSelect(inputEl('provincia'), portal.province); 2967 bloquearSelect(inputEl('provincia'), true);
2968 setDirCompleta(state.direccionBase, portal.postalCode, portal.province); 2969 ocultarPisos(); 2970 loadInmuebles(portal.refCatastral, portal.province); 2971 }) 2972 .catch(() => {}); 2973 }, 600); 2974 }); 2975 2976 dirInput.addEventListener('blur', () => { 2977 setTimeout(() => { dropdown.style.display = 'none'; }, 150); 2978 }); 2979 2980 document.addEventListener('click', e => { 2981 if (!wrap.contains(e.target)) dropdown.style.display = 'none'; 2982 }); 2983 2984 // Superficie: guarda el tramo elegido en sesión â lo usa el precio 2985 // dinámico de las tarjetas de precio (página siguiente). guardarSesion() 2986 // ya lo hace en el flujo Catastro, pero en obra nueva el usuario elige 2987 // este campo a mano y ese cambio no pasaba por guardarSesion(). 2988 const supEl = inputEl('superficie'); 2989 if (supEl) supEl.addEventListener('change', () => { 2990 guardarM2Sesion(superficieSeleccionada()); 2991 actualizarBoton(); 2992 }); 2993 2994 // Select de GF "¿Cuál es tu vivienda?": oculto hasta resolver un 2995 // portal; al elegir opción se rellenan los campos técnicos. 2996 const pisoSel = inputEl('piso'); 2997 if (pisoSel && !pisoSel.dataset.hausumPiso) { 2998 pisoSel.dataset.hausumPiso = '1'; 2999 mostrarCampoPiso(false); 3000 pisoSel.addEventListener('change', function () { 3001 const opt = this.options[this.selectedIndex]; 3002 const rc = opt ? opt.getAttribute('data-rc') : ''; 3003 const item = state.inmuebles.find(i => i.rc === rc); 3004 if (item) { 3005 rellenarCampos(item, state.provincia); 3006 } else { 3007 state.pisoRc = null; 3008 if (resumenWrap) { resumenWrap.innerHTML = ''; resumenWrap.style.display = 'none'; } 3009 actualizarBoton(); 3010 } 3011 }); 3012 } else if (FIELDS.piso && !pisoSel) { 3013 console.warn('[Hausum] FIELDS.piso = ' + FIELDS.piso + ' pero no existe #input_' + FORM_ID + '_' + FIELDS.piso + '. Se usará el listado propio como fallback.'); 3014 } 3015 3016 // Al volver a esta página: reconstruir dirección + piso + resumen. 3017 // Si no habÃa nada que restaurar, aplicar la sesión como siempre. 3018 if (!restaurarPaso(dirInput)) aplicarSesion(); 3019 // Por si todas las páginas del form conviven en el mismo DOM 3020 // (según el modo de paginación), esto no molesta aunque los 3021 // wrappers 54/53/118 no existan en el contexto de esta página. 3022 aplicarVisibilidadInspeccion(); 3023 actualizarBoton(); 3024 } 3025 3026 /* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 3027 CICLO DE VIDA DE GRAVITY FORMS (multipágina + AJAX) 3028 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 3029 // Carga inicial: no depende de jQuery, asà que se ejecuta siempre, 3030 // sin importar en qué orden cargue el resto de scripts de la página. 3031 if (inputEl('direccion') || document.getElementById('gform_' + FORM_ID)) init(); 3032 3033 // Repinta tras cada paginación AJAX de Gravity Forms (requiere jQuery). 3034 // Se espera activamente a que jQuery exista en vez de asumir un orden 3035 // de carga concreto: algunos plugins de caché/optimización (defer/async) 3036 // rompen el orden de ejecución aunque el hook de PHP esté bien priorizado. 3037 (function esperarJQuery(intentos) { 3038 intentos = intentos || 0; 3039 if (window.jQuery) { 3040 // gform_page_loaded además de gform_post_render: algunas 3041 // transiciones de página (GP Page Transitions, sobre todo en 3042 // móvil) solo disparan la primera â sin ella no se reaplicarÃa 3043 // el bloqueo de los campos autorrellenados. 3044 jQuery(document).on('gform_post_render gform_page_loaded', function (event, formId) { 3045 if (formId != FORM_ID) return; 3046 3047 ['#hausum-dropdown', '#hausum-pisos', '#hausum-resumen', '#hausum-resumen-inspeccion'].forEach(sel => { 3048 const el = document.querySelector(sel); 3049 if (el) el.remove(); 3050 }); 3051 3052 const campo = inputEl('direccion'); 3053 if (campo) delete campo.dataset.hausumInit; 3054 3055 init(); 3056 }); 3057 return; 3058 } 3059 if (intentos > 100) { 3060 console.warn('[Hausum] jQuery nunca llegó a cargar (10s). La re-inicialización tras cambiar de página del formulario no funcionará.'); 3061 return; 3062 } 3063 setTimeout(() => esperarJQuery(intentos + 1), 100); 3064 })(); 3065 3066 })(); 3067 </script>
3067 3068 <div id="lightbox_form" class="white-popup mfp-hide"><div style="z-index: 104600; position: relative;"></div></div>
3068<script> 3069 jQuery(document).ready(function() { 3070 if (typeof jQuery.fn.magnificPopup !== "undefined") { 3071 jQuery(".lightbox_form_btn").magnificPopup({ 3072 items: { 3073 src: "#lightbox_form", 3074 type: "inline" 3075 }, 3076 type:"inline", 3077 }, 0); 3078 } 3079 }); 3080 </script>
3080 <!-- Global Floating WhatsApp Button --> 3081 <a href="https://wa.me/34930900232?text=%C2%A1Hola%20Hausum!" class="hsm-floating-wa" target="_blank" rel="noopener noreferrer" aria-label="Chat WhatsApp Hausum"> 3082 <span class="wa-tooltip">¿Dudas? Chat WhatsApp</span> 3083 <div class="wa-icon"> 3084 <svg viewBox="0 0 24 24" width="30" height="30" fill="#ffffff"><path d="M12 2C6.48 2 2 6.48 2 12c0 1.85.5 3.58 1.38 5.07L2 22l5.06-1.33A9.94 9.94 0 0 0 12 22c5.52 0 10-4.48 10-10S17.52 2 12 2zm0 18c-1.6 0-3.1-.43-4.4-1.18l-.32-.19-3.28.86.88-3.2-.21-.33A7.96 7.96 0 0 1 4 12c0-4.41 3.59-8 8-8s8 3.59 8 8-3.59 8-8 8zm4.4-5.88c-.24-.12-1.43-.7-1.65-.78-.22-.08-.38-.12-.54.12-.16.24-.62.78-.76.94-.14.16-.28.18-.52.06-.24-.12-1.01-.37-1.92-1.18-.71-.63-1.19-1.41-1.33-1.65-.14-.24-.01-.37.11-.49.11-.11.24-.28.36-.42.12-.14.16-.24.24-.4.08-.16.04-.3-.02-.42-.06-.12-.54-1.3-.74-1.78-.19-.46-.39-.4-.54-.4h-.46c-.16 0-.42.06-.64.3-.22.24-.84.82-.84 2s.86 2.32.98 2.48c.12.16 1.7 2.6 4.13 3.64.58.25 1.03.4 1.38.51.58.18 1.11.16 1.53.1.47-.07 1.43-.58 1.63-1.14.2-.56.2-1.04.14-1.14-.06-.1-.22-.16-.46-.28z"/></svg> 3085 </div> 3086 </a> 3087 3088 <style id="hsm-floating-wa-styles"> 3089 .hsm-floating-wa { 3090 position: fixed; 3091 bottom: 24px; 3092 right: 24px; 3093 z-index: 99995; 3094 display: flex; 3095 align-items: center; 3096 gap: 10px; 3097 text-decoration: none !important; 3098 transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1); 3099 } 3100 .hsm-floating-wa:hover { 3101 transform: translateY(-4px) scale(1.05); 3102 } 3103 .hsm-floating-wa .wa-icon { 3104 width: 58px; 3105 height: 58px; 3106 border-radius: 50%; 3107 background: linear-gradient(135deg, #25D366 0%, #128C7E 100%); 3108 display: flex; 3109 align-items: center; 3110 justify-content: center; 3111 box-shadow: 0 10px 28px rgba(37, 211, 102, 0.45), 0 2px 8px rgba(10, 30, 60, 0.3); 3112 position: relative; 3113 } 3114 .hsm-floating-wa .wa-icon::before { 3115 content: ''; 3116 position: absolute; 3117 inset: -2px; 3118 border-radius: 50%; 3119 background: #25D366; 3120 opacity: 0.5; 3121 animation: hsm-wa-pulse 2.4s infinite; 3122 z-index: -1; 3123 } 3124 @keyframes hsm-wa-pulse { 3125 0% { transform: scale(1); opacity: 0.5; } 3126 70% { transform: scale(1.48); opacity: 0; } 3127 100% { transform: scale(1.48); opacity: 0; } 3128 } 3129 .hsm-floating-wa .wa-tooltip { 3130 background: #0A1E3C; 3131 color: #ffffff; 3132 font-family: 'Aptos', 'Outfit', -apple-system, sans-serif; 3133 font-weight: 700; 3134 font-size: 13.5px; 3135 padding: 9px 16px; 3136 border-radius: 14px; 3137 box-shadow: 0 10px 24px rgba(10, 30, 60, 0.35); 3138 border: 1px solid rgba(46, 155, 255, 0.35); 3139 white-space: nowrap; 3140 opacity: 0; 3141 transform: translateX(12px); 3142 pointer-events: none; 3143 transition: opacity 0.22s ease, transform 0.22s ease; 3144 } 3145 .hsm-floating-wa:hover .wa-tooltip { 3146 opacity: 1; 3147 transform: translateX(0); 3148 } 3149 @media (max-width: 680px) { 3150 .hsm-floating-wa { 3151 display: none !important; 3152 } 3153 } 3154 </style> 3155
3155<script id="hsm-clean-code-leaks"> 3156 (function() { 3157 function cleanCodeLeaks() { 3158 var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false); 3159 var node; 3160 while (node = walker.nextNode()) { 3161 if (node.nodeValue && node.nodeValue.indexOf("fbq('track', 'Lead')") !== -1) { 3162 node.nodeValue = node.nodeValue.replace(/fbq\('track',\s*'Lead'\);?/g, ''); 3163 } 3164 } 3165 } 3166 if (document.readyState === 'loading') { 3167 document.addEventListener('DOMContentLoaded', cleanCodeLeaks); 3168 } else { 3169 cleanCodeLeaks(); 3170 } 3171 document.addEventListener('gform_page_loaded', cleanCodeLeaks); 3172 document.addEventListener('gform_post_render', cleanCodeLeaks); 3173 if (window.MutationObserver) { 3174 var observer = new MutationObserver(cleanCodeLeaks); 3175 observer.observe(document.body, { childList: true, subtree: true, characterData: true }); 3176 } 3177 })(); 3178 </script>
3178 3179 </body> 3180</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.