<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8">
		<meta name='robots' content='noindex, nofollow' />

	<!-- This site is optimized with the Yoast SEO plugin v28.4 - https://yoast.com/product/yoast-seo-wordpress/ -->
	<title>Página no encontrada - LoDigitalizo</title>
	<meta property="og:locale" content="es_ES" />
	<meta property="og:title" content="Página no encontrada - LoDigitalizo" />
	<meta property="og:site_name" content="LoDigitalizo" />
	<!-- / Yoast SEO plugin. -->


<link href='https://fonts.gstatic.com' crossorigin rel='preconnect' />
<link rel="alternate" type="application/rss+xml" title="LoDigitalizo &raquo; Feed" href="https://lodigitalizo.endesarrollo.site/feed/" />
<link rel="alternate" type="application/rss+xml" title="LoDigitalizo &raquo; Feed de los comentarios" href="https://lodigitalizo.endesarrollo.site/comments/feed/" />
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<link rel='stylesheet' id='hello-elementor-theme-style-css' href='https://lodigitalizo.endesarrollo.site/wp-content/themes/hello-elementor/assets/css/theme.css?ver=3.5.1' media='all' />
<link rel='stylesheet' id='jet-menu-hello-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-menu/integration/themes/hello-elementor/assets/css/style.css?ver=3.0.4' media='all' />
<link rel='stylesheet' id='menu-icons-extra-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/menu-icons/css/extra.min.css?ver=0.13.24' media='all' />
<style id="wp-emoji-styles-inline-css">

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
: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;--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}}
/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
</style>
<style id="wp-block-styles-placeholder-inline-css">
:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the block styles printed at wp_footer." }
/*# sourceURL=wp-block-styles-placeholder-inline-css */
</style>
<link rel='stylesheet' id='jet-engine-frontend-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-engine/assets/css/frontend.css?ver=3.8.14.3' media='all' />
<style id="wp-global-styles-placeholder-inline-css">
:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the global-styles printed at wp_footer." }
/*# sourceURL=wp-global-styles-placeholder-inline-css */
</style>
<link rel='stylesheet' id='hello-elementor-css' href='https://lodigitalizo.endesarrollo.site/wp-content/themes/hello-elementor/assets/css/reset.css?ver=3.5.1' media='all' />
<link rel='stylesheet' id='hello-elementor-header-footer-css' href='https://lodigitalizo.endesarrollo.site/wp-content/themes/hello-elementor/assets/css/header-footer.css?ver=3.5.1' media='all' />
<link rel='stylesheet' id='jet-menu-public-styles-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-menu/assets/public/css/public.css?ver=3.0.4' media='all' />
<link rel='stylesheet' id='jet-popup-frontend-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-popup/assets/css/jet-popup-frontend.css?ver=2.2.2' media='all' />
<link rel='stylesheet' id='elementor-frontend-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='widget-icon-list-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/css/widget-icon-list.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='widget-image-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/css/widget-image.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='widget-icon-box-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/css/widget-icon-box.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='fmmm-multicolumn-menu-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-multicolumn-menu/assets/css/multicolumn-menu.css?ver=1.1.3' media='all' />
<link rel='stylesheet' id='widget-heading-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/css/widget-heading.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='e-animation-grow-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/lib/animations/styles/e-animation-grow.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='widget-mega-menu-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/css/widget-mega-menu.min.css?ver=4.2.2' media='all' />
<link rel='stylesheet' id='e-sticky-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/css/modules/sticky.min.css?ver=4.2.2' media='all' />
<link rel='stylesheet' id='widget-nav-menu-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/css/widget-nav-menu.min.css?ver=4.2.2' media='all' />
<link rel='stylesheet' id='widget-off-canvas-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/css/widget-off-canvas.min.css?ver=4.2.2' media='all' />
<link rel='stylesheet' id='elementor-post-13629-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-13629.css?ver=1788891666' media='all' />
<link rel='stylesheet' id='widget-social-icons-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/css/widget-social-icons.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='e-apple-webkit-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/css/conditionals/apple-webkit.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='e-animation-fadeIn-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/lib/animations/styles/fadeIn.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='e-popup-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/css/conditionals/popup.min.css?ver=4.2.2' media='all' />
<link rel='stylesheet' id='widget-form-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/css/widget-form.min.css?ver=4.2.2' media='all' />
<link rel='stylesheet' id='elementor-post-16367-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-16367.css?ver=1788891666' media='all' />
<link rel='stylesheet' id='jet-tabs-frontend-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-tabs/assets/css/jet-tabs-frontend.css?ver=2.3.3' media='all' />
<link rel='stylesheet' id='swiper-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/lib/swiper/v8/css/swiper.min.css?ver=8.4.5' media='all' />
<link rel='stylesheet' id='jet-tricks-frontend-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-tricks/assets/css/jet-tricks-frontend.css?ver=2.0.1' media='all' />
<link rel='stylesheet' id='font-awesome-5-all-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/lib/font-awesome/css/all.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='font-awesome-4-shim-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/lib/font-awesome/css/v4-shims.min.css?ver=4.2.4' media='all' />
<link rel='stylesheet' id='elementor-post-26506-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-26506.css?ver=1788891667' media='all' />
<link rel='stylesheet' id='elementor-post-26871-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-26871.css?ver=1788891667' media='all' />
<link rel='stylesheet' id='elementor-post-26900-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-26900.css?ver=1788891667' media='all' />
<link rel='stylesheet' id='elementor-post-26923-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-26923.css?ver=1788891667' media='all' />
<link rel='stylesheet' id='elementor-post-786-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-786.css?ver=1788891667' media='all' />
<link rel='stylesheet' id='elementor-post-5035-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-5035.css?ver=1788891668' media='all' />
<link rel='stylesheet' id='elementor-post-27521-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-27521.css?ver=1788891667' media='all' />
<link rel='stylesheet' id='elementor-post-11662-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-11662.css?ver=1788891667' media='all' />
<link rel='stylesheet' id='elementor-post-10550-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/post-10550.css?ver=1788891667' media='all' />
<link rel='stylesheet' id='jet-smart-filters-css' href='https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-smart-filters/assets/css/public.css?ver=3.8.5' media='all' />
<style id="jet-smart-filters-inline-css">

				.jet-filter {
					--tabindex-color: #0085f2;
					--tabindex-shadow-color: rgba(0,133,242,0.4);
				}
			
/*# sourceURL=jet-smart-filters-inline-css */
</style>
<link rel='stylesheet' id='elementor-gf-local-poppins-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/google-fonts/css/poppins.css?ver=1788889779' media='all' />
<link rel='stylesheet' id='elementor-gf-local-inter-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/google-fonts/css/inter.css?ver=1788889786' media='all' />
<link rel='stylesheet' id='elementor-gf-local-plusjakartasans-css' href='https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/google-fonts/css/plusjakartasans.css?ver=1788889787' media='all' />
<script id="jquery-core-js" src="https://lodigitalizo.endesarrollo.site/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
<script id="jquery-migrate-js" src="https://lodigitalizo.endesarrollo.site/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
<script id="font-awesome-4-shim-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/lib/font-awesome/js/v4-shims.min.js?ver=4.2.4"></script>
<link rel="https://api.w.org/" href="https://lodigitalizo.endesarrollo.site/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://lodigitalizo.endesarrollo.site/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 7.1" />
<meta name="ti-site-data" content="eyJyIjoiMTowITc6MCEzMDoxIiwibyI6Imh0dHBzOlwvXC9sb2RpZ2l0YWxpem8uZW5kZXNhcnJvbGxvLnNpdGU/dGktb25saW5lLXVzZXJzLWdvb2dsZT0xJmFtcDtwPSUyRndwLWNvbnRlbnQlMkZ1cGxvYWRzJTJGZWxlbWVudG9yJTJGY3NzJTJGcG9zdC03NjkuY3NzJTNGdmVyJTNEMTc4ODg5MTU4MCZhbXA7X3dwbm9uY2U9ZjNkYjU5ZTk2MCJ9" /><meta name="generator" content="Elementor 4.2.4; features: e_font_icon_svg, additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-swap">
<meta name="msvalidate.01" content="45B6EDA942BF5C2BD8AE387753B25753" />
<!-- Event snippet for Enviar whatsapp conversion page
In your html page, add the snippet and call gtag_report_conversion when someone clicks on the chosen link or button. -->
<script>
function gtag_report_conversion(url) {
  var callback = function () {
    if (typeof(url) != 'undefined') {
      window.location = url;
    }
  };
  gtag('event', 'conversion', {
      'send_to': 'AW-380527120/ue0yCLurxboYEJDEubUB',
      'event_callback': callback
  });
  return false;
}
</script>

<style>
@media (min-width: 1025px) {

/* Ancla: sin cambiar display; el alto lo decide el tema */
.menu-swap-updown .elementor-nav-menu a.elementor-item{
  position: relative;
}

/* Caja que conserva ancho/alto en layout */
.menu-swap-updown .elementor-nav-menu a.elementor-item .swap-box{
  position: relative;
  display: inline-block;
  vertical-align: middle;
}

/* Medidor: ocupa espacio (ancho/alto) pero no se ve */
.menu-swap-updown .elementor-nav-menu a.elementor-item .swap-measure{
  visibility: hidden;
  white-space: nowrap;
}

/* Capa animada: absoluta; su altura real llega por variable --h */
.menu-swap-updown .elementor-nav-menu a.elementor-item .swap-wrap{
  position: absolute;
  inset: 0;
  height: unset!important; /* altura real de línea medida en JS */
  overflow: hidden;
  pointer-events: none;
}

/* Capas de texto superpuestas (sin “nudge” ni inventos) */
.menu-swap-updown .elementor-nav-menu a.elementor-item .swap-line{
  position: absolute;
  left: 0;
  top: 0;
  white-space: nowrap;
  transform: translateY(0);
  transition: transform .5s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
  z-index: 0;
}

/* Línea alternativa: arranca exactamente debajo, con overshoot medido */
.menu-swap-updown .elementor-nav-menu a.elementor-item .swap-line.alt{
  color: var(--menu-swap-hover, #ADADAD);
  transform: translateY(calc(var(--h, 1em) + var(--overshoot, 0px)));
}

/* Flecha */
.menu-swap-updown .elementor-nav-menu .sub-arrow{
  position: relative;
  z-index: 1;
  margin-left: .4em;
  vertical-align: middle;
}

/* Hover en <li>: mueve según altura real + overshoot */
.menu-swap-updown .elementor-nav-menu li.menu-item:hover > a.elementor-item .swap-line.base,
.menu-swap-updown .elementor-nav-menu li.menu-item:focus-within > a.elementor-item .swap-line.base{
  transform: translateY(calc((var(--h, 1em) + var(--overshoot, 0px)) * -1));
}
.menu-swap-updown .elementor-nav-menu li.menu-item:hover > a.elementor-item .swap-line.alt,
.menu-swap-updown .elementor-nav-menu li.menu-item:focus-within > a.elementor-item .swap-line.alt{
  transform: translateY(0);
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce){
  .menu-swap-updown .elementor-nav-menu a.elementor-item .swap-line{ transition: none; }
}

/* ===== Tu flecha personalizada: lo dejo igual ===== */
.menu-swap-updown .elementor-nav-menu--dropdown .sub-arrow {
  position: absolute !important;
  right: 1.2em !important;
  top: 50% !important;
  transform: translateY(-50%) rotate(45deg) !important;
  transform-origin: center center !important;
  width: 1em !important;
  height: 1em !important;
  display: inline-block !important;
  vertical-align: middle !important;
  margin: 0 !important;
  z-index: 2 !important;
}
.menu-swap-updown .elementor-nav-menu--dropdown .sub-arrow i {
  font-size: 0 !important;
  line-height: 0 !important;
  opacity: 0 !important;
  color: transparent !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
}
.menu-swap-updown .elementor-nav-menu--dropdown .sub-arrow i::before { content: "" !important; }
@supports ((-webkit-mask: url("https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/")) or (mask: url(""))) {
  .menu-swap-updown .elementor-nav-menu--dropdown .sub-arrow {
    -webkit-mask: url(https://lodigitalizo.endesarrollo.site/wp-content/uploads/2023/10/flecha-boton.svg) center / contain no-repeat;
    mask: url(https://lodigitalizo.endesarrollo.site/wp-content/uploads/2023/10/flecha-boton.svg) center / contain no-repeat;
    background-color: #fff !important;
    background-image: none !important;
    filter: none !important;
  }
}
@supports not ((-webkit-mask: url("https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/")) or (mask: url(""))) {
  .menu-swap-updown .elementor-nav-menu--dropdown .sub-arrow {
    background: center / contain no-repeat url(https://lodigitalizo.endesarrollo.site/wp-content/uploads/2023/10/flecha-boton.svg) !important;
    filter: brightness(0) invert(1) !important;
  }
}
.menu-swap-updown .elementor-nav-menu--dropdown a.elementor-item { position: relative !important; }

} /* @media min-width */
</style>

<script>
(function(){
  function initMenuSwap(){
    if (window.innerWidth < 1025) return; // sólo desktop

    const root = document.querySelector('.menu-swap-updown');
    if (!root) return;

    const links = root.querySelectorAll('.elementor-nav-menu a.elementor-item');

    links.forEach(a => {
      if (a.querySelector('.swap-box')) return;

      // 1) Texto plano del anchor (no tocar íconos/flechas)
      const textNodes = [];
      a.childNodes.forEach(n => {
        if (n.nodeType === Node.TEXT_NODE && n.textContent.trim()) textNodes.push(n);
      });
      if (!textNodes.length) return;

      const label = textNodes.map(n => n.textContent).join(' ').trim();
      if (!label) return;

      // 2) Construcción DOM
      const box = document.createElement('span');
      box.className = 'swap-box';

      const measure = document.createElement('span');
      measure.className = 'swap-measure';
      measure.textContent = label;

      const wrap = document.createElement('span');
      wrap.className = 'swap-wrap';

      const base = document.createElement('span');
      base.className = 'swap-line base';
      base.textContent = label;

      const alt = document.createElement('span');
      alt.className = 'swap-line alt';
      alt.textContent = label;

      wrap.appendChild(base);
      wrap.appendChild(alt);
      box.appendChild(measure);
      box.appendChild(wrap);

      const firstText = textNodes[0];
      firstText.parentNode.insertBefore(box, firstText);
      textNodes.forEach(n => n.parentNode.removeChild(n));

      // 3) Medición real y seteo de variables por ítem
      //    - Altura real de línea (line-height efectivo)
      //    - Overshoot proporcional a font-size (evita cortes de g/p/y)
      const cs = window.getComputedStyle(a);
      const fontSize = parseFloat(cs.fontSize) || 16;
      // Forzamos un reflow para que measure tenga su altura correcta
      const h = measure.getBoundingClientRect().height || fontSize * 1.2;

      // Variables por-ítem (en px) para evitar desfasajes
      box.style.setProperty('--h', h + 'px');
      box.style.setProperty('--overshoot', Math.round(fontSize * 0.15) + 'px');
    });
  }

  document.addEventListener('DOMContentLoaded', initMenuSwap);
})();
</script>

<style>
/* ===== Imagen a la derecha (simple, sin efectos) ===== */
.swap-tab-image{
  min-height: 360px;               /* ajustá si querés */
  background: #0b0f14 center/cover no-repeat;
}
</style>

<script>
/* ============================================================
 * SwapTabImage — versión simple (sin fade, sin capas)
 * - Mapeo por acordeón vía JSON (<script type="application/json" class="sti-map">).
 * - Cambia el background instantáneamente.
 * - Sin eval / Function / innerHTML.
 * ============================================================ */
(function(){
  'use strict';

  var scanScheduled = false;
  var scanTimer = null;
  var stateMap = typeof WeakMap !== 'undefined' ? new WeakMap() : null;

  function qsa(root, sel){ return Array.prototype.slice.call(root.querySelectorAll(sel)); }

  function raf(fn){
    if (typeof window.requestAnimationFrame === 'function'){ window.requestAnimationFrame(fn); }
    else { setTimeout(fn, 16); }
  }

  function scheduleScan(){
    if (scanScheduled) return;
    scanScheduled = true;
    raf(function(){
      if (scanTimer) clearTimeout(scanTimer);
      scanTimer = setTimeout(function(){
        scanScheduled = false;
        scanAll();
      }, 40);
    });
  }

  /* ----- leer mapeo manual ----- */
  function readMapFromJSON(scope){
    try{
      var node = scope.querySelector('script.sti-map[type="application/json"]');
      if(!node) return null;
      var txt = node.textContent || node.innerText || '';
      if(!txt || !txt.trim()) return null;
      var obj = JSON.parse(txt);
      return (obj && typeof obj === 'object') ? obj : null;
    }catch(e){ return null; }
  }
  function readMapFromDataAttrs(scope){
    var map = {};
    if(!scope || !scope.attributes) return null;
    for (var i=0; i<scope.attributes.length; i++){
      var a = scope.attributes[i];
      if (a && a.name && a.name.indexOf('data-sti-') === 0){
        var id = a.name.replace('data-sti-','').trim();
        if (id) map[id] = a.value;
      }
    }
    return Object.keys(map).length ? map : null;
  }
  function getMap(scope){
    return readMapFromJSON(scope) || readMapFromDataAttrs(scope) || {};
  }

  /* ----- detectar tab activa (JetAccordion) ----- */
  function getActiveId(scope){
    var ctrl = scope.querySelector('.jet-toggle__control[aria-expanded="true"]');
    if (ctrl && ctrl.id) return ctrl.id;
    var active = scope.querySelector('.jet-accordion__item.active-toggle > .jet-toggle__control');
    if (active && active.id) return active.id;
    return null;
  }

  function getState(col){
    var st = stateMap ? stateMap.get(col) : (col._stiState || null);
    if(!st){
      st = { lastUrl: null };
      if(stateMap) stateMap.set(col, st);
      else col._stiState = st;
    }
    return st;
  }

  /* ----- aplicar imagen (instantáneo) ----- */
  function applyImage(col, url){
    if(!col || !url) return;
    var st = getState(col);
    if (st.lastUrl === url) return;           // no toques si no cambió
    col.style.backgroundImage = 'url("https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/' + url.replace(/"/g,'\\"') + '")';
    st.lastUrl = url;
  }

  function updateScope(scope){
    var col = scope.querySelector('.swap-tab-image');
    if(!col) return;

    var map = getMap(scope);
    var id = getActiveId(scope);
    if(!id) return;

    var url = map[id];
    if(!url) return;

    applyImage(col, url);
  }

  function scanAll(){
    qsa(document, '.swap-scope').forEach(updateScope);
  }

  /* ----- listeners ----- */
  document.addEventListener('click', scheduleScan, false);
  document.addEventListener('keydown', function(e){
    var k = e && e.key;
    if(k === 'Enter' || k === ' ' || k === 'Spacebar' ||
       k === 'ArrowUp' || k === 'ArrowDown' || k === 'ArrowLeft' || k === 'ArrowRight' ||
       k === 'Home' || k === 'End'){
      scheduleScan();
    }
  }, false);

  var mo = new MutationObserver(scheduleScan);
  mo.observe(document.documentElement, {
    subtree: true,
    childList: true,
    attributes: true,
    attributeFilter: ['aria-expanded','class']
  });

  if(document.readyState === 'loading'){
    document.addEventListener('DOMContentLoaded', scanAll, false);
  } else {
    scanAll();
  }
  window.addEventListener('load', scanAll, false);
})();
</script>

<script>
(function(){
  'use strict';

  // Utilidades locales
  function qsa(root, sel){ return Array.prototype.slice.call(root.querySelectorAll(sel)); }
  function readMapFromJSON(scope){
    try{
      var node = scope.querySelector('script.sti-map[type="application/json"]');
      if(!node) return null;
      var txt = node.textContent || node.innerText || '';
      if(!txt || !txt.trim()) return null;
      var obj = JSON.parse(txt);
      return (obj && typeof obj === 'object') ? obj : null;
    }catch(e){ return null; }
  }
  function readMapFromDataAttrs(scope){
    var map = {};
    if(!scope || !scope.attributes) return null;
    for (var i=0; i<scope.attributes.length; i++){
      var a = scope.attributes[i];
      if (a && a.name && a.name.indexOf('data-sti-') === 0){
        var id = a.name.replace('data-sti-','').trim();
        if (id) map[id] = a.value;
      }
    }
    return Object.keys(map).length ? map : null;
  }
  function getMap(scope){
    return readMapFromJSON(scope) || readMapFromDataAttrs(scope) || {};
  }

  // Inserta o actualiza la <img> dentro del panel
  function ensurePanelImage(panelInner, url){
    if(!panelInner || !url) return;
    var fig = panelInner.querySelector('.sti-content-figure');
    if(!fig){
      fig = document.createElement('figure');
      fig.className = 'sti-content-figure';
      var img = document.createElement('img');
      img.className = 'sti-content-img';
      img.setAttribute('decoding','async');
      img.setAttribute('loading','lazy');
      img.setAttribute('alt','');
      fig.appendChild(img);
      panelInner.appendChild(fig);
    }
    var imgEl = fig.querySelector('img');
    if(imgEl && imgEl.getAttribute('src') !== url){
      imgEl.setAttribute('src', url);
    }
  }

  // Recorre un scope y mapea cada control id -> panel -> imagen
  function updateScope(scope){
    var map = getMap(scope);
    if(!map) return;

    // Cada entrada del JSON: key = id del control, value = URL imagen
    Object.keys(map).forEach(function(id){
      // Buscar el control exacto por ID dentro del scope
      // CSS.escape puede no existir en navegadores viejos; asumimos moderno
      var sel = '.jet-toggle__control#' + (window.CSS && CSS.escape ? CSS.escape(id) : id);
      var ctrl = scope.querySelector(sel);
      if(!ctrl) return;

      var contentId = ctrl.getAttribute('aria-controls');
      if(!contentId) return;

      var panel = document.getElementById(contentId);
      if(!panel) return;

      // JetEngine suele tener .jet-toggle__content-inner
      var inner = panel.querySelector('.jet-toggle__content-inner') || panel;
      ensurePanelImage(inner, map[id]);
    });
  }

  function scanAll(){
    qsa(document, '.swap-scope').forEach(updateScope);
  }

  // Primera pasada e integraciones con cambios del acordeón
  if(document.readyState === 'loading'){
    document.addEventListener('DOMContentLoaded', scanAll, false);
  } else {
    scanAll();
  }
  window.addEventListener('load', scanAll, false);

  // Si Jet re-renderiza, volvemos a asegurar
  var mo = new MutationObserver(function(){
    scanAll();
  });
  mo.observe(document.documentElement, {
    subtree:true, childList:true, attributes:true,
    attributeFilter:['aria-controls'] // y en general cualquier cambio de DOM
  });

  // También al interactuar
  document.addEventListener('click', scanAll, false);
})();
</script>


<style>
@media (pointer: fine) {
  /* No ocultamos el cursor nativo por defecto */
  body.fx-hide-cursor { cursor: none; }

  /* ===== BASE ===== */
  .fx-cursor{
    position: fixed;
    left:0; top:0;
    width:20px; height:20px; /* tamaño base, los estados lo cambian */
    margin-left:-10px;
    margin-top:-10px;
    z-index:99999;
    pointer-events:none;
    mix-blend-mode:normal;
    will-change: transform, width, height, background-image, background-color, opacity;
    transform: translate3d(0,0,0);
    display:none;              /* oculto por defecto */
    opacity:1;
    transition:
      width .18s cubic-bezier(.22,.61,.36,1),
      height .18s cubic-bezier(.22,.61,.36,1),
      background-color .18s linear,
      opacity .12s linear;
  }
  .fx-cursor.is-active{ display:block; }

  .fx-cursor__core{
    width:100%; height:100%;
    background:transparent;     /* sin círculo base */
    border-radius:0;
    background-repeat:no-repeat;
    background-position:center;
    background-size:80% 80%;
    transition: transform .18s cubic-bezier(.22,.61,.36,1), filter .18s linear;
  }

  /* ===== Estados icono estándar (40px) ===== */
  .fx-cursor.is-icon-40{
    width:40px; height:40px;
    margin-left:-20px;
    margin-top:-20px;
  }

  /* .icono-ver (40px) */
  .fx-cursor.is-ver .fx-cursor__core{
    background-color:transparent;
    background-image:var(--wpr-bg-36622871-542d-4eb9-bb2e-44288e5ae129);
    background-size:contain;
    border-radius:0;
    width:80px; height:80px; /* según tu versión previa */
  }

  /* Links (40px) */
  .fx-cursor.is-link .fx-cursor__core{
    background-color:transparent;
    background-image:var(--wpr-bg-117ba868-cce1-4437-9784-2ca544f7c45c);
    background-size:contain;
    border-radius:0;
  }

  /* ===== Estados icono grandes (80px) ===== */
  .fx-cursor.is-icon-80{
    width:80px; height:80px;
    margin-left:-40px;
    margin-top:-40px;
  }

  /* Scroll (80px) — blur + borde + icono más chico */
  .fx-cursor.is-scroll .fx-cursor__core{
    background-image:var(--wpr-bg-deae0527-cc01-4a02-83c9-910aeafe02b4);
    background-size:56% 56%;
    background-position:center;
    background-repeat:no-repeat;

    background-color: rgba(255,255,255,0.06);
    border-radius:50%;
    border: 1px solid var(--e-global-color-065d313);
    box-shadow: inset 0 4px 8px rgba(218, 218, 218, 0.25);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  /* Video (80px) — igual que scroll, ícono más chico */
  .fx-cursor.is-video .fx-cursor__core{
    background-image:var(--wpr-bg-1afa953a-c473-4e18-9194-6d6575b9005e);
    background-size:44% 44%;
    background-position:center;
    background-repeat:no-repeat;

    background-color: rgba(255,255,255,0.06);
    border-radius:50%;
    border: 1px solid var(--e-global-color-065d313);
    box-shadow: inset 0 4px 8px rgba(218, 218, 218, 0.25);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  /* Hooks opcionales (pueden usarse si querés decoraciones) */
  .fx-cursor.is-scroll::before,
  .fx-cursor.is-scroll::after,
  .fx-cursor.is-video::before,
  .fx-cursor.is-video::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
  }

  .fx-cursor.is-hidden{ opacity:0; }
}

/* (Opcional) Apagar en <=1024px
@media (max-width:1024px){
  .fx-cursor{display:none!important}
  body.fx-hide-cursor{cursor:auto}
}
*/
</style>

<script>
(function(){
  if (window.matchMedia && window.matchMedia('(pointer: coarse)').matches) return;

  function ready(fn){
    if (document.readyState === 'complete' || document.readyState === 'interactive') { setTimeout(fn,0); }
    else { document.addEventListener('DOMContentLoaded', fn); }
  }

  ready(function init(){
    if (!document.body){ window.addEventListener('load', init, { once:true }); return; }

    // ===== Selectores =====
    var SEL_SCROLL = '.slick-track';
    var SEL_VER    = '.icono-ver';
    var SEL_LINK   = 'a, [role="link"], button[onclick], .is-link, .icono-proyecto, .force-link, iframe';
    // IMPORTANTE: .video-icon debe envolver el video/iframe y su overlay nativo de Elementor
    var SEL_VIDEO_WRAPPER = '.video-icon';
    // Overlays más comunes de Elementor
    var SEL_OVERLAY = '.elementor-custom-embed-image-overlay, .elementor-video__overlay';

    // ===== Helpers =====
    function isVisible(el){
      if (!el) return false;
      var st = window.getComputedStyle(el);
      return st.visibility !== 'hidden' && st.display !== 'none' && parseFloat(st.opacity || '1') > 0.01;
    }

    function nearest(el, selector){
      return el && el.closest ? el.closest(selector) : null;
    }

    // Devuelve true solo si el wrapper de video está "hovereable":
    // 1) overlay visible, o
    // 2) video HTML5 en pausa
    function videoHoverableFrom(el){
      var wrap = nearest(el, SEL_VIDEO_WRAPPER);
      if (!wrap) return false;

      // Caso overlay de Elementor visible
      var overlay = wrap.querySelector(SEL_OVERLAY);
      if (overlay && isVisible(overlay)) return true;

      // Caso video HTML5 en pausa
      var vid = wrap.querySelector('video');
      if (vid) return vid.paused;

      // Si es iframe (YouTube/Vimeo) sin overlay visible, asumimos que está reproduciendo
      // por lo que NO mostramos el icono.
      return false;
    }

    // Marcar playing/paused en contenedores con <video>
    function wireVideoStateFlags(root){
      var videos = (root || document).querySelectorAll(SEL_VIDEO_WRAPPER + ' video');
      videos.forEach(function(v){
        var wrap = nearest(v, SEL_VIDEO_WRAPPER);
        if (!wrap) return;

        function setFlag(){
          if (v.paused) { wrap.dataset.playing = '0'; }
          else { wrap.dataset.playing = '1'; }
        }
        v.addEventListener('play', setFlag);
        v.addEventListener('pause', setFlag);
        v.addEventListener('ended', setFlag);
        setFlag();
      });
    }

    // Observar cambios de overlay para iframes de Elementor
    var mo = new MutationObserver(function(){
      // No necesitamos hacer nada específico aquí, el computeState lo evalúa en vivo.
    });
    document.querySelectorAll(SEL_VIDEO_WRAPPER).forEach(function(w){
      var overlay = w.querySelector(SEL_OVERLAY);
      if (overlay) mo.observe(overlay, { attributes:true, attributeFilter:['style','class'], subtree:false });
    });

    // ===== Crear DOM cursor =====
    var cursor = document.createElement('div');
    cursor.className = 'fx-cursor';
    cursor.setAttribute('aria-hidden','true');

    var core = document.createElement('div');
    core.className = 'fx-cursor__core';
    cursor.appendChild(core);

    document.body.appendChild(cursor);

    // ===== Movimiento =====
    function moveTo(x,y){
      cursor.style.transform = 'translate3d(' + x + 'px,' + y + 'px,0)';
    }

    // ===== Estados =====
    var lastState = 'off';

    function computeStateFrom(el){
      if (!el) return 'off';

      // 1) Excluir dots de slick
      if (el.closest && el.closest('.jet-slick-dots, .jet-slick-dots *')) return 'off';

      // 2) Video icon solo si corresponde
      if (videoHoverableFrom(el)) return 'video';

      // 3) Otros estados
      if (el.closest && el.closest(SEL_VER))    return 'ver';
      if (el.closest && el.closest(SEL_LINK))   return 'link';
      if (el.closest && el.closest(SEL_SCROLL)) return 'scroll';

      return 'off';
    }

    function applyState(newState){
      if (newState === lastState) return;

      cursor.classList.remove(
        'is-active','is-icon-40','is-icon-80',
        'is-ver','is-link','is-scroll','is-video','is-hidden'
      );
      document.body.classList.remove('fx-hide-cursor');

      if (newState === 'off'){
        lastState = 'off';
        return;
      }

      document.body.classList.add('fx-hide-cursor');
      cursor.classList.add('is-active');

      switch(newState){
        case 'video':  cursor.classList.add('is-icon-80','is-video');  break;
        case 'scroll': cursor.classList.add('is-icon-80','is-scroll'); break;
        case 'ver':    cursor.classList.add('is-icon-40','is-ver');    break;
        case 'link':   cursor.classList.add('is-icon-40','is-link');   break;
      }
      lastState = newState;
    }

    // ===== Listeners =====
    document.addEventListener('mousemove', function(e){
      moveTo(e.clientX, e.clientY);
      if (cursor.classList.contains('is-hidden')) cursor.classList.remove('is-hidden');
      applyState(computeStateFrom(document.elementFromPoint(e.clientX, e.clientY)));
    }, { passive:true });

    document.addEventListener('mouseover', function(e){
      applyState(computeStateFrom(e.target));
    }, { passive:true });

    document.addEventListener('mouseout', function(e){
      var el = document.elementFromPoint(e.clientX, e.clientY);
      applyState(computeStateFrom(el));
    }, { passive:true });

    // Respeto a reduced motion
    try{
      if (window.matchMedia('(prefers-reduced-motion: reduce)').matches){
        cursor.style.transition = 'none';
        core.style.transition = 'none';
      }
    }catch(_){}

    // Inicializar flags de <video>
    wireVideoStateFlags(document);

    // Rewire en mutaciones grandes por si Elementor re-renderiza
    var rootMo = new MutationObserver(function(muts){
      var needWire = muts.some(function(m){
        return Array.from(m.addedNodes || []).some(function(n){
          return n.nodeType === 1 && (n.matches && n.matches(SEL_VIDEO_WRAPPER + ' video') || (n.querySelector && n.querySelector(SEL_VIDEO_WRAPPER + ' video')));
        });
      });
      if (needWire) wireVideoStateFlags(document);
    });
    rootMo.observe(document.documentElement, { childList:true, subtree:true });
  });
})();
</script>

<style>
/* ===== Accordion responsive (≤1024px) ===== */
@media (max-width: 1024px) {
  .contenido-servicio {
    display: none;
  }
  .caja-servicio.is-open > .contenido-servicio {
    display: block;
  }

  /* Opcional: cursor y transición suave */
  .caja-servicio { cursor: pointer; }
  .contenido-servicio {
    transition: opacity .2s ease;
    opacity: 0;
  }
  .caja-servicio.is-open > .contenido-servicio {
    opacity: 1;
  }
}
/* En >1024px no tocamos nada: usa tu layout/estilos actuales */
</style>

<script>
(function () {
  const mq = window.matchMedia('(max-width: 1024px)');
  let cajas = [];

  function setAria(box, isOpen) {
    box.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
  }

  function closeAll(except) {
    cajas.forEach((box) => {
      if (box !== except) {
        box.classList.remove('is-open');
        setAria(box, false);
      }
    });
  }

  function toggleBox(box) {
    const willOpen = !box.classList.contains('is-open');
    if (willOpen) {
      closeAll(box);
      box.classList.add('is-open');
      setAria(box, true);
    } else {
      box.classList.remove('is-open');
      setAria(box, false);
    }
  }

  function enableMobileBehavior() {
    if (!cajas.some(b => b.classList.contains('is-open')) && cajas[0]) {
      cajas[0].classList.add('is-open');
      setAria(cajas[0], true);
    }
    cajas.forEach((box) => {
      box.setAttribute('role', 'button');
      box.tabIndex = 0;
      if (!box.__svcBound) bindListeners(box);
      box.__svcBound = true;
    });
  }

  function disableMobileBehavior() {
    cajas.forEach((box) => {
      box.removeAttribute('role');
      box.removeAttribute('aria-expanded');
      box.removeAttribute('tabindex');
    });
  }

  function bindListeners(box) {
    box.addEventListener('click', (e) => {
      if (!mq.matches) return;
      // 🔹 Ignorar clics dentro de .link-accordion
      if (e.target.closest('.link-accordion')) return;
      toggleBox(box);
    });

    box.addEventListener('keydown', (e) => {
      if (!mq.matches) return;
      if (e.key === 'Enter' || e.key === ' ') {
        e.preventDefault();
        toggleBox(box);
      }
    });
  }

  function onMQChange(e) {
    if (e.matches) {
      enableMobileBehavior();
    } else {
      disableMobileBehavior();
    }
  }

  document.addEventListener('DOMContentLoaded', () => {
    cajas = Array.from(document.querySelectorAll('.caja-servicio'));
    if (cajas.length === 0) return;

    if (mq.matches) enableMobileBehavior();
    else disableMobileBehavior();

    if (mq.addEventListener) mq.addEventListener('change', onMQChange);
    else mq.addListener(onMQChange);
  });
})();
</script>

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B3JDQMNQRD"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-B3JDQMNQRD');
</script>
<style>
@media (min-width: 1025px) {

  /* =========================================================
     MENU SWAP UP / DOWN
     Elementor Nested Menu / Mega Menu
  ========================================================= */

  .menu-swap-updown
  .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title
  .e-n-menu-title-text {
    position: relative;
  }


  /* Caja que mantiene las dimensiones originales del texto */
  .menu-swap-updown .swap-box {
    position: relative;
    display: inline-block;
    vertical-align: middle;
  }


  /* Texto invisible usado solamente para medir */
  .menu-swap-updown .swap-measure {
    visibility: hidden;
    white-space: nowrap;
  }


  /* Ventana que recorta las dos líneas */
  .menu-swap-updown .swap-wrap {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
  }


  /* Líneas de texto */
  .menu-swap-updown .swap-line {
    position: absolute;
    left: 0;
    top: 0;

    white-space: nowrap;

    transform: translateY(0);

    transition:
      transform .5s cubic-bezier(.22,.61,.36,1);

    will-change: transform;
  }


  /* Segunda línea */
  .menu-swap-updown .swap-line.alt {
    color: var(--menu-swap-hover, #ADADAD);

    transform:
      translateY(
        calc(
          var(--h, 1em) +
          var(--overshoot, 0px)
        )
      );
  }


  /* =========================================================
     HOVER
  ========================================================= */

  .menu-swap-updown
  .e-n-menu-heading > .e-n-menu-item:hover
  > .e-n-menu-title
  .swap-line.base,

  .menu-swap-updown
  .e-n-menu-heading > .e-n-menu-item:focus-within
  > .e-n-menu-title
  .swap-line.base {

    transform:
      translateY(
        calc(
          (
            var(--h, 1em) +
            var(--overshoot, 0px)
          ) * -1
        )
      );
  }


  .menu-swap-updown
  .e-n-menu-heading > .e-n-menu-item:hover
  > .e-n-menu-title
  .swap-line.alt,

  .menu-swap-updown
  .e-n-menu-heading > .e-n-menu-item:focus-within
  > .e-n-menu-title
  .swap-line.alt {

    transform: translateY(0);
  }


  /* Evita que Elementor interfiera con el texto animado */
  .menu-swap-updown .e-n-menu-title-text {
    overflow: visible;
  }


  /* Botón/flecha de Servicios y Ayudas queda por encima */
  .menu-swap-updown .e-n-menu-dropdown-icon {
    position: relative;
    z-index: 2;
  }


  /* Accesibilidad */
  @media (prefers-reduced-motion: reduce) {

    .menu-swap-updown .swap-line {
      transition: none;
    }

  }

}
</style>


<script>
(function () {

  const BREAKPOINT = 1025;

  function measureItem(box) {

    const measure = box.querySelector('.swap-measure');

    if (!measure) return;

    const titleText = box.closest('.e-n-menu-title-text');

    if (!titleText) return;


    const cs = window.getComputedStyle(titleText);

    const fontSize =
      parseFloat(cs.fontSize) || 16;


    const rect =
      measure.getBoundingClientRect();


    const h =
      rect.height ||
      fontSize * 1.2;


    box.style.setProperty(
      '--h',
      h + 'px'
    );


    box.style.setProperty(
      '--overshoot',
      Math.round(fontSize * 0.15) + 'px'
    );

  }



  function buildItem(titleText) {

    if (
      titleText.querySelector(':scope > .swap-box')
    ) {
      return;
    }


    const label =
      titleText.textContent
        .replace(/\s+/g, ' ')
        .trim();


    if (!label) return;


    /*
     * Guardamos el texto original para poder
     * reconstruirlo si cambia el breakpoint.
     */
    titleText.dataset.swapOriginal = label;


    /*
     * Limpiamos únicamente el contenido del span
     * de texto. No tocamos enlaces, botones,
     * dropdowns ni estructura de Elementor.
     */
    titleText.textContent = '';


    const box =
      document.createElement('span');

    box.className = 'swap-box';


    const measure =
      document.createElement('span');

    measure.className = 'swap-measure';

    measure.textContent = label;

    measure.setAttribute(
      'aria-hidden',
      'true'
    );


    const wrap =
      document.createElement('span');

    wrap.className = 'swap-wrap';


    const base =
      document.createElement('span');

    base.className =
      'swap-line base';

    base.textContent = label;


    const alt =
      document.createElement('span');

    alt.className =
      'swap-line alt';

    alt.textContent = label;

    alt.setAttribute(
      'aria-hidden',
      'true'
    );


    wrap.appendChild(base);

    wrap.appendChild(alt);


    box.appendChild(measure);

    box.appendChild(wrap);


    titleText.appendChild(box);


    measureItem(box);

  }



  function initMenuSwap() {

    if (
      window.innerWidth < BREAKPOINT
    ) {
      return;
    }


    const menus =
      document.querySelectorAll(
        '.menu-swap-updown'
      );


    menus.forEach(menu => {

      /*
       * Solamente los elementos principales.
       * No afecta títulos o links que puedan
       * existir dentro del Mega Menu.
       */
      const titles =
        menu.querySelectorAll(
          '.e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-title-text'
        );


      titles.forEach(buildItem);

    });

  }



  function remeasureAll() {

    if (
      window.innerWidth < BREAKPOINT
    ) {
      return;
    }


    document
      .querySelectorAll(
        '.menu-swap-updown .swap-box'
      )
      .forEach(measureItem);

  }



  document.addEventListener(
    'DOMContentLoaded',
    function () {

      initMenuSwap();


      /*
       * Esperamos también a que carguen
       * las fuentes para medir correctamente
       * tipografías custom.
       */
      if (document.fonts) {

        document.fonts.ready.then(
          function () {

            initMenuSwap();

            remeasureAll();

          }
        );

      }

    }
  );



  let resizeTimer;


  window.addEventListener(
    'resize',
    function () {

      clearTimeout(resizeTimer);


      resizeTimer =
        setTimeout(
          function () {

            initMenuSwap();

            remeasureAll();

          },
          150
        );

    }
  );

})();
</script>
<style>
/* =====================================================
   DESKTOP ≥1025px
===================================================== */

@media (min-width: 1025px) {

    .caja-servicio-new {
        overflow: hidden !important;

        transition:
            height 0.6s cubic-bezier(.4, 0, .2, 1) !important;
    }

    .caja-servicio-new > .contenido-servicio {

        /* IMPORTANTE: evita cualquier display:none anterior */
        display: flex !important;

        height: 0 !important;
        opacity: 0 !important;
        overflow: hidden !important;

        transition:
            height 0.6s cubic-bezier(.4, 0, .2, 1),
            opacity 0.3s ease !important;
    }


    /* ABRIR */
    .caja-servicio-new:hover {
        height: var(--servicio-altura-abierta) !important;
    }

    .caja-servicio-new:hover > .contenido-servicio {
        height: var(--servicio-contenido-altura) !important;
        opacity: 1 !important;
    }


    /* FLECHA */
    .caja-servicio-new .link-accordion svg {
        transform: rotate(0deg);
        transform-origin: center;
        transition: transform 0.4s ease !important;
    }

    .caja-servicio-new:hover .link-accordion svg {
        transform: rotate(90deg);
    }

}


/* =====================================================
   TABLET / MOBILE ≤1024px
===================================================== */

@media (max-width: 1024px) {

    .caja-servicio-new {
        cursor: pointer;
        height: auto !important;
        overflow: visible !important;
    }


    /* CERRADO */
    .caja-servicio-new > .contenido-servicio {

        /*
         * Esto es CLAVE.
         * Aunque haya un display:none viejo,
         * nosotros lo anulamos.
         */
        display: flex !important;

        max-height: 0;
        opacity: 0;
        overflow: hidden !important;

        transition:
            max-height 0.6s cubic-bezier(.4, 0, .2, 1),
            opacity 0.3s ease !important;
    }


    /* ABIERTO */
    .caja-servicio-new.is-open > .contenido-servicio {
        max-height: var(--servicio-mobile-height, 1000px);
        opacity: 1;
    }


    /* FLECHA */
    .caja-servicio-new .link-accordion svg {
        transform: rotate(0deg);
        transform-origin: center;

        transition:
            transform 0.4s ease !important;
    }

    .caja-servicio-new.is-open .link-accordion svg {
        transform: rotate(90deg);
    }

}
</style>


<script>
(function () {

    const mq = window.matchMedia('(max-width: 1024px)');

    let cajas = [];


    /* =====================================================
       DESKTOP - CALCULAR ALTURA FINAL IGUAL
    ===================================================== */

    function calcularAlturasDesktop() {

        if (mq.matches) return;


        cajas = Array.from(
            document.querySelectorAll('.caja-servicio-new')
        );

        if (!cajas.length) return;


        let alturaMaximaTotal = 0;

        const datos = [];


        cajas.forEach(caja => {

            const contenido = caja.querySelector(
                ':scope > .contenido-servicio'
            );

            if (!contenido) return;


            const alturaCerrada =
                caja.getBoundingClientRect().height;


            const styleOriginal =
                contenido.getAttribute('style');


            /*
             * Abrir temporalmente para medir.
             */
            contenido.style.setProperty(
                'display',
                'flex',
                'important'
            );

            contenido.style.setProperty(
                'height',
                'auto',
                'important'
            );

            contenido.style.setProperty(
                'opacity',
                '1',
                'important'
            );

            contenido.style.setProperty(
                'position',
                'absolute',
                'important'
            );

            contenido.style.setProperty(
                'visibility',
                'hidden',
                'important'
            );


            const alturaContenido =
                contenido.scrollHeight;


            /*
             * Restaurar exactamente.
             */
            if (styleOriginal === null) {

                contenido.removeAttribute('style');

            } else {

                contenido.setAttribute(
                    'style',
                    styleOriginal
                );

            }


            const alturaTotal =
                alturaCerrada + alturaContenido;


            alturaMaximaTotal = Math.max(
                alturaMaximaTotal,
                alturaTotal
            );


            datos.push({
                caja,
                alturaCerrada
            });

        });


        /*
         * Todas llegan a la misma altura.
         */
        datos.forEach(item => {

            item.caja.style.setProperty(
                '--servicio-altura-abierta',
                alturaMaximaTotal + 'px'
            );


            item.caja.style.setProperty(
                '--servicio-contenido-altura',
                (
                    alturaMaximaTotal -
                    item.alturaCerrada
                ) + 'px'
            );

        });

    }



    /* =====================================================
       MOBILE - MEDIR CONTENIDOS
    ===================================================== */

    function calcularAlturasMobile() {

        if (!mq.matches) return;


        cajas.forEach(caja => {

            const contenido = caja.querySelector(
                ':scope > .contenido-servicio'
            );

            if (!contenido) return;


            /*
             * Como max-height no cambia el scrollHeight,
             * podemos conocer la altura completa incluso
             * estando cerrado.
             */
            const altura =
                contenido.scrollHeight;


            caja.style.setProperty(
                '--servicio-mobile-height',
                altura + 'px'
            );

        });

    }



    /* =====================================================
       CLICK MOBILE
    ===================================================== */

    function bindCaja(caja) {

        if (caja.dataset.servicioNewBound === '1') {
            return;
        }


        caja.dataset.servicioNewBound = '1';


        caja.addEventListener('click', function (e) {

            if (!mq.matches) return;


            /*
             * Los enlaces siguen navegando normalmente.
             */
            if (e.target.closest('.link-accordion')) {
                return;
            }


            const estabaAbierta =
                caja.classList.contains('is-open');


            /*
             * Cerrar todas.
             */
            cajas.forEach(otra => {

                otra.classList.remove('is-open');

            });


            /*
             * Si estaba cerrada, abrirla.
             * Si estaba abierta, queda cerrada.
             */
            if (!estabaAbierta) {

                caja.classList.add('is-open');

            }

        });

    }



    /* =====================================================
       MOBILE INIT
    ===================================================== */

    function inicializarMobile() {

        cajas = Array.from(
            document.querySelectorAll('.caja-servicio-new')
        );


        cajas.forEach((caja, index) => {

            bindCaja(caja);

            caja.classList.toggle(
                'is-open',
                index === 0
            );

        });


        requestAnimationFrame(() => {

            calcularAlturasMobile();

        });

    }



    /* =====================================================
       DESKTOP INIT
    ===================================================== */

    function inicializarDesktop() {

        cajas = Array.from(
            document.querySelectorAll('.caja-servicio-new')
        );


        cajas.forEach(caja => {

            caja.classList.remove('is-open');

        });


        calcularAlturasDesktop();

    }



    /* =====================================================
       INIT
    ===================================================== */

    function init() {

        cajas = Array.from(
            document.querySelectorAll('.caja-servicio-new')
        );

        if (!cajas.length) return;


        if (mq.matches) {

            inicializarMobile();

        } else {

            inicializarDesktop();

        }

    }


    window.addEventListener('load', init);



    /* =====================================================
       BREAKPOINT
    ===================================================== */

    if (mq.addEventListener) {

        mq.addEventListener('change', function (e) {

            if (e.matches) {

                inicializarMobile();

            } else {

                inicializarDesktop();

            }

        });

    }



    /* =====================================================
       RESIZE
    ===================================================== */

    let resizeTimer;


    window.addEventListener('resize', function () {

        clearTimeout(resizeTimer);


        resizeTimer = setTimeout(function () {

            if (mq.matches) {

                calcularAlturasMobile();

            } else {

                calcularAlturasDesktop();

            }

        }, 150);

    });

})();
</script>

<!-- Schema & Structured Data For WP v1.66 - -->
<script type="application/ld+json" class="saswp-schema-markup-output">
[{"@context":"https:\/\/schema.org\/","@type":"Corporation","@id":"https:\/\/lodigitalizo.endesarrollo.site#Organization","name":"LoDigitalizo","url":"https:\/\/lodigitalizo.endesarrollo.site","sameAs":["https:\/\/lodigitalizo.endesarrollo.site","https:\/\/www.facebook.com\/LoDigitalizo"],"logo":{"@type":"ImageObject","url":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/uploads\/2025\/09\/Logo_LoDigitalizo_1_Mesa-de-trabajo-1.jpg","width":"600","height":"257"},"contactPoint":{"@type":"ContactPoint","contactType":"customer support","telephone":"+34644138885","url":"https:\/\/lodigitalizo.endesarrollo.site\/contacto\/"},"description":"Da a tu empresa la protecci\u00f3n que merece con un servicio de registro de marcas Bilbao. Asesoramiento profesional para blindar tu marca.","address":{"streetAddress":"Calle Club 1, dpto 5, Las Arenas","addressLocality":"Bilbao","addressCountry":"ES","telephone":"+34644138885","email":"info@lodigitalizo.endesarrollo.site"},"review":[],"image":[{"@type":"ImageObject","@id":"https:\/\/lodigitalizo.endesarrollo.site\/registro-de-marcas-bilbao\/#primaryimage","url":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/uploads\/2026\/08\/registro-de-marcas-bilbao.jpg","width":"1402","height":"1122","caption":"Registro de marcas Bilbao"},{"@type":"ImageObject","url":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/uploads\/2026\/08\/registro-de-marcas-bilbao-1200x900.jpg","width":"1200","height":"900","caption":"Registro de marcas Bilbao"},{"@type":"ImageObject","url":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/uploads\/2026\/08\/registro-de-marcas-bilbao-1200x675.jpg","width":"1200","height":"675","caption":"Registro de marcas Bilbao"},{"@type":"ImageObject","url":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/uploads\/2026\/08\/registro-de-marcas-bilbao-1122x1122.jpg","width":"1122","height":"1122","caption":"Registro de marcas Bilbao"},{"@type":"ImageObject","url":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/uploads\/2026\/08\/image-1024x558.png","width":1024,"height":558}]}]
</script>

			<style>
				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
					background-image: none !important;
				}
				@media screen and (max-height: 1024px) {
					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
						background-image: none !important;
					}
				}
				@media screen and (max-height: 640px) {
					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
						background-image: none !important;
					}
				}
			</style>
			<link rel="icon" href="https://lodigitalizo.endesarrollo.site/wp-content/uploads/2025/02/cropped-Lodigitalizo-Favicon-32x32.jpg" sizes="32x32" />
<link rel="icon" href="https://lodigitalizo.endesarrollo.site/wp-content/uploads/2025/02/cropped-Lodigitalizo-Favicon-192x192.jpg" sizes="192x192" />
<link rel="apple-touch-icon" href="https://lodigitalizo.endesarrollo.site/wp-content/uploads/2025/02/cropped-Lodigitalizo-Favicon-180x180.jpg" />
<meta name="msapplication-TileImage" content="https://lodigitalizo.endesarrollo.site/wp-content/uploads/2025/02/cropped-Lodigitalizo-Favicon-270x270.jpg" />
<style id="wp-custom-css">
#chat-btn-desktop, #chat-btn-mobile {
	display: none !important;
}
.elementor-element-f988716 {
	width: 100vw !important;
}
</style>
<noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript>	<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /></head>
<body class="error404 wp-embed-responsive wp-theme-hello-elementor wp-child-theme-hello-elementor-child hello-elementor-default jet-mega-menu-location elementor-default elementor-template-canvas elementor-kit-16367 elementor-page-5045 elementor-page-5035">
	<style>
/* =========================================================
   TESTIMONIOS + VIDEO + THUMBNAIL NAVIGATOR
   Clase Listing Grid: .noautoplay-grid
========================================================= */


/* =========================================================
   DATOS DEL TESTIMONIO
========================================================= */

.noautoplay-grid .contenedor-testimonio .contenedor-datos {
    opacity: 1;
    visibility: visible;
    transition:
        opacity 0.3s ease,
        visibility 0.3s ease;
}

.noautoplay-grid
.contenedor-testimonio.video-reproduciendo
.contenedor-datos {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}


/* =========================================================
   THUMBNAIL RESTAURADO DEL VIDEO
========================================================= */

.noautoplay-grid
.contenedor-video
.fm-video-thumbnail-restaurado {
    z-index: 10;
}


/* =========================================================
   THUMBNAIL NAVIGATOR
========================================================= */

.noautoplay-grid .fm-testimonial-thumbs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
    width: 100%;
    margin-top: 20px;
    margin-bottom: 20px;
}


/* ITEM */

.noautoplay-grid .fm-testimonial-thumb {
    appearance: none;
    -webkit-appearance: none;

    display: flex;

    width: 100%;
    min-width: 0;

    margin: 0;
    padding: 0;

    border: 0;
    background: transparent;

    font: inherit;
    color: inherit;

    cursor: pointer;
}


/* IMAGEN */

.noautoplay-grid .fm-testimonial-thumb__image {
    position: relative;

    display: block;

    width: 100%;
    aspect-ratio: 16 / 9;

    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;

    /*
     * Siempre reservamos 2px para evitar
     * saltos de tamaño.
     */
    border: 2px solid transparent;
    border-radius: 15px;

    box-sizing: border-box;
    overflow: hidden;

    transition:
        transform 0.25s ease,
        border-color 0.25s ease;
}


/* =========================================================
   TÍTULO DENTRO DEL THUMBNAIL
========================================================= */

.noautoplay-grid .fm-testimonial-thumb__title {
    position: absolute;

    left: 12px;
    right: 12px;
    bottom: 10px;

    display: block;

    margin: 0;

    color: #fff;

    font-size: 14px;
    line-height: 1.25;
    text-align: center;

    z-index: 2;

    text-shadow:
        0 1px 3px rgba(0, 0, 0, 0.8);
}


/* =========================================================
   INACTIVO
========================================================= */

.noautoplay-grid
.fm-testimonial-thumb:not(.is-active)
.fm-testimonial-thumb__image {
    border-color: transparent !important;
}


/* =========================================================
   ACTIVO
========================================================= */

.noautoplay-grid
.fm-testimonial-thumb.is-active
.fm-testimonial-thumb__image {
    border-color: #10cfc9 !important;
}


/* =========================================================
   HOVER
========================================================= */

@media (hover: hover) {

    .noautoplay-grid
    .fm-testimonial-thumb:hover
    .fm-testimonial-thumb__image {
        transform: scale(1.025);
    }

}
	
	/* =========================================================
   OCULTAR THUMBNAILS EN PANTALLAS BAJAS
========================================================= */

@media (min-width: 1025px) and (max-height: 800px) {

    .noautoplay-grid .fm-testimonial-thumbs {
        display: none;
    }

}
</style>




<script>
(() => {

    /* =====================================================
       EVITAR DOBLE INICIALIZACIÓN
    ===================================================== */

    if (window.__fmTestimonialFullInit) {
        return;
    }

    window.__fmTestimonialFullInit = true;


    /* =====================================================
       ELEMENTOR EDITOR
    ===================================================== */

    function isElementorEditor() {

        return (
            document.body.classList.contains(
                'elementor-editor-active'
            ) ||
            document.body.classList.contains(
                'elementor-editor-preview'
            )
        );
    }


    /* =====================================================
       ESTADOS
    ===================================================== */

    const gridStates = new WeakMap();
    const videoStates = new WeakMap();
    const thumbObservers = new WeakMap();


    function getGridState(grid) {

        if (!gridStates.has(grid)) {

            gridStates.set(grid, {

                videosReproduciendo: new Set(),
                autoplayBloqueado: false,
                watchdog: null

            });
        }

        return gridStates.get(grid);
    }


    function getVideoState(video) {

        if (!videoStates.has(video)) {

            videoStates.set(video, {

                player: null,
                iframe: null,
                thumbnailOriginal: null,
                inicializando: false

            });
        }

        return videoStates.get(video);
    }


    /* =====================================================
       OBTENER SWIPER CROCOBLOCK
    ===================================================== */

    function getSwiper(grid) {

        const slider = grid.querySelector(
            '.jet-listing-grid__slider.swiper'
        );

        if (!slider) {
            return null;
        }


        if (slider.swiper) {
            return slider.swiper;
        }


        if (window.jQuery) {

            const $slider = jQuery(slider);

            return (
                $slider.data('swiper') ||
                $slider.data('swiperInstance') ||
                null
            );
        }


        return null;
    }


    /* =====================================================
       DETENER AUTOPLAY
    ===================================================== */

    function detenerSwiper(grid) {

        const state = getGridState(grid);

        state.autoplayBloqueado = true;


        function stop() {

            const swiper = getSwiper(grid);

            if (!swiper || !swiper.autoplay) {
                return;
            }


            try {

                if (
                    typeof swiper.autoplay.pause ===
                    'function'
                ) {

                    swiper.autoplay.pause();
                }

            } catch (e) {}


            try {

                if (
                    typeof swiper.autoplay.stop ===
                    'function'
                ) {

                    swiper.autoplay.stop();
                }

            } catch (e) {}
        }


        stop();


        if (!state.watchdog) {

            state.watchdog = setInterval(
                () => {

                    if (
                        state.autoplayBloqueado
                    ) {

                        stop();
                    }

                },
                150
            );
        }
    }


    /* =====================================================
       REANUDAR AUTOPLAY
    ===================================================== */

    function reanudarSwiper(grid) {

        const state = getGridState(grid);


        if (
            state.videosReproduciendo.size > 0
        ) {

            return;
        }


        state.autoplayBloqueado = false;


        if (state.watchdog) {

            clearInterval(
                state.watchdog
            );

            state.watchdog = null;
        }


        setTimeout(() => {

            const swiper = getSwiper(grid);


            if (
                !swiper ||
                !swiper.autoplay ||
                state.autoplayBloqueado ||
                state.videosReproduciendo.size > 0
            ) {

                return;
            }


            try {

                if (
                    typeof swiper.autoplay.start ===
                    'function'
                ) {

                    swiper.autoplay.start();
                }

            } catch (e) {}


            try {

                if (
                    typeof swiper.autoplay.resume ===
                    'function' &&
                    swiper.autoplay.paused
                ) {

                    swiper.autoplay.resume();
                }

            } catch (e) {}

        }, 100);
    }


    /* =====================================================
       GUARDAR THUMBNAIL ORIGINAL DEL VIDEO
    ===================================================== */

    function guardarThumbnail(video) {

        const state = getVideoState(video);


        if (state.thumbnailOriginal) {
            return;
        }


        const thumbnail = video.querySelector(
            '.elementor-custom-embed-image-overlay'
        );


        if (!thumbnail) {
            return;
        }


        state.thumbnailOriginal =
            thumbnail.cloneNode(true);
    }


    /* =====================================================
       QUITAR THUMBNAIL RESTAURADO
    ===================================================== */

    function quitarThumbnailRestaurado(video) {

        const thumbnail = video.querySelector(
            '.fm-video-thumbnail-restaurado'
        );


        if (thumbnail) {
            thumbnail.remove();
        }
    }


    /* =====================================================
       RESTAURAR THUMBNAIL
    ===================================================== */

    function restaurarThumbnail(video) {

        const state = getVideoState(video);


        if (!state.thumbnailOriginal) {
            return;
        }


        if (
            video.querySelector(
                '.fm-video-thumbnail-restaurado'
            )
        ) {

            return;
        }


        const wrapper = video.querySelector(
            '.elementor-wrapper'
        );


        if (!wrapper) {
            return;
        }


        const thumbnail =
            state.thumbnailOriginal.cloneNode(true);


        thumbnail.classList.add(
            'fm-video-thumbnail-restaurado'
        );


        wrapper.appendChild(
            thumbnail
        );
    }


    /* =====================================================
       VIDEO PLAY
    ===================================================== */

    function videoPlaying(
        testimonio,
        video
    ) {

        const grid = testimonio.closest(
            '.noautoplay-grid'
        );


        if (!grid) {
            return;
        }


        const state = getGridState(grid);


        quitarThumbnailRestaurado(
            video
        );


        testimonio.classList.add(
            'video-reproduciendo'
        );


        state.videosReproduciendo.add(
            testimonio
        );


        detenerSwiper(
            grid
        );
    }


    /* =====================================================
       VIDEO PAUSE / END
    ===================================================== */

    function videoStopped(
        testimonio,
        video
    ) {

        const grid = testimonio.closest(
            '.noautoplay-grid'
        );


        if (!grid) {
            return;
        }


        const state = getGridState(grid);


        testimonio.classList.remove(
            'video-reproduciendo'
        );


        state.videosReproduciendo.delete(
            testimonio
        );


        restaurarThumbnail(
            video
        );


        reanudarSwiper(
            grid
        );
    }


    /* =====================================================
       YOUTUBE API
    ===================================================== */

    let youtubePromise = null;


    function cargarYoutubeAPI() {

        if (
            window.YT &&
            window.YT.Player
        ) {

            return Promise.resolve();
        }


        if (youtubePromise) {
            return youtubePromise;
        }


        youtubePromise =
            new Promise(resolve => {

                if (
                    !document.querySelector(
                        'script[src*="youtube.com/iframe_api"]'
                    )
                ) {

                    const script =
                        document.createElement(
                            'script'
                        );


                    script.src =
                        'https://www.youtube.com/iframe_api';


                    document.head.appendChild(
                        script
                    );
                }


                const check =
                    setInterval(() => {

                        if (
                            window.YT &&
                            window.YT.Player
                        ) {

                            clearInterval(
                                check
                            );

                            resolve();
                        }

                    }, 50);
            });


        return youtubePromise;
    }


    /* =====================================================
       ESPERAR IFRAME
    ===================================================== */

    function esperarIframe(video) {

        return new Promise(resolve => {

            const actual = video.querySelector(
                'iframe'
            );


            if (actual) {

                resolve(actual);

                return;
            }


            const observer =
                new MutationObserver(() => {

                    const iframe =
                        video.querySelector(
                            'iframe'
                        );


                    if (!iframe) {
                        return;
                    }


                    observer.disconnect();

                    resolve(
                        iframe
                    );
                });


            observer.observe(
                video,
                {
                    childList: true,
                    subtree: true
                }
            );
        });
    }


    /* =====================================================
       PREPARAR IFRAME YOUTUBE
    ===================================================== */

    function prepararIframeYoutube(
        iframe
    ) {

        if (
            !iframe ||
            !iframe.src
        ) {

            return;
        }


        try {

            const url =
                new url(https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/iframe.src);


            if (
                url.searchParams.get(
                    'enablejsapi'
                ) !== '1'
            ) {

                url.searchParams.set(
                    'enablejsapi',
                    '1'
                );
            }


            if (
                !url.searchParams.get(
                    'origin'
                )
            ) {

                url.searchParams.set(
                    'origin',
                    window.location.origin
                );
            }


            iframe.src =
                url.toString();


        } catch (e) {}
    }


    /* =====================================================
       PLAYER YOUTUBE
    ===================================================== */

    async function inicializarPlayer(
        testimonio,
        video
    ) {

        const state = getVideoState(video);


        if (
            state.player ||
            state.inicializando
        ) {

            return;
        }


        state.inicializando = true;


        const iframe =
            await esperarIframe(
                video
            );


        state.iframe =
            iframe;


        prepararIframeYoutube(
            iframe
        );


        await cargarYoutubeAPI();


        state.player =
            new YT.Player(
                iframe,
                {

                    events: {

                        onStateChange(event) {

                            if (
                                event.data ===
                                YT.PlayerState.PLAYING
                            ) {

                                videoPlaying(
                                    testimonio,
                                    video
                                );

                                return;
                            }


                            if (
                                event.data ===
                                YT.PlayerState.PAUSED
                            ) {

                                videoStopped(
                                    testimonio,
                                    video
                                );

                                return;
                            }


                            if (
                                event.data ===
                                YT.PlayerState.ENDED
                            ) {

                                videoStopped(
                                    testimonio,
                                    video
                                );
                            }
                        },


                        onError() {

                            videoStopped(
                                testimonio,
                                video
                            );
                        }
                    }
                }
            );


        state.inicializando = false;
    }


    /* =====================================================
       CLICK VIDEO
    ===================================================== */

    document.addEventListener(
        'click',
        event => {


            /* THUMBNAIL RESTAURADO */

            const restored =
                event.target.closest(
                    '.noautoplay-grid ' +
                    '.fm-video-thumbnail-restaurado'
                );


            if (restored) {

                event.preventDefault();
                event.stopPropagation();
                event.stopImmediatePropagation();


                const video =
                    restored.closest(
                        '.contenedor-video'
                    );


                const testimonio =
                    restored.closest(
                        '.contenedor-testimonio'
                    );


                if (
                    !video ||
                    !testimonio
                ) {

                    return;
                }


                const state =
                    getVideoState(video);


                quitarThumbnailRestaurado(
                    video
                );


                videoPlaying(
                    testimonio,
                    video
                );


                if (
                    state.player &&
                    typeof state.player.playVideo ===
                    'function'
                ) {

                    try {

                        state.player.playVideo();

                    } catch (e) {}
                }


                return;
            }


            /* PLAY ORIGINAL ELEMENTOR */

            const play =
                event.target.closest(
                    '.noautoplay-grid ' +
                    '.contenedor-video ' +
                    '.elementor-custom-embed-play'
                );


            if (!play) {
                return;
            }


            if (
                play.closest(
                    '.fm-video-thumbnail-restaurado'
                )
            ) {

                return;
            }


            const video =
                play.closest(
                    '.contenedor-video'
                );


            const testimonio =
                play.closest(
                    '.contenedor-testimonio'
                );


            if (
                !video ||
                !testimonio
            ) {

                return;
            }


            guardarThumbnail(
                video
            );


            videoPlaying(
                testimonio,
                video
            );


            setTimeout(
                () => {

                    inicializarPlayer(
                        testimonio,
                        video
                    );

                },
                50
            );

        },
        true
    );


    /* =====================================================
       IMAGEN THUMB NAV
    ===================================================== */

    function getThumbnailImage(slide) {

        const video = slide.querySelector(
            '.contenedor-video[data-settings]'
        );


        if (video) {

            try {

                const settings =
                    JSON.parse(
                        video.getAttribute(
                            'data-settings'
                        )
                    );


                if (
                    settings.image_overlay &&
                    settings.image_overlay.url
                ) {

                    return settings.image_overlay.url;
                }

            } catch (e) {}
        }


        const overlay =
            slide.querySelector(
                '.contenedor-video ' +
                '.elementor-custom-embed-image-overlay'
            );


        if (!overlay) {
            return '';
        }


        let bg =
            overlay.style.backgroundImage;


        if (!bg || bg === 'none') {

            bg =
                getComputedStyle(
                    overlay
                ).backgroundImage;
        }


        if (!bg || bg === 'none') {
            return '';
        }


        const match =
            bg.match(
                /url\(["']?(.*?)["']?\)/
            );


        return match
            ? match[1]
            : '';
    }


    /* =====================================================
       TÍTULO THUMB
    ===================================================== */

    function getThumbnailTitle(slide) {

        const title =
            slide.querySelector(
                '.contenedor-datos ' +
                '.elementor-heading-title'
            );


        return title
            ? title.textContent.trim()
            : '';
    }


    /* =====================================================
       SLIDES REALES
    ===================================================== */

    function getRealSlides(slider) {

        const slides =
            new Map();


        slider
            .querySelectorAll(
                '.swiper-slide[data-swiper-slide-index]'
            )
            .forEach(slide => {

                const index =
                    Number(
                        slide.getAttribute(
                            'data-swiper-slide-index'
                        )
                    );


                if (Number.isNaN(index)) {
                    return;
                }


                const current =
                    slides.get(index);


                if (!current) {

                    slides.set(
                        index,
                        slide
                    );

                    return;
                }


                if (
                    current.classList.contains(
                        'swiper-slide-duplicate'
                    ) &&
                    !slide.classList.contains(
                        'swiper-slide-duplicate'
                    )
                ) {

                    slides.set(
                        index,
                        slide
                    );
                }

            });


        return Array
            .from(
                slides.entries()
            )
            .sort(
                (a, b) =>
                    a[0] - b[0]
            );
    }


    /* =====================================================
       OBTENER ÍNDICE ACTIVO REAL

       PRIMERO usamos .swiper-slide-active del DOM.
       Es la fuente más fiable con Crocoblock + loop.

       Si no existe, usamos swiper.realIndex.
    ===================================================== */

    function getActiveRealIndex(
        grid,
        slider
    ) {

        const activeSlide =
            slider.querySelector(
                '.swiper-slide-active' +
                '[data-swiper-slide-index]'
            );


        if (activeSlide) {

            const index =
                Number(
                    activeSlide.dataset
                        .swiperSlideIndex
                );


            if (!Number.isNaN(index)) {

                return index;
            }
        }


        const swiper =
            getSwiper(grid);


        if (swiper) {

            if (
                typeof swiper.realIndex !==
                'undefined'
            ) {

                return Number(
                    swiper.realIndex
                );
            }


            if (
                typeof swiper.activeIndex !==
                'undefined'
            ) {

                return Number(
                    swiper.activeIndex
                );
            }
        }


        return 0;
    }


    /* =====================================================
       ACTUALIZAR BORDE ACTIVO
    ===================================================== */

    function updateThumbnailActive(
        grid,
        nav,
        slider
    ) {

        const activeIndex =
            getActiveRealIndex(
                grid,
                slider
            );


        nav
            .querySelectorAll(
                '.fm-testimonial-thumb'
            )
            .forEach(button => {

                const thumbIndex =
                    Number(
                        button.dataset
                            .slideIndex
                    );


                button.classList.toggle(
                    'is-active',
                    thumbIndex === activeIndex
                );

            });
    }


    /* =====================================================
       OBSERVAR CAMBIO REAL DE .swiper-slide-active

       Esto garantiza sincronización aunque Crocoblock
       no dispare alguno de los eventos esperados.
    ===================================================== */

    function observeActiveSlide(
        grid,
        nav,
        slider
    ) {

        if (
            thumbObservers.has(
                slider
            )
        ) {

            return;
        }


        const wrapper =
            slider.querySelector(
                '.swiper-wrapper'
            );


        if (!wrapper) {
            return;
        }


        const observer =
            new MutationObserver(
                mutations => {

                    const changed =
                        mutations.some(
                            mutation =>
                                mutation.type ===
                                'attributes' &&
                                mutation.attributeName ===
                                'class'
                        );


                    if (!changed) {
                        return;
                    }


                    updateThumbnailActive(
                        grid,
                        nav,
                        slider
                    );
                }
            );


        observer.observe(
            wrapper,
            {
                subtree: true,
                attributes: true,
                attributeFilter: [
                    'class'
                ]
            }
        );


        thumbObservers.set(
            slider,
            observer
        );
    }


    /* =====================================================
       CREAR THUMBNAIL NAV
    ===================================================== */

    function createThumbnailNavigator(
        grid
    ) {

        const slider =
            grid.querySelector(
                '.jet-listing-grid__slider.swiper'
            );


        if (!slider) {
            return false;
        }


        const existingNav =
            grid.querySelector(
                '.fm-testimonial-thumbs'
            );


        if (existingNav) {

            updateThumbnailActive(
                grid,
                existingNav,
                slider
            );


            observeActiveSlide(
                grid,
                existingNav,
                slider
            );


            return true;
        }


        const slides =
            getRealSlides(
                slider
            );


        if (!slides.length) {
            return false;
        }


        const nav =
            document.createElement(
                'div'
            );


        nav.className =
            'fm-testimonial-thumbs';


        nav.setAttribute(
            'aria-label',
            'Navegación de testimonios'
        );


        slides.forEach(
            ([index, slide]) => {

                const imageURL =
                    getThumbnailImage(
                        slide
                    );


                const titleText =
                    getThumbnailTitle(
                        slide
                    );


                const button =
                    document.createElement(
                        'button'
                    );


                button.type =
                    'button';


                button.className =
                    'fm-testimonial-thumb';


                button.dataset.slideIndex =
                    index;


                /* IMAGEN */

                const image =
                    document.createElement(
                        'span'
                    );


                image.className =
                    'fm-testimonial-thumb__image';


                if (imageURL) {

                    image.style.backgroundImage =
                        `url(https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/${imageURL})`;
                }


                /* TÍTULO */

                const title =
                    document.createElement(
                        'span'
                    );


                title.className =
                    'fm-testimonial-thumb__title';


                title.textContent =
                    titleText;


                image.appendChild(
                    title
                );


                button.appendChild(
                    image
                );


                nav.appendChild(
                    button
                );


                /* =========================================
                   CLICK THUMB
                ========================================= */

                button.addEventListener(
                    'click',
                    event => {

                        event.preventDefault();


                        const swiper =
                            getSwiper(
                                grid
                            );


                        if (!swiper) {
                            return;
                        }


                        /*
                         * Lo marcamos inmediatamente
                         * para que visualmente responda
                         * sin esperar la transición.
                         */

                        nav
                            .querySelectorAll(
                                '.fm-testimonial-thumb'
                            )
                            .forEach(
                                thumb => {

                                    thumb.classList.toggle(
                                        'is-active',
                                        Number(
                                            thumb.dataset
                                                .slideIndex
                                        ) === index
                                    );

                                }
                            );


                        if (
                            typeof swiper.slideToLoop ===
                            'function'
                        ) {

                            swiper.slideToLoop(
                                index
                            );

                            return;
                        }


                        const slidesDOM =
                            Array.from(
                                slider.querySelectorAll(
                                    '.swiper-slide'
                                )
                            );


                        const target =
                            slidesDOM.find(
                                element =>
                                    Number(
                                        element.dataset
                                            .swiperSlideIndex
                                    ) === index &&
                                    !element.classList.contains(
                                        'swiper-slide-duplicate'
                                    )
                            );


                        if (
                            !target ||
                            typeof swiper.slideTo !==
                            'function'
                        ) {

                            return;
                        }


                        const targetIndex =
                            slidesDOM.indexOf(
                                target
                            );


                        if (targetIndex >= 0) {

                            swiper.slideTo(
                                targetIndex
                            );
                        }

                    }
                );

            }
        );


        /* =================================================
           INSERTAR ANTES DE DOTS
        ================================================= */

        const pagination =
            grid.querySelector(
                '.jet-engine-swiper-pagination-wrapper'
            );


        if (
            pagination &&
            pagination.parentNode
        ) {

            pagination.parentNode.insertBefore(
                nav,
                pagination
            );

        } else {

            slider.insertAdjacentElement(
                'afterend',
                nav
            );
        }


        /* =================================================
           CONECTAR SWIPER
        ================================================= */

        function connectSwiper() {

            const swiper =
                getSwiper(
                    grid
                );


            if (!swiper) {
                return false;
            }


            if (
                !slider.dataset
                    .fmThumbEventsConnected
            ) {

                slider.dataset
                    .fmThumbEventsConnected =
                    '1';


                const sync = () => {

                    updateThumbnailActive(
                        grid,
                        nav,
                        slider
                    );
                };


                /*
                 * Cubrimos todos los cambios relevantes
                 * de índice de Swiper.
                 */

                swiper.on(
                    'slideChange',
                    sync
                );


                swiper.on(
                    'activeIndexChange',
                    sync
                );


                swiper.on(
                    'realIndexChange',
                    sync
                );


                swiper.on(
                    'transitionStart',
                    sync
                );


                swiper.on(
                    'transitionEnd',
                    sync
                );


                swiper.on(
                    'autoplay',
                    sync
                );
            }


            updateThumbnailActive(
                grid,
                nav,
                slider
            );


            observeActiveSlide(
                grid,
                nav,
                slider
            );


            return true;
        }


        connectSwiper();


        setTimeout(
            connectSwiper,
            250
        );


        setTimeout(
            connectSwiper,
            750
        );


        setTimeout(
            connectSwiper,
            1500
        );


        return true;
    }


    /* =====================================================
       INIT
    ===================================================== */

    function init() {

        if (
            isElementorEditor()
        ) {

            return;
        }


        document
            .querySelectorAll(
                '.noautoplay-grid'
            )
            .forEach(grid => {

                createThumbnailNavigator(
                    grid
                );

            });
    }


    if (
        document.readyState ===
        'loading'
    ) {

        document.addEventListener(
            'DOMContentLoaded',
            init
        );

    } else {

        init();
    }


    window.addEventListener(
        'load',
        init
    );


    setTimeout(
        init,
        250
    );


    setTimeout(
        init,
        750
    );


    setTimeout(
        init,
        1500
    );


    /* =====================================================
       ELEMENTOR / CROCOBLOCK DINÁMICO
    ===================================================== */

    const observer =
        new MutationObserver(
            () => {

                init();

            }
        );


    function startObserver() {

        if (!document.body) {
            return;
        }


        observer.observe(
            document.body,
            {
                childList: true,
                subtree: true
            }
        );
    }


    if (document.body) {

        startObserver();

    } else {

        document.addEventListener(
            'DOMContentLoaded',
            startObserver
        );
    }

})();
</script>
<script async src="https://static.trustlocal.es/widget/widget_v2.js"></script>
		<div data-elementor-type="error-404" data-elementor-id="5035" class="elementor elementor-5035 elementor-location-single" data-elementor-post-type="elementor_library">
					<section class="elementor-section elementor-top-section elementor-element elementor-element-622233f1 elementor-section-height-min-height elementor-section-content-middle sizePage elementor-section-boxed elementor-section-height-default elementor-section-items-middle" data-id="622233f1" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
							<div class="elementor-background-overlay"></div>
							<div class="elementor-container elementor-column-gap-wider">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3e53741c" data-id="3e53741c" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-5a88d3d7 elementor-widget elementor-widget-heading" data-id="5a88d3d7" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<p class="elementor-heading-title elementor-size-default">404</p>				</div>
				<div class="elementor-element elementor-element-5c0abb11 elementor-widget elementor-widget-heading" data-id="5c0abb11" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<h3 class="elementor-heading-title elementor-size-default">¡Ups! Página no encontrada</h3>				</div>
				<div class="elementor-element elementor-element-37a98ea1 elementor-widget elementor-widget-text-editor" data-id="37a98ea1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
									<p>Lo sentimos, no hemos podido encontrar la página que buscas</p>								</div>
				<div class="elementor-element elementor-element-5f37c5ee elementor-mobile-align-center elementor-align-left elementor-widget elementor-widget-button" data-id="5f37c5ee" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
										<a class="elementor-button elementor-button-link elementor-size-sm" href="https://lodigitalizo.endesarrollo.site">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Vuelve a la página principal</span>
					</span>
					</a>
								</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<script type="speculationrules">
{"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/hello-elementor-child/*","/wp-content/themes/hello-elementor/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
	<style>
/* Número */
.fm-personas-viendo__num{
	color: #10cfc9;
	display: inline-block;
	will-change: transform, opacity;
	margin-right: 0.25em;
}

/* Animación al cambiar */
.fm-personas-viendo__num.is-animating{
	animation: fmNumberPulse 0.4s cubic-bezier(.22,1,.36,1);
}

@keyframes fmNumberPulse{
	0%{
		opacity: 0;
		transform: translateY(6px) scale(0.95);
	}
	60%{
		opacity: 1;
		transform: translateY(0) scale(1.08);
	}
	100%{
		transform: scale(1);
	}
}
</style>

	<script>
	document.addEventListener('DOMContentLoaded', function () {
		const items = document.querySelectorAll('.fm-personas-viendo');
		if (!items.length) return;

		function randomInt(min, max) {
			return Math.floor(Math.random() * (max - min + 1)) + min;
		}

		function getNextValue(currentValue, min, max) {
			let nextValue = randomInt(min, max);

			while (nextValue === currentValue) {
				nextValue = randomInt(min, max);
			}

			return nextValue;
		}

		function animateNumber(el, value){
			el.classList.remove('is-animating');
			void el.offsetWidth;

			el.textContent = value;
			el.classList.add('is-animating');
		}

		function scheduleNextUpdate(wrapper, currentValue, min, max) {
			const delay = randomInt(10000, 15000);

			setTimeout(function () {
				const nextValue = getNextValue(currentValue, min, max);
				const numEl = wrapper.querySelector('.fm-personas-viendo__num');

				if (numEl) {
					animateNumber(numEl, nextValue);
				}

				scheduleNextUpdate(wrapper, nextValue, min, max);
			}, delay);
		}

		items.forEach(function (wrapper) {
			const min = parseInt(wrapper.dataset.min || '135', 10);
			const max = parseInt(wrapper.dataset.max || '170', 10);

			const initialValue = randomInt(min, max);
			const numEl = wrapper.querySelector('.fm-personas-viendo__num');

			if (!numEl) return;

			numEl.textContent = initialValue;
			scheduleNextUpdate(wrapper, initialValue, min, max);
		});
	});
	</script>
	<script type="text/x-template" id="mobile-menu-item-template"><li
	:id="'jet-mobile-menu-item-'+itemDataObject.itemId"
	:class="itemClasses"
>
	<div
		class="jet-mobile-menu__item-inner"
		:style="itemInnerStyle"
		v-on:click="itemSubHandler"
		v-on:focusin="handleFocusIn"
		v-on:focusout="handleFocusOut"
	>
		<div
			class="jet-mobile-menu__item-output"
			v-if="itemDataObject.itemOutput"
			ref="item-output"
		></div>
		<a
			v-else
			:class="itemLinkClasses"
			:href="itemDataObject.url"
			:rel="itemDataObject.xfn || null"
			:title="itemDataObject.attrTitle || null"
			:target="itemDataObject.target || null"
			:aria-current="itemAriaCurrent"
			:style="itemLinkStyle"
			:aria-haspopup="isSub && 'item' === effectiveSubTrigger ? 'true' : null"
			:aria-expanded="isSub && 'item' === effectiveSubTrigger ? submenuExpandedState : null"
			v-on:keydown.space.prevent="itemSpaceHandler"
		>
			<div class="jet-menu-item-wrapper">
				<div
					class="jet-menu-icon"
					v-if="isIconVisible"
					v-html="itemIconHtml"
				></div>
				<div class="jet-menu-name">
					<span
						class="jet-menu-label"
						v-if="isLabelVisible"
						v-html="itemDataObject.name"
					></span>
					<small
						class="jet-menu-desc"
						v-if="isDescVisible"
						v-html="itemDataObject.description"
					></small>
				</div>
				<div
					class="jet-menu-badge"
					v-if="isBadgeVisible"
				>
					<div class="jet-menu-badge__inner" v-html="itemDataObject.badgeContent"></div>
				</div>
			</div>
		</a>
		<button
			class="jet-dropdown-arrow"
			v-if="isSub && !templateLoadStatus && showSubmenuButton"
			v-html="dropdownIconHtml"
			type="button"
			:style="submenuButtonStyle"
			:aria-label="'Toggle submenu for ' + itemDataObject.name"
			:aria-expanded="submenuExpandedState"
			:aria-haspopup="isSub ? 'true' : null"
			v-on:click="markerSubHandler"
		>
		</button>
		<span
			class="jet-dropdown-arrow"
			v-else-if="isSub && !templateLoadStatus"
			v-html="dropdownIconHtml"
			aria-hidden="true"
		>
		</span>
		<div
			class="jet-mobile-menu__template-loader"
			v-if="templateLoadStatus"
		>
			<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="24px" height="25px" viewBox="0 0 128 128" xml:space="preserve">
				<g>
					<linearGradient :id="'linear-gradient-'+itemDataObject.itemId">
						<stop offset="0%" :stop-color="loaderColor" stop-opacity="0"/>
						<stop offset="100%" :stop-color="loaderColor" stop-opacity="1"/>
					</linearGradient>
				<path d="M63.85 0A63.85 63.85 0 1 1 0 63.85 63.85 63.85 0 0 1 63.85 0zm.65 19.5a44 44 0 1 1-44 44 44 44 0 0 1 44-44z" :fill="'url(#linear-gradient-'+itemDataObject.itemId+')'" fill-rule="evenodd"/>
				<animateTransform attributeName="transform" type="rotate" from="0 64 64" to="360 64 64" dur="1080ms" repeatCount="indefinite"></animateTransform>
				</g>
			</svg>
		</div>
	</div>

	<transition name="menu-container-expand-animation">
		<mobile-menu-list
			v-if="isDropdownLayout && subDropdownVisible"
			:depth="depth+1"
			:children-object="itemDataObject.children"
		></mobile-menu-list>
	</transition>

</li>
				</script><script type="text/x-template" id="mobile-menu-list-template"><div
	class="jet-mobile-menu__list"
	role="navigation"
>
	<ul class="jet-mobile-menu__items">
		<mobile-menu-item
			v-for="(item, index) in childrenObject"
			:key="item.id"
			:item-data-object="item"
			:depth="depth"
		></mobile-menu-item>
	</ul>
</div>
				</script><script type="text/x-template" id="mobile-menu-template"><div
	:class="instanceClass"
	v-on:keyup.esc="escapeKeyHandler"
	v-on:keydown="handleMenuKeydown"
>
	<div
		class="jet-mobile-menu__toggle"
		role="button"
		ref="toggle"
		tabindex="0"
		aria-label="Open/Close Menu"
        aria-expanded="false"
		v-on:click="menuToggle"
		v-on:keyup.enter="menuToggle"
		v-on:keydown.space.prevent="menuToggle"
	>
		<div
			class="jet-mobile-menu__template-loader"
			v-if="toggleLoaderVisible"
		>
			<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="24px" height="25px" viewBox="0 0 128 128" xml:space="preserve">
				<g>
					<linearGradient :id="'linear-gradient-'+itemDataObject.itemId">
						<stop offset="0%" :stop-color="loaderColor" stop-opacity="0"/>
						<stop offset="100%" :stop-color="loaderColor" stop-opacity="1"/>
					</linearGradient>
				<path d="M63.85 0A63.85 63.85 0 1 1 0 63.85 63.85 63.85 0 0 1 63.85 0zm.65 19.5a44 44 0 1 1-44 44 44 44 0 0 1 44-44z" :fill="'url(#linear-gradient-'+itemDataObject.itemId+')'" fill-rule="evenodd"/>
				<animateTransform attributeName="transform" type="rotate" from="0 64 64" to="360 64 64" dur="1080ms" repeatCount="indefinite"></animateTransform>
				</g>
			</svg>
		</div>

		<div
			class="jet-mobile-menu__toggle-icon"
			v-if="!menuOpen && !toggleLoaderVisible"
			v-html="toggleClosedIcon"
		></div>
		<div
			class="jet-mobile-menu__toggle-icon"
			v-if="menuOpen && !toggleLoaderVisible"
			v-html="toggleOpenedIcon"
		></div>
		<span
			class="jet-mobile-menu__toggle-text"
			v-if="toggleText"
			v-html="toggleText"
		></span>

	</div>

	<transition name="cover-animation">
		<div
			class="jet-mobile-menu-cover"
			v-if="menuContainerVisible && coverVisible"
			v-on:click="closeMenu"
		></div>
	</transition>

	<transition
		:name="showAnimation"
		@before-enter="onContainerBeforeEnter"
		@after-enter="onContainerAfterEnter"
		@enter-cancelled="onContainerAfterEnter"
		@after-leave="onContainerAfterLeave"
		@leave-cancelled="onContainerAfterLeave"
	>
		<div
			class="jet-mobile-menu__container"
			ref="container"
			:style="containerStyle"
			v-if="menuContainerVisible"
		>
			<div
				class="jet-mobile-menu__container-inner"
				ref="menu-container-inner"
				tabindex="-1"
				:style="containerInnerStyle"
			>
				<div
					class="jet-mobile-menu__header-template"
					v-if="headerTemplateVisible"
				>
					<div
						class="jet-mobile-menu__header-template-content"
						ref="header-template-content"
						v-html="headerContent"
					></div>
				</div>

				<div
					class="jet-mobile-menu__controls"
                    v-if="isBreadcrumbs || isBack || isClose"
				>
					<div
						class="jet-mobile-menu__breadcrumbs"
						v-if="isBreadcrumbs"
					>
						<div
							class="jet-mobile-menu__breadcrumb"
							v-for="(item, index) in breadcrumbsPathData"
							:key="index"
						>
							<button
								v-if="isBreadcrumbInteractive(index)"
								class="breadcrumb-label"
								type="button"
								style="background: transparent; border: 0; padding: 0; margin: 0; appearance: none; -webkit-appearance: none;"
								v-on:click="breadcrumbHandle(index+1)"
								v-html="item"
							></button>
							<span
								v-else
								class="breadcrumb-label"
								v-html="item"
							></span>
							<div
								class="breadcrumb-divider"
								v-html="breadcrumbIcon"
								v-if="(breadcrumbIcon && index !== breadcrumbsPathData.length-1)"
							></div>
						</div>
					</div>
					<div
						class="jet-mobile-menu__back"
						role="button"
						ref="back"
						tabindex="0"
						aria-label="Close Menu"
                        aria-expanded="false"
						v-if="!isBack && isClose"
						v-html="closeIcon"
						v-on:click="menuToggle"
						v-on:keyup.enter="menuToggle"
						v-on:keydown.space.prevent="menuToggle"
					></div>
					<div
						class="jet-mobile-menu__back"
						role="button"
						ref="back"
						tabindex="0"
						aria-label="Back to Prev Items"
                        aria-expanded="false"
						v-if="isBack"
						v-html="backIcon"
						v-on:click="goBack"
						v-on:keyup.enter="goBack"
						v-on:keydown.space.prevent="goBack"
					></div>
				</div>

				<div
					class="jet-mobile-menu__before-template"
					v-if="beforeTemplateVisible"
				>
					<div
						class="jet-mobile-menu__before-template-content"
						ref="before-template-content"
						v-html="beforeContent"
					></div>
				</div>

				<div class="jet-mobile-menu__body" ref="menu-body">
					<transition :name="animation">
						<mobile-menu-list
							v-if="!templateVisible"
                            :key="'list-' + depth"
							:depth="depth"
							:children-object="itemsList"
						></mobile-menu-list>

						<div v-else
                             :key="'tpl-' + depth"
							class="jet-mobile-menu__template"
							ref="template-content"
						>
							<div
								class="jet-mobile-menu__template-content"
								v-html="itemTemplateContent"
							></div>
						</div>
					</transition>
				</div>

				<div
					class="jet-mobile-menu__after-template"
					v-if="afterTemplateVisible"
				>
					<div
						class="jet-mobile-menu__after-template-content"
						ref="after-template-content"
						v-html="afterContent"
					></div>
				</div>

			</div>
		</div>
	</transition>
</div>
				</script>		<div data-elementor-type="popup" data-elementor-id="13629" class="elementor elementor-13629 elementor-location-popup" data-elementor-settings="{&quot;timing&quot;:{&quot;times_times&quot;:1,&quot;logged_in_users&quot;:&quot;custom&quot;,&quot;logged_in_roles&quot;:[&quot;administrator&quot;],&quot;logged_in&quot;:&quot;yes&quot;,&quot;times_period&quot;:&quot;day&quot;,&quot;times&quot;:&quot;yes&quot;}}" data-elementor-post-type="elementor_library">
			<div class="elementor-element elementor-element-65a5f2d e-flex e-con-boxed e-con e-parent" data-id="65a5f2d" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-d0f651c e-con-full e-flex e-con e-child" data-id="d0f651c" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-8584346 elementor-widget elementor-widget-heading" data-id="8584346" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<span class="elementor-heading-title elementor-size-default">¡Te llamamos <b>GRATIS</b>!</span>				</div>
				<div class="elementor-element elementor-element-c4c4172 elementor-button-align-start elementor-mobile-button-align-stretch elementor-widget elementor-widget-form" data-id="c4c4172" data-element_type="widget" data-e-type="widget" data-settings="{&quot;step_next_label&quot;:&quot;Next&quot;,&quot;step_previous_label&quot;:&quot;Previous&quot;,&quot;button_width&quot;:&quot;100&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}" data-widget_type="form.default">
							<form class="elementor-form" method="post" name="Kit Digital Form" aria-label="Kit Digital Form">
			<input type="hidden" name="post_id" value="13629"/>
			<input type="hidden" name="form_id" value="c4c4172"/>
			<input type="hidden" name="referer_title" value="Proyecto CJMA | Servicio realizado LoDigitalizo" />

							<input type="hidden" name="queried_id" value="25267"/>
			
			<div class="elementor-form-fields-wrapper elementor-labels-">
								<div class="elementor-field-type-tel elementor-field-group elementor-column elementor-field-group-field_f7ded10 elementor-col-100 elementor-field-required">
												<label for="form-field-field_f7ded10" class="elementor-field-label elementor-screen-only">
								Teléfono							</label>
								<input size="1" type="tel" name="form_fields[field_f7ded10]" id="form-field-field_f7ded10" class="elementor-field elementor-size-sm  elementor-field-textual" placeholder="Número de teléfono" required="required" pattern="[0-9()#&amp;+*-=.]+" title="Solo se aceptan números y caracteres de teléfono (#,-,*,etc).">

						</div>
								<div class="elementor-field-type-acceptance elementor-field-group elementor-column elementor-field-group-field_07539bf elementor-col-100 elementor-field-required">
												<label for="form-field-field_07539bf" class="elementor-field-label elementor-screen-only">
								Confirmación Política de Privacidad							</label>
								<div class="elementor-field-subgroup">
			<span class="elementor-field-option">
				<input type="checkbox" name="form_fields[field_07539bf]" id="form-field-field_07539bf" class="elementor-field elementor-size-sm  elementor-acceptance-field" required="required">
				<label for="form-field-field_07539bf">He leído y acepto la <a href=https://lodigitalizo.endesarrollo.site/politicas-de-privacidad/ style="color: #10CFC9;" target="_blank"> Política de Privacidad y Condiciones</a>.</label>			</span>
		</div>
						</div>
								<div class="elementor-field-type-acceptance elementor-field-group elementor-column elementor-field-group-field_11f0896 elementor-col-100">
												<label for="form-field-field_11f0896" class="elementor-field-label elementor-screen-only">
								Consentimiento de recibir información comercial							</label>
								<div class="elementor-field-subgroup">
			<span class="elementor-field-option">
				<input type="checkbox" name="form_fields[field_11f0896]" id="form-field-field_11f0896" class="elementor-field elementor-size-sm  elementor-acceptance-field">
				<label for="form-field-field_11f0896">Deseo recibir información sobre los servicios, eventos y otras actividades organizadas por LoDigitalizo.</label>			</span>
		</div>
						</div>
								<div class="elementor-field-type-recaptcha_v3 elementor-field-group elementor-column elementor-field-group-field_8c149a6 elementor-col-100 recaptcha_v3-bottomleft">
					<div class="elementor-field" id="form-field-field_8c149a6"><div class="elementor-g-recaptcha" data-sitekey="6LdzauUjAAAAABm-lQcyFqnxJksfdh8b5uy9SL1E" data-type="v3" data-action="Form" data-badge="bottomleft" data-size="invisible"></div></div>				</div>
								<div class="elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons">
					<button class="elementor-button elementor-size-sm" type="submit">
						<span class="elementor-button-content-wrapper">
																						<span class="elementor-button-text">Te llamamos</span>
													</span>
					</button>
				</div>
			</div>
		</form>
						</div>
				</div>
		<div class="elementor-element elementor-element-5a23e03 e-con-full e-flex e-con e-child" data-id="5a23e03" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-411da3b elementor-widget elementor-widget-heading" data-id="411da3b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<span class="elementor-heading-title elementor-size-default">O si lo prefieres...</span>				</div>
		<div class="elementor-element elementor-element-fc8443c e-con-full e-flex e-con e-child" data-id="fc8443c" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-ac08402 e-con-full e-flex e-con e-child" data-id="ac08402" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-0ea5f0b elementor-widget elementor-widget-heading" data-id="0ea5f0b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<span class="elementor-heading-title elementor-size-default">¡Llama <b>ahora</b>!</span>				</div>
				<div class="elementor-element elementor-element-c7e148c elementor-widget elementor-widget-heading" data-id="c7e148c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<h2 class="elementor-heading-title elementor-size-default">+34 944 21 34 73</h2>				</div>
		<div class="elementor-element elementor-element-820a3e9 e-con-full e-flex e-con e-child" data-id="820a3e9" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-7427fa6 e-con-full e-flex e-con e-child" data-id="7427fa6" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-3994739 elementor-widget elementor-widget-heading" data-id="3994739" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<h2 class="elementor-heading-title elementor-size-default">Horario:</h2>				</div>
				<div class="elementor-element elementor-element-cf6b090 elementor-icon-list--layout-inline elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="cf6b090" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
							<ul class="elementor-icon-list-items elementor-inline-items">
							<li class="elementor-icon-list-item elementor-inline-item">
											<span class="elementor-icon-list-icon">
							<svg aria-hidden="true" class="e-font-icon-svg e-far-calendar-alt" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path></svg>						</span>
										<span class="elementor-icon-list-text">De lunes a sábados</span>
									</li>
								<li class="elementor-icon-list-item elementor-inline-item">
											<span class="elementor-icon-list-icon">
							<svg aria-hidden="true" class="e-font-icon-svg e-far-clock" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"></path></svg>						</span>
										<span class="elementor-icon-list-text">De 09h00 a 20h00</span>
									</li>
						</ul>
						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-0e5943a elementor-widget elementor-widget-heading" data-id="0e5943a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<span class="elementor-heading-title elementor-size-default">También tenemos WhatsApp en <a href="https://wa.me/34644138885/?text=" style="font-weight: 600;text-decoration: underline" target="_blank">644 138 885</a>.</span>				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
				</div>
				<div data-elementor-type="popup" data-elementor-id="27521" class="elementor elementor-27521 elementor-location-popup" data-elementor-settings="{&quot;entrance_animation&quot;:&quot;fadeIn&quot;,&quot;entrance_animation_duration&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1.1999999999999999555910790149937383830547332763671875,&quot;sizes&quot;:[]},&quot;a11y_navigation&quot;:&quot;yes&quot;,&quot;triggers&quot;:{&quot;page_load_delay&quot;:1,&quot;page_load&quot;:&quot;yes&quot;},&quot;timing&quot;:{&quot;times_times&quot;:1,&quot;times_period&quot;:&quot;session&quot;,&quot;times&quot;:&quot;yes&quot;}}" data-elementor-post-type="elementor_library">
			<div class="elementor-element elementor-element-5c46c73 e-grid e-con-full e-con e-parent" data-id="5c46c73" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-325f930 e-con-full e-flex e-con e-child" data-id="325f930" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-e3bb3c5 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="e3bb3c5" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<svg aria-hidden="true" class="e-font-icon-svg e-far-dot-circle" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"></path></svg>						</span>
										<span class="elementor-icon-list-text">Kit Digital · Ayudas UE</span>
									</li>
						</ul>
						</div>
				<div class="elementor-element elementor-element-62ea883 elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-heading" data-id="62ea883" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<h2 class="elementor-heading-title elementor-size-default">Ayudas de hasta 12.000 € para digitalizar tu negocio</h2>				</div>
				<div class="elementor-element elementor-element-c50ff7e elementor-widget elementor-widget-image" data-id="c50ff7e" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
															<img width="800" height="533" src="https://lodigitalizo.endesarrollo.site/wp-content/uploads/2026/08/kit_digital_popup_foto-2-1.png" class="attachment-large size-large wp-image-27525" alt="kit_digital_popup_foto" srcset="https://lodigitalizo.endesarrollo.site/wp-content/uploads/2026/08/kit_digital_popup_foto-2-1.png 800w, https://lodigitalizo.endesarrollo.site/wp-content/uploads/2026/08/kit_digital_popup_foto-2-1-300x200.png 300w, https://lodigitalizo.endesarrollo.site/wp-content/uploads/2026/08/kit_digital_popup_foto-2-1-768x512.png 768w" sizes="(max-width: 800px) 100vw, 800px" />															</div>
				</div>
		<div class="elementor-element elementor-element-73f1c36 e-con-full e-flex e-con e-child" data-id="73f1c36" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-bd88442 elementor-widget elementor-widget-heading" data-id="bd88442" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<h2 class="elementor-heading-title elementor-size-default">¡ÚLTIMA HORA! <br>¡REAPERTURA!</h2>				</div>
				<div class="elementor-element elementor-element-47ca36f elementor-widget elementor-widget-text-editor" data-id="47ca36f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
									<p data-pm-slice="0 0 []">Debido a que <strong>NO se han agotado los fondos</strong>, la Unión Europea establece que es probable que se <strong>reabra el Kit Digital</strong> a partir de septiembre. No te quedes sin el tuyo: reserva tu plaza y te avisamos en cuanto se abra la convocatoria.</p>								</div>
				<div class="elementor-element elementor-element-e19fd49 elementor-mobile-align-justify elementor-widget elementor-widget-button" data-id="e19fd49" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
										<a class="elementor-button elementor-button-link elementor-size-sm" href="/reapertura-kit-digital-2026/#form">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Me interesa</span>
					</span>
					</a>
								</div>
				</div>
				</div>
				</div>
				<div data-elementor-type="popup" data-elementor-id="11662" class="elementor elementor-11662 elementor-location-popup" data-elementor-settings="{&quot;triggers&quot;:[],&quot;timing&quot;:[]}" data-elementor-post-type="elementor_library">
					<section class="elementor-section elementor-top-section elementor-element elementor-element-ce5e45c elementor-section-height-min-height elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-items-middle" data-id="ce5e45c" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-no">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-90cac46" data-id="90cac46" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap">
							</div>
		</div>
					</div>
		</section>
				</div>
				<div data-elementor-type="popup" data-elementor-id="10550" class="elementor elementor-10550 elementor-location-popup" data-elementor-settings="{&quot;triggers&quot;:{&quot;page_load_delay&quot;:5,&quot;page_load&quot;:&quot;yes&quot;},&quot;timing&quot;:{&quot;times&quot;:&quot;yes&quot;}}" data-elementor-post-type="elementor_library">
			<div class="elementor-element elementor-element-79dc4c2 popCustom e-flex e-con-boxed e-con e-parent" data-id="79dc4c2" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-66b6178 e-con-full e-flex e-con e-child" data-id="66b6178" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-76226ad elementor-widget elementor-widget-heading" data-id="76226ad" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
					<span class="elementor-heading-title elementor-size-default">Solicita Presupuesto Gratis</span>				</div>
				<div class="elementor-element elementor-element-96540f0 elementor-button-align-center elementor-mobile-button-align-stretch elementor-widget elementor-widget-form" data-id="96540f0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;step_next_label&quot;:&quot;Next&quot;,&quot;step_previous_label&quot;:&quot;Previous&quot;,&quot;button_width&quot;:&quot;100&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}" data-widget_type="form.default">
							<form class="elementor-form" method="post" name="Kit Digital Form" aria-label="Kit Digital Form">
			<input type="hidden" name="post_id" value="10550"/>
			<input type="hidden" name="form_id" value="96540f0"/>
			<input type="hidden" name="referer_title" value="Proyecto CJMA | Servicio realizado LoDigitalizo" />

							<input type="hidden" name="queried_id" value="25267"/>
			
			<div class="elementor-form-fields-wrapper elementor-labels-">
								<div class="elementor-field-type-text elementor-field-group elementor-column elementor-field-group-name elementor-col-100">
												<label for="form-field-name" class="elementor-field-label elementor-screen-only">
								Nombre							</label>
														<input size="1" type="text" name="form_fields[name]" id="form-field-name" class="elementor-field elementor-size-xs  elementor-field-textual" placeholder="Nombre">
											</div>
								<div class="elementor-field-type-tel elementor-field-group elementor-column elementor-field-group-field_f7ded10 elementor-col-100 elementor-field-required">
												<label for="form-field-field_f7ded10" class="elementor-field-label elementor-screen-only">
								Teléfono							</label>
								<input size="1" type="tel" name="form_fields[field_f7ded10]" id="form-field-field_f7ded10" class="elementor-field elementor-size-xs  elementor-field-textual" placeholder="Teléfono" required="required" pattern="[0-9()#&amp;+*-=.]+" title="Solo se aceptan números y caracteres de teléfono (#,-,*,etc).">

						</div>
								<div class="elementor-field-type-email elementor-field-group elementor-column elementor-field-group-email elementor-col-100 elementor-field-required">
												<label for="form-field-email" class="elementor-field-label elementor-screen-only">
								Email							</label>
														<input size="1" type="email" name="form_fields[email]" id="form-field-email" class="elementor-field elementor-size-xs  elementor-field-textual" placeholder="Email" required="required">
											</div>
								<div class="elementor-field-type-select elementor-field-group elementor-column elementor-field-group-field_7a29237 elementor-col-100 elementor-field-required">
												<label for="form-field-field_7a29237" class="elementor-field-label elementor-screen-only">
								Tipo de Servicio							</label>
								<div class="elementor-field elementor-select-wrapper remove-before ">
			<div class="select-caret-down-wrapper">
				<svg aria-hidden="true" class="e-font-icon-svg e-eicon-caret-down" viewBox="0 0 571.4 571.4" xmlns="http://www.w3.org/2000/svg"><path d="M571 393Q571 407 561 418L311 668Q300 679 286 679T261 668L11 418Q0 407 0 393T11 368 36 357H536Q550 357 561 368T571 393Z"></path></svg>			</div>
			<select name="form_fields[field_7a29237]" id="form-field-field_7a29237" class="elementor-field-textual elementor-size-xs" required="required">
									<option value="Seleccionar Tipo de Servicio">Seleccionar Tipo de Servicio</option>
									<option value="Diseño Web">Diseño Web</option>
									<option value="Desarrollo de Software y App">Desarrollo de Software y App</option>
									<option value="Creación de Vídeos Profesionales">Creación de Vídeos Profesionales</option>
									<option value="Diseño Gráfico a Medida">Diseño Gráfico a Medida</option>
									<option value="Posicionamiento Web">Posicionamiento Web</option>
									<option value="Copywriting y traducción de textos">Copywriting y traducción de textos</option>
									<option value="Diseño de Tiendas Online">Diseño de Tiendas Online</option>
									<option value="Gestión de Redes Sociales">Gestión de Redes Sociales</option>
							</select>
		</div>
						</div>
								<div class="elementor-field-type-acceptance elementor-field-group elementor-column elementor-field-group-field_07539bf elementor-col-100 elementor-field-required">
												<label for="form-field-field_07539bf" class="elementor-field-label elementor-screen-only">
								Confirmación Política de Privacidad							</label>
								<div class="elementor-field-subgroup">
			<span class="elementor-field-option">
				<input type="checkbox" name="form_fields[field_07539bf]" id="form-field-field_07539bf" class="elementor-field elementor-size-xs  elementor-acceptance-field" required="required">
				<label for="form-field-field_07539bf">Acepto la <a href=https://lodigitalizo.endesarrollo.site/politicas-de-privacidad/ style="color: #10CFC9;" target="_blank"> Política de Privacidad</a>.</label>			</span>
		</div>
						</div>
								<div class="elementor-field-type-acceptance elementor-field-group elementor-column elementor-field-group-field_11f0896 elementor-col-100">
												<label for="form-field-field_11f0896" class="elementor-field-label elementor-screen-only">
								Consentimiento de recibir información comercial							</label>
								<div class="elementor-field-subgroup">
			<span class="elementor-field-option">
				<input type="checkbox" name="form_fields[field_11f0896]" id="form-field-field_11f0896" class="elementor-field elementor-size-xs  elementor-acceptance-field">
				<label for="form-field-field_11f0896">Recibir información comercial.</label>			</span>
		</div>
						</div>
								<div class="elementor-field-type-recaptcha_v3 elementor-field-group elementor-column elementor-field-group-field_8c149a6 elementor-col-100 recaptcha_v3-bottomleft">
					<div class="elementor-field" id="form-field-field_8c149a6"><div class="elementor-g-recaptcha" data-sitekey="6LdzauUjAAAAABm-lQcyFqnxJksfdh8b5uy9SL1E" data-type="v3" data-action="Form" data-badge="bottomleft" data-size="invisible"></div></div>				</div>
								<div class="elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons">
					<button class="elementor-button elementor-size-xs" type="submit">
						<span class="elementor-button-content-wrapper">
																						<span class="elementor-button-text">Enviar</span>
													</span>
					</button>
				</div>
			</div>
		</form>
						</div>
				<div class="elementor-element elementor-element-aedb609 paragraphP elementor-widget elementor-widget-text-editor" data-id="aedb609" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
									<p>Te llamaremos en menos de 24 horas.</p>								</div>
				</div>
					</div>
				</div>
				</div>
					<script>
				( () => {
					const lazyloadRunObserver = () => {
						const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
						const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
							entries.forEach( ( entry ) => {
								if ( entry.isIntersecting ) {
									let lazyloadBackground = entry.target;
									if( lazyloadBackground ) {
										lazyloadBackground.classList.add( 'e-lazyloaded' );
									}
									lazyloadBackgroundObserver.unobserve( entry.target );
								}
							});
						}, { rootMargin: '200px 0px 200px 0px' } );
						lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
							lazyloadBackgroundObserver.observe( lazyloadBackground );
						} );
					};
					const events = [
						'DOMContentLoaded',
						'elementor/lazyload/observe',
					];
					events.forEach( ( event ) => {
						document.addEventListener( event, lazyloadRunObserver );
					} );
				} )();
			</script>
			<style id="global-styles-inline-css">
: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,0) 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%;}:root { --wp--style--global--content-size: 800px;--wp--style--global--wide-size: 1200px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 24px; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 24px; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}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;}.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;}
/*# sourceURL=global-styles-inline-css */
</style>
<script id="rocket-browser-checker-js-after">
"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}();
//# sourceURL=rocket-browser-checker-js-after
</script>
<script id="rocket-preload-links-js-extra">
var RocketPreloadLinksConfig = {"excludeUris":"/(?:.+/)?feed(?:/(?:.+/?)?)?$|/(?:.+/)?embed/|/(index.php/)?(.*)wp-json(/.*|$)|/refer/|/go/|/recommend/|/recommends/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https://lodigitalizo.endesarrollo.site","onHoverDelay":"100","rateThrottle":"3"};
//# sourceURL=rocket-preload-links-js-extra
</script>
<script id="rocket-preload-links-js-after">
(function() {
"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareurl(https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run();
}());

//# sourceURL=rocket-preload-links-js-after
</script>
<script id="rocket_lazyload_css-js-extra">
var rocket_lazyload_css_data = {"threshold":"300"};
//# sourceURL=rocket_lazyload_css-js-extra
</script>
<script id="rocket_lazyload_css-js-after">
!function o(n,a,c){function l(t,e){if(!a[t]){if(!n[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(u)return u(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}r=a[t]={exports:{}},n[t][0].call(r.exports,function(e){return l(n[t][1][e]||e)},r,r.exports,o,n,a,c)}return a[t].exports}for(var u="function"==typeof require&&require,e=0;e<c.length;e++)l(c[e]);return l}({1:[function(e,t,r){{let r="undefined"==typeof rocket_pairs?[]:rocket_pairs,o=(("undefined"==typeof rocket_excluded_pairs?[]:rocket_excluded_pairs).map(t=>{var e=t.selector;document.querySelectorAll(e).forEach(e=>{e.setAttribute("data-rocket-lazy-bg-"+t.hash,"excluded")})}),document.querySelector("#wpr-lazyload-bg-container"));var a=rocket_lazyload_css_data.threshold||300;let n=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&r.filter(e=>t.target.matches(e.selector)).map(t=>{var e;t&&((e=document.createElement("style")).textContent=t.style,o.insertAdjacentElement("afterend",e),t.elements.forEach(e=>{n.unobserve(e),e.setAttribute("data-rocket-lazy-bg-"+t.hash,"loaded")}))})})},{rootMargin:a+"px"});function c(){0<(0<arguments.length&&void 0!==arguments[0]?arguments[0]:[]).length&&r.forEach(t=>{try{document.querySelectorAll(t.selector).forEach(e=>{"loaded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&"excluded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&(n.observe(e),(t.elements||=[]).push(e))})}catch(e){console.error(e)}})}c(),(()=>{let r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}})()(document.querySelector("body"),c)}},{}]},{},[1]);
//# sourceURL=rocket_lazyload_css-js-after
</script>
<script id="wp-hooks-js" src="https://lodigitalizo.endesarrollo.site/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
<script id="jet-menu-public-scripts-js-extra">
var jetMenuPublicSettings = {"version":"3.0.4","ajaxUrl":"https://lodigitalizo.endesarrollo.site/wp-admin/admin-ajax.php","isMobile":"false","getElementorTemplateApiUrl":"https://lodigitalizo.endesarrollo.site/wp-json/jet-menu-api/v2/get-elementor-template-content","getBlocksTemplateApiUrl":"https://lodigitalizo.endesarrollo.site/wp-json/jet-menu-api/v2/get-blocks-template-content","menuItemsApiUrl":"https://lodigitalizo.endesarrollo.site/wp-json/jet-menu-api/v2/get-menu-items","mobileMenuScriptUrl":"https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-menu/assets/public/js/jet-menu-mobile-menu-public-scripts.js?ver=3.0.4","restNonce":"6b9a812cf9","devMode":"false","wpmlLanguageCode":"","menuSettings":{"jetMenuRollUp":"true","jetMenuMouseleaveDelay":500,"jetMenuMegaWidthType":"container","jetMenuMegaWidthSelector":"","jetMenuMegaOpenSubType":"hover","jetMenuMegaAjax":"false"}};
var jetMenuPublicSettings = {"version":"3.0.4","ajaxUrl":"https://lodigitalizo.endesarrollo.site/wp-admin/admin-ajax.php","isMobile":"false","getElementorTemplateApiUrl":"https://lodigitalizo.endesarrollo.site/wp-json/jet-menu-api/v2/get-elementor-template-content","getBlocksTemplateApiUrl":"https://lodigitalizo.endesarrollo.site/wp-json/jet-menu-api/v2/get-blocks-template-content","menuItemsApiUrl":"https://lodigitalizo.endesarrollo.site/wp-json/jet-menu-api/v2/get-menu-items","mobileMenuScriptUrl":"https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-menu/assets/public/js/jet-menu-mobile-menu-public-scripts.js?ver=3.0.4","restNonce":"6b9a812cf9","devMode":"false","wpmlLanguageCode":"","menuSettings":{"jetMenuRollUp":"true","jetMenuMouseleaveDelay":500,"jetMenuMegaWidthType":"container","jetMenuMegaWidthSelector":"","jetMenuMegaOpenSubType":"hover","jetMenuMegaAjax":"false"}};
//# sourceURL=jet-menu-public-scripts-js-extra
</script>
<script id="jet-menu-public-scripts-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-menu/assets/public/js/jet-menu-public-scripts.js?ver=3.0.4"></script>
<script id="jet-menu-public-scripts-js-after">
function CxCSSCollector(){"use strict";var t,e=window.CxCollectedCSS;void 0!==e&&((t=document.createElement("style")).setAttribute("title",e.title),t.setAttribute("type",e.type),t.textContent=e.css,document.head.appendChild(t))}CxCSSCollector();
//# sourceURL=jet-menu-public-scripts-js-after
</script>
<script id="jet-plugins-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-tricks/assets/lib/jet-plugins/jet-plugins.js?ver=1.1.0"></script>
<script id="jet-anime-js-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-tricks/assets/js/lib/anime/anime.min.js?ver=2.2.0"></script>
<script id="jet-popup-frontend-js-extra">
var jetPopupData = {"version":"2.2.2","ajax_url":"https://lodigitalizo.endesarrollo.site/wp-admin/admin-ajax.php","currentPostId":"26498","isElementor":"true","accessibility":{"popupLabel":"Popup dialog","closeButtonLabel":"Close popup"}};
//# sourceURL=jet-popup-frontend-js-extra
</script>
<script id="jet-popup-frontend-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-popup/assets/js/jet-popup-frontend.js?ver=2.2.2"></script>
<script id="elementor-webpack-runtime-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.2.4"></script>
<script id="elementor-frontend-modules-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.2.4"></script>
<script id="jquery-ui-core-js-before">
jQuery.uiBackCompat = true;
//# sourceURL=jquery-ui-core-js-before
</script>
<script id="jquery-ui-core-js" src="https://lodigitalizo.endesarrollo.site/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
<script id="elementor-frontend-js-before">
var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Compartir en Facebook","shareOnX":"Compartir en X","pinIt":"Pinear","download":"Descargar","downloadImage":"Descargar imagen","fullscreen":"Pantalla completa","zoom":"Zoom","share":"Compartir","playVideo":"Reproducir v\u00eddeo","previous":"Anterior","next":"Siguiente","close":"Cerrar","a11yCarouselPrevSlideMessage":"Diapositiva anterior","a11yCarouselNextSlideMessage":"Diapositiva siguiente","a11yCarouselFirstSlideMessage":"Esta es la primera diapositiva","a11yCarouselLastSlideMessage":"Esta es la \u00faltima diapositiva","a11yCarouselPaginationBulletMessage":"Ir a la diapositiva"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"M\u00f3vil vertical","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"M\u00f3vil horizontal","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tableta vertical","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tableta horizontal","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Port\u00e1til","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Pantalla grande","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},
"hasCustomBreakpoints":false},"version":"4.2.4","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_optimized_markup":true,"e_panel_promotions":true,"theme_builder_v2":true,"landing-pages":true,"nested-elements":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_opt_in_v4_page":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true,"e_pro_atomic_form":true,"e_pro_collection_loop":true,"mega-menu":true,"e_pro_variables":true,"e_pro_interactions":true},"urls":{"assets":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/lodigitalizo.endesarrollo.site\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"63c5858b74","atomicFormsSendForm":"7053cf7be7"},"swiperClass":"swiper","settings":{"editorPreferences":[]},"kit":{"body_background_background":"classic","active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_fullscreen":"yes"},"post":{"id":0,"title":"P\u00e1gina no encontrada - LoDigitalizo","excerpt":""}};
//# sourceURL=elementor-frontend-js-before
</script>
<script id="elementor-frontend-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.2.4"></script>
<script id="fmmm-multicolumn-menu-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-multicolumn-menu/assets/js/multicolumn-menu.js?ver=1.1.3"></script>
<script id="e-sticky-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/lib/sticky/jquery.sticky.min.js?ver=4.2.2"></script>
<script id="smartmenus-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js?ver=1.2.1"></script>
<script id="elementor-recaptcha_v3-api-js" src="https://www.google.com/recaptcha/api.js?render=explicit&#038;ver=4.2.2"></script>
<script id="jet-tricks-ts-particles-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-tricks/assets/js/lib/ts-particles/1.18.11/tsparticles.min.js?ver=1.18.11"></script>
<script id="elementor-pro-webpack-runtime-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=4.2.2"></script>
<script id="wp-i18n-js" src="https://lodigitalizo.endesarrollo.site/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
</script>
<script id="elementor-pro-frontend-js-before">
var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/lodigitalizo.endesarrollo.site\/wp-admin\/admin-ajax.php","nonce":"a75828fcc6","urls":{"assets":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/lodigitalizo.endesarrollo.site\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},
"facebook_sdk":{"lang":"es_ES","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/lodigitalizo.endesarrollo.site\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}};
//# sourceURL=elementor-pro-frontend-js-before
</script>
<script id="elementor-pro-frontend-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=4.2.2"></script>
<script id="pro-elements-handlers-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=4.2.2"></script>
<script id="jet-menu-elementor-widgets-scripts-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-menu/includes/elementor/assets/public/js/widgets-scripts.js?ver=3.0.4"></script>
<script id="jet-popup-elementor-frontend-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-popup/includes/elementor/assets/js/jet-popup-elementor-frontend.js?ver=2.2.2"></script>
<script id="jet-tabs-frontend-js-extra">
var JetTabsSettings = {"ajaxurl":"https://lodigitalizo.endesarrollo.site/wp-admin/admin-ajax.php","isMobile":"false","templateApiUrl":"https://lodigitalizo.endesarrollo.site/wp-json/jet-tabs-api/v1/elementor-template","devMode":"false","isSelfRequest":""};
//# sourceURL=jet-tabs-frontend-js-extra
</script>
<script id="jet-tabs-frontend-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-tabs/assets/js/jet-tabs-frontend.min.js?ver=2.3.3"></script>
<script id="jet-tricks-popperjs-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-tricks/assets/js/lib/tippy/popperjs.js?ver=2.11.8"></script>
<script id="jet-tricks-tippy-bundle-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-tricks/assets/js/lib/tippy/tippy-bundle.js?ver=6.3.7"></script>
<script id="jet-tricks-frontend-js-extra">
var JetTricksSettings = {"elements_data":{"sections":[],"columns":[],"widgets":{"622233f1":[],"3e53741c":[],"5a88d3d7":[],"5c0abb11":[],"37a98ea1":[],"5f37c5ee":[],"47ca36f":[],"aedb609":[]}}};
//# sourceURL=jet-tricks-frontend-js-extra
</script>
<script id="jet-tricks-frontend-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-tricks/assets/js/jet-tricks-frontend.js?ver=2.0.1"></script>
<script id="jquery-ui-datepicker-js" src="https://lodigitalizo.endesarrollo.site/wp-includes/js/jquery/ui/datepicker.min.js?ver=1.14.2"></script>
<script id="jet-smart-filters-js-extra">
var JetSmartFilterSettings = {"ajaxurl":"https://lodigitalizo.endesarrollo.site/wp-admin/admin-ajax.php","siteurl":"https://lodigitalizo.endesarrollo.site","sitepath":"","baseurl":"/wp-content/uploads/elementor/css/post-769.css/","selectors":{"epro-archive-products":{"selector":".elementor-widget-wc-archive-products","action":"insert","inDepth":false,"idPrefix":"#","list":".products","item":".product"},"epro-archive":{"selector":".elementor-widget-archive-posts .elementor-posts","action":"replace","inDepth":false,"idPrefix":"#","list":".elementor-posts","item":".elementor-post"},"epro-loop-builder":{"selector":".elementor-loop-container","action":"replace","inDepth":true,"idPrefix":"#"},"epro-portfolio":{"selector":".elementor-portfolio","action":"insert","inDepth":true,"idPrefix":"#","item":".elementor-portfolio-item"},"epro-posts":{"selector":".elementor-widget-posts .elementor-widget-container","action":"replace","inDepth":false,"idPrefix":"#","list":".elementor-posts","item":".elementor-post"},"epro-products":{"selector":".elementor-widget-woocommerce-products .elementor-widget-container","action":"replace","inDepth":false,"idPrefix":"#","list":".products","item":".product"},"jet-engine-calendar":{"selector":".jet-listing-calendar","action":"replace","inDepth":true,"idPrefix":"#"},"jet-engine":{"selector":".jet-listing-grid.jet-listing","action":"replace","inDepth":true,"idPrefix":"#","list":".jet-listing-grid__items"},"jet-woo-products-grid":{"selector":".elementor-jet-woo-products.jet-woo-builder","action":"insert","inDepth":true,"idPrefix":"#","list":".jet-woo-products","item":".jet-woo-builder-product"},"jet-woo-products-list":{"selector":".elementor-jet-woo-products-list.jet-woo-builder","action":"insert","inDepth":true,"idPrefix":"#","list":".jet-woo-products-list","item":".jet-woo-builder-product"},"jsf-listing":{"selector":".jsf-listing","action":"replace","inDepth":true,"idPrefix":"#","item":".jsf-listing__item"},"woocommerce-archive":{"selector":".jet-woo-products-wrapper","action":"insert","inDepth":false,"idPrefix":"#","list":".products","item":".product"},"default-woo-archive":{"selector":".woocommerce .products","action":"insert","inDepth":false,"idPrefix":"#","list":".products","item":".product"},"woocommerce-shortcode":{"selector":".woocommerce[class*=\"columns\"]","action":"replace","inDepth":false,"idPrefix":".","list":".products","item":".product"}},"queries":[],"settings":[],"misc":{"week_start":"1","url_type":"plain","valid_url_params":["jsf","tax","meta","date","sort","alphabet","_s","_sm","pagenum","plain_query","jet-smart-filters","jet_paged","search","_tax_query_","_meta_query_","_date_query_","_sort_","__s_"]},"props":[],"extra_props":{},"templates":{"active_tag":{"label":"\u003Cdiv class=\"jet-active-tag__label\"\u003E/% $value %/\u003Cspan class=\"jet-active-tag__label-separator\"\u003E:\u003C/span\u003E\u003C/div\u003E","value":"\u003Cdiv class=\"jet-active-tag__val\"\u003E/% $value %/\u003C/div\u003E","remove":"\u003Cdiv class=\"jet-active-tag__remove\"\u003E&times;\u003C/div\u003E"},"active_filter":{"label":"\u003Cdiv class=\"jet-active-filter__label\"\u003E/% $value %/\u003Cspan class=\"jet-active-filter__label-separator\"\u003E:\u003C/span\u003E\u003C/div\u003E","value":"\u003Cdiv class=\"jet-active-filter__val\"\u003E/% $value %/\u003C/div\u003E","remove":"\u003Cdiv class=\"jet-active-filter__remove\"\u003E&times;\u003C/div\u003E"},"pagination":{"item":"\u003Cdiv class=\"jet-filters-pagination__link\"\u003E/% $value %/\u003C/div\u003E","dots":"\u003Cdiv class=\"jet-filters-pagination__dots\"\u003E&hellip;\u003C/div\u003E","load_more":"\u003Cdiv class=\"jet-filters-pagination__link\"\u003E/% $value %/\u003C/div\u003E"}},"plugin_settings":{"use_tabindex":false,"use_url_aliases":false,"url_aliases":[],"provider_preloader":{"template":"","fixed_position":false,"fixed_edge_gap":80},"url_custom_symbols":""},"datePickerData":{"closeText":"Done","prevText":"Prev","nextText":"Next","currentText":"Today","monthNames":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthNamesShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dayNamesShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dayNamesMin":["Su","Mo","Tu","We","Th","Fr","Sa"],"weekHeader":"Wk"}};
//# sourceURL=jet-smart-filters-js-extra
</script>
<script id="jet-smart-filters-js" src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/jet-smart-filters/assets/js/public.js?ver=3.8.5"></script>
		<style>
			.unlimited-elements-background-overlay{
				position:absolute;
				top:0px;
				left:0px;
				width:100%;
				height:100%;
				z-index:0;
			}

			.unlimited-elements-background-overlay.uc-bg-front{
				z-index:999;
			}
		</style>

		<script type='text/javascript'>

			jQuery(document).ready(function(){
					
				function ucBackgroundOverlayPutStart(){
				
					var objBG = jQuery(".unlimited-elements-background-overlay").not(".uc-bg-attached");

					if(objBG.length == 0)
						return(false);

					objBG.each(function(index, bgElement){

						var objBgElement = jQuery(bgElement);

						var targetID = objBgElement.data("forid");

						var location = objBgElement.data("location");

						switch(location){
							case "body":
							case "body_front":
								var objTarget = jQuery("body");
							break;
							case "layout":
							case "layout_front":
								var objLayout = jQuery("*[data-id=\""+targetID+"\"]");
								var objTarget = objLayout.parents(".elementor");
								if(objTarget.length > 1)
									objTarget = jQuery(objTarget[0]);
							break;
							default:
								var objTarget = jQuery("*[data-id=\""+targetID+"\"]");
							break;
						}


						if(objTarget.length == 0)
							return(true);

						var objVideoContainer = objTarget.children(".elementor-background-video-container");

						if(objVideoContainer.length == 1)
							objBgElement.detach().insertAfter(objVideoContainer).show();
						else
							objBgElement.detach().prependTo(objTarget).show();


						var objTemplate = objBgElement.children("template");

						if(objTemplate.length){
							
					        var clonedContent = objTemplate[0].content.cloneNode(true);

					    	var objScripts = jQuery(clonedContent).find("script");
					    	if(objScripts.length)
					    		objScripts.attr("type","text/javascript");
					        
					        objBgElement.append(clonedContent);
							
							objTemplate.remove();
						}

						objBgElement.trigger("bg_attached");
						objBgElement.addClass("uc-bg-attached");

					});
				}

				ucBackgroundOverlayPutStart();

				jQuery( document ).on( 'elementor/popup/show', ucBackgroundOverlayPutStart);
				jQuery( "body" ).on( 'uc_dom_updated', ucBackgroundOverlayPutStart);

			});


		</script>
		<script>
/* === UE Sliding Menu: botón "Anterior" con nombre del menú padre ===
 * - Sin observers ni loops infinitos
 * - Reacciona solo al click del item con submenú
 */
(function(){
  const ROOT = document.querySelector('.ue-slide-menu');
  if (!ROOT) return;

  function cleanText(el){
    if(!el) return '';
    const c = el.cloneNode(true);
    c.querySelectorAll('.ue-slide-menu-expand-icon, .ue-back-link-icon, svg, img, i').forEach(n => n.remove());
    const t = c.textContent || '';
    return t.replace(/\s+/g,' ').trim();
  }

  ROOT.addEventListener('click', e => {
    const trigger = e.target.closest('li.menu-item-has-children > a');
    if (!trigger) return;

    // submenú inmediato
    const li = trigger.parentElement;
    const submenu = li.querySelector(':scope > ul.sub-menu, :scope > .submenu, :scope > .ue-mlsmenu__submenu');
    if (!submenu) return;

    // botón de "Anterior"
    const backLink = submenu.querySelector('li.ue-back-link > a');
    if (!backLink) return;

    const parentText = cleanText(trigger);
    if (!parentText) return;

    // mantiene el icono si existe
    const icon = backLink.querySelector('.ue-back-link-icon');
    backLink.textContent = parentText;
    if (icon) backLink.appendChild(icon);
  });
})();
</script>

<style>
/* Utilidad para ocultar sin romper layout */
.is-hidden{ display: none !important; }
</style>

<script>
(function(){
  const menuRoot = document.querySelector('.ue-slide-menu');
  if(!menuRoot) return;

  // CTA: prioriza .pedir-presupuesto; fallback .navButton
  const cta = document.querySelector('.pedir-presupuesto') || document.querySelector('.navButton');
  if(!cta) return;

  // ¿Algún submenú activo y visible en escena?
  function hasActiveVisibleSubmenu(){
    const container = menuRoot.querySelector('.ue-slide-menu-wrapper') || menuRoot;
    const stage = container.getBoundingClientRect();

    // UE coloca .ue-active en el nivel mostrado
    const actives = menuRoot.querySelectorAll('ul.sub-menu.ue-active');
    for (const ul of actives){
      const r = ul.getBoundingClientRect();
      // visible si hay intersección con el contenedor y tiene tamaño
      const visible = r.width > 0 && r.height > 0 && r.bottom > stage.top && r.top < stage.bottom;
      if (visible) return true;
    }
    return false;
  }

  function updateCTA(){
    const inSub = hasActiveVisibleSubmenu();
    if (inSub){
      cta.classList.add('is-hidden');
    } else {
      cta.classList.remove('is-hidden');
    }
  }

  // Al cargar
  if (document.readyState === 'loading'){
    document.addEventListener('DOMContentLoaded', updateCTA, {once:true});
  } else {
    updateCTA();
  }

  // Reaccionar a la navegación del menú
  menuRoot.addEventListener('click', (e)=>{
    if(
      e.target.closest('li.menu-item-has-children > a') ||
      e.target.closest('.ue-slide-menu-expand-icon') ||
      e.target.closest('li.ue-back-link > a')
    ){
      // darle tiempo a UE para aplicar/retirar .ue-active
      setTimeout(updateCTA, 140);
    }
  });

  // Si hay transiciones/animaciones, al terminar volvemos a chequear
  menuRoot.addEventListener('transitionend', (e)=>{
    if (e.target.closest('.ue-slide-menu')) updateCTA();
  }, true);

  // Rotaciones / resize pueden cambiar la visibilidad calculada
  window.addEventListener('resize', updateCTA);
})();
</script>

<script>
/* Hover único (Elementor + JetEngine) dentro de .hoverAccordion
   — Activo solo en pantallas ≥1025px
*/
document.addEventListener('DOMContentLoaded', function () {

  // Solo ejecutar en escritorio
  if (window.innerWidth < 1025) return;

  // Detecta "abierto" para ambos sistemas
  function isExpanded(header){
    const item = header.closest('.jet-accordion__item, .elementor-accordion-item');
    return header.getAttribute('aria-expanded') === 'true'
        || header.classList.contains('elementor-active')
        || (item && (item.classList.contains('active-toggle') || item.classList.contains('elementor-active')));
  }

  // Cierra todos menos target dentro de la misma lista de headers
  function closeOthers(headers, target){
    headers.forEach(h => { if (h !== target && isExpanded(h)) h.click(); });
  }

  // Vincula un acordeón con sus headers (filtrados al nivel del acordeón)
  function bindAccordion(acc, headerSelector){
    const all = Array.from(acc.querySelectorAll(headerSelector));
    const headers = all.filter(h => h.closest('.jet-accordion, .elementor-accordion, .e-n-accordion') === acc);
    if (!headers.length) return;

    let lastTarget = null;
    let busyUntil = 0;

    function openExclusive(target){
      const now = performance.now();
      if (now < busyUntil) return;
      lastTarget = target;
      target.click();
      requestAnimationFrame(() => {
        closeOthers(headers, target);
        requestAnimationFrame(() => closeOthers(headers, target));
      });
      busyUntil = now + 100;
    }

    acc.addEventListener('pointerover', (e) => {
      const header = e.target.closest(headerSelector);
      if (!header || !headers.includes(header)) return;
      if (header === lastTarget && isExpanded(header)) return;
      openExclusive(header);
    }, { passive:true });
  }

  // Montaje por wrapper
  document.querySelectorAll('.hoverAccordion').forEach(root => {
    root.querySelectorAll('.jet-accordion').forEach(acc => {
      bindAccordion(acc, '.jet-toggle__control');
    });
    root.querySelectorAll('.elementor-accordion').forEach(acc => {
      bindAccordion(acc, '.elementor-tab-title');
    });
    root.querySelectorAll('.e-n-accordion').forEach(acc => {
      bindAccordion(acc, '.e-n-accordion-item-title');
    });
  });
});
</script>

<style>
.seccion-marquee { position: relative; }
.boton-marquee   { position: absolute; transform: translate(-50%,-50%); }
</style>

<script>
document.addEventListener("DOMContentLoaded", function(){
  const seccion = document.querySelector(".seccion-marquee");
  const boton   = document.querySelector(".boton-marquee");
  if(!seccion || !boton) return;

  // Parámetros solicitados
  const PADDING_Y  = 20;   // margen superior e inferior
  const BREAKPOINT = 1024;  // <= 1024px sin interacción

  let rect = seccion.getBoundingClientRect();
  let currentX = rect.width / 2;
  let currentY = rect.height / 2;
  let targetX  = currentX;
  let targetY  = currentY;
  const ease = 0.15;
  let animating = false;
  let interactive = window.innerWidth > BREAKPOINT; // estado responsive

  function updateRect(){
    rect = seccion.getBoundingClientRect();
  }

  function clampToBounds(x, y){
    const bw = boton.offsetWidth  || 0;
    const bh = boton.offsetHeight || 0;

    const minX = bw * 0.5;
    const maxX = rect.width  - bw * 0.5;

    // Aplicamos padding vertical de 100px arriba/abajo
    const minY = PADDING_Y + bh * 0.5;
    const maxY = rect.height - PADDING_Y - bh * 0.5;

    return {
      x: Math.max(minX, Math.min(x, maxX)),
      y: Math.max(minY, Math.min(y, maxY))
    };
  }

  function moveTo(e){
    if(!interactive) return; // sin interacción en <= 1024px

    // si el puntero está fuera del rect, recentramos y cortamos "arrastre"
    const inside =
      e.clientX >= rect.left && e.clientX <= rect.right &&
      e.clientY >= rect.top  && e.clientY <= rect.bottom;

    if(!inside){
      center();
      return;
    }

    const x = e.clientX - rect.left;
    const y = e.clientY - rect.top;
    const c = clampToBounds(x, y);
    targetX = c.x;
    targetY = c.y;

    if(!animating){
      animating = true;
      requestAnimationFrame(animate);
    }
  }

  function center(){
    updateRect();
    const c = clampToBounds(rect.width / 2, rect.height / 2);
    targetX = c.x;
    targetY = c.y;
    if(!animating){
      animating = true;
      requestAnimationFrame(animate);
    }
  }

  function animate(){
    currentX += (targetX - currentX) * ease;
    currentY += (targetY - currentY) * ease;
    boton.style.left = currentX + "px";
    boton.style.top  = currentY + "px";

    if(Math.abs(targetX - currentX) > 0.5 || Math.abs(targetY - currentY) > 0.5){
      requestAnimationFrame(animate);
    } else {
      animating = false;
    }
  }

  function applyResponsiveMode(){
    const shouldBeInteractive = window.innerWidth > BREAKPOINT;
    if(shouldBeInteractive !== interactive){
      interactive = shouldBeInteractive;
      // En móviles/tablet (<=1024): centrar y quedarse quieto
      center();
    }
  }

  // Eventos
  seccion.addEventListener("mouseenter", updateRect);
  seccion.addEventListener("mousemove", moveTo);
  // también sobre el botón para no perder tracking
  boton.addEventListener("mousemove", moveTo);
  seccion.addEventListener("mouseleave", center);

  window.addEventListener("resize", () => {
    updateRect();
    applyResponsiveMode();
  });
  window.addEventListener("scroll", updateRect, { passive: true });

  // Init
  applyResponsiveMode();
  const c0 = clampToBounds(rect.width / 2, rect.height / 2);
  currentX = c0.x; currentY = c0.y; targetX = c0.x; targetY = c0.y;
  boton.style.left = currentX + "px";
  boton.style.top  = currentY + "px";
});
</script>

<style>
/* Escenario seguro: permitimos superposición y evitamos recortes */
.listing-stack { position: relative; }
.listing-stack .jet-listing-grid__items { display: block; }
.listing-stack .jet-listing-grid__item { position: relative; overflow: visible; }

/* Estado normal (no fijo) de la tarjeta */
.listing-stack .stack-card,
.listing-stack .jet-listing-grid__item > *:first-child {
  position: relative;
  z-index: 0;
  will-change: transform;
}

/* Estado “pegado” (lo aplica JS) */
.listing-stack .is-fixed {
  position: fixed !important;
  left: 0; right: 0;        /* ocupa ancho del contenedor, lo ajustamos por JS */
  top: 100px !important;    /* tu offset */
  margin: 0 auto;           /* centrado si el contenedor es más estrecho */
}
	
	@media (min-width: 1025px) {
  .listing-stack .stack-card {
    height: calc(100vh - 110px) !important;
  }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .listing-stack .stack-card {
    height: calc(100vh - 80px) !important;
  }
}
	
	@media (max-width: 767px) {
  .listing-stack .stack-card {
    height: calc(100vh - 70px) !important;
  }
}
</style>

<script>
(() => {
  const BASE_Z = 1000;
  const HYST   = 2;

  const raf = (fn) => {
    let t = false;
    return () => { if (!t) { t = true; requestAnimationFrame(() => { t = false; fn(); }); } };
  };

  // Altura de viewport confiable (evita problemas con barras móviles)
  const vh = () => {
    return (window.visualViewport && window.visualViewport.height)
      ? Math.round(window.visualViewport.height)
      : Math.round(window.innerHeight);
  };

  // Calcula TOP leyendo la altura COMPUTADA de la card (en px) y restándola al viewport
  const computeTopFromCard = (card) => {
    const cardH = parseFloat(getComputedStyle(card).height) || 0;
    const top   = Math.max(0, vh() - Math.round(cardH));
    return top;
  };

  // Offset acumulado relativo a container (robusto ante wrappers)
  function topRelativeTo(container, el) {
    let top = 0, node = el;
    while (node && node !== container && node instanceof HTMLElement) {
      top += node.offsetTop;
      node = node.offsetParent;
    }
    if (node !== container) {
      const elDocTop   = el.getBoundingClientRect().top + window.scrollY;
      const contDocTop = container.getBoundingClientRect().top + window.scrollY;
      return Math.round(elDocTop - contDocTop);
    }
    return Math.round(top);
  }

  const containers = document.querySelectorAll('.listing-stack');
  if (!containers.length) return;

  containers.forEach(container => {
    const items = Array.from(container.querySelectorAll('.jet-listing-grid__item'));
    if (!items.length) return;

    const getCard = (item) => item.querySelector('.stack-card') || item.firstElementChild;

    const rows = items.map((item, idx) => {
      const card = getCard(item);
      if (!card) return null;
      card.style.zIndex = (BASE_Z + idx);
      card.style.willChange = 'transform';
      return {
        item, card, idx,
        triggerY: 0,
        fixed: false,
        snapLeft: 0,
        snapWidth: 0,
        snapHeight: 0
      };
    }).filter(Boolean);

    let TOP = 100; // se calculará dinámicamente

    const measureAll = () => {
      // Reset para medir bien
      rows.forEach(r => {
        if (r.fixed) {
          r.fixed = false;
          r.card.classList.remove('is-fixed');
          r.card.style.position = '';
          r.card.style.top = '';
          r.card.style.left = '';
          r.card.style.width = '';
          r.card.style.height = '';
          r.card.style.right = '';
        }
        r.item.style.height = '';
      });

      // Tomamos la PRIMERA card como referencia para deducir TOP de tu CSS
      if (rows[0]) {
        TOP = computeTopFromCard(rows[0].card);
      }

      const contRect   = container.getBoundingClientRect();
      const contDocTop = contRect.top + window.scrollY;

      rows.forEach(r => {
        const relTop = topRelativeTo(container, r.item);
        r.triggerY   = Math.round(contDocTop + relTop - TOP);

        // Snapshot de la card en su estado natural (congela tamaño y evita “salto” de fondo)
        const cr = r.card.getBoundingClientRect();
        r.snapLeft   = Math.round(cr.left + window.scrollX);
        r.snapWidth  = Math.round(cr.width);
        r.snapHeight = Math.round(cr.height);
      });

      applyFixed(); // por si ya estamos scrolleados
    };

    const applyFixed = () => {
      const y = window.scrollY;

      // Si el user cambió la UI (barras móviles), el TOP real puede variar; re-sincronizamos suave
      if (rows[0]) {
        const newTop = computeTopFromCard(rows[0].card);
        if (Math.abs(newTop - TOP) > 1) { TOP = newTop; }
      }

      rows.forEach(r => {
        const shouldFix   = y >= r.triggerY;
        const shouldUnfix = y <  r.triggerY - HYST;

        if (shouldFix && !r.fixed) {
          if (r.snapHeight > 0) r.item.style.height = r.snapHeight + 'px';

          r.card.style.width  = r.snapWidth + 'px';
          r.card.style.height = r.snapHeight + 'px';
          r.card.style.left   = r.snapLeft + 'px';

          r.fixed = true;
          r.card.classList.add('is-fixed');
          r.card.style.position = 'fixed';
          r.card.style.top      = TOP + 'px';
          r.card.style.right    = 'auto';
        } else if (shouldUnfix && r.fixed) {
          r.fixed = false;
          r.card.classList.remove('is-fixed');
          r.card.style.position = '';
          r.card.style.top      = '';
          r.card.style.left     = '';
          r.card.style.width    = '';
          r.card.style.height   = '';
          r.card.style.right    = '';
          r.item.style.height   = '';
        } else if (r.fixed) {
          // Si cambió TOP por variación de viewport (rotación, UI bars), actualizamos
          r.card.style.top = TOP + 'px';
        }
      });
    };

    const onScroll = raf(applyFixed);
    const onResize = raf(measureAll);

    window.addEventListener('scroll', onScroll,  { passive: true });
    window.addEventListener('resize', onResize,  { passive: true });
    // Cambios de viewport en móviles (barras de URL que aparecen/desaparecen)
    if (window.visualViewport) {
      window.visualViewport.addEventListener('resize', onResize, { passive: true });
      window.visualViewport.addEventListener('scroll', onResize,  { passive: true });
    }

    // Reindex robusto si JetEngine inyecta items
    const mo = new MutationObserver(muts => {
      if (muts.some(m => [...m.addedNodes].some(n => n.nodeType === 1 && n.matches?.('.jet-listing-grid__item')))) {
        location.reload();
      }
    });
    mo.observe(container, { childList: true, subtree: true });

    // init
    measureAll();
  });
})();
</script>

<script>
/* Anchor por widget con clase .anchorize
   data-anchor="#id"
   data-anchor-mode="append" | "replace"  (default: append)
   data-anchor-selector=".selector-de-tu-enlace" (opcional) */

(function(){
  function normHash(anchor){ if(!anchor) return ""; return anchor[0]==="#" ? anchor : "#"+anchor; }
  function isHttpLike(href){
    return /^https?:\/\//i.test(href) || href.startsWith("/") || href.startsWith("./") || href.startsWith("../");
  }
  function buildHref(href, anchor, mode){
    try{
      const url = new url(https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/href, location.origin);
      if(mode === "replace"){ url.hash = anchor; }
      else if(!url.hash){ url.hash = anchor; }
      let out = url.toString();
      if(!/^https?:\/\//i.test(href) && !href.startsWith("//")){
        out = url.pathname + url.search + url.hash;
      }
      return out;
    }catch(e){
      if(mode === "replace") return href.split("#")[0] + anchor;
      if(href.indexOf("#") === -1) return href + anchor;
      return href;
    }
  }

  function applyAnchors(root){
    (root instanceof Element ? root : document).querySelectorAll(".anchorize").forEach(widget=>{
      const anchor = normHash(widget.getAttribute("data-anchor"));
      if(!anchor) return;
      const mode = (widget.getAttribute("data-anchor-mode") || "append").toLowerCase();
      const selector = widget.getAttribute("data-anchor-selector");
      const links = selector ? widget.querySelectorAll(selector) : widget.querySelectorAll("a[href]");
      links.forEach(a=>{
        const href = a.getAttribute("href") || "";
        if(!href) return;
        if(href.startsWith("#") || href.startsWith("mailto:") || href.startsWith("tel:")) return;
        if(!isHttpLike(href)) return;
        a.setAttribute("href", buildHref(href, anchor, mode));
      });
    });
  }

  // Exponer en global para ver "typeof applyAnchors" y para depurar
  window.applyAnchors = applyAnchors;

  // 1) Carga inicial
  document.addEventListener("DOMContentLoaded", function(){
    // pequeño delay por widgets que renderizan tarde
    setTimeout(()=>applyAnchors(document), 400);
  });

  // 2) Soporte Elementor en frontend y editor
  if(window.jQuery && window.elementorFrontend){
    jQuery(window).on("elementor/frontend/init", function(){
      elementorFrontend.hooks.addAction("frontend/element_ready/global", function($el){
        applyAnchors($el[0]);
      });
      // Popups, loops y render dinámico
      ["popup/show","popup/hide"].forEach(evt=>{
        elementorFrontend.hooks.addAction("elementor/"+evt, function($el){
          applyAnchors($el[0] || document);
        });
      });
    });
  }

  // 3) Fallback universal con MutationObserver
  const mo = new MutationObserver(muts=>{
    for(const m of muts){
      if(m.addedNodes) m.addedNodes.forEach(n=>{
        if(n.nodeType===1 && n.matches && (n.matches(".anchorize") || n.querySelector?.(".anchorize"))){
          applyAnchors(n);
        }
      });
    }
  });
  mo.observe(document.documentElement, {childList:true, subtree:true});
})();
</script>

<script>
(function(){
  function normHash(a){ if(!a) return ""; return a[0]==="#"?a:"#"+a; }
  function buildHref(href, anchor, mode){
    try{
      const url = new url(https://lodigitalizo.endesarrollo.site/wp-content/uploads/elementor/css/href, location.origin);
      if(mode==="replace") url.hash = anchor; else if(!url.hash) url.hash = anchor;
      let out = url.toString();
      if(!/^https?:\/\//i.test(href) && !href.startsWith("//")){
        out = url.pathname + url.search + url.hash; // preserva relativos
      }
      return out;
    }catch(e){
      if(mode==="replace") return (href||"").split("#")[0] + anchor;
      if((href||"").indexOf("#")===-1) return (href||"") + anchor;
      return href||"";
    }
  }

  // Interceptor universal para widgets que navegan por JS (tarjetas clickeables, data-url, etc.)
  document.addEventListener('click', function(ev){
    const widget = ev.target.closest('.anchorize');
    if(!widget) return;

    const anchor = normHash(widget.getAttribute('data-anchor'));
    if(!anchor) return;

    // 1) Si hay <a href> cercano, usarlo
    let link = ev.target.closest('a[href]');
    let rawHref = link ? link.getAttribute('href') : null;

    // 2) Si no, buscar URLs que muchos widgets guardan en data-*
    if(!rawHref){
      const carrier = ev.target.closest('[data-url],[data-link],[data-href],[data-elementor-url]');
      if(carrier){
        rawHref = carrier.getAttribute('data-url') 
               || carrier.getAttribute('data-link') 
               || carrier.getAttribute('data-href') 
               || carrier.getAttribute('data-elementor-url');
      }
    }
    if(!rawHref) return; // nada que hacer

    const mode = (widget.getAttribute('data-anchor-mode')||'append').toLowerCase();
    const dest = buildHref(rawHref, anchor, mode);

    // Respetar nueva pestaña si el usuario lo pidió o el widget apunta a _blank
    const openInNewTab = (link && link.target === '_blank') || ev.metaKey || ev.ctrlKey || ev.shiftKey || ev.button === 1;

    // Prevenir que el widget reemplace nuestra navegación
    ev.preventDefault();
    ev.stopImmediatePropagation();

    if(openInNewTab){
      window.open(dest, '_blank', 'noopener');
    }else{
      window.location.assign(dest);
    }
  }, true); // captura: corre antes que los handlers del widget
})();
</script>

<script>
(function(){
  const ICONS = [
    'https://lodigitalizo.endesarrollo.site/wp-content/uploads/2025/10/garantia.svg',
    'https://lodigitalizo.endesarrollo.site/wp-content/uploads/2025/10/entrega.svg',
    'https://lodigitalizo.endesarrollo.site/wp-content/uploads/2025/10/desarrollo.svg',
    'https://lodigitalizo.endesarrollo.site/wp-content/uploads/2025/10/propuesta.svg',
    'https://lodigitalizo.endesarrollo.site/wp-content/uploads/2025/10/analisis.svg'
  ];

  function addAccordionIcons(root){
    const scope = root || document;
    const headers = scope.querySelectorAll('.accordion-iconos .jet-toggle__label-text');

    headers.forEach(function(h, index){
      // Si ya tiene icono, no lo duplicamos
      if (h.querySelector('.icono-svg')) return;

      const span = document.createElement('span');
      span.className = 'icono-svg';

      const img = new Image();
      img.src = ICONS[index % ICONS.length]; // 1–5 y se repite
      img.width = 24;
      img.height = 24;

      span.appendChild(img);

      // Lo insertamos al inicio del h3
      h.insertBefore(span, h.firstChild);
    });
  }

  // Carga inicial
  document.addEventListener('DOMContentLoaded', function(){
    addAccordionIcons(document);
  });

  // Por si Elementor re-renderiza el widget en AJAX / popup, etc.
  if (window.elementorFrontend && window.elementorFrontend.hooks) {
    elementorFrontend.hooks.addAction('frontend/element_ready/global', function(scope){
      addAccordionIcons(scope[0] || scope);
    });
  }
})();
</script>

<script>
document.addEventListener('DOMContentLoaded', function () {
  const menuRoot  = document.getElementById('uc_multi_level_sliding_menu_elementor_c8bb27f');
  const bottomBar = document.querySelector('.barra-inferior');

  if (!menuRoot || !bottomBar) return;

  const rootMenu = menuRoot.querySelector('.ue-slide-menu-list');
  if (!rootMenu) return;

  function hideBottomBar() {
    bottomBar.style.display = 'none';
  }

  function showBottomBar() {
    bottomBar.style.display = '';
  }

  // Helper: ¿este <li> tiene un ul.sub-menu como hijo directo?
  function liHasDirectSubMenu(li) {
    if (!li) return false;
    const children = li.children;
    for (let i = 0; i < children.length; i++) {
      const el = children[i];
      if (el.tagName === 'UL' && el.classList.contains('sub-menu')) {
        return true;
      }
    }
    return false;
  }

  // Helper: obtener el ul.sub-menu hijo directo (si existe)
  function getDirectSubMenu(li) {
    if (!li) return null;
    const children = li.children;
    for (let i = 0; i < children.length; i++) {
      const el = children[i];
      if (el.tagName === 'UL' && el.classList.contains('sub-menu')) {
        return el;
      }
    }
    return null;
  }

  rootMenu.addEventListener('click', function (e) {
    // 1) VOLVER: clic en "Anterior"
    const backLink = e.target.closest('.ue-back-link a');
    if (backLink && rootMenu.contains(backLink)) {
      const subMenu  = backLink.closest('ul.sub-menu');
      const parentLi = subMenu ? subMenu.parentElement : null;

      // Solo mostramos la barra si este submenú cuelga directamente del nivel raíz
      if (parentLi && parentLi.parentElement === rootMenu) {
        showBottomBar();
      }
      return;
    }

    // 2) ENTRAR: clic en la FLECHA que abre segundo nivel
    const icon = e.target.closest('.ue-slide-menu-expand-icon');
    if (icon && rootMenu.contains(icon)) {
      const li = icon.closest('li');
      if (!li) return;

      const isTopLevel = li.parentElement === rootMenu;
      const hasSubMenu = liHasDirectSubMenu(li);

      // Solo si es ítem de primer nivel con submenú
      if (isTopLevel && hasSubMenu) {
        hideBottomBar();
      }
      return;
    }

    // 3) Cualquier otra cosa (links normales, href="#", etc.) no toca la barra
  });
});
</script>

<script>
(function(){

  const menu = document.querySelector('#uc_multi_level_sliding_menu_elementor_c8bb27f');
  if(!menu) return;

  document.addEventListener('click', function(e){

    const link = e.target.closest('#uc_multi_level_sliding_menu_elementor_c8bb27f li.menu-item-has-children > a');
    if(!link) return;

    // Si el click fue en la flecha o dentro de la flecha, no tocar nada
    if(e.target.closest('.ue-slide-menu-expand-icon')) return;

    const href = (link.getAttribute('href') || '').trim();

    // Solo actuar si NO tiene link real
    if(href && href !== '#') return;

    e.preventDefault();

    const expandIcon = link.querySelector('.ue-slide-menu-expand-icon');
    if(expandIcon){
      expandIcon.dispatchEvent(new MouseEvent('click', {
        bubbles: true,
        cancelable: true,
        view: window
      }));
    }

  }, false);

})();
</script>
<style>
/* =========================================================
   FADE IN + BLUR + MOVE UP
   Clase: .fade-in-blur
   SOLO FRONTEND
   Desktop >= 1025px
========================================================= */

@media (min-width: 1025px) {

    body:not(.elementor-editor-active) .fade-in-blur {
        opacity: 0;
        filter: blur(5px);
        translate: 0 18px;

        transition:
            opacity 0.8s ease,
            filter 0.8s ease,
            translate 0.8s cubic-bezier(0.22, 1, 0.36, 1);

        will-change: opacity, filter, translate;
    }

    body:not(.elementor-editor-active) .fade-in-blur.fib-visible {
        opacity: 1;
        filter: blur(0);
        translate: 0 0;
    }

}


/* =========================================================
   ELEMENTOR EDITOR / BACKEND
   Siempre normal, sin efecto
========================================================= */

body.elementor-editor-active .fade-in-blur,
.elementor-editor-active .fade-in-blur {
    opacity: 1 !important;
    filter: none !important;
    translate: none !important;
    transition: none !important;
    will-change: auto !important;
}
</style>


<script>
document.addEventListener('DOMContentLoaded', () => {

    /* =====================================================
       NO EJECUTAR EN ELEMENTOR EDITOR / BACKEND
    ===================================================== */

    const isElementorEditor =
        document.body.classList.contains('elementor-editor-active') ||
        document.documentElement.classList.contains('elementor-editor-active') ||
        (
            typeof elementorFrontend !== 'undefined' &&
            typeof elementorFrontend.isEditMode === 'function' &&
            elementorFrontend.isEditMode()
        );

    if (isElementorEditor) {
        return;
    }


    /* =====================================================
       SOLO DESKTOP
    ===================================================== */

    if (!window.matchMedia('(min-width: 1025px)').matches) {
        return;
    }


    const items = [...document.querySelectorAll('.fade-in-blur')];

    if (!items.length) {
        return;
    }


    /* =====================================================
       AGRUPAR POR CONTENEDOR PADRE
    ===================================================== */

    const groups = new Map();

    items.forEach(item => {

        const parent = item.parentElement;

        if (!groups.has(parent)) {
            groups.set(parent, []);
        }

        groups.get(parent).push(item);

    });


    /* =====================================================
       INTERSECTION OBSERVER
    ===================================================== */

    const observer = new IntersectionObserver((entries, obs) => {

        entries.forEach(entry => {

            if (!entry.isIntersecting) {
                return;
            }

            const parent = entry.target;
            const group = groups.get(parent);

            if (!group) {
                return;
            }


            /* =============================================
               MOSTRAR UNO POR UNO
            ============================================= */

            group.forEach((item, index) => {

                setTimeout(() => {
                    item.classList.add('fib-visible');
                }, index * 160);

            });


            /* Ejecutar una sola vez */
            obs.unobserve(parent);

        });

    }, {
        threshold: 0.15,
        rootMargin: '0px 0px -8% 0px'
    });


    /* =====================================================
       OBSERVAR CADA CONTENEDOR
    ===================================================== */

    groups.forEach((group, parent) => {
        observer.observe(parent);
    });

});
</script>
<script>window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue}
if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue}
images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1}
if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://lodigitalizo.endesarrollo.site/wp-content/plugins/wp-rocket/assets/js/lazyload/17.8.3/lazyload.min.js"></script>	</body>
</html>
