{"id":44788,"date":"2026-02-02T11:25:57","date_gmt":"2026-02-02T16:25:57","guid":{"rendered":"https:\/\/www.openintl.com\/ambienteTrabajo2\/?page_id=44788"},"modified":"2026-08-06T15:23:04","modified_gmt":"2026-08-06T20:23:04","slug":"gsap-test","status":"publish","type":"page","link":"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/","title":{"rendered":"A GSAP Test"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"44788\" class=\"elementor elementor-44788\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"has_eae_slider elementor-element elementor-element-ba88a3c e-flex e-con-boxed e-con e-parent\" data-eae-slider=\"96937\" data-id=\"ba88a3c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9d35c77 elementor-widget elementor-widget-html\" data-id=\"9d35c77\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n<!-- Load GSAP animation engine and ScrollTrigger for scroll-driven effects (parallax, pin, scrub) -->\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.5\/gsap.min.js\" integrity=\"sha512-7eHRwcbYkK4d9g\/6tD\/mhkf++eoTHwpNM9woBxtPUBWm67zeAfFC+HrdoE2GanKeocly\/VxeLvIqwvCdk7qScg==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"><\/script>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.5\/ScrollTrigger.min.js\" integrity=\"sha512-onMTRKJBKz8M1TnqqDuGBlowlH0ohFzMXYRNebz+yOcc5TQr\/zAKsthzhuv0hiyUKEiQEQXEynnXCvNTOk50dg==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"><\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-9045174 e-flex e-con-boxed e-con e-parent\" data-eae-slider=\"44027\" data-id=\"9045174\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-17f0bd7 e-con-full dm-horizontal-wrapper e-flex e-con e-parent\" data-eae-slider=\"50308\" data-id=\"17f0bd7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-34b7cf1 e-con-full dm-horizontal-section e-flex e-con e-child\" data-eae-slider=\"17740\" data-id=\"34b7cf1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-f36af60 e-con-full dm-horizontal-section e-flex e-con e-child\" data-eae-slider=\"97263\" data-id=\"f36af60\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-f600a3f e-con-full dm-horizontal-section e-flex e-con e-child\" data-eae-slider=\"14754\" data-id=\"f600a3f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-dadc4b8 e-con-full dm-horizontal-section e-flex e-con e-child\" data-eae-slider=\"68767\" data-id=\"dadc4b8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-5718dd2 e-con-full dm-horizontal-section e-flex e-con e-child\" data-eae-slider=\"72415\" data-id=\"5718dd2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-9d0eefd e-con-full dm-horizontal-section e-flex e-con e-child\" data-eae-slider=\"83602\" data-id=\"9d0eefd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-171c18e elementor-widget elementor-widget-html\" data-id=\"171c18e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--\r\nEste c\u00f3digo crea un desplazamiento horizontal controlado por scroll.\r\nConvierte las secciones dentro de .dm-horizontal-wrapper en un carrusel horizontal\r\nfijado en pantalla mediante GSAP ScrollTrigger, permitiendo navegar entre ellas\r\nmientras el usuario hace scroll vertical.\r\n\r\nUso en Elementor:\r\n1. Agrega la clase \"dm-horizontal-wrapper\" al contenedor principal\r\n   que contiene todas las secciones que se mover\u00e1n horizontalmente.\r\n\r\n2. Agrega la clase \"dm-horizontal-section\" a cada contenedor\/columna\r\n   individual que quieras desplazar horizontalmente.\r\n-->\r\n\r\n<style>\r\n    \r\n    .dm-horizontal-wrapper {\r\n        \r\n        transition: none !important;\r\n        \r\n    }\r\n    \r\n    .dm-horizontal-section {\r\n        \r\n        transition: none !important;\r\n        \r\n    }\r\n    \r\n    \r\n<\/style>\r\n\r\n<script>\r\nif (\"scrollRestoration\" in history) {\r\n  history.scrollRestoration = \"manual\";\r\n}\r\n\r\nlet dmHorizontalSections = gsap.utils.toArray(\".dm-horizontal-section\");\r\n\r\ngsap.to(dmHorizontalSections, {\r\n  xPercent: -100 * (dmHorizontalSections.length - 1),\r\n  ease: \"none\",\r\n  scrollTrigger: {\r\n    trigger: \".dm-horizontal-wrapper\",\r\n    start: \"top-=90 top\",\r\n    pin: true,\r\n    scrub: 1,\r\n    anticipatePin: 1,\r\n    invalidateOnRefresh: true,\r\n    end: () =>\r\n      \"+=\" + (window.innerWidth * (dmHorizontalSections.length - 1) * 0.805)\r\n  }\r\n});\r\n\r\nwindow.addEventListener(\"load\", () => {\r\n  ScrollTrigger.clearScrollMemory();\r\n  ScrollTrigger.refresh();\r\n});\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-f3bced3 e-flex e-con-boxed e-con e-parent\" data-eae-slider=\"838\" data-id=\"f3bced3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-93d3b7b elementor-widget elementor-widget-image\" data-id=\"93d3b7b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic-1024x576.png\" class=\"attachment-large size-large wp-image-45401\" alt=\"\" srcset=\"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic-1024x576.png 1024w, https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic-300x169.png 300w, https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic-768x432.png 768w, https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic-1536x864.png 1536w, https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic-2048x1152.png 2048w, https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic-350x197.png 350w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-bd6c302 e-con-full modulo-scroll e-flex e-con e-parent\" data-eae-slider=\"78160\" data-id=\"bd6c302\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-02d2730 e-con-full col-1 e-flex e-con e-child\" data-eae-slider=\"78636\" data-id=\"02d2730\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-3ef52de e-con-full col-2 e-flex e-con e-child\" data-eae-slider=\"58807\" data-id=\"3ef52de\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-80c8a9e e-con-full col-3 e-flex e-con e-child\" data-eae-slider=\"20168\" data-id=\"80c8a9e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-62165a5 e-con-full texto-centro e-flex e-con e-child\" data-eae-slider=\"4174\" data-id=\"62165a5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4001f51 elementor-widget elementor-widget-heading\" data-id=\"4001f51\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Add Your Heading Text Here<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20c59c7 elementor-widget elementor-widget-button\" data-id=\"20c59c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Click here<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-782f1f8 e-con-full col-4 e-flex e-con e-child\" data-eae-slider=\"62670\" data-id=\"782f1f8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-54503ab e-con-full col-5 e-flex e-con e-child\" data-eae-slider=\"56299\" data-id=\"54503ab\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-bdccfce e-con-full e-flex e-con e-child\" data-eae-slider=\"26137\" data-id=\"bdccfce\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-01da1a2 elementor-widget elementor-widget-html\" data-id=\"01da1a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n    .col-3 {\r\n        height: calc(90vh - 90px);\r\n    }\r\n    .col-2, .col-4 {\r\n        height: calc(70vh - 90px);\r\n    }\r\n    .col-1 {\r\n        margin-left: -20px;\r\n    }\r\n    .col-5 {\r\n        margin-right: -20px;\r\n    }\r\n    .col-1, .col-5 {\r\n        height: calc(30vh - 90px);\r\n        width: 0px;\r\n        padding: 0px;\r\n    }\r\n<\/style>\r\n\r\n<script>\r\n  document.addEventListener(\"DOMContentLoaded\", () => {\r\n\r\n    gsap.registerPlugin(ScrollTrigger);\r\n\r\n    const tl = gsap.timeline({\r\n      scrollTrigger: {\r\n        trigger: \".modulo-scroll\",\r\n        start: \"top-=90 top\",\r\n        end: \"+=150%\",\r\n        pin: true,\r\n        scrub: 2.0,\r\n      }\r\n    });\r\n\r\n    \/\/ col-1 y col-5 \u2192 13%\r\n    tl.from(\r\n      [\".col-1\", \".col-5\"],\r\n      {\r\n        width: \"8%\",\r\n        height: \"65vh\",\r\n        margin: \"0px\",\r\n        ease: \"power4.inOut\"\r\n      },\r\n      0\r\n    );\r\n\r\n    \/\/ col-2, col-3 y col-4 \u2192 26%\r\n    tl.from(\r\n      [\".col-2\", \".col-3\", \".col-4\"],\r\n      {\r\n        width: \"28%\",\r\n        height: \"65vh\",\r\n        margin: \"0px\",\r\n        ease: \"power4.inOut\"\r\n      },\r\n      0\r\n    );\r\n\r\n    tl.from(\r\n      \".texto-centro\",\r\n      {\r\n        opacity: 0,\r\n        y: 40,\r\n        ease: \"power2.out\"\r\n      },\r\n      0.1\r\n    );\r\n\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-5c20d65 e-flex e-con-boxed e-con e-parent\" data-eae-slider=\"11060\" data-id=\"5c20d65\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4196246 elementor-widget elementor-widget-html\" data-id=\"4196246\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"scroll-word-reveal-wrapper\">\n\n    <p class=\"scroll-word-reveal\">\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n    <\/p>\n\n<\/div>\n\n<style>\n\/* ==========================================\n   CONTENEDOR\n========================================== *\/\n\n.scroll-word-reveal-wrapper{\n    width:100%;\n    max-width:900px;\n    margin:auto;\n    padding:80px 20px;\n}\n\n\/* ==========================================\n   P\u00c1RRAFO\n========================================== *\/\n\n.scroll-word-reveal{\n    font-size:clamp(24px, 3vw, 56px);\n    line-height:1.4;\n    font-weight:600;\n    letter-spacing:-0.02em;\n    color:#000;\n}\n\n\/* ==========================================\n   PALABRAS\n========================================== *\/\n\n.scroll-word-reveal .word{\n    color:#b5b5b5;\n    transition:none;\n    display:inline-block;\n    white-space:nowrap;\n}\n<\/style>\n\n<!-- GSAP -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.7\/gsap.min.js\"><\/script>\n\n<!-- ScrollTrigger -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.7\/ScrollTrigger.min.js\"><\/script>\n\n<script>\n(function(){\n\n    function initWordReveal(){\n\n        const paragraph = document.querySelector(\".scroll-word-reveal\");\n\n        if(!paragraph) return;\n\n        \/\/ Evita doble inicializaci\u00f3n\n        if(paragraph.dataset.initialized) return;\n\n        paragraph.dataset.initialized = \"true\";\n\n        const originalText = paragraph.textContent.trim();\n\n        const words = originalText.split(\" \");\n\n        paragraph.innerHTML = words.map(word => {\n            return `<span class=\"word\">${word}&nbsp;<\/span>`;\n        }).join(\"\");\n\n        const wordElements = paragraph.querySelectorAll(\".word\");\n\n        gsap.registerPlugin(ScrollTrigger);\n\n        gsap.to(wordElements, {\n            color:\"#000000\",\n            stagger:1,\n            ease:\"none\",\n            scrollTrigger:{\n                trigger:paragraph,\n\n                \/*\n                Empieza cuando el p\u00e1rrafo entra\n                desde abajo.\n                *\/\n                start:\"top 85%\",\n\n                \/*\n                Termina cuando la \u00faltima l\u00ednea del p\u00e1rrafo\n                llega aproximadamente\n                al centro de la pantalla.\n                *\/\n                end:\"bottom 50%\",\n\n                scrub:true,\n\n                invalidateOnRefresh:true\n            }\n        });\n\n        ScrollTrigger.refresh();\n    }\n\n    function waitForGSAP(){\n\n        if(\n            typeof gsap !== \"undefined\" &&\n            typeof ScrollTrigger !== \"undefined\"\n        ){\n            initWordReveal();\n        }\n        else{\n            setTimeout(waitForGSAP,100);\n        }\n    }\n\n    if(document.readyState === \"loading\"){\n        document.addEventListener(\"DOMContentLoaded\", waitForGSAP);\n    }else{\n        waitForGSAP();\n    }\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-3dbb393 e-flex e-con-boxed e-con e-parent\" data-eae-slider=\"12816\" data-id=\"3dbb393\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cbdd3a9 elementor-widget elementor-widget-html\" data-id=\"cbdd3a9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"scroll-word-reveal-wrapper\">\r\n\r\n    <p class=\"scroll-word-reveal\">\r\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n    <\/p>\r\n    \r\n\r\n<\/div>\r\n\r\n\r\n<style>\r\n\r\n\/* ==========================================\r\n   CONTENEDOR\r\n========================================== *\/\r\n\r\n.scroll-word-reveal-wrapper{\r\n    width:100%;\r\n    max-width:900px;\r\n    margin:auto;\r\n    padding:80px 20px;\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   TEXTO\r\n========================================== *\/\r\n\r\n.scroll-word-reveal{\r\n\r\n    font-size:clamp(24px, 3vw, 56px);\r\n    line-height:1.35;\r\n    font-weight:600;\r\n    letter-spacing:-0.03em;\r\n\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   PALABRAS\r\n========================================== *\/\r\n\r\n.scroll-word-reveal .word{\r\n\r\n    display:inline-block;\r\n\r\n    \/*\r\n    Color inicial apagado\r\n    *\/\r\n    color:#b5b5b5;\r\n\r\n    \/*\r\n    Suavidad Apple-like\r\n    *\/\r\n    will-change:color;\r\n\r\n}\r\n\r\n\r\n<\/style>\r\n\r\n\r\n<!-- GSAP -->\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.7\/gsap.min.js\"><\/script>\r\n\r\n<!-- ScrollTrigger -->\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.7\/ScrollTrigger.min.js\"><\/script>\r\n\r\n\r\n\r\n<script>\r\n\r\n(function(){\r\n\r\n\r\nfunction initWordReveal(){\r\n\r\n\r\n    const paragraph = document.querySelector(\".scroll-word-reveal\");\r\n\r\n\r\n    if(!paragraph) return;\r\n\r\n\r\n    \/\/ Evitar duplicados en Elementor\r\n    if(paragraph.dataset.initialized) return;\r\n\r\n\r\n    paragraph.dataset.initialized=\"true\";\r\n\r\n\r\n\r\n    \/*\r\n    Guardamos texto original\r\n    *\/\r\n\r\n    const originalText = paragraph.textContent.trim();\r\n\r\n\r\n\r\n    \/*\r\n    Convertir cada palabra en span\r\n    *\/\r\n\r\n    const words = originalText.split(\" \");\r\n\r\n\r\n\r\n    paragraph.innerHTML = words.map(word=>{\r\n\r\n        return `\r\n        <span class=\"word\">\r\n            ${word}\r\n        <\/span>&nbsp;\r\n        `;\r\n\r\n    }).join(\"\");\r\n\r\n\r\n\r\n    const wordElements = paragraph.querySelectorAll(\".word\");\r\n\r\n\r\n\r\n    gsap.registerPlugin(ScrollTrigger);\r\n\r\n\r\n\r\n    \/*\r\n    Animaci\u00f3n tipo Apple:\r\n    gris apagado -> negro profundo\r\n    *\/\r\n\r\n    gsap.to(wordElements, {\r\n\r\n\r\n        color:\"#000000\",\r\n\r\n\r\n        stagger:{\r\n            each:0.08\r\n        },\r\n\r\n\r\n        ease:\"none\",\r\n\r\n\r\n\r\n        scrollTrigger:{\r\n\r\n\r\n            trigger:paragraph,\r\n\r\n\r\n            \/*\r\n            comienza cuando aparece\r\n            *\/\r\n\r\n            start:\"top 80%\",\r\n\r\n            \r\n            \/*\r\n            termina cuando ocupa\r\n            posici\u00f3n central\r\n            *\/\r\n\r\n            end:\"bottom 45%\",\r\n\r\n\r\n\r\n            scrub:1.2,\r\n\r\n\r\n\r\n            invalidateOnRefresh:true\r\n\r\n\r\n        }\r\n\r\n\r\n    });\r\n\r\n\r\n\r\n    ScrollTrigger.refresh();\r\n\r\n\r\n}\r\n\r\n\r\n\r\nfunction waitForGSAP(){\r\n\r\n\r\n    if(\r\n        typeof gsap !== \"undefined\" &&\r\n        typeof ScrollTrigger !== \"undefined\"\r\n    ){\r\n\r\n        initWordReveal();\r\n\r\n    }\r\n    else{\r\n\r\n        setTimeout(waitForGSAP,100);\r\n\r\n    }\r\n\r\n\r\n}\r\n\r\n\r\n\r\nif(document.readyState===\"loading\"){\r\n\r\n    document.addEventListener(\r\n        \"DOMContentLoaded\",\r\n        waitForGSAP\r\n    );\r\n\r\n}\r\nelse{\r\n\r\n    waitForGSAP();\r\n\r\n}\r\n\r\n\r\n\r\n})();\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-8beb874 e-con-full dm-horizontal-wrapper e-flex e-con e-parent\" data-eae-slider=\"98104\" data-id=\"8beb874\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-a82e571 dm-horizontal-section e-flex e-con-boxed e-con e-child\" data-eae-slider=\"84868\" data-id=\"a82e571\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-ad4de29 e-con-full e-flex e-con e-child\" data-eae-slider=\"23867\" data-id=\"ad4de29\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c44821 elementor-widget elementor-widget-heading\" data-id=\"5c44821\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">1. Customer Lifecycle &amp; Commercial Agility<\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-261b98f elementor-widget elementor-widget-text-editor\" data-id=\"261b98f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Products, pricing &amp; sales<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-4f03aee e-con-full e-flex e-con e-child\" data-eae-slider=\"80797\" data-id=\"4f03aee\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5da1f65 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"5da1f65\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Launch new offers in weeks, not quarters.\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e8d4a6d elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"e8d4a6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"cap-desc\">Manage every customer relationship, product, and sales motion from one unified view. Your commercial team can price, package, and bring new services to market through configuration, giving your business the speed to stay ahead of changing customer needs. Real-time customer insight sits alongside billing and service history, so every interaction starts with the complete picture.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-196b5d2 dm-horizontal-section e-flex e-con-boxed e-con e-child\" data-eae-slider=\"73180\" data-id=\"196b5d2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-016e0be e-con-full e-flex e-con e-child\" data-eae-slider=\"84751\" data-id=\"016e0be\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8c704eb elementor-widget elementor-widget-heading\" data-id=\"8c704eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">2. Billing &amp; Revenue Operations<\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-601281a elementor-widget elementor-widget-text-editor\" data-id=\"601281a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Cash flow &amp; collections<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-b9d76bb e-con-full e-flex e-con e-child\" data-eae-slider=\"17426\" data-id=\"b9d76bb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1a1b377 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"1a1b377\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Accurate billing that protects revenue and accelerates cash flow.\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-87cd47b elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"87cd47b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"cap-desc\">Automated, flexible billing converts meter and consumption data into accurate invoices from the start, reducing errors, disputes, and write-offs before they affect your bottom line. Collections and revenue management share the same data as customer service, so a payment arrangement confirmed on a call is reflected in the invoice immediately, keeping your records and your customer&#8217;s experience fully aligned.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-716d57e dm-horizontal-section e-flex e-con-boxed e-con e-child\" data-eae-slider=\"5741\" data-id=\"716d57e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-0b3879c e-con-full e-flex e-con e-child\" data-eae-slider=\"95399\" data-id=\"0b3879c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fe2dccc elementor-widget elementor-widget-heading\" data-id=\"fe2dccc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">3. Meter Data Management<\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-73234d0 elementor-widget elementor-widget-text-editor\" data-id=\"73234d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"cap-tab active\" data-eh=\"_eh2\"><div><div class=\"cap-tab-sub\">AMI, validation &amp; consumption<\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-6889de0 e-con-full e-flex e-con e-child\" data-eae-slider=\"91294\" data-id=\"6889de0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0464222 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"0464222\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">From meter read to accurate invoice, with full confidence in every number.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-414b5ac elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"414b5ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"cap-desc\">Smartflex MDM collects, validates, and processes interval and consumption data from any meter type at scale. Because MDM shares the same architecture as billing and customer service, validated consumption data flows directly into invoices and account records the moment it is available. Your billing team, your service representatives, and your customers all see the same verified picture of what was consumed and what was charged. Meter events and anomalies surface in real time as well, enabling proactive outreach before a discrepancy becomes a dispute.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-425195f dm-horizontal-section e-flex e-con-boxed e-con e-child\" data-eae-slider=\"63243\" data-id=\"425195f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-89d08cf e-con-full e-flex e-con e-child\" data-eae-slider=\"69677\" data-id=\"89d08cf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d1940b1 elementor-widget elementor-widget-heading\" data-id=\"d1940b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">4. Digital Customer Experience<\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29fb5f4 elementor-widget elementor-widget-text-editor\" data-id=\"29fb5f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"cap-tab active\" data-eh=\"_eh3\"><div><div class=\"cap-tab-sub\">Self-service &amp; omnichannel<\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-b20310b e-con-full e-flex e-con e-child\" data-eae-slider=\"8007\" data-id=\"b20310b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6d76dd3 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"6d76dd3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Empower customers to manage their own accounts with confidence.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-49ce92f elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"49ce92f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"cap-desc\">An intuitive omnichannel self-service experience lets customers manage their accounts, review their bills, and resolve questions on their own terms. Every channel draws from the same data, so customers receive consistent, accurate information whether they call, use the portal, or receive a proactive notification. Satisfaction rises alongside self-service adoption because both are driven by the same operational reliability.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-5cb1fcf dm-horizontal-section e-flex e-con-boxed e-con e-child\" data-eae-slider=\"17273\" data-id=\"5cb1fcf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-9b531b0 e-con-full e-flex e-con e-child\" data-eae-slider=\"7678\" data-id=\"9b531b0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-13b2eca elementor-widget elementor-widget-heading\" data-id=\"13b2eca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">5. Mobile Workforce<\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d684db4 elementor-widget elementor-widget-text-editor\" data-id=\"d684db4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"cap-tab active\" data-eh=\"_eh4\"><div><div class=\"cap-tab-sub\">Real-time field operations<\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-4f75130 e-con-full e-flex e-con e-child\" data-eae-slider=\"82586\" data-id=\"4f75130\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-134a014 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"134a014\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Give field teams and back-office staff shared visibility in real time.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c4bf68 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"7c4bf68\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"cap-desc\">Intelligent task assignment and optimized routing give field teams clarity on their priorities from the start of each day. Back-office staff see job status as it updates, so dispatch decisions, service closures, and customer notifications all move from the same shared record. Response times improve and service windows are met because every team is working from the same live picture of operations.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-6bcdbc0 dm-horizontal-section e-flex e-con-boxed e-con e-child\" data-eae-slider=\"97385\" data-id=\"6bcdbc0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-454a53b e-con-full e-flex e-con e-child\" data-eae-slider=\"54817\" data-id=\"454a53b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e752b60 elementor-widget elementor-widget-heading\" data-id=\"e752b60\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">6. Data &amp; Embedded AI<\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8092c5c elementor-widget elementor-widget-text-editor\" data-id=\"8092c5c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"cap-tabs\"><div class=\"cap-tab active\" data-eh=\"_eh5\"><div><div class=\"cap-tab-sub\">Decisions at the point of work<\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-5e3d807 e-con-full e-flex e-con e-child\" data-eae-slider=\"315\" data-id=\"5e3d807\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ba4cb0c elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"ba4cb0c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Turn your data model into decisions that happen at the point of work.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1ce35f8 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"1ce35f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"cap-desc\">Billing, customer service, and field operations share one data architecture, so embedded AI and analytics act within the processes your teams already run. Insights become workflow triggers, and workflow triggers become resolved outcomes, in real time. Analytics inform decisions continuously so your teams act on current information, and every improvement compounds because the platform learns from the same data that drives the operation.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8534ea elementor-widget elementor-widget-html\" data-id=\"b8534ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--\r\nScroll horizontal con pausas al inicio y al final.\r\nCompatible con Elementor + GSAP ScrollTrigger.\r\n\r\nUso en Elementor:\r\n1. Agrega la clase \"dm-horizontal-wrapper\" al contenedor principal\r\n   que contiene todas las secciones que se mover\u00e1n horizontalmente.\r\n\r\n2. Agrega la clase \"dm-horizontal-section\" a cada contenedor\/columna\r\n   individual que quieras desplazar horizontalmente.\r\n   \r\n3. Agrega este c\u00f3digo en un custom HTML despu\u00e9s del \u00faltimo contenedor\r\n-->\r\n\r\n<style>\r\n.dm-horizontal-wrapper{\r\n    transition:none !important;\r\n}\r\n\r\n.dm-horizontal-section{\r\n    transition:none !important;\r\n}\r\n<\/style>\r\n\r\n<script>\r\n\r\nif (\"scrollRestoration\" in history) {\r\n    history.scrollRestoration = \"manual\";\r\n}\r\n\r\nconst dmHorizontalSections = gsap.utils.toArray(\".dm-horizontal-section\");\r\n\r\nconst startPause = 0.5;      \/\/ duraci\u00f3n de la pausa inicial\r\nconst moveTime   = 8;      \/\/ duraci\u00f3n del desplazamiento\r\nconst endPause   = 0.5;      \/\/ duraci\u00f3n de la pausa final\r\n\r\nconst tl = gsap.timeline({\r\n    scrollTrigger:{\r\n        trigger: \".dm-horizontal-wrapper\",\r\n\r\n        start: \"top-=90 top\",\r\n\r\n        pin: true,\r\n\r\n        scrub: 1,\r\n\r\n        anticipatePin: 1,\r\n\r\n        invalidateOnRefresh: true,\r\n\r\n        end: () => \"+=\" + (\r\n            window.innerWidth *\r\n            (dmHorizontalSections.length - 1) *\r\n            ((startPause + moveTime + endPause) \/ moveTime)\r\n        )\r\n    }\r\n});\r\n\r\n\/\/ =========================\r\n\/\/ PAUSA INICIAL\r\n\/\/ =========================\r\n\r\ntl.to({},{\r\n    duration:startPause\r\n});\r\n\r\n\/\/ =========================\r\n\/\/ MOVIMIENTO HORIZONTAL\r\n\/\/ =========================\r\n\r\ntl.to(dmHorizontalSections,{\r\n    xPercent:-100*(dmHorizontalSections.length-1),\r\n    ease:\"none\",\r\n    duration:moveTime\r\n});\r\n\r\n\/\/ =========================\r\n\/\/ PAUSA FINAL\r\n\/\/ =========================\r\n\r\ntl.to({},{\r\n    duration:endPause\r\n});\r\n\r\nwindow.addEventListener(\"load\",()=>{\r\n\r\n    ScrollTrigger.clearScrollMemory();\r\n\r\n    ScrollTrigger.refresh();\r\n\r\n});\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-8cd2c9c e-flex e-con-boxed e-con e-parent\" data-eae-slider=\"37704\" data-id=\"8cd2c9c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-3eae2f6 e-con-full e-flex e-con e-child\" data-eae-slider=\"95325\" data-id=\"3eae2f6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-4e571ce e-con-full e-flex e-con e-child\" data-eae-slider=\"16320\" data-id=\"4e571ce\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:3,&quot;sizes&quot;:[]},&quot;motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:30,&quot;end&quot;:100}},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-c0dd1d5 e-con-full e-flex e-con e-child\" data-eae-slider=\"91592\" data-id=\"c0dd1d5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ff4e16f elementor-widget elementor-widget-image\" data-id=\"ff4e16f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"352\" src=\"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/08\/logo-ecogas-2-01-1024x352.png\" class=\"attachment-large size-large wp-image-50067\" alt=\"\" srcset=\"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/08\/logo-ecogas-2-01-1024x352.png 1024w, https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/08\/logo-ecogas-2-01-300x103.png 300w, https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/08\/logo-ecogas-2-01-768x264.png 768w, https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/08\/logo-ecogas-2-01-350x120.png 350w, https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/08\/logo-ecogas-2-01.png 1082w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91b2a05 elementor-widget elementor-widget-heading\" data-id=\"91b2a05\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">How Ecogas Unified Operations to Improve Financial and Customer Outcomes<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-13e7357 e-con-full e-flex e-con e-child\" data-eae-slider=\"21866\" data-id=\"13e7357\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6d83bed dm-cursor-hover elementor-widget elementor-widget-video\" data-id=\"6d83bed\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=nHWCBZvK9xM&quot;,&quot;image_overlay&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/Gabriel-Dominguez-01-1.png&quot;,&quot;id&quot;:50079,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;show_image_overlay&quot;:&quot;yes&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;ep_sticky_video&quot;:&quot;off&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t\t\t<div class=\"elementor-custom-embed-image-overlay\" style=\"background-image: url(https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/08\/Gabriel-Dominguez-01-1.png);\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-custom-embed-play\" role=\"button\" aria-label=\"Play Video\" tabindex=\"0\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-play\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M838 162C746 71 633 25 500 25 371 25 258 71 163 162 71 254 25 367 25 500 25 633 71 746 163 837 254 929 367 979 500 979 633 979 746 933 838 837 929 746 975 633 975 500 975 367 929 254 838 162M808 192C892 279 933 379 933 500 933 621 892 725 808 808 725 892 621 938 500 938 379 938 279 896 196 808 113 725 67 621 67 500 67 379 108 279 196 192 279 108 383 62 500 62 621 62 721 108 808 192M438 392V642L642 517 438 392Z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-051879d e-flex e-con-boxed e-con e-parent\" data-eae-slider=\"31542\" data-id=\"051879d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-00f878b elementor-widget elementor-widget-html\" data-id=\"00f878b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n<!--\r\n  M\u00d3DULO: Cursor SVG personalizado + Hover + Blend\r\n\r\n  INSTALACI\u00d3N:\r\n  - Pega este bloque UNA SOLA VEZ en un widget Custom HTML de Elementor.\r\n  - A\u00f1ade la clase \"dm-cursor-hover\" a cualquier elemento\r\n    que deba activar el efecto.\r\n\r\n  COMPORTAMIENTO:\r\n  - Estado normal: c\u00edrculo azul de 15px.\r\n  - Sigue al mouse con un peque\u00f1o retraso.\r\n  - Hover: crece hasta 60px.\r\n  - El blend \"difference\" se activa INMEDIATAMENTE al entrar.\r\n  - El blend se desactiva INMEDIATAMENTE al salir.\r\n  - El tama\u00f1o tiene transici\u00f3n suave.\r\n  - Movimiento y escala est\u00e1n completamente separados.\r\n\r\n  CONFIGURACI\u00d3N:\r\n  - Tama\u00f1o normal: 15px\r\n  - Tama\u00f1o hover: 60px\r\n  - Color normal: #0066ff\r\n  - Color hover: #ffffff\r\n  - Seguimiento: 0.18s\r\n  - Transici\u00f3n hover: 0.35s\r\n-->\r\n\r\n<style>\r\n\r\n  \/*\r\n    SVG exterior.\r\n\r\n    SOLO se encarga de la posici\u00f3n.\r\n  *\/\r\n\r\n  .dm-cursor {\r\n    position: fixed;\r\n\r\n    top: 0;\r\n    left: 0;\r\n\r\n    width: 60px;\r\n    height: 60px;\r\n\r\n    pointer-events: none;\r\n\r\n    z-index: 999999;\r\n\r\n    overflow: visible;\r\n\r\n    will-change: transform;\r\n  }\r\n\r\n\r\n  \/*\r\n    El grupo SVG interno se encarga\r\n    EXCLUSIVAMENTE del tama\u00f1o.\r\n  *\/\r\n\r\n  .dm-cursor-inner {\r\n    transform-origin: 30px 30px;\r\n  }\r\n\r\n\r\n  \/*\r\n    C\u00edrculo vectorial.\r\n  *\/\r\n\r\n  .dm-cursor circle {\r\n    fill: #0066ff;\r\n  }\r\n\r\n\r\n  \/*\r\n    No mostrar el cursor personalizado\r\n    en dispositivos t\u00e1ctiles.\r\n  *\/\r\n\r\n  @media (pointer: coarse) {\r\n\r\n    .dm-cursor {\r\n      display: none;\r\n    }\r\n\r\n  }\r\n\r\n<\/style>\r\n\r\n\r\n<script>\r\n\r\n(function () {\r\n\r\n  'use strict';\r\n\r\n\r\n  \/* ==================================================\r\n     CONFIGURACI\u00d3N\r\n     ================================================== *\/\r\n\r\n  const DM_CURSOR_SIZE = 15;\r\n\r\n  const DM_CURSOR_HOVER_SIZE = 60;\r\n\r\n  const DM_CURSOR_COLOR = '#0066ff';\r\n\r\n  const DM_CURSOR_HOVER_COLOR = '#ffffff';\r\n\r\n  const DM_FOLLOW_DURATION = 0.18;\r\n\r\n  const DM_HOVER_DURATION = 0.35;\r\n\r\n\r\n  \/*\r\n    Como el SVG mide 60px:\r\n\r\n    15 \/ 60 = 0.25\r\n\r\n    Por lo tanto:\r\n\r\n    0.25 = 15px\r\n    1    = 60px\r\n  *\/\r\n\r\n  const DM_NORMAL_SCALE =\r\n    DM_CURSOR_SIZE \/\r\n    DM_CURSOR_HOVER_SIZE;\r\n\r\n\r\n  const DM_HOVER_SCALE = 1;\r\n\r\n\r\n  \/* ==================================================\r\n     CARGAR GSAP\r\n     ================================================== *\/\r\n\r\n  function dmLoadGSAP() {\r\n\r\n    \/*\r\n      Si GSAP ya existe, reutilizamos\r\n      la instancia existente.\r\n    *\/\r\n\r\n    if (window.gsap) {\r\n\r\n      return Promise.resolve();\r\n\r\n    }\r\n\r\n\r\n    return new Promise(function (resolve, reject) {\r\n\r\n      \/*\r\n        Comprobar si otro m\u00f3dulo ya est\u00e1\r\n        cargando GSAP.\r\n      *\/\r\n\r\n      const existingScript =\r\n        document.querySelector(\r\n          'script[src*=\"gsap.min.js\"]'\r\n        );\r\n\r\n\r\n      if (existingScript) {\r\n\r\n        existingScript.addEventListener(\r\n          'load',\r\n          resolve,\r\n          { once: true }\r\n        );\r\n\r\n        existingScript.addEventListener(\r\n          'error',\r\n          reject,\r\n          { once: true }\r\n        );\r\n\r\n        return;\r\n\r\n      }\r\n\r\n\r\n      \/*\r\n        Cargar GSAP.\r\n      *\/\r\n\r\n      const script =\r\n        document.createElement('script');\r\n\r\n\r\n      script.src =\r\n        'https:\/\/cdn.jsdelivr.net\/npm\/gsap@3.12.7\/dist\/gsap.min.js';\r\n\r\n\r\n      script.onload =\r\n        resolve;\r\n\r\n\r\n      script.onerror =\r\n        reject;\r\n\r\n\r\n      document.head.appendChild(\r\n        script\r\n      );\r\n\r\n    });\r\n\r\n  }\r\n\r\n\r\n  \/* ==================================================\r\n     INICIALIZAR CURSOR\r\n     ================================================== *\/\r\n\r\n  function dmInitCursor() {\r\n\r\n\r\n    \/*\r\n      No ejecutar en dispositivos t\u00e1ctiles.\r\n    *\/\r\n\r\n    if (\r\n      window.matchMedia('(pointer: coarse)').matches\r\n    ) {\r\n\r\n      return;\r\n\r\n    }\r\n\r\n\r\n    \/* ==================================================\r\n       CREAR SVG\r\n       ================================================== *\/\r\n\r\n    let cursor =\r\n      document.querySelector(\r\n        '.dm-cursor'\r\n      );\r\n\r\n\r\n    let inner;\r\n\r\n\r\n    let circle;\r\n\r\n\r\n    \/*\r\n      Si el cursor todav\u00eda no existe,\r\n      construimos toda la estructura SVG.\r\n    *\/\r\n\r\n    if (!cursor) {\r\n\r\n\r\n      \/*\r\n        SVG exterior.\r\n\r\n        Este elemento SOLO controla\r\n        X e Y.\r\n      *\/\r\n\r\n      cursor =\r\n        document.createElementNS(\r\n          'http:\/\/www.w3.org\/2000\/svg',\r\n          'svg'\r\n        );\r\n\r\n\r\n      cursor.classList.add(\r\n        'dm-cursor'\r\n      );\r\n\r\n\r\n      cursor.setAttribute(\r\n        'viewBox',\r\n        '0 0 60 60'\r\n      );\r\n\r\n\r\n      cursor.setAttribute(\r\n        'aria-hidden',\r\n        'true'\r\n      );\r\n\r\n\r\n      \/*\r\n        Grupo interno.\r\n\r\n        Este elemento SOLO controla\r\n        la escala.\r\n      *\/\r\n\r\n      inner =\r\n        document.createElementNS(\r\n          'http:\/\/www.w3.org\/2000\/svg',\r\n          'g'\r\n        );\r\n\r\n\r\n      inner.classList.add(\r\n        'dm-cursor-inner'\r\n      );\r\n\r\n\r\n      \/*\r\n        C\u00edrculo SVG.\r\n      *\/\r\n\r\n      circle =\r\n        document.createElementNS(\r\n          'http:\/\/www.w3.org\/2000\/svg',\r\n          'circle'\r\n        );\r\n\r\n\r\n      circle.setAttribute(\r\n        'cx',\r\n        '30'\r\n      );\r\n\r\n\r\n      circle.setAttribute(\r\n        'cy',\r\n        '30'\r\n      );\r\n\r\n\r\n      circle.setAttribute(\r\n        'r',\r\n        '30'\r\n      );\r\n\r\n\r\n      circle.style.fill =\r\n        DM_CURSOR_COLOR;\r\n\r\n\r\n      \/*\r\n        Estructura:\r\n\r\n        SVG\r\n          \u2193\r\n        GROUP\r\n          \u2193\r\n        CIRCLE\r\n      *\/\r\n\r\n      inner.appendChild(\r\n        circle\r\n      );\r\n\r\n\r\n      cursor.appendChild(\r\n        inner\r\n      );\r\n\r\n\r\n      document.body.appendChild(\r\n        cursor\r\n      );\r\n\r\n    }\r\n\r\n    else {\r\n\r\n      \/*\r\n        Si Elementor vuelve a ejecutar\r\n        el m\u00f3dulo, recuperamos las referencias.\r\n      *\/\r\n\r\n      inner =\r\n        cursor.querySelector(\r\n          '.dm-cursor-inner'\r\n        );\r\n\r\n\r\n      circle =\r\n        cursor.querySelector(\r\n          'circle'\r\n        );\r\n\r\n    }\r\n\r\n\r\n    \/* ==================================================\r\n       ESTADO INICIAL\r\n       ================================================== *\/\r\n\r\n    \/*\r\n      Posici\u00f3n del SVG exterior.\r\n\r\n      SOLO X\/Y.\r\n    *\/\r\n\r\n    gsap.set(\r\n      cursor,\r\n      {\r\n\r\n        x:\r\n          window.innerWidth \/ 2,\r\n\r\n        y:\r\n          window.innerHeight \/ 2,\r\n\r\n        xPercent:\r\n          -50,\r\n\r\n        yPercent:\r\n          -50\r\n\r\n      }\r\n    );\r\n\r\n\r\n    \/*\r\n      Escala del grupo interno.\r\n\r\n      SOLO tama\u00f1o.\r\n    *\/\r\n\r\n    gsap.set(\r\n      inner,\r\n      {\r\n\r\n        scale:\r\n          DM_NORMAL_SCALE,\r\n\r\n        transformOrigin:\r\n          '30px 30px'\r\n\r\n      }\r\n    );\r\n\r\n\r\n    \/*\r\n      Estado visual inicial.\r\n    *\/\r\n\r\n    cursor.style.mixBlendMode =\r\n      'normal';\r\n\r\n\r\n    circle.style.fill =\r\n      DM_CURSOR_COLOR;\r\n\r\n\r\n    \/* ==================================================\r\n       SEGUIMIENTO DEL MOUSE\r\n       ================================================== *\/\r\n\r\n    \/*\r\n      quickTo() controla EXCLUSIVAMENTE\r\n      el SVG exterior.\r\n\r\n      El grupo interno no participa\r\n      en esta animaci\u00f3n.\r\n    *\/\r\n\r\n    const moveX =\r\n      gsap.quickTo(\r\n        cursor,\r\n        'x',\r\n        {\r\n\r\n          duration:\r\n            DM_FOLLOW_DURATION,\r\n\r\n          ease:\r\n            'power2.out'\r\n\r\n        }\r\n      );\r\n\r\n\r\n    const moveY =\r\n      gsap.quickTo(\r\n        cursor,\r\n        'y',\r\n        {\r\n\r\n          duration:\r\n            DM_FOLLOW_DURATION,\r\n\r\n          ease:\r\n            'power2.out'\r\n\r\n        }\r\n      );\r\n\r\n\r\n    window.addEventListener(\r\n      'mousemove',\r\n      function (event) {\r\n\r\n        moveX(\r\n          event.clientX\r\n        );\r\n\r\n        moveY(\r\n          event.clientY\r\n        );\r\n\r\n      },\r\n      {\r\n        passive: true\r\n      }\r\n    );\r\n\r\n\r\n    \/* ==================================================\r\n       ENTRAR EN HOVER\r\n       ================================================== *\/\r\n\r\n    function dmEnterHover() {\r\n\r\n\r\n      \/*\r\n        BLEND INMEDIATO.\r\n\r\n        No espera ninguna transici\u00f3n.\r\n      *\/\r\n\r\n      cursor.style.mixBlendMode =\r\n        'difference';\r\n\r\n\r\n      \/*\r\n        COLOR INMEDIATO.\r\n      *\/\r\n\r\n      circle.style.fill =\r\n        DM_CURSOR_HOVER_COLOR;\r\n\r\n\r\n      \/*\r\n        SOLO animamos el GROUP INTERNO.\r\n\r\n        Por lo tanto, esto NO puede afectar\r\n        al movimiento del SVG exterior.\r\n      *\/\r\n\r\n      gsap.to(\r\n        inner,\r\n        {\r\n\r\n          scale:\r\n            DM_HOVER_SCALE,\r\n\r\n          duration:\r\n            DM_HOVER_DURATION,\r\n\r\n          ease:\r\n            'power3.out',\r\n\r\n          overwrite:\r\n            true\r\n\r\n        }\r\n      );\r\n\r\n    }\r\n\r\n\r\n    \/* ==================================================\r\n       SALIR DE HOVER\r\n       ================================================== *\/\r\n\r\n    function dmLeaveHover() {\r\n\r\n\r\n      \/*\r\n        BLEND INMEDIATO.\r\n      *\/\r\n\r\n      cursor.style.mixBlendMode =\r\n        'normal';\r\n\r\n\r\n      \/*\r\n        COLOR INMEDIATO.\r\n      *\/\r\n\r\n      circle.style.fill =\r\n        DM_CURSOR_COLOR;\r\n\r\n\r\n      \/*\r\n        SOLO reducimos el GROUP INTERNO.\r\n      *\/\r\n\r\n      gsap.to(\r\n        inner,\r\n        {\r\n\r\n          scale:\r\n            DM_NORMAL_SCALE,\r\n\r\n          duration:\r\n            DM_HOVER_DURATION,\r\n\r\n          ease:\r\n            'power3.out',\r\n\r\n          overwrite:\r\n            true\r\n\r\n        }\r\n      );\r\n\r\n    }\r\n\r\n\r\n    \/* ==================================================\r\n       REGISTRAR ELEMENTOS HOVER\r\n       ================================================== *\/\r\n\r\n    function dmBindHoverElements() {\r\n\r\n\r\n      const elements =\r\n        document.querySelectorAll(\r\n          '.dm-cursor-hover'\r\n        );\r\n\r\n\r\n      elements.forEach(\r\n        function (element) {\r\n\r\n\r\n          \/*\r\n            Evitar registrar dos veces\r\n            el mismo elemento.\r\n          *\/\r\n\r\n          if (\r\n            element.dataset.dmCursorBound ===\r\n            'true'\r\n          ) {\r\n\r\n            return;\r\n\r\n          }\r\n\r\n\r\n          element.dataset.dmCursorBound =\r\n            'true';\r\n\r\n\r\n          \/*\r\n            ENTRAR\r\n          *\/\r\n\r\n          element.addEventListener(\r\n            'pointerenter',\r\n            dmEnterHover\r\n          );\r\n\r\n\r\n          \/*\r\n            SALIR\r\n          *\/\r\n\r\n          element.addEventListener(\r\n            'pointerleave',\r\n            dmLeaveHover\r\n          );\r\n\r\n        }\r\n      );\r\n\r\n    }\r\n\r\n\r\n    \/*\r\n      Primera b\u00fasqueda.\r\n    *\/\r\n\r\n    dmBindHoverElements();\r\n\r\n\r\n    \/* ==================================================\r\n       MUTATION OBSERVER\r\n       ================================================== *\/\r\n\r\n    \/*\r\n      Elementor puede generar elementos\r\n      din\u00e1micamente.\r\n\r\n      Si aparece posteriormente un elemento\r\n      con dm-cursor-hover, lo registramos.\r\n    *\/\r\n\r\n    const observer =\r\n      new MutationObserver(\r\n        function () {\r\n\r\n          dmBindHoverElements();\r\n\r\n        }\r\n      );\r\n\r\n\r\n    observer.observe(\r\n      document.body,\r\n      {\r\n\r\n        childList:\r\n          true,\r\n\r\n        subtree:\r\n          true\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* ==================================================\r\n     INICIALIZACI\u00d3N\r\n     ================================================== *\/\r\n\r\n  dmLoadGSAP()\r\n\r\n    .then(\r\n      dmInitCursor\r\n    )\r\n\r\n    .catch(\r\n      function (error) {\r\n\r\n        console.error(\r\n          '[DM Cursor] No se pudo cargar GSAP:',\r\n          error\r\n        );\r\n\r\n      }\r\n    );\r\n\r\n\r\n})();\r\n\r\n<\/script>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":9,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-44788","page","type-page","status-publish"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>A GSAP Test | Open Intelligence<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A GSAP Test\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/\" \/>\n<meta property=\"og:site_name\" content=\"Open Intelligence\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/OpenSmartflex\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-06T20:23:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic.png\" \/>\n\t<meta property=\"og:image:width\" content=\"4000\" \/>\n\t<meta property=\"og:image:height\" content=\"2250\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@opensmartflex\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/gsap-test\\\/\",\"url\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/gsap-test\\\/\",\"name\":\"A GSAP Test | Open Intelligence\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/gsap-test\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/gsap-test\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/open-highlights-2025-infographic-1024x576.png\",\"datePublished\":\"2026-02-02T16:25:57+00:00\",\"dateModified\":\"2026-08-06T20:23:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/gsap-test\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/gsap-test\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/gsap-test\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/open-highlights-2025-infographic.png\",\"contentUrl\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/open-highlights-2025-infographic.png\",\"width\":4000,\"height\":2250},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/gsap-test\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A GSAP Test\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/#website\",\"url\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/\",\"name\":\"Open Intelligence\",\"description\":\"Software for utility companies\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/#organization\"},\"alternateName\":\"Open\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/#organization\",\"name\":\"Open Intelligence\",\"url\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/cropped-color-open-intelligence-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/cropped-color-open-intelligence-logo-1.png\",\"width\":974,\"height\":378,\"caption\":\"Open Intelligence\"},\"image\":{\"@id\":\"https:\\\/\\\/www.openintl.com\\\/ambienteTrabajo2\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/OpenSmartflex\\\/\",\"https:\\\/\\\/x.com\\\/opensmartflex\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/weareopenintelligence\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCHpHSdiqVTs0OvdEYJxCqiQ\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"A GSAP Test | Open Intelligence","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"A GSAP Test","og_url":"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/","og_site_name":"Open Intelligence","article_publisher":"https:\/\/www.facebook.com\/OpenSmartflex\/","article_modified_time":"2026-08-06T20:23:04+00:00","og_image":[{"width":4000,"height":2250,"url":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@opensmartflex","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/","url":"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/","name":"A GSAP Test | Open Intelligence","isPartOf":{"@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/#primaryimage"},"image":{"@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/#primaryimage"},"thumbnailUrl":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic-1024x576.png","datePublished":"2026-02-02T16:25:57+00:00","dateModified":"2026-08-06T20:23:04+00:00","breadcrumb":{"@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/#primaryimage","url":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic.png","contentUrl":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2026\/02\/open-highlights-2025-infographic.png","width":4000,"height":2250},{"@type":"BreadcrumbList","@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/gsap-test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.openintl.com\/ambienteTrabajo2\/"},{"@type":"ListItem","position":2,"name":"A GSAP Test"}]},{"@type":"WebSite","@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/#website","url":"https:\/\/www.openintl.com\/ambienteTrabajo2\/","name":"Open Intelligence","description":"Software for utility companies","publisher":{"@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/#organization"},"alternateName":"Open","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.openintl.com\/ambienteTrabajo2\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/#organization","name":"Open Intelligence","url":"https:\/\/www.openintl.com\/ambienteTrabajo2\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/#\/schema\/logo\/image\/","url":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2022\/09\/cropped-color-open-intelligence-logo-1.png","contentUrl":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-content\/uploads\/2022\/09\/cropped-color-open-intelligence-logo-1.png","width":974,"height":378,"caption":"Open Intelligence"},"image":{"@id":"https:\/\/www.openintl.com\/ambienteTrabajo2\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/OpenSmartflex\/","https:\/\/x.com\/opensmartflex","https:\/\/www.linkedin.com\/company\/weareopenintelligence","https:\/\/www.youtube.com\/channel\/UCHpHSdiqVTs0OvdEYJxCqiQ"]}]}},"_links":{"self":[{"href":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-json\/wp\/v2\/pages\/44788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-json\/wp\/v2\/comments?post=44788"}],"version-history":[{"count":2,"href":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-json\/wp\/v2\/pages\/44788\/revisions"}],"predecessor-version":[{"id":50207,"href":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-json\/wp\/v2\/pages\/44788\/revisions\/50207"}],"wp:attachment":[{"href":"https:\/\/www.openintl.com\/ambienteTrabajo2\/wp-json\/wp\/v2\/media?parent=44788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}