{"id":9,"date":"2025-11-11T12:55:26","date_gmt":"2025-11-11T12:55:26","guid":{"rendered":"https:\/\/opencity.cl\/?page_id=9"},"modified":"2025-12-15T13:22:12","modified_gmt":"2025-12-15T13:22:12","slug":"inicio","status":"publish","type":"page","link":"https:\/\/opencity.cl\/","title":{"rendered":"Inicio"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9\" class=\"elementor elementor-9\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f795b38 e-flex e-con-boxed e-con e-parent\" data-id=\"f795b38\" data-element_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<div class=\"elementor-element elementor-element-747a1b7 elementor-widget-mobile__width-initial elementor-widget elementor-widget-image\" data-id=\"747a1b7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"450\" height=\"100\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Sin-titulo.png\" class=\"attachment-full size-full wp-image-37\" alt=\"\" srcset=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Sin-titulo.png 450w, https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Sin-titulo-300x67.png 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a628c7f elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"a628c7f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\"><span style=\"font-weight: 600\">Soluciones tecnol\u00f3gicas<\/span> para una <span style=\"font-weight: 600\">vida mejor<\/span><\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-de9be46 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"de9be46\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Soluciones flexibles de carteler\u00eda digital para empresas, municipalidades y cl\u00ednicas. Comunica de manera clara, \u00e1gil y moderna en todas tus locaciones.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1b31815 e-con-full e-flex e-con e-child\" data-id=\"1b31815\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-9dc3ddc e-con-full e-flex e-con e-child\" data-id=\"9dc3ddc\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-038d29c elementor-align-justify elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"038d29c\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/opencity.cl\/?page_id=195\">\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\">Solicitar asesor\u00eda <\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-13aa430 e-con-full e-flex e-con e-child\" data-id=\"13aa430\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c17c86b elementor-align-center elementor-widget__width-initial eael_liquid_glass-effect2 eael_liquid_glass_border_distortion_yes elementor-widget elementor-widget-button\" data-id=\"c17c86b\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#soluciones\">\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\">Nuestras soluciones<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\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\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b04cfe9 e-flex e-con-boxed e-con e-parent\" data-id=\"b04cfe9\" data-element_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=\"elementor-element elementor-element-d8c7783 e-con-full e-flex e-con e-child\" data-id=\"d8c7783\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d25ac18 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d25ac18\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span style=\"font-weight:400\">Transformamos<\/span> la forma en que las <span style=\"font-weight:400\">organizaciones comunican, gestionan y operan.<\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b31a128 elementor-widget elementor-widget-text-editor\" data-id=\"b31a128\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>En Open City desarrollamos soluciones tecnol\u00f3gicas que conectan personas, procesos e informaci\u00f3n. Acompa\u00f1amos a empresas e instituciones en su transformaci\u00f3n digital, integrando comunicaci\u00f3n visual, gesti\u00f3n inteligente de datos y soporte continuo para un entorno m\u00e1s eficiente y humano<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b246b71 elementor-align-left elementor-widget__width-initial elementor-hidden-mobile elementor-widget elementor-widget-button\" data-id=\"b246b71\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/opencity.cl\/?page_id=148\">\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\">Conoce m\u00e1s sobre nosotros<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1232d1e e-con-full e-flex e-con e-child\" data-id=\"1232d1e\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-23fbc4f elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"23fbc4f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Gesti\u00f3n inteligente<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-343625e elementor-widget elementor-widget-text-editor\" data-id=\"343625e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Optimizamos procesos internos mediante gesti\u00f3n documental, mantenimiento predictivo y control de activos RFID, reduciendo costos y errores operativos.<\/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=\"elementor-element elementor-element-e701131 e-con-full e-flex e-con e-child\" data-id=\"e701131\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-11ff183 e-con-full e-flex e-con e-child\" data-id=\"11ff183\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a008128 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"a008128\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Tecnolog\u00eda que comunica<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9b2fcc5 elementor-widget elementor-widget-text-editor\" data-id=\"9b2fcc5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Integramos sistemas de carteler\u00eda digital y gesti\u00f3n de contenidos para mantener informados a colaboradores, pacientes o ciudadanos en tiempo real, con mensajes din\u00e1micos y visuales<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f17904f e-con-full e-flex e-con e-child\" data-id=\"f17904f\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-673076d elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"673076d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Acompa\u00f1amiento constante<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6a3e6ff elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"6a3e6ff\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Ofrecemos soporte y capacitaci\u00f3n continua para garantizar que cada soluci\u00f3n funcione al m\u00e1ximo, con asistencia humana y t\u00e9cnica siempre disponible.<\/p>\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-c58b21e elementor-align-left elementor-widget__width-initial elementor-mobile-align-justify elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-button\" data-id=\"c58b21e\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/opencity.cl\/?page_id=148\">\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\">Conoce m\u00e1s sobre nosotros<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\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=\"elementor-element elementor-element-f23518c e-con-full e-flex e-con e-parent\" data-id=\"f23518c\" data-element_type=\"container\" id=\"soluciones\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37f3d64 elementor-widget elementor-widget-soluciones-carousel\" data-id=\"37f3d64\" data-element_type=\"widget\" data-widget_type=\"soluciones-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n            <style>\n            :root {\n              --blanco: #ffffff;\n              --negro: #0d0d0d;\n              --gris: #f5f5f5;\n              --celeste-base: #1093db;\n              --celeste-1: #74c0ea;\n              --celeste-2: #e7f4fb;\n              --azul-base: #094781;\n              --azul-1: #052b4f;\n              --azul-2: #7094b6;\n              \n              --desk-h2-font-family: \"Poppins\", sans-serif;\n              --desk-h2-font-size: 24px;\n              --desk-h2-line-height: 30px;\n              --desk-h2-font-weight: 600;\n              \n              --desk-l-font-size: 16px;\n              --desk-l-line-height: 20px;\n              \n              --desk-m-font-size: 14px;\n              --desk-m-line-height: 18px;\n              \n              --desk-s-font-size: 10px;\n              --desk-s-line-height: 14px;\n            }\n\n            * {\n              box-sizing: border-box;\n            }\n\n            .soluciones-section {\n              background-color: #ffffff;\n              padding: 60px 0;\n              width: 100%;\n              margin: 0;\n              overflow: hidden;\n            }\n\n            .soluciones-container {\n              max-width: 100%;\n              width: 100%;\n              margin: 0;\n              padding: 0;\n            }\n\n            .soluciones-header {\n              text-align: center;\n              margin-bottom: 40px;\n              padding: 0 20px;\n            }\n\n            .soluciones-title {\n              font-family: \"Poppins\", sans-serif;\n              font-size: 42px;\n              font-weight: 300;\n              margin: 0 0 15px 0;\n              color: var(--azul-1);\n              user-select: none;\n              line-height: 1.2;\n            }\n\n            .soluciones-title em {\n              font-style: italic;\n              font-weight: 300;\n            }\n\n            .soluciones-title strong {\n              font-weight: 700;\n              color: var(--azul-1);\n            }\n\n            .soluciones-descripcion {\n              font-family: \"Poppins\", sans-serif;\n              font-size: 16px;\n              font-weight: 400;\n              line-height: 1.5;\n              color: var(--azul-1);\n              margin: 0;\n              max-width: 800px;\n              margin-left: auto;\n              margin-right: auto;\n            }\n\n            .filtros-container {\n              display: flex;\n              justify-content: center;\n              gap: 15px;\n              flex-wrap: wrap;\n              margin-bottom: 50px;\n              padding: 0 20px;\n            }\n\n            .filtros-container.hidden {\n              display: none;\n            }\n\n            .filtro-btn {\n              padding: 12px 25px;\n              border: 1px solid var(--celeste-base);\n              background-color: transparent;\n              color: var(--azul-1);\n              border-radius: 25px;\n              cursor: pointer;\n              font-size: 14px;\n              transition: all 0.3s ease;\n              white-space: nowrap;\n              user-select: none;\n            }\n\n            .filtro-btn:hover,\n            .filtro-btn.active {\n              background-color: var(--celeste-base);\n              color: var(--blanco);\n            }\n\n            .carousel-wrapper {\n              position: relative;\n              width: 100%;\n              padding: 80px 0 140px 0;\n              overflow: hidden;\n            }\n\n            .carousel-container {\n              position: relative;\n              width: 100%;\n              height: 550px;\n              display: flex;\n              align-items: center;\n              justify-content: center;\n            }\n\n            .carousel-track {\n              position: relative;\n              width: 100%;\n              height: 100%;\n              display: flex;\n              align-items: center;\n              justify-content: center;\n              cursor: grab;\n              user-select: none;\n            }\n\n            .carousel-track:active {\n              cursor: grabbing;\n            }\n\n            .carousel-slide {\n              position: absolute;\n              width: 932px;\n              max-width: 90vw;\n              transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1),\n                          opacity 0.6s cubic-bezier(0.25, 0.1, 0.25, 1),\n                          filter 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);\n              will-change: transform, opacity, filter;\n              user-select: none;\n            }\n\n            .carousel-slide * {\n              user-select: none;\n              pointer-events: none;\n            }\n\n            .carousel-slide .solucion-btn,\n            .carousel-slide .solucion-btn-folleto,\n            .carousel-slide .leer-mas-link {\n              pointer-events: auto !important;\n              cursor: pointer !important;\n            }\n\n            .carousel-slide[data-position=\"center\"] {\n              z-index: 100;\n              transform: translateX(0) scale(1);\n              opacity: 1;\n              filter: blur(0);\n            }\n\n            .carousel-slide[data-position=\"right\"] {\n              z-index: 50;\n              transform: translateX(480px) scale(0.75);\n              opacity: 0.4;\n              filter: blur(1.5px);\n            }\n\n            .carousel-slide[data-position=\"left\"] {\n              z-index: 50;\n              transform: translateX(-480px) scale(0.75);\n              opacity: 0.4;\n              filter: blur(1.5px);\n            }\n\n            .carousel-slide[data-position=\"far-right\"] {\n              z-index: 25;\n              transform: translateX(650px) scale(0.65);\n              opacity: 0.25;\n              filter: blur(2.5px);\n            }\n\n            .carousel-slide[data-position=\"far-left\"] {\n              z-index: 25;\n              transform: translateX(-650px) scale(0.65);\n              opacity: 0.25;\n              filter: blur(2.5px);\n            }\n\n            .carousel-slide[data-position=\"hidden\"] {\n              z-index: 1;\n              transform: translateX(0) scale(0.5);\n              opacity: 0;\n            }\n\n            .solucion-card {\n              position: relative;\n              border-radius: 40px;\n              border: 2px solid var(--gris);\n              box-shadow: -5px 9px 9.5px -2px rgba(0, 185, 255, 0.25),\n                5px -5px 8.8px 0px rgba(87, 196, 236, 0.25);\n              overflow: hidden;\n              width: 100%;\n              height: 435px;\n              transition: all 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-card {\n              box-shadow: -5px 12px 15px -2px rgba(0, 185, 255, 0.35),\n                5px -8px 12px 0px rgba(87, 196, 236, 0.35);\n            }\n\n            .solucion-image {\n              position: absolute;\n              top: 0;\n              left: 0;\n              width: 100%;\n              height: 100%;\n            }\n\n            .solucion-image img {\n              width: 100%;\n              height: 100%;\n              object-fit: cover;\n              transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-image img {\n              transform: scale(1.05);\n            }\n\n            .solucion-card::after {\n              content: \"\";\n              position: absolute;\n              left: 0;\n              bottom: 0;\n              width: 100%;\n              height: 100%;\n              background: linear-gradient(\n                10deg,\n                rgba(255, 255, 255, 1) 0%,\n                rgba(255, 255, 255, 0.98) 15%,\n                rgba(255, 255, 255, 0.85) 30%,\n                rgba(255, 255, 255, 0.5) 45%,\n                rgba(255, 255, 255, 0) 60%\n              );\n              pointer-events: none;\n            }\n\n            .solucion-content {\n              position: absolute;\n              bottom: 0;\n              left: 0;\n              right: 0;\n              padding: 35px 40px;\n              display: flex;\n              flex-wrap: wrap;\n              align-items: flex-end;\n              justify-content: space-between;\n              gap: 20px;\n              z-index: 10;\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-content {\n              padding: 40px 50px;\n            }\n\n            .solucion-info {\n              flex: 0 0 auto;\n              max-width: 40%;\n              display: flex;\n              flex-direction: column;\n              gap: 8px;\n            }\n\n            .solucion-badge {\n              display: inline-block;\n              background: radial-gradient(\n                  closest-side,\n                  rgba(217, 217, 217, 0) 40%,\n                  rgba(251, 251, 251, 1) 90%\n                ),\n                linear-gradient(to left, #00b9ff, #00b9ff);\n              border: 0.5px solid var(--celeste-base);\n              border-radius: 10000px;\n              padding: 5px 20px;\n              color: var(--blanco);\n              font-family: \"Poppins\", sans-serif;\n              font-size: var(--desk-s-font-size);\n              line-height: var(--desk-s-line-height);\n              font-weight: 700;\n              text-transform: uppercase;\n              width: fit-content;\n            }\n\n            .solucion-title {\n              font-family: \"Poppins\", sans-serif;\n              font-size: 20px;\n              line-height: 26px;\n              font-weight: var(--desk-h2-font-weight);\n              font-style: italic;\n              color: var(--azul-1);\n              margin: 0;\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-title {\n              font-size: 22px;\n              line-height: 28px;\n            }\n\n            .solucion-description {\n              font-family: \"Poppins\", sans-serif;\n              font-size: 13px;\n              line-height: 18px;\n              font-weight: 400;\n              color: var(--azul-1);\n              margin: 0;\n            }\n\n            .solucion-description p {\n              margin: 0;\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-description {\n              font-size: var(--desk-m-font-size);\n              line-height: 19px;\n            }\n\n            .leer-mas-link {\n              color: var(--celeste-base);\n              font-weight: 600;\n              text-decoration: none;\n              transition: all 0.3s ease;\n              cursor: pointer !important;\n              pointer-events: auto !important;\n            }\n\n            .leer-mas-link:hover {\n              color: var(--azul-base);\n              text-decoration: underline;\n            }\n\n            .solucion-action {\n              display: flex;\n              align-items: flex-end;\n              flex-shrink: 0;\n              gap: 10px;\n            }\n\n            .solucion-btn {\n              background: var(--celeste-base);\n              border: 1px solid rgba(9, 71, 129, 0.5);\n              border-radius: 100px;\n              padding: 12px 24px;\n              color: var(--blanco);\n              font-family: \"Poppins\", sans-serif;\n              font-size: var(--desk-m-font-size);\n              line-height: var(--desk-m-line-height);\n              font-weight: 700;\n              cursor: pointer !important;\n              transition: all 0.3s ease;\n              box-shadow: inset 0px 0px 13.3px 0px rgba(255, 255, 255, 1),\n                0px 0px 4px 0px rgba(9, 71, 129, 1);\n              text-decoration: none;\n              display: inline-block;\n              white-space: nowrap;\n              pointer-events: auto !important;\n            }\n\n            .solucion-btn:hover {\n              background: var(--azul-base);\n              transform: translateY(-2px);\n              box-shadow: inset 0px 0px 13.3px 0px rgba(255, 255, 255, 1),\n                0px 2px 8px 0px rgba(9, 71, 129, 0.5);\n              color: var(--blanco);\n            }\n\n            \/* NUEVO: Estilo para bot\u00f3n de folleto *\/\n            .solucion-btn-folleto {\n              background: #1E88E5;\n              border: 1px solid rgba(9, 71, 129, 0.5);\n              border-radius: 100px;\n              padding: 12px 24px;\n              color: var(--blanco) !important;\n              font-family: \"Poppins\", sans-serif;\n              font-size: var(--desk-m-font-size);\n              line-height: var(--desk-m-line-height);\n              font-weight: 700;\n              cursor: pointer !important;\n              transition: all 0.3s ease;\n              box-shadow: inset 0px 0px 13.3px 0px rgba(255, 255, 255, 1),\n                0px 0px 4px 0px rgba(9, 71, 129, 1);\n              text-decoration: none !important;\n              display: inline-block;\n              white-space: nowrap;\n              pointer-events: auto !important;\n            }\n\n            .solucion-btn-folleto:hover {\n              background: #1565C0 !important;\n              transform: translateY(-2px);\n              box-shadow: inset 0px 0px 13.3px 0px rgba(255, 255, 255, 1),\n                0px 2px 8px 0px rgba(9, 71, 129, 0.5);\n              color: var(--blanco) !important;\n            }\n\n            .carousel-nav {\n              position: absolute;\n              top: 45%;\n              transform: translateY(-50%);\n              width: 55px;\n              height: 55px;\n              background-color: rgba(255, 255, 255, 0.95);\n              border-radius: 50%;\n              box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);\n              display: flex;\n              align-items: center;\n              justify-content: center;\n              cursor: pointer;\n              transition: all 0.3s ease;\n              z-index: 200;\n              border: none;\n              backdrop-filter: blur(10px);\n              user-select: none;\n            }\n\n            .carousel-nav:hover {\n              box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\n              transform: translateY(-50%) scale(1.08);\n              background-color: #ffffff;\n            }\n\n            .carousel-nav:active {\n              transform: translateY(-50%) scale(0.95);\n            }\n\n            .carousel-nav.prev {\n              left: 40px;\n            }\n\n            .carousel-nav.next {\n              right: 40px;\n            }\n\n            .carousel-nav svg {\n              width: 22px;\n              height: 22px;\n              fill: var(--celeste-base);\n            }\n\n            .carousel-pagination {\n              position: absolute;\n              bottom: 50px;\n              left: 50%;\n              transform: translateX(-50%);\n              display: flex;\n              gap: 12px;\n              z-index: 200;\n            }\n\n            .pagination-dot {\n              width: 10px;\n              height: 10px;\n              border-radius: 5px;\n              background-color: #d0d5dd;\n              cursor: pointer;\n              transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);\n              border: none;\n              padding: 0;\n              user-select: none;\n            }\n\n            .pagination-dot:hover {\n              background-color: #a0a8b8;\n              transform: scale(1.15);\n            }\n\n            .pagination-dot.active {\n              background-color: var(--celeste-base);\n              width: 32px;\n            }\n\n            @media (max-width: 1200px) {\n              .carousel-slide {\n                width: 750px;\n              }\n              \n              .carousel-slide[data-position=\"right\"] {\n                transform: translateX(400px) scale(0.75);\n              }\n              \n              .carousel-slide[data-position=\"left\"] {\n                transform: translateX(-400px) scale(0.75);\n              }\n              \n              .carousel-nav.prev {\n                left: 20px;\n              }\n              \n              .carousel-nav.next {\n                right: 20px;\n              }\n            }\n\n            @media (max-width: 768px) {\n              .soluciones-title {\n                font-size: 28px;\n              }\n\n              .soluciones-descripcion {\n                font-size: 14px;\n              }\n              \n              .filtros-container {\n                gap: 10px;\n                margin-bottom: 40px;\n              }\n              \n              .filtro-btn {\n                padding: 8px 18px;\n                font-size: 12px;\n              }\n              \n              .carousel-container {\n                height: 400px;\n              }\n              \n              .carousel-wrapper {\n                padding: 60px 0 120px 0;\n              }\n              \n              .carousel-slide {\n                width: 90vw;\n                max-width: 90vw;\n              }\n              \n              .carousel-slide[data-position=\"right\"],\n              .carousel-slide[data-position=\"left\"] {\n                transform: translateX(0) scale(0.85);\n                opacity: 0.3;\n              }\n              \n              .solucion-card {\n                height: 350px;\n              }\n              \n              .carousel-slide[data-position=\"center\"] .solucion-card {\n                height: 350px;\n              }\n              \n              .solucion-content {\n                padding: 25px;\n                gap: 15px;\n              }\n              \n              .carousel-slide[data-position=\"center\"] .solucion-content {\n                padding: 30px;\n              }\n              \n              .solucion-info {\n                max-width: 45%;\n                gap: 6px;\n              }\n              \n              .solucion-badge {\n                font-size: 8px;\n                padding: 4px 14px;\n              }\n              \n              .solucion-title {\n                font-size: 16px;\n                line-height: 20px;\n              }\n              \n              .carousel-slide[data-position=\"center\"] .solucion-title {\n                font-size: 17px;\n                line-height: 22px;\n              }\n              \n              .solucion-description {\n                font-size: 11px;\n                line-height: 15px;\n              }\n              \n              .carousel-slide[data-position=\"center\"] .solucion-description {\n                font-size: 12px;\n                line-height: 16px;\n              }\n              \n              .solucion-btn,\n              .solucion-btn-folleto {\n                padding: 10px 18px;\n                font-size: 12px;\n              }\n              \n              .solucion-action {\n                flex-direction: column;\n                gap: 8px;\n              }\n              \n              .carousel-nav {\n                width: 45px;\n                height: 45px;\n              }\n              \n              .carousel-nav.prev {\n                left: 10px;\n              }\n              \n              .carousel-nav.next {\n                right: 10px;\n              }\n              \n              .carousel-nav svg {\n                width: 18px;\n                height: 18px;\n              }\n              \n              .carousel-pagination {\n                bottom: 40px;\n              }\n              \n              .pagination-dot {\n                width: 8px;\n                height: 8px;\n              }\n              \n              .pagination-dot.active {\n                width: 24px;\n              }\n            }\n\n            @media (max-width: 480px) {\n              .soluciones-title {\n                font-size: 22px;\n              }\n\n              .soluciones-descripcion {\n                font-size: 13px;\n              }\n\n              .carousel-container {\n                height: 320px;\n              }\n              \n              .solucion-card,\n              .carousel-slide[data-position=\"center\"] .solucion-card {\n                height: 280px;\n              }\n              \n              .solucion-content {\n                padding: 20px;\n                gap: 10px;\n              }\n              \n              .solucion-info {\n                max-width: 48%;\n                gap: 5px;\n              }\n              \n              .solucion-badge {\n                font-size: 7px;\n                padding: 3px 12px;\n              }\n              \n              .solucion-title {\n                font-size: 13px;\n                line-height: 17px;\n              }\n              \n              .solucion-description {\n                font-size: 9px;\n                line-height: 13px;\n              }\n              \n              .solucion-btn,\n              .solucion-btn-folleto {\n                padding: 8px 14px;\n                font-size: 10px;\n              }\n            }\n            <\/style>\n\n            <div class=\"soluciones-section\">\n                <div class=\"soluciones-container\">\n                    \n                    <!-- ENCABEZADO: T\u00edtulo y Descripci\u00f3n -->\n                    <div class=\"soluciones-header\">\n                        <h2 class=\"soluciones-title\">\n                            <em>SOLUCIONES<\/em> PARA CADA <strong>ORGANIZACI\u00d3N<\/strong>                        <\/h2>\n                        \n                                                    <p class=\"soluciones-descripcion\">\n                                Nuestra tecnolog\u00eda se ajusta a tus necesidades, sin importar el tama\u00f1o o sector.                            <\/p>\n                                            <\/div>\n                    \n                    <!-- FILTROS -->\n                    <div class=\"filtros-container \">\n                                                        <button class=\"filtro-btn active\" data-filter=\"0\">\n                                    Carteler\u00eda Digital                                <\/button>\n                                                                <button class=\"filtro-btn \" data-filter=\"1\">\n                                    Mantenimiento Predictivo de Motores                                <\/button>\n                                                                <button class=\"filtro-btn \" data-filter=\"2\">\n                                    Control de Activos y Bodegas por RFID                                <\/button>\n                                                                <button class=\"filtro-btn \" data-filter=\"3\">\n                                    Soporte y Capacitaci\u00f3n                                <\/button>\n                                                                <button class=\"filtro-btn \" data-filter=\"4\">\n                                    Procesamiento inteligente de documentos                                <\/button>\n                                                    <\/div>\n                    \n                    <!-- CARRUSEL -->\n                    <div class=\"carousel-wrapper\">\n                        <div class=\"carousel-container\">\n                            <div class=\"carousel-track\" id=\"carousel-37f3d64-track\">\n                                \n                                                                    \n                                    <div class=\"carousel-slide\" data-index=\"0\" data-position=\"center\">\n                                        <div class=\"solucion-card\">\n                                            <div class=\"solucion-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/d66c89134f9532728699b48466291bed42a5043c-3-scaled.jpg\" alt=\"Carteler\u00eda Digital\">\n                                            <\/div>\n                                            \n                                            <div class=\"solucion-content\">\n                                                <div class=\"solucion-info\">\n                                                    <!-- BADGE: Solo si tiene contenido -->\n                                                                                                        \n                                                    <!-- T\u00cdTULO: Siempre se muestra -->\n                                                    <h3 class=\"solucion-title\">Carteler\u00eda Digital<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nDisponemos de varias alternativas de software y hardware para adecuarnos a las diferentes necesidades de nuestros clientes. Asesoramos a nuestros... <a href=\"https:\/\/opencity.cl\/?page_id=292\" class=\"leer-mas-link\" target=\"_self\">leer m\u00e1s<\/a>                                                        <\/div>\n                                                                                                    <\/div>\n                                                \n                                                <!-- BOTONES -->\n                                                                                                    <div class=\"solucion-action\">\n                                                        <!-- BOT\u00d3N PRINCIPAL: Solo si el usuario llen\u00f3 URL o texto del bot\u00f3n -->\n                                                                                                                    <a href=\"https:\/\/opencity.cl\/?page_id=292\" \n                                                               class=\"solucion-btn\" \n                                                               target=\"_self\"\n                                                                                                                              onclick=\"event.stopPropagation();\">\n                                                                Explorar soluci\u00f3n                                                            <\/a>\n                                                                                                                \n                                                        <!-- NUEVO: BOT\u00d3N DE FOLLETO -->\n                                                                                                            <\/div>\n                                                                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                    \n                                                                        \n                                    <div class=\"carousel-slide\" data-index=\"1\" data-position=\"right\">\n                                        <div class=\"solucion-card\">\n                                            <div class=\"solucion-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Ingeniero-2-scaled.jpg\" alt=\"Mantenimiento Predictivo de Motores\">\n                                            <\/div>\n                                            \n                                            <div class=\"solucion-content\">\n                                                <div class=\"solucion-info\">\n                                                    <!-- BADGE: Solo si tiene contenido -->\n                                                                                                        \n                                                    <!-- T\u00cdTULO: Siempre se muestra -->\n                                                    <h3 class=\"solucion-title\">Mantenimiento Predictivo de Motores<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nA trav\u00e9s de sensores inteligentes monitoreamos permanentemente el estado y funcionamiento de equipos y motores. Los datos obtenidos combinados con... <a href=\"https:\/\/opencity.cl\/?page_id=350\" class=\"leer-mas-link\" target=\"_self\">leer m\u00e1s<\/a>                                                        <\/div>\n                                                                                                    <\/div>\n                                                \n                                                <!-- BOTONES -->\n                                                                                                    <div class=\"solucion-action\">\n                                                        <!-- BOT\u00d3N PRINCIPAL: Solo si el usuario llen\u00f3 URL o texto del bot\u00f3n -->\n                                                                                                                    <a href=\"https:\/\/opencity.cl\/?page_id=350\" \n                                                               class=\"solucion-btn\" \n                                                               target=\"_self\"\n                                                                                                                              onclick=\"event.stopPropagation();\">\n                                                                Explorar soluci\u00f3n                                                            <\/a>\n                                                                                                                \n                                                        <!-- NUEVO: BOT\u00d3N DE FOLLETO -->\n                                                                                                            <\/div>\n                                                                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                    \n                                                                        \n                                    <div class=\"carousel-slide\" data-index=\"2\" data-position=\"far-right\">\n                                        <div class=\"solucion-card\">\n                                            <div class=\"solucion-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/0759d4af5b464f853baa8c299a9d6940cfd5675a-scaled.jpg\" alt=\"Control de Activos y Bodegas por RFID\">\n                                            <\/div>\n                                            \n                                            <div class=\"solucion-content\">\n                                                <div class=\"solucion-info\">\n                                                    <!-- BADGE: Solo si tiene contenido -->\n                                                                                                        \n                                                    <!-- T\u00cdTULO: Siempre se muestra -->\n                                                    <h3 class=\"solucion-title\">Control de Activos y Bodegas por RFID<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nEl control de activos con RFID (Identificaci\u00f3n por Radiofrecuencia) es un sistema que usa ondas de radio para rastrear y... <a href=\"https:\/\/opencity.cl\/?page_id=387\" class=\"leer-mas-link\" target=\"_self\">leer m\u00e1s<\/a>                                                        <\/div>\n                                                                                                    <\/div>\n                                                \n                                                <!-- BOTONES -->\n                                                                                                    <div class=\"solucion-action\">\n                                                        <!-- BOT\u00d3N PRINCIPAL: Solo si el usuario llen\u00f3 URL o texto del bot\u00f3n -->\n                                                                                                                    <a href=\"https:\/\/opencity.cl\/?page_id=387\" \n                                                               class=\"solucion-btn\" \n                                                               target=\"_self\"\n                                                                                                                              onclick=\"event.stopPropagation();\">\n                                                                Explorar soluci\u00f3n                                                            <\/a>\n                                                                                                                \n                                                        <!-- NUEVO: BOT\u00d3N DE FOLLETO -->\n                                                                                                            <\/div>\n                                                                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                    \n                                                                        \n                                    <div class=\"carousel-slide\" data-index=\"3\" data-position=\"hidden\">\n                                        <div class=\"solucion-card\">\n                                            <div class=\"solucion-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/84a625f2bb817e7037605a704248639fa8c5974a-scaled.jpg\" alt=\"Soporte y Capacitaci\u00f3n\">\n                                            <\/div>\n                                            \n                                            <div class=\"solucion-content\">\n                                                <div class=\"solucion-info\">\n                                                    <!-- BADGE: Solo si tiene contenido -->\n                                                                                                        \n                                                    <!-- T\u00cdTULO: Siempre se muestra -->\n                                                    <h3 class=\"solucion-title\">Soporte y Capacitaci\u00f3n<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nOfrecemos Soporte y Capacitaci\u00f3n a nuestros clientes para que obtengan el m\u00e1ximo beneficio del uso de nuestros productos y servicios\n                                                        <\/div>\n                                                                                                    <\/div>\n                                                \n                                                <!-- BOTONES -->\n                                                                                                    <div class=\"solucion-action\">\n                                                        <!-- BOT\u00d3N PRINCIPAL: Solo si el usuario llen\u00f3 URL o texto del bot\u00f3n -->\n                                                                                                                    <a href=\"https:\/\/opencity.cl\/?page_id=431\" \n                                                               class=\"solucion-btn\" \n                                                               target=\"_self\"\n                                                                                                                              onclick=\"event.stopPropagation();\">\n                                                                Explorar soluci\u00f3n                                                            <\/a>\n                                                                                                                \n                                                        <!-- NUEVO: BOT\u00d3N DE FOLLETO -->\n                                                                                                            <\/div>\n                                                                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                    \n                                                                        \n                                    <div class=\"carousel-slide\" data-index=\"4\" data-position=\"hidden\">\n                                        <div class=\"solucion-card\">\n                                            <div class=\"solucion-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/27155bbe19b45fd473f6bb17099bd360eaf64f19-3.png\" alt=\"Procesamiento inteligente de documentos\">\n                                            <\/div>\n                                            \n                                            <div class=\"solucion-content\">\n                                                <div class=\"solucion-info\">\n                                                    <!-- BADGE: Solo si tiene contenido -->\n                                                                                                        \n                                                    <!-- T\u00cdTULO: Siempre se muestra -->\n                                                    <h3 class=\"solucion-title\">Procesamiento inteligente de documentos<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nOfrecemos un amplio rango de software y esc\u00e1neres para un procesamiento inteligente de documentos. Nuestros productos y soluciones para gesti\u00f3n... <a href=\"https:\/\/opencity.cl\/?page_id=315\" class=\"leer-mas-link\" target=\"_self\">leer m\u00e1s<\/a>                                                        <\/div>\n                                                                                                    <\/div>\n                                                \n                                                <!-- BOTONES -->\n                                                                                                    <div class=\"solucion-action\">\n                                                        <!-- BOT\u00d3N PRINCIPAL: Solo si el usuario llen\u00f3 URL o texto del bot\u00f3n -->\n                                                                                                                    <a href=\"https:\/\/opencity.cl\/?page_id=315\" \n                                                               class=\"solucion-btn\" \n                                                               target=\"_self\"\n                                                                                                                              onclick=\"event.stopPropagation();\">\n                                                                Explorar soluci\u00f3n                                                            <\/a>\n                                                                                                                \n                                                        <!-- NUEVO: BOT\u00d3N DE FOLLETO -->\n                                                                                                            <\/div>\n                                                                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                    \n                                                                    \n                            <\/div>\n                        <\/div>\n                        \n                        <button class=\"carousel-nav prev\" id=\"carousel-37f3d64-prevBtn\">\n                            <svg viewBox=\"0 0 10 15\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                <path d=\"M9.2625 13.2375L3.5375 7.5L9.2625 1.7625L7.5 0L0 7.5L7.5 15L9.2625 13.2375Z\"\/>\n                            <\/svg>\n                        <\/button>\n                        <button class=\"carousel-nav next\" id=\"carousel-37f3d64-nextBtn\">\n                            <svg viewBox=\"0 0 10 15\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                <path d=\"M0.737305 13.2375L6.4623 7.5L0.737305 1.7625L2.4998 0L9.9998 7.5L2.4998 15L0.737305 13.2375Z\"\/>\n                            <\/svg>\n                        <\/button>\n                        \n                        <div class=\"carousel-pagination\" id=\"carousel-37f3d64-pagination\">\n                            <button class=\"pagination-dot active\" data-slide=\"0\"><\/button><button class=\"pagination-dot \" data-slide=\"1\"><\/button><button class=\"pagination-dot \" data-slide=\"2\"><\/button><button class=\"pagination-dot \" data-slide=\"3\"><\/button><button class=\"pagination-dot \" data-slide=\"4\"><\/button>                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <script>\n            \/\/ Funci\u00f3n global para abrir el modal del folleto (usa openPdfModal del snippet de folletos)\n            function abrirFolletoModal(folletoId) {\n                if (typeof jQuery !== 'undefined' && typeof folletosConfig !== 'undefined') {\n                    jQuery.ajax({\n                        url: folletosConfig.ajaxUrl,\n                        type: 'POST',\n                        data: {\n                            action: 'cargar_folleto',\n                            folleto_id: folletoId\n                        },\n                        beforeSend: function() {\n                            console.log('Cargando folleto...', folletoId);\n                        },\n                        success: function(response) {\n                            if (response.success) {\n                                var data = response.data;\n                                \n                                \/\/ Detectar tipo de archivo para texto del bot\u00f3n\n                                var textoBoton = 'Descargar archivo';\n                                if (data.pdfUrl) {\n                                    var extension = data.pdfUrl.split('.').pop().toLowerCase();\n                                    if (extension === 'pdf') {\n                                        textoBoton = 'Descargar PDF';\n                                    } else if (extension === 'ppt' || extension === 'pptx') {\n                                        textoBoton = 'Descargar Presentaci\u00f3n';\n                                    }\n                                }\n                                \n                                \/\/ Usar la funci\u00f3n correcta del modal existente\n                                if (typeof openPdfModal === 'function') {\n                                    openPdfModal(data.titulo, data.contenido, data.pdfUrl, data.folletoId, textoBoton);\n                                } else {\n                                    console.error('openPdfModal no est\u00e1 definido. Verifica que el snippet \"CPT Folletos - JavaScript\" est\u00e9 activo.');\n                                    alert('Error: Modal no disponible');\n                                }\n                            } else {\n                                console.error('Error al cargar folleto:', response);\n                                alert('Error al cargar el folleto');\n                            }\n                        },\n                        error: function(xhr, status, error) {\n                            console.error('Error AJAX:', error);\n                            alert('Error de conexi\u00f3n');\n                        }\n                    });\n                } else {\n                    console.error('folletosConfig no est\u00e1 definido. Verifica que el snippet \"CPT Folletos - Ajax\" est\u00e9 activo.');\n                }\n            }\n            \n            (function() {\n                const widgetId = 'carousel-37f3d64';\n                const autoplayEnabled = true;\n                const autoplayDelay = 10000;\n                const mostrarFiltros = true;\n                \n                class SolucionesCarousel {\n                  constructor(widgetId) {\n                    this.widgetId = widgetId;\n                    this.currentIndex = 0;\n                    this.slides = document.querySelectorAll('#' + widgetId + '-track .carousel-slide');\n                    this.totalSlides = this.slides.length;\n                    this.isTransitioning = false;\n                    this.transitionDuration = 600;\n                    this.autoplayInterval = null;\n                    this.autoplayDelay = autoplayDelay;\n                    this.autoplayEnabled = autoplayEnabled;\n                    \n                    this.startX = 0;\n                    this.currentX = 0;\n                    this.isDragging = false;\n                    this.hasMoved = false;\n                    this.minSwipeDistance = 50;\n                    \n                    this.init();\n                  }\n                  \n                  init() {\n                    const prevBtn = document.getElementById(this.widgetId + '-prevBtn');\n                    const nextBtn = document.getElementById(this.widgetId + '-nextBtn');\n                    \n                    if (prevBtn) prevBtn.addEventListener('click', () => this.navigate('prev'));\n                    if (nextBtn) nextBtn.addEventListener('click', () => this.navigate('next'));\n                    \n                    document.querySelectorAll('#' + this.widgetId + '-pagination .pagination-dot').forEach((dot) => {\n                      dot.addEventListener('click', () => {\n                        const slideIndex = parseInt(dot.getAttribute('data-slide'));\n                        this.goToSlide(slideIndex);\n                      });\n                    });\n                    \n                    if (mostrarFiltros) {\n                      document.querySelectorAll('.filtro-btn').forEach((btn) => {\n                        btn.addEventListener('click', () => {\n                          const filterIndex = parseInt(btn.getAttribute('data-filter'));\n                          document.querySelectorAll('.filtro-btn').forEach(b => b.classList.remove('active'));\n                          btn.classList.add('active');\n                          this.goToSlide(filterIndex);\n                        });\n                      });\n                    }\n                    \n                    this.setupInteractions();\n                    \n                    document.addEventListener('keydown', (e) => {\n                      if (e.key === 'ArrowLeft') this.navigate('prev');\n                      if (e.key === 'ArrowRight') this.navigate('next');\n                    });\n                    \n                    if (this.autoplayEnabled) {\n                      this.startAutoplay();\n                      \n                      const wrapper = document.querySelector('.carousel-wrapper');\n                      if (wrapper) {\n                        wrapper.addEventListener('mouseenter', () => this.pauseAutoplay());\n                        wrapper.addEventListener('mouseleave', () => this.resumeAutoplay());\n                      }\n                    }\n                  }\n                  \n                  setupInteractions() {\n                    const track = document.getElementById(this.widgetId + '-track');\n                    if (!track) return;\n                    \n                    const onDragStart = (e) => {\n                      if (e.target.closest('.solucion-btn') || e.target.closest('.solucion-btn-folleto') || e.target.closest('.leer-mas-link')) return;\n                      if (this.isTransitioning) return;\n                      \n                      this.isDragging = true;\n                      this.hasMoved = false;\n                      this.startX = this.getPositionX(e);\n                      this.currentX = this.startX;\n                      \n                      track.style.cursor = 'grabbing';\n                      this.pauseAutoplay();\n                    };\n                    \n                    const onDragMove = (e) => {\n                      if (!this.isDragging) return;\n                      \n                      this.currentX = this.getPositionX(e);\n                      const diff = Math.abs(this.currentX - this.startX);\n                      \n                      if (diff > 5) {\n                        this.hasMoved = true;\n                      }\n                    };\n                    \n                    const onDragEnd = () => {\n                      if (!this.isDragging) return;\n                      \n                      track.style.cursor = 'grab';\n                      this.isDragging = false;\n                      \n                      if (this.hasMoved) {\n                        const distance = this.startX - this.currentX;\n                        \n                        if (Math.abs(distance) >= this.minSwipeDistance) {\n                          if (distance > 0) {\n                            this.navigate('next');\n                          } else {\n                            this.navigate('prev');\n                          }\n                        } else {\n                          this.resumeAutoplay();\n                        }\n                      } else {\n                        this.resumeAutoplay();\n                      }\n                      \n                      this.startX = 0;\n                      this.currentX = 0;\n                      this.hasMoved = false;\n                    };\n                    \n                    track.addEventListener('mousedown', onDragStart);\n                    document.addEventListener('mousemove', onDragMove);\n                    document.addEventListener('mouseup', onDragEnd);\n                    \n                    track.addEventListener('touchstart', onDragStart, { passive: true });\n                    track.addEventListener('touchmove', onDragMove, { passive: true });\n                    track.addEventListener('touchend', onDragEnd);\n                    \n                    track.addEventListener('dragstart', (e) => {\n                      if (!e.target.closest('.solucion-btn') && !e.target.closest('.solucion-btn-folleto') && !e.target.closest('.leer-mas-link')) {\n                        e.preventDefault();\n                      }\n                    });\n                  }\n                  \n                  getPositionX(e) {\n                    return e.type.includes('mouse') ? e.clientX : e.touches[0].clientX;\n                  }\n                  \n                  navigate(direction) {\n                    if (this.isTransitioning) return;\n                    \n                    if (direction === 'next') {\n                      this.currentIndex = (this.currentIndex + 1) % this.totalSlides;\n                    } else {\n                      this.currentIndex = (this.currentIndex - 1 + this.totalSlides) % this.totalSlides;\n                    }\n                    \n                    this.updateSlides();\n                    this.resetAutoplay();\n                  }\n                  \n                  goToSlide(index) {\n                    if (this.isTransitioning || index === this.currentIndex) return;\n                    \n                    this.currentIndex = index;\n                    this.updateSlides();\n                    this.resetAutoplay();\n                  }\n                  \n                  updateSlides() {\n                    this.isTransitioning = true;\n                    \n                    this.slides.forEach((slide, index) => {\n                      const position = this.getSlidePosition(index);\n                      slide.setAttribute('data-position', position);\n                    });\n                    \n                    this.updateUI();\n                    \n                    setTimeout(() => {\n                      this.isTransitioning = false;\n                    }, this.transitionDuration);\n                  }\n                  \n                  getSlidePosition(slideIndex) {\n                    const diff = slideIndex - this.currentIndex;\n                    const totalSlides = this.totalSlides;\n                    \n                    let normalizedDiff = diff;\n                    if (diff > totalSlides \/ 2) normalizedDiff -= totalSlides;\n                    if (diff < -totalSlides \/ 2) normalizedDiff += totalSlides;\n                    \n                    if (normalizedDiff === 0) return 'center';\n                    if (normalizedDiff === 1) return 'right';\n                    if (normalizedDiff === -1) return 'left';\n                    if (normalizedDiff === 2) return 'far-right';\n                    if (normalizedDiff === -2) return 'far-left';\n                    return 'hidden';\n                  }\n                  \n                  updateUI() {\n                    document.querySelectorAll('#' + this.widgetId + '-pagination .pagination-dot').forEach((dot, index) => {\n                      dot.classList.toggle('active', index === this.currentIndex);\n                    });\n                    \n                    if (mostrarFiltros) {\n                      document.querySelectorAll('.filtro-btn').forEach((btn, index) => {\n                        btn.classList.toggle('active', index === this.currentIndex);\n                      });\n                    }\n                  }\n                  \n                  startAutoplay() {\n                    if (!this.autoplayEnabled) return;\n                    this.autoplayInterval = setInterval(() => {\n                      this.navigate('next');\n                    }, this.autoplayDelay);\n                  }\n                  \n                  pauseAutoplay() {\n                    if (this.autoplayInterval) {\n                      clearInterval(this.autoplayInterval);\n                      this.autoplayInterval = null;\n                    }\n                  }\n                  \n                  resumeAutoplay() {\n                    if (!this.autoplayInterval && this.autoplayEnabled) {\n                      this.startAutoplay();\n                    }\n                  }\n                  \n                  resetAutoplay() {\n                    this.pauseAutoplay();\n                    this.startAutoplay();\n                  }\n                }\n                \n                if (document.readyState === 'loading') {\n                  document.addEventListener('DOMContentLoaded', () => new SolucionesCarousel(widgetId));\n                } else {\n                  new SolucionesCarousel(widgetId);\n                }\n            })();\n            <\/script>\n\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f23d3e7 e-flex e-con-boxed e-con e-parent\" data-id=\"f23d3e7\" data-element_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=\"elementor-element elementor-element-ab61ccf e-con-full e-flex e-con e-child\" data-id=\"ab61ccf\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21a9cf0 elementor-widget elementor-widget-image\" data-id=\"21a9cf0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"600\" height=\"758\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Directivos.png\" class=\"attachment-full size-full wp-image-119\" alt=\"\" srcset=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Directivos.png 600w, https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Directivos-237x300.png 237w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-59ab440 e-con-full e-flex e-con e-child\" data-id=\"59ab440\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-26fed9d elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"26fed9d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span style=\"font-weight:400\">Transformamos<\/span> la forma en que las <span style=\"font-weight:400\">organizaciones comunican, gestionan y operan.<\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-75752a9 elementor-widget elementor-widget-text-editor\" data-id=\"75752a9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>En Open City desarrollamos soluciones tecnol\u00f3gicas que conectan personas, procesos e informaci\u00f3n. Acompa\u00f1amos a empresas e instituciones en su transformaci\u00f3n digital, integrando comunicaci\u00f3n visual, gesti\u00f3n inteligente de datos y soporte continuo para un entorno m\u00e1s eficiente y humano<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-833a993 e-con-full e-flex e-con e-child\" data-id=\"833a993\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0916754 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"0916754\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><em><span style=\"font-size: 20px; font-weight: 600;\">Eficiencia operativa<\/span><\/em><br \/>Centraliza la informaci\u00f3n y automatiza tareas clave, reduciendo tiempos de gesti\u00f3n y errores humanos.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9795593 elementor-widget__width-initial arrow-icon elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"9795593\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"35\" height=\"35\" viewBox=\"0 0 35 35\" fill=\"none\"><path d=\"M2 2.00016L32.7083 32.7085M32.7083 32.7085V7.5835M32.7083 32.7085H7.58333\" stroke=\"#052B4F\" stroke-width=\"4.00001\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e6bdf34 e-con-full e-flex e-con e-child\" data-id=\"e6bdf34\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aeaf020 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"aeaf020\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><em><span style=\"font-size: 20px; font-weight: 600;\">Comunicaci\u00f3n en tiempo real<\/span><\/em><br \/>Actualiza contenidos y mensajes de forma inmediata en todos tus canales digitales, manteniendo informada a tu audiencia.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c97bc52 elementor-widget__width-initial arrow-icon elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"c97bc52\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"35\" height=\"35\" viewBox=\"0 0 35 35\" fill=\"none\"><path d=\"M2 2.00016L32.7083 32.7085M32.7083 32.7085V7.5835M32.7083 32.7085H7.58333\" stroke=\"#052B4F\" stroke-width=\"4.00001\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f7fddaa e-con-full e-flex e-con e-child\" data-id=\"f7fddaa\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cfbfb9d elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"cfbfb9d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<em><span style=\"font-size: 20px; font-weight: 600;\">Escalabilidad y flexibilidad<\/span><\/em><br>\nAdapta nuestras soluciones a distintos tama\u00f1os de organizaci\u00f3n, desde peque\u00f1as empresas hasta corporaciones globales.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5d02d04 elementor-widget__width-initial arrow-icon elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"5d02d04\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"35\" height=\"35\" viewBox=\"0 0 35 35\" fill=\"none\"><path d=\"M2 2.00016L32.7083 32.7085M32.7083 32.7085V7.5835M32.7083 32.7085H7.58333\" stroke=\"#052B4F\" stroke-width=\"4.00001\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0b6b3fe e-con-full e-flex e-con e-child\" data-id=\"0b6b3fe\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e0a9733 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"e0a9733\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<em><span style=\"font-size: 20px; font-weight: 600;\">Soporte permanente<\/span><\/em><br>\nNuestro equipo t\u00e9cnico y de capacitaci\u00f3n te acompa\u00f1a en todo momento, asegurando continuidad y mejora constante.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8bfd036 elementor-widget__width-initial arrow-icon elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"8bfd036\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"35\" height=\"35\" viewBox=\"0 0 35 35\" fill=\"none\"><path d=\"M2 2.00016L32.7083 32.7085M32.7083 32.7085V7.5835M32.7083 32.7085H7.58333\" stroke=\"#052B4F\" stroke-width=\"4.00001\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\t\t\t<\/div>\n\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\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-125690b e-con-full e-flex e-con e-parent\" data-id=\"125690b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a63578 elementor-widget elementor-widget-soluciones-carousel\" data-id=\"5a63578\" data-element_type=\"widget\" data-widget_type=\"soluciones-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n            <style>\n            :root {\n              --blanco: #ffffff;\n              --negro: #0d0d0d;\n              --gris: #f5f5f5;\n              --celeste-base: #1093db;\n              --celeste-1: #74c0ea;\n              --celeste-2: #e7f4fb;\n              --azul-base: #094781;\n              --azul-1: #052b4f;\n              --azul-2: #7094b6;\n              \n              --desk-h2-font-family: \"Poppins\", sans-serif;\n              --desk-h2-font-size: 24px;\n              --desk-h2-line-height: 30px;\n              --desk-h2-font-weight: 600;\n              \n              --desk-l-font-size: 16px;\n              --desk-l-line-height: 20px;\n              \n              --desk-m-font-size: 14px;\n              --desk-m-line-height: 18px;\n              \n              --desk-s-font-size: 10px;\n              --desk-s-line-height: 14px;\n            }\n\n            * {\n              box-sizing: border-box;\n            }\n\n            .soluciones-section {\n              background-color: #ffffff;\n              padding: 60px 0;\n              width: 100%;\n              margin: 0;\n              overflow: hidden;\n            }\n\n            .soluciones-container {\n              max-width: 100%;\n              width: 100%;\n              margin: 0;\n              padding: 0;\n            }\n\n            .soluciones-header {\n              text-align: center;\n              margin-bottom: 40px;\n              padding: 0 20px;\n            }\n\n            .soluciones-title {\n              font-family: \"Poppins\", sans-serif;\n              font-size: 42px;\n              font-weight: 300;\n              margin: 0 0 15px 0;\n              color: var(--azul-1);\n              user-select: none;\n              line-height: 1.2;\n            }\n\n            .soluciones-title em {\n              font-style: italic;\n              font-weight: 300;\n            }\n\n            .soluciones-title strong {\n              font-weight: 700;\n              color: var(--azul-1);\n            }\n\n            .soluciones-descripcion {\n              font-family: \"Poppins\", sans-serif;\n              font-size: 16px;\n              font-weight: 400;\n              line-height: 1.5;\n              color: var(--azul-1);\n              margin: 0;\n              max-width: 800px;\n              margin-left: auto;\n              margin-right: auto;\n            }\n\n            .filtros-container {\n              display: flex;\n              justify-content: center;\n              gap: 15px;\n              flex-wrap: wrap;\n              margin-bottom: 50px;\n              padding: 0 20px;\n            }\n\n            .filtros-container.hidden {\n              display: none;\n            }\n\n            .filtro-btn {\n              padding: 12px 25px;\n              border: 1px solid var(--celeste-base);\n              background-color: transparent;\n              color: var(--azul-1);\n              border-radius: 25px;\n              cursor: pointer;\n              font-size: 14px;\n              transition: all 0.3s ease;\n              white-space: nowrap;\n              user-select: none;\n            }\n\n            .filtro-btn:hover,\n            .filtro-btn.active {\n              background-color: var(--celeste-base);\n              color: var(--blanco);\n            }\n\n            .carousel-wrapper {\n              position: relative;\n              width: 100%;\n              padding: 80px 0 140px 0;\n              overflow: hidden;\n            }\n\n            .carousel-container {\n              position: relative;\n              width: 100%;\n              height: 550px;\n              display: flex;\n              align-items: center;\n              justify-content: center;\n            }\n\n            .carousel-track {\n              position: relative;\n              width: 100%;\n              height: 100%;\n              display: flex;\n              align-items: center;\n              justify-content: center;\n              cursor: grab;\n              user-select: none;\n            }\n\n            .carousel-track:active {\n              cursor: grabbing;\n            }\n\n            .carousel-slide {\n              position: absolute;\n              width: 932px;\n              max-width: 90vw;\n              transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1),\n                          opacity 0.6s cubic-bezier(0.25, 0.1, 0.25, 1),\n                          filter 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);\n              will-change: transform, opacity, filter;\n              user-select: none;\n            }\n\n            .carousel-slide * {\n              user-select: none;\n              pointer-events: none;\n            }\n\n            .carousel-slide .solucion-btn,\n            .carousel-slide .solucion-btn-folleto,\n            .carousel-slide .leer-mas-link {\n              pointer-events: auto !important;\n              cursor: pointer !important;\n            }\n\n            .carousel-slide[data-position=\"center\"] {\n              z-index: 100;\n              transform: translateX(0) scale(1);\n              opacity: 1;\n              filter: blur(0);\n            }\n\n            .carousel-slide[data-position=\"right\"] {\n              z-index: 50;\n              transform: translateX(480px) scale(0.75);\n              opacity: 0.4;\n              filter: blur(1.5px);\n            }\n\n            .carousel-slide[data-position=\"left\"] {\n              z-index: 50;\n              transform: translateX(-480px) scale(0.75);\n              opacity: 0.4;\n              filter: blur(1.5px);\n            }\n\n            .carousel-slide[data-position=\"far-right\"] {\n              z-index: 25;\n              transform: translateX(650px) scale(0.65);\n              opacity: 0.25;\n              filter: blur(2.5px);\n            }\n\n            .carousel-slide[data-position=\"far-left\"] {\n              z-index: 25;\n              transform: translateX(-650px) scale(0.65);\n              opacity: 0.25;\n              filter: blur(2.5px);\n            }\n\n            .carousel-slide[data-position=\"hidden\"] {\n              z-index: 1;\n              transform: translateX(0) scale(0.5);\n              opacity: 0;\n            }\n\n            .solucion-card {\n              position: relative;\n              border-radius: 40px;\n              border: 2px solid var(--gris);\n              box-shadow: -5px 9px 9.5px -2px rgba(0, 185, 255, 0.25),\n                5px -5px 8.8px 0px rgba(87, 196, 236, 0.25);\n              overflow: hidden;\n              width: 100%;\n              height: 435px;\n              transition: all 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-card {\n              box-shadow: -5px 12px 15px -2px rgba(0, 185, 255, 0.35),\n                5px -8px 12px 0px rgba(87, 196, 236, 0.35);\n            }\n\n            .solucion-image {\n              position: absolute;\n              top: 0;\n              left: 0;\n              width: 100%;\n              height: 100%;\n            }\n\n            .solucion-image img {\n              width: 100%;\n              height: 100%;\n              object-fit: cover;\n              transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-image img {\n              transform: scale(1.05);\n            }\n\n            .solucion-card::after {\n              content: \"\";\n              position: absolute;\n              left: 0;\n              bottom: 0;\n              width: 100%;\n              height: 100%;\n              background: linear-gradient(\n                10deg,\n                rgba(255, 255, 255, 1) 0%,\n                rgba(255, 255, 255, 0.98) 15%,\n                rgba(255, 255, 255, 0.85) 30%,\n                rgba(255, 255, 255, 0.5) 45%,\n                rgba(255, 255, 255, 0) 60%\n              );\n              pointer-events: none;\n            }\n\n            .solucion-content {\n              position: absolute;\n              bottom: 0;\n              left: 0;\n              right: 0;\n              padding: 35px 40px;\n              display: flex;\n              flex-wrap: wrap;\n              align-items: flex-end;\n              justify-content: space-between;\n              gap: 20px;\n              z-index: 10;\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-content {\n              padding: 40px 50px;\n            }\n\n            .solucion-info {\n              flex: 0 0 auto;\n              max-width: 40%;\n              display: flex;\n              flex-direction: column;\n              gap: 8px;\n            }\n\n            .solucion-badge {\n              display: inline-block;\n              background: radial-gradient(\n                  closest-side,\n                  rgba(217, 217, 217, 0) 40%,\n                  rgba(251, 251, 251, 1) 90%\n                ),\n                linear-gradient(to left, #00b9ff, #00b9ff);\n              border: 0.5px solid var(--celeste-base);\n              border-radius: 10000px;\n              padding: 5px 20px;\n              color: var(--blanco);\n              font-family: \"Poppins\", sans-serif;\n              font-size: var(--desk-s-font-size);\n              line-height: var(--desk-s-line-height);\n              font-weight: 700;\n              text-transform: uppercase;\n              width: fit-content;\n            }\n\n            .solucion-title {\n              font-family: \"Poppins\", sans-serif;\n              font-size: 20px;\n              line-height: 26px;\n              font-weight: var(--desk-h2-font-weight);\n              font-style: italic;\n              color: var(--azul-1);\n              margin: 0;\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-title {\n              font-size: 22px;\n              line-height: 28px;\n            }\n\n            .solucion-description {\n              font-family: \"Poppins\", sans-serif;\n              font-size: 13px;\n              line-height: 18px;\n              font-weight: 400;\n              color: var(--azul-1);\n              margin: 0;\n            }\n\n            .solucion-description p {\n              margin: 0;\n            }\n\n            .carousel-slide[data-position=\"center\"] .solucion-description {\n              font-size: var(--desk-m-font-size);\n              line-height: 19px;\n            }\n\n            .leer-mas-link {\n              color: var(--celeste-base);\n              font-weight: 600;\n              text-decoration: none;\n              transition: all 0.3s ease;\n              cursor: pointer !important;\n              pointer-events: auto !important;\n            }\n\n            .leer-mas-link:hover {\n              color: var(--azul-base);\n              text-decoration: underline;\n            }\n\n            .solucion-action {\n              display: flex;\n              align-items: flex-end;\n              flex-shrink: 0;\n              gap: 10px;\n            }\n\n            .solucion-btn {\n              background: var(--celeste-base);\n              border: 1px solid rgba(9, 71, 129, 0.5);\n              border-radius: 100px;\n              padding: 12px 24px;\n              color: var(--blanco);\n              font-family: \"Poppins\", sans-serif;\n              font-size: var(--desk-m-font-size);\n              line-height: var(--desk-m-line-height);\n              font-weight: 700;\n              cursor: pointer !important;\n              transition: all 0.3s ease;\n              box-shadow: inset 0px 0px 13.3px 0px rgba(255, 255, 255, 1),\n                0px 0px 4px 0px rgba(9, 71, 129, 1);\n              text-decoration: none;\n              display: inline-block;\n              white-space: nowrap;\n              pointer-events: auto !important;\n            }\n\n            .solucion-btn:hover {\n              background: var(--azul-base);\n              transform: translateY(-2px);\n              box-shadow: inset 0px 0px 13.3px 0px rgba(255, 255, 255, 1),\n                0px 2px 8px 0px rgba(9, 71, 129, 0.5);\n              color: var(--blanco);\n            }\n\n            \/* NUEVO: Estilo para bot\u00f3n de folleto *\/\n            .solucion-btn-folleto {\n              background: #1E88E5;\n              border: 1px solid rgba(9, 71, 129, 0.5);\n              border-radius: 100px;\n              padding: 12px 24px;\n              color: var(--blanco) !important;\n              font-family: \"Poppins\", sans-serif;\n              font-size: var(--desk-m-font-size);\n              line-height: var(--desk-m-line-height);\n              font-weight: 700;\n              cursor: pointer !important;\n              transition: all 0.3s ease;\n              box-shadow: inset 0px 0px 13.3px 0px rgba(255, 255, 255, 1),\n                0px 0px 4px 0px rgba(9, 71, 129, 1);\n              text-decoration: none !important;\n              display: inline-block;\n              white-space: nowrap;\n              pointer-events: auto !important;\n            }\n\n            .solucion-btn-folleto:hover {\n              background: #1565C0 !important;\n              transform: translateY(-2px);\n              box-shadow: inset 0px 0px 13.3px 0px rgba(255, 255, 255, 1),\n                0px 2px 8px 0px rgba(9, 71, 129, 0.5);\n              color: var(--blanco) !important;\n            }\n\n            .carousel-nav {\n              position: absolute;\n              top: 45%;\n              transform: translateY(-50%);\n              width: 55px;\n              height: 55px;\n              background-color: rgba(255, 255, 255, 0.95);\n              border-radius: 50%;\n              box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);\n              display: flex;\n              align-items: center;\n              justify-content: center;\n              cursor: pointer;\n              transition: all 0.3s ease;\n              z-index: 200;\n              border: none;\n              backdrop-filter: blur(10px);\n              user-select: none;\n            }\n\n            .carousel-nav:hover {\n              box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\n              transform: translateY(-50%) scale(1.08);\n              background-color: #ffffff;\n            }\n\n            .carousel-nav:active {\n              transform: translateY(-50%) scale(0.95);\n            }\n\n            .carousel-nav.prev {\n              left: 40px;\n            }\n\n            .carousel-nav.next {\n              right: 40px;\n            }\n\n            .carousel-nav svg {\n              width: 22px;\n              height: 22px;\n              fill: var(--celeste-base);\n            }\n\n            .carousel-pagination {\n              position: absolute;\n              bottom: 50px;\n              left: 50%;\n              transform: translateX(-50%);\n              display: flex;\n              gap: 12px;\n              z-index: 200;\n            }\n\n            .pagination-dot {\n              width: 10px;\n              height: 10px;\n              border-radius: 5px;\n              background-color: #d0d5dd;\n              cursor: pointer;\n              transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);\n              border: none;\n              padding: 0;\n              user-select: none;\n            }\n\n            .pagination-dot:hover {\n              background-color: #a0a8b8;\n              transform: scale(1.15);\n            }\n\n            .pagination-dot.active {\n              background-color: var(--celeste-base);\n              width: 32px;\n            }\n\n            @media (max-width: 1200px) {\n              .carousel-slide {\n                width: 750px;\n              }\n              \n              .carousel-slide[data-position=\"right\"] {\n                transform: translateX(400px) scale(0.75);\n              }\n              \n              .carousel-slide[data-position=\"left\"] {\n                transform: translateX(-400px) scale(0.75);\n              }\n              \n              .carousel-nav.prev {\n                left: 20px;\n              }\n              \n              .carousel-nav.next {\n                right: 20px;\n              }\n            }\n\n            @media (max-width: 768px) {\n              .soluciones-title {\n                font-size: 28px;\n              }\n\n              .soluciones-descripcion {\n                font-size: 14px;\n              }\n              \n              .filtros-container {\n                gap: 10px;\n                margin-bottom: 40px;\n              }\n              \n              .filtro-btn {\n                padding: 8px 18px;\n                font-size: 12px;\n              }\n              \n              .carousel-container {\n                height: 400px;\n              }\n              \n              .carousel-wrapper {\n                padding: 60px 0 120px 0;\n              }\n              \n              .carousel-slide {\n                width: 90vw;\n                max-width: 90vw;\n              }\n              \n              .carousel-slide[data-position=\"right\"],\n              .carousel-slide[data-position=\"left\"] {\n                transform: translateX(0) scale(0.85);\n                opacity: 0.3;\n              }\n              \n              .solucion-card {\n                height: 350px;\n              }\n              \n              .carousel-slide[data-position=\"center\"] .solucion-card {\n                height: 350px;\n              }\n              \n              .solucion-content {\n                padding: 25px;\n                gap: 15px;\n              }\n              \n              .carousel-slide[data-position=\"center\"] .solucion-content {\n                padding: 30px;\n              }\n              \n              .solucion-info {\n                max-width: 45%;\n                gap: 6px;\n              }\n              \n              .solucion-badge {\n                font-size: 8px;\n                padding: 4px 14px;\n              }\n              \n              .solucion-title {\n                font-size: 16px;\n                line-height: 20px;\n              }\n              \n              .carousel-slide[data-position=\"center\"] .solucion-title {\n                font-size: 17px;\n                line-height: 22px;\n              }\n              \n              .solucion-description {\n                font-size: 11px;\n                line-height: 15px;\n              }\n              \n              .carousel-slide[data-position=\"center\"] .solucion-description {\n                font-size: 12px;\n                line-height: 16px;\n              }\n              \n              .solucion-btn,\n              .solucion-btn-folleto {\n                padding: 10px 18px;\n                font-size: 12px;\n              }\n              \n              .solucion-action {\n                flex-direction: column;\n                gap: 8px;\n              }\n              \n              .carousel-nav {\n                width: 45px;\n                height: 45px;\n              }\n              \n              .carousel-nav.prev {\n                left: 10px;\n              }\n              \n              .carousel-nav.next {\n                right: 10px;\n              }\n              \n              .carousel-nav svg {\n                width: 18px;\n                height: 18px;\n              }\n              \n              .carousel-pagination {\n                bottom: 40px;\n              }\n              \n              .pagination-dot {\n                width: 8px;\n                height: 8px;\n              }\n              \n              .pagination-dot.active {\n                width: 24px;\n              }\n            }\n\n            @media (max-width: 480px) {\n              .soluciones-title {\n                font-size: 22px;\n              }\n\n              .soluciones-descripcion {\n                font-size: 13px;\n              }\n\n              .carousel-container {\n                height: 320px;\n              }\n              \n              .solucion-card,\n              .carousel-slide[data-position=\"center\"] .solucion-card {\n                height: 280px;\n              }\n              \n              .solucion-content {\n                padding: 20px;\n                gap: 10px;\n              }\n              \n              .solucion-info {\n                max-width: 48%;\n                gap: 5px;\n              }\n              \n              .solucion-badge {\n                font-size: 7px;\n                padding: 3px 12px;\n              }\n              \n              .solucion-title {\n                font-size: 13px;\n                line-height: 17px;\n              }\n              \n              .solucion-description {\n                font-size: 9px;\n                line-height: 13px;\n              }\n              \n              .solucion-btn,\n              .solucion-btn-folleto {\n                padding: 8px 14px;\n                font-size: 10px;\n              }\n            }\n            <\/style>\n\n            <div class=\"soluciones-section\">\n                <div class=\"soluciones-container\">\n                    \n                    <!-- ENCABEZADO: T\u00edtulo y Descripci\u00f3n -->\n                    <div class=\"soluciones-header\">\n                        <h2 class=\"soluciones-title\">\n                            <em>DISE\u00d1AMOS<\/em> EXPERIENCIAS ADAPTADAS A DISTINTAS <strong>REALIDADES.<\/strong>                        <\/h2>\n                        \n                                                    <p class=\"soluciones-descripcion\">\n                                Nuestra tecnolog\u00eda se ajusta a tus necesidades, sin importar el tama\u00f1o o sector.                            <\/p>\n                                            <\/div>\n                    \n                    <!-- FILTROS -->\n                    <div class=\"filtros-container \">\n                                                        <button class=\"filtro-btn active\" data-filter=\"0\">\n                                    Cl\u00ednicas y salud                                <\/button>\n                                                                <button class=\"filtro-btn \" data-filter=\"1\">\n                                    Municipalidades                                <\/button>\n                                                                <button class=\"filtro-btn \" data-filter=\"2\">\n                                    Pymes en digitalizaci\u00f3n                                <\/button>\n                                                                <button class=\"filtro-btn \" data-filter=\"3\">\n                                    Empresas y RRHH                                <\/button>\n                                                    <\/div>\n                    \n                    <!-- CARRUSEL -->\n                    <div class=\"carousel-wrapper\">\n                        <div class=\"carousel-container\">\n                            <div class=\"carousel-track\" id=\"carousel-5a63578-track\">\n                                \n                                                                    \n                                    <div class=\"carousel-slide\" data-index=\"0\" data-position=\"center\">\n                                        <div class=\"solucion-card\">\n                                            <div class=\"solucion-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/17e54c2dde7c04358552d1c74973cbb311f39cef-2-scaled.jpg\" alt=\"Cl\u00ednicas y salud\">\n                                            <\/div>\n                                            \n                                            <div class=\"solucion-content\">\n                                                <div class=\"solucion-info\">\n                                                    <!-- BADGE: Solo si tiene contenido -->\n                                                                                                        \n                                                    <!-- T\u00cdTULO: Siempre se muestra -->\n                                                    <h3 class=\"solucion-title\">Cl\u00ednicas y salud<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nConfianza y mejor experiencia para pacientesReduce la ansiedad en salas de espera y aprovecha cada minuto para comunicar.\n\n\n\n\n                                                        <\/div>\n                                                                                                    <\/div>\n                                                \n                                                <!-- BOTONES -->\n                                                                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                    \n                                                                        \n                                    <div class=\"carousel-slide\" data-index=\"1\" data-position=\"right\">\n                                        <div class=\"solucion-card\">\n                                            <div class=\"solucion-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/d1ae2676870b018d5b53405c77d77b8fe73c4b76-scaled.jpg\" alt=\"Municipalidades\">\n                                            <\/div>\n                                            \n                                            <div class=\"solucion-content\">\n                                                <div class=\"solucion-info\">\n                                                    <!-- BADGE: Solo si tiene contenido -->\n                                                                                                        \n                                                    <!-- T\u00cdTULO: Siempre se muestra -->\n                                                    <h3 class=\"solucion-title\">Municipalidades<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nTransparencia y cercan\u00eda con la ciudadan\u00edaTransforma la experiencia de atenci\u00f3n en tus oficinas municipales.\n                                                        <\/div>\n                                                                                                    <\/div>\n                                                \n                                                <!-- BOTONES -->\n                                                                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                    \n                                                                        \n                                    <div class=\"carousel-slide\" data-index=\"2\" data-position=\"far-right\">\n                                        <div class=\"solucion-card\">\n                                            <div class=\"solucion-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/535da140d9d8b1cc63e4c0f2666b270adaf4d524-scaled.jpg\" alt=\"Pymes en digitalizaci\u00f3n\">\n                                            <\/div>\n                                            \n                                            <div class=\"solucion-content\">\n                                                <div class=\"solucion-info\">\n                                                    <!-- BADGE: Solo si tiene contenido -->\n                                                                                                        \n                                                    <!-- T\u00cdTULO: Siempre se muestra -->\n                                                    <h3 class=\"solucion-title\">Pymes en digitalizaci\u00f3n<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nModerniza tu comunicaci\u00f3n sin complejidadApoyamos a peque\u00f1as y medianas empresas que quieren dar el salto hacia la digitalizaci\u00f3n.\n\n\n\n\n                                                        <\/div>\n                                                                                                    <\/div>\n                                                \n                                                <!-- BOTONES -->\n                                                                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                    \n                                                                        \n                                    <div class=\"carousel-slide\" data-index=\"3\" data-position=\"hidden\">\n                                        <div class=\"solucion-card\">\n                                            <div class=\"solucion-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/ed0e8645d60c892fbb0cff781c32f041d2d3cae8-1-scaled.jpg\" alt=\"Empresas y RRHH\">\n                                            <\/div>\n                                            \n                                            <div class=\"solucion-content\">\n                                                <div class=\"solucion-info\">\n                                                    <!-- BADGE: Solo si tiene contenido -->\n                                                                                                        \n                                                    <!-- T\u00cdTULO: Siempre se muestra -->\n                                                    <h3 class=\"solucion-title\">Empresas y RRHH<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nComunicaci\u00f3n interna para grandes equipoFacilitamos la comunicaci\u00f3n con colaboradores distribuidos en distintas sucursales o en terreno.\n\n\n\n\n                                                        <\/div>\n                                                                                                    <\/div>\n                                                \n                                                <!-- BOTONES -->\n                                                                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                    \n                                                                    \n                            <\/div>\n                        <\/div>\n                        \n                        <button class=\"carousel-nav prev\" id=\"carousel-5a63578-prevBtn\">\n                            <svg viewBox=\"0 0 10 15\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                <path d=\"M9.2625 13.2375L3.5375 7.5L9.2625 1.7625L7.5 0L0 7.5L7.5 15L9.2625 13.2375Z\"\/>\n                            <\/svg>\n                        <\/button>\n                        <button class=\"carousel-nav next\" id=\"carousel-5a63578-nextBtn\">\n                            <svg viewBox=\"0 0 10 15\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                <path d=\"M0.737305 13.2375L6.4623 7.5L0.737305 1.7625L2.4998 0L9.9998 7.5L2.4998 15L0.737305 13.2375Z\"\/>\n                            <\/svg>\n                        <\/button>\n                        \n                        <div class=\"carousel-pagination\" id=\"carousel-5a63578-pagination\">\n                            <button class=\"pagination-dot active\" data-slide=\"0\"><\/button><button class=\"pagination-dot \" data-slide=\"1\"><\/button><button class=\"pagination-dot \" data-slide=\"2\"><\/button><button class=\"pagination-dot \" data-slide=\"3\"><\/button>                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <script>\n            \/\/ Funci\u00f3n global para abrir el modal del folleto (usa openPdfModal del snippet de folletos)\n            function abrirFolletoModal(folletoId) {\n                if (typeof jQuery !== 'undefined' && typeof folletosConfig !== 'undefined') {\n                    jQuery.ajax({\n                        url: folletosConfig.ajaxUrl,\n                        type: 'POST',\n                        data: {\n                            action: 'cargar_folleto',\n                            folleto_id: folletoId\n                        },\n                        beforeSend: function() {\n                            console.log('Cargando folleto...', folletoId);\n                        },\n                        success: function(response) {\n                            if (response.success) {\n                                var data = response.data;\n                                \n                                \/\/ Detectar tipo de archivo para texto del bot\u00f3n\n                                var textoBoton = 'Descargar archivo';\n                                if (data.pdfUrl) {\n                                    var extension = data.pdfUrl.split('.').pop().toLowerCase();\n                                    if (extension === 'pdf') {\n                                        textoBoton = 'Descargar PDF';\n                                    } else if (extension === 'ppt' || extension === 'pptx') {\n                                        textoBoton = 'Descargar Presentaci\u00f3n';\n                                    }\n                                }\n                                \n                                \/\/ Usar la funci\u00f3n correcta del modal existente\n                                if (typeof openPdfModal === 'function') {\n                                    openPdfModal(data.titulo, data.contenido, data.pdfUrl, data.folletoId, textoBoton);\n                                } else {\n                                    console.error('openPdfModal no est\u00e1 definido. Verifica que el snippet \"CPT Folletos - JavaScript\" est\u00e9 activo.');\n                                    alert('Error: Modal no disponible');\n                                }\n                            } else {\n                                console.error('Error al cargar folleto:', response);\n                                alert('Error al cargar el folleto');\n                            }\n                        },\n                        error: function(xhr, status, error) {\n                            console.error('Error AJAX:', error);\n                            alert('Error de conexi\u00f3n');\n                        }\n                    });\n                } else {\n                    console.error('folletosConfig no est\u00e1 definido. Verifica que el snippet \"CPT Folletos - Ajax\" est\u00e9 activo.');\n                }\n            }\n            \n            (function() {\n                const widgetId = 'carousel-5a63578';\n                const autoplayEnabled = true;\n                const autoplayDelay = 5000;\n                const mostrarFiltros = true;\n                \n                class SolucionesCarousel {\n                  constructor(widgetId) {\n                    this.widgetId = widgetId;\n                    this.currentIndex = 0;\n                    this.slides = document.querySelectorAll('#' + widgetId + '-track .carousel-slide');\n                    this.totalSlides = this.slides.length;\n                    this.isTransitioning = false;\n                    this.transitionDuration = 600;\n                    this.autoplayInterval = null;\n                    this.autoplayDelay = autoplayDelay;\n                    this.autoplayEnabled = autoplayEnabled;\n                    \n                    this.startX = 0;\n                    this.currentX = 0;\n                    this.isDragging = false;\n                    this.hasMoved = false;\n                    this.minSwipeDistance = 50;\n                    \n                    this.init();\n                  }\n                  \n                  init() {\n                    const prevBtn = document.getElementById(this.widgetId + '-prevBtn');\n                    const nextBtn = document.getElementById(this.widgetId + '-nextBtn');\n                    \n                    if (prevBtn) prevBtn.addEventListener('click', () => this.navigate('prev'));\n                    if (nextBtn) nextBtn.addEventListener('click', () => this.navigate('next'));\n                    \n                    document.querySelectorAll('#' + this.widgetId + '-pagination .pagination-dot').forEach((dot) => {\n                      dot.addEventListener('click', () => {\n                        const slideIndex = parseInt(dot.getAttribute('data-slide'));\n                        this.goToSlide(slideIndex);\n                      });\n                    });\n                    \n                    if (mostrarFiltros) {\n                      document.querySelectorAll('.filtro-btn').forEach((btn) => {\n                        btn.addEventListener('click', () => {\n                          const filterIndex = parseInt(btn.getAttribute('data-filter'));\n                          document.querySelectorAll('.filtro-btn').forEach(b => b.classList.remove('active'));\n                          btn.classList.add('active');\n                          this.goToSlide(filterIndex);\n                        });\n                      });\n                    }\n                    \n                    this.setupInteractions();\n                    \n                    document.addEventListener('keydown', (e) => {\n                      if (e.key === 'ArrowLeft') this.navigate('prev');\n                      if (e.key === 'ArrowRight') this.navigate('next');\n                    });\n                    \n                    if (this.autoplayEnabled) {\n                      this.startAutoplay();\n                      \n                      const wrapper = document.querySelector('.carousel-wrapper');\n                      if (wrapper) {\n                        wrapper.addEventListener('mouseenter', () => this.pauseAutoplay());\n                        wrapper.addEventListener('mouseleave', () => this.resumeAutoplay());\n                      }\n                    }\n                  }\n                  \n                  setupInteractions() {\n                    const track = document.getElementById(this.widgetId + '-track');\n                    if (!track) return;\n                    \n                    const onDragStart = (e) => {\n                      if (e.target.closest('.solucion-btn') || e.target.closest('.solucion-btn-folleto') || e.target.closest('.leer-mas-link')) return;\n                      if (this.isTransitioning) return;\n                      \n                      this.isDragging = true;\n                      this.hasMoved = false;\n                      this.startX = this.getPositionX(e);\n                      this.currentX = this.startX;\n                      \n                      track.style.cursor = 'grabbing';\n                      this.pauseAutoplay();\n                    };\n                    \n                    const onDragMove = (e) => {\n                      if (!this.isDragging) return;\n                      \n                      this.currentX = this.getPositionX(e);\n                      const diff = Math.abs(this.currentX - this.startX);\n                      \n                      if (diff > 5) {\n                        this.hasMoved = true;\n                      }\n                    };\n                    \n                    const onDragEnd = () => {\n                      if (!this.isDragging) return;\n                      \n                      track.style.cursor = 'grab';\n                      this.isDragging = false;\n                      \n                      if (this.hasMoved) {\n                        const distance = this.startX - this.currentX;\n                        \n                        if (Math.abs(distance) >= this.minSwipeDistance) {\n                          if (distance > 0) {\n                            this.navigate('next');\n                          } else {\n                            this.navigate('prev');\n                          }\n                        } else {\n                          this.resumeAutoplay();\n                        }\n                      } else {\n                        this.resumeAutoplay();\n                      }\n                      \n                      this.startX = 0;\n                      this.currentX = 0;\n                      this.hasMoved = false;\n                    };\n                    \n                    track.addEventListener('mousedown', onDragStart);\n                    document.addEventListener('mousemove', onDragMove);\n                    document.addEventListener('mouseup', onDragEnd);\n                    \n                    track.addEventListener('touchstart', onDragStart, { passive: true });\n                    track.addEventListener('touchmove', onDragMove, { passive: true });\n                    track.addEventListener('touchend', onDragEnd);\n                    \n                    track.addEventListener('dragstart', (e) => {\n                      if (!e.target.closest('.solucion-btn') && !e.target.closest('.solucion-btn-folleto') && !e.target.closest('.leer-mas-link')) {\n                        e.preventDefault();\n                      }\n                    });\n                  }\n                  \n                  getPositionX(e) {\n                    return e.type.includes('mouse') ? e.clientX : e.touches[0].clientX;\n                  }\n                  \n                  navigate(direction) {\n                    if (this.isTransitioning) return;\n                    \n                    if (direction === 'next') {\n                      this.currentIndex = (this.currentIndex + 1) % this.totalSlides;\n                    } else {\n                      this.currentIndex = (this.currentIndex - 1 + this.totalSlides) % this.totalSlides;\n                    }\n                    \n                    this.updateSlides();\n                    this.resetAutoplay();\n                  }\n                  \n                  goToSlide(index) {\n                    if (this.isTransitioning || index === this.currentIndex) return;\n                    \n                    this.currentIndex = index;\n                    this.updateSlides();\n                    this.resetAutoplay();\n                  }\n                  \n                  updateSlides() {\n                    this.isTransitioning = true;\n                    \n                    this.slides.forEach((slide, index) => {\n                      const position = this.getSlidePosition(index);\n                      slide.setAttribute('data-position', position);\n                    });\n                    \n                    this.updateUI();\n                    \n                    setTimeout(() => {\n                      this.isTransitioning = false;\n                    }, this.transitionDuration);\n                  }\n                  \n                  getSlidePosition(slideIndex) {\n                    const diff = slideIndex - this.currentIndex;\n                    const totalSlides = this.totalSlides;\n                    \n                    let normalizedDiff = diff;\n                    if (diff > totalSlides \/ 2) normalizedDiff -= totalSlides;\n                    if (diff < -totalSlides \/ 2) normalizedDiff += totalSlides;\n                    \n                    if (normalizedDiff === 0) return 'center';\n                    if (normalizedDiff === 1) return 'right';\n                    if (normalizedDiff === -1) return 'left';\n                    if (normalizedDiff === 2) return 'far-right';\n                    if (normalizedDiff === -2) return 'far-left';\n                    return 'hidden';\n                  }\n                  \n                  updateUI() {\n                    document.querySelectorAll('#' + this.widgetId + '-pagination .pagination-dot').forEach((dot, index) => {\n                      dot.classList.toggle('active', index === this.currentIndex);\n                    });\n                    \n                    if (mostrarFiltros) {\n                      document.querySelectorAll('.filtro-btn').forEach((btn, index) => {\n                        btn.classList.toggle('active', index === this.currentIndex);\n                      });\n                    }\n                  }\n                  \n                  startAutoplay() {\n                    if (!this.autoplayEnabled) return;\n                    this.autoplayInterval = setInterval(() => {\n                      this.navigate('next');\n                    }, this.autoplayDelay);\n                  }\n                  \n                  pauseAutoplay() {\n                    if (this.autoplayInterval) {\n                      clearInterval(this.autoplayInterval);\n                      this.autoplayInterval = null;\n                    }\n                  }\n                  \n                  resumeAutoplay() {\n                    if (!this.autoplayInterval && this.autoplayEnabled) {\n                      this.startAutoplay();\n                    }\n                  }\n                  \n                  resetAutoplay() {\n                    this.pauseAutoplay();\n                    this.startAutoplay();\n                  }\n                }\n                \n                if (document.readyState === 'loading') {\n                  document.addEventListener('DOMContentLoaded', () => new SolucionesCarousel(widgetId));\n                } else {\n                  new SolucionesCarousel(widgetId);\n                }\n            })();\n            <\/script>\n\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7ecf529 e-con-full e-flex e-con e-parent\" data-id=\"7ecf529\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-75a487f elementor-widget elementor-widget-testimonios-carousel\" data-id=\"75a487f\" data-element_type=\"widget\" data-widget_type=\"testimonios-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n            <style>\n            :root {\n              --blue-900: #0b2b4b;\n              --blue-500: #0a6fb0;\n              --accent: rgba(9, 111, 176, 0.12);\n              --bg: #f7fbff;\n              --card-bg: #ffffff;\n            }\n\n            .testi-section {\n              background: transparent;\n              padding: 48px 12px 80px;\n              overflow: hidden;\n            }\n\n            .testi-inner {\n              max-width: 1260px;\n              margin: 0 auto;\n            }\n\n            .testi-heading {\n              text-align: center;\n              margin-bottom: 28px;\n              color: var(--blue-900);\n              font-family: \"Poppins\", sans-serif;\n              font-size: 36px;\n              font-weight: 300;\n              line-height: 1.3;\n            }\n\n            .testi-heading em {\n              font-style: italic;\n              font-weight: 300;\n            }\n\n            .testi-heading strong {\n              font-weight: 700;\n            }\n\n            .testi-sub {\n              margin-top: 12px;\n              color: #6b7a8b;\n              font-size: 16px;\n              font-weight: 400;\n              line-height: 1.5;\n              max-width: 800px;\n              margin-left: auto;\n              margin-right: auto;\n            }\n\n            .testi-carousel-wrapper {\n              position: relative;\n              display: flex;\n              align-items: center;\n              justify-content: center;\n              padding: 30px 20px 60px;\n            }\n\n            .testi-nav {\n              position: absolute;\n              top: 50%;\n              transform: translateY(-50%);\n              width: 64px;\n              height: 64px;\n              border-radius: 50%;\n              background: rgba(255, 255, 255, 0.95);\n              border: none;\n              box-shadow: 0 8px 24px rgba(11, 43, 75, 0.08);\n              display: flex;\n              align-items: center;\n              justify-content: center;\n              cursor: pointer;\n              z-index: 60;\n              transition: transform 0.18s, box-shadow 0.18s;\n              backdrop-filter: blur(6px);\n            }\n\n            .testi-nav svg {\n              width: 22px;\n              height: 22px;\n              stroke: var(--blue-500);\n              fill: none;\n              stroke-width: 2;\n              stroke-linecap: round;\n              stroke-linejoin: round;\n            }\n\n            .testi-nav:hover {\n              transform: translateY(-50%) scale(1.06);\n              box-shadow: 0 12px 30px rgba(11, 43, 75, 0.12);\n            }\n\n            .testi-nav.prev {\n              left: 28px;\n            }\n\n            .testi-nav.next {\n              right: 28px;\n            }\n\n            .testi-track {\n              position: relative;\n              width: 100%;\n              height: 420px;\n              display: block;\n              cursor: grab;\n            }\n\n            .testi-track:active {\n              cursor: grabbing;\n            }\n\n            .testi-slide {\n              position: absolute;\n              top: 0;\n              left: 50%;\n              transform: translateX(-50%);\n              width: 760px;\n              max-width: 85vw;\n              transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1), \n                          opacity 0.6s, \n                          filter 0.6s;\n              will-change: transform, opacity, filter;\n              display: flex;\n              align-items: center;\n              justify-content: center;\n              padding: 0 10px;\n              box-sizing: border-box;\n            }\n\n            .testi-slide * {\n              user-select: none;\n              pointer-events: none;\n            }\n\n            .testi-card {\n              width: 100%;\n              background: var(--card-bg);\n              border-radius: 22px;\n              padding: 36px 36px 28px;\n              box-shadow: 0 8px 24px rgba(11, 43, 75, 0.06);\n              position: relative;\n              overflow: hidden;\n              display: flex;\n              align-items: stretch;\n            }\n\n            .testi-quote-mark {\n              font-size: 96px;\n              color: var(--accent);\n              position: absolute;\n              left: 32px;\n              top: 18px;\n              line-height: 0;\n              font-weight: 700;\n              pointer-events: none;\n              font-family: Georgia, serif;\n            }\n\n            .testi-quote-mark.small {\n              font-size: 48px;\n              left: 18px;\n              top: 12px;\n            }\n\n            .testi-body {\n              margin-left: 36px;\n              flex: 1;\n              display: flex;\n              flex-direction: column;\n            }\n\n            .testi-text {\n              color: var(--blue-900);\n              font-size: 18px;\n              line-height: 1.6;\n              margin: 6px 0 18px;\n              font-family: 'Poppins', sans-serif;\n            }\n\n            .testi-person {\n              display: flex;\n              align-items: center;\n              gap: 14px;\n              margin-top: auto;\n            }\n\n            .testi-avatar {\n              width: 56px;\n              height: 56px;\n              border-radius: 50%;\n              object-fit: cover;\n              border: 3px solid rgba(255, 255, 255, 0.9);\n              box-shadow: 0 6px 18px rgba(11, 43, 75, 0.08);\n            }\n\n            .testi-person-info .name {\n              font-weight: 700;\n              color: var(--blue-900);\n              font-size: 15px;\n              font-family: 'Poppins', sans-serif;\n            }\n\n            .testi-person-info .role {\n              font-size: 13px;\n              color: #8b97a5;\n              font-family: 'Poppins', sans-serif;\n            }\n\n            .testi-quote-icon {\n              margin-left: auto;\n              font-size: 36px;\n              color: var(--accent);\n              font-weight: 700;\n              font-family: Georgia, serif;\n            }\n\n            .testi-quote-icon.small {\n              font-size: 20px;\n            }\n\n            \/* Positions *\/\n            .testi-slide[data-position=\"center\"] {\n              z-index: 50;\n              transform: translateX(-50%) scale(1);\n              opacity: 1;\n              filter: blur(0);\n            }\n\n            .testi-slide[data-position=\"right\"] {\n              z-index: 30;\n              transform: translateX(calc(-50% + 420px)) scale(0.82);\n              opacity: 0.35;\n              filter: blur(1.2px);\n            }\n\n            .testi-slide[data-position=\"left\"] {\n              z-index: 30;\n              transform: translateX(calc(-50% - 420px)) scale(0.82);\n              opacity: 0.35;\n              filter: blur(1.2px);\n            }\n\n            .testi-slide[data-position=\"far-right\"] {\n              z-index: 20;\n              transform: translateX(calc(-50% + 620px)) scale(0.7);\n              opacity: 0.18;\n              filter: blur(2.2px);\n            }\n\n            .testi-slide[data-position=\"far-left\"] {\n              z-index: 20;\n              transform: translateX(calc(-50% - 620px)) scale(0.7);\n              opacity: 0.18;\n              filter: blur(2.2px);\n            }\n\n            .testi-slide[data-position=\"hidden\"] {\n              z-index: 5;\n              transform: translateX(-50%) scale(0.55);\n              opacity: 0;\n              filter: blur(4px);\n            }\n\n            \/* Pagination *\/\n            .testi-dots {\n              position: absolute;\n              bottom: 12px;\n              left: 50%;\n              transform: translateX(-50%);\n              display: flex;\n              gap: 10px;\n              z-index: 70;\n            }\n\n            .dot {\n              width: 10px;\n              height: 10px;\n              border-radius: 10px;\n              background: #d6dbe4;\n              border: none;\n              transition: all 0.35s;\n              cursor: pointer;\n            }\n\n            .dot.active {\n              background: var(--blue-500);\n              width: 34px;\n              border-radius: 20px;\n            }\n\n            \/* Responsive *\/\n            @media (max-width: 1000px) {\n              .testi-card {\n                padding: 28px;\n              }\n\n              .testi-heading {\n                font-size: 28px;\n              }\n\n              .testi-sub {\n                font-size: 15px;\n              }\n\n              .testi-slide[data-position=\"right\"],\n              .testi-slide[data-position=\"left\"] {\n                transform: translateX(0) scale(0.88);\n                opacity: 0.28;\n              }\n\n              .testi-avatar {\n                width: 48px;\n                height: 48px;\n              }\n            }\n\n            @media (max-width: 680px) {\n              .testi-nav {\n                width: 48px;\n                height: 48px;\n              }\n\n              .testi-nav svg {\n                width: 18px;\n                height: 18px;\n              }\n\n              .testi-heading {\n                padding: 0 12px;\n                font-size: 22px;\n              }\n\n              .testi-sub {\n                font-size: 14px;\n              }\n\n              .testi-card {\n                padding: 20px;\n                border-radius: 14px;\n              }\n\n              .testi-quote-mark {\n                display: none;\n              }\n\n              .testi-body {\n                margin-left: 0;\n              }\n\n              .testi-text {\n                font-size: 16px;\n              }\n\n              .testi-slide {\n                width: 88vw;\n              }\n\n              .testi-carousel-wrapper {\n                padding-bottom: 80px;\n              }\n\n              .testi-avatar {\n                width: 44px;\n                height: 44px;\n              }\n\n              .testi-person-info .name {\n                font-size: 14px;\n              }\n\n              .testi-person-info .role {\n                font-size: 12px;\n              }\n\n              .testi-quote-icon {\n                font-size: 24px;\n              }\n\n              .testi-nav.prev {\n                left: 10px;\n              }\n\n              .testi-nav.next {\n                right: 10px;\n              }\n            }\n            <\/style>\n\n            <div class=\"testi-section\">\n              <div class=\"testi-inner\">\n                <div class=\"testi-heading\">\n                  <em>ORGANIZACIONES<\/em> QUE YA CONF\u00cdAN EN <strong>NOSOTROS<\/strong>                  \n                                      <p class=\"testi-sub\">\n                      Empresas privadas, instituciones p\u00fablicas y cl\u00ednicas ya mejoraron su comunicaci\u00f3n con Open City.                    <\/p>\n                                  <\/div>\n\n                <div class=\"testi-carousel-wrapper\">\n                  <button class=\"testi-nav prev\" id=\"testi-75a487f-prevBtn\" aria-label=\"Anterior\">\n                    <svg viewBox=\"0 0 24 24\">\n                      <path d=\"M15 6l-6 6 6 6\"\/>\n                    <\/svg>\n                  <\/button>\n\n                  <div class=\"testi-track\" id=\"testi-75a487f-track\">\n                                            \n                        <article class=\"testi-slide\" \n                                 data-index=\"0\" \n                                 data-position=\"center\"\n                                 role=\"group\" \n                                 aria-roledescription=\"slide\">\n                          <div class=\"testi-card\">\n                            <div class=\"testi-quote-mark \">\"<\/div>\n                            <div class=\"testi-body\">\n                                                              <p class=\"testi-text\">\nGracias a Open City logramos implementar un sistema de Cartel Digital en el Departamento de Salud de la Municipalidad que ha sido de gran ayuda para mantener informados a los paci\n<\/p>\n                                                            \n                              <div class=\"testi-person\">\n                                                                  <img decoding=\"async\" class=\"testi-avatar\" \n                                       src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/oceansblue-jorge-martinez-2c9795659e4c2e1ea1e7ef8a1ba920fc-150x150.png\" \n                                       alt=\"Jorge Martinez\">\n                                                                \n                                <div class=\"testi-person-info\">\n                                                                      <div class=\"name\">Jorge Martinez<\/div>\n                                                                    \n                                                                      <div class=\"role\">Municipalidad de Talagante<\/div>\n                                                                  <\/div>\n                                \n                                <div class=\"testi-quote-icon \">\"<\/div>\n                              <\/div>\n                            <\/div>\n                          <\/div>\n                        <\/article>\n                        \n                                                \n                        <article class=\"testi-slide\" \n                                 data-index=\"1\" \n                                 data-position=\"right\"\n                                 role=\"group\" \n                                 aria-roledescription=\"slide\">\n                          <div class=\"testi-card\">\n                            <div class=\"testi-quote-mark small\">\"<\/div>\n                            <div class=\"testi-body\">\n                                                              <p class=\"testi-text\">\nCon el sistema de Cartel Digital de Open City hemos logrado mejorar notablemente las comunicaciones internas con los colaboradores de la Empresa\n\n\n\n\n<\/p>\n                                                            \n                              <div class=\"testi-person\">\n                                                                  <img decoding=\"async\" class=\"testi-avatar\" \n                                       src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/oceansblue-valentina-montero-ba07080c294e947a3fe56de53d907f9e-150x150.png\" \n                                       alt=\"Valentina Montero\">\n                                                                \n                                <div class=\"testi-person-info\">\n                                                                      <div class=\"name\">Valentina Montero<\/div>\n                                                                    \n                                                                      <div class=\"role\">Multix<\/div>\n                                                                  <\/div>\n                                \n                                <div class=\"testi-quote-icon small\">\"<\/div>\n                              <\/div>\n                            <\/div>\n                          <\/div>\n                        <\/article>\n                        \n                                                \n                        <article class=\"testi-slide\" \n                                 data-index=\"2\" \n                                 data-position=\"far-right\"\n                                 role=\"group\" \n                                 aria-roledescription=\"slide\">\n                          <div class=\"testi-card\">\n                            <div class=\"testi-quote-mark small\">\"<\/div>\n                            <div class=\"testi-body\">\n                                                              <p class=\"testi-text\">\nGracias a la asesor\u00eda de Andr\u00e9s Gonzalez de OPEN CITY hemos podido tener todos nuestros sistemas licenciados. Gracias Andres por tu gesti\u00f3n.\n\n\n\n\n<\/p>\n                                                            \n                              <div class=\"testi-person\">\n                                                                  <img decoding=\"async\" class=\"testi-avatar\" \n                                       src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/oceansblue-jaime-santana-2bb5f2f1a6b188d0717a4bc4bdee95f4-150x150.png\" \n                                       alt=\"Jaime Santana\">\n                                                                \n                                <div class=\"testi-person-info\">\n                                                                      <div class=\"name\">Jaime Santana<\/div>\n                                                                    \n                                                                      <div class=\"role\">Wdesign<\/div>\n                                                                  <\/div>\n                                \n                                <div class=\"testi-quote-icon small\">\"<\/div>\n                              <\/div>\n                            <\/div>\n                          <\/div>\n                        <\/article>\n                        \n                                                \n                        <article class=\"testi-slide\" \n                                 data-index=\"3\" \n                                 data-position=\"far-left\"\n                                 role=\"group\" \n                                 aria-roledescription=\"slide\">\n                          <div class=\"testi-card\">\n                            <div class=\"testi-quote-mark small\">\"<\/div>\n                            <div class=\"testi-body\">\n                                                              <p class=\"testi-text\">\nOpen City es uno de nuestros proveedores m\u00e1s antiguos. En 2014 comenzamos a ofrecer el servicio de Digital Signage a nuestros clientes en Colombia y otros pa\u00edses de la regi\u00f3n\n<\/p>\n                                                            \n                              <div class=\"testi-person\">\n                                                                  <img decoding=\"async\" class=\"testi-avatar\" \n                                       src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/oceansblue-alejandro-restrepo-da16089c5560ff14541029aceefc54de-150x150.png\" \n                                       alt=\"Alejandro Restrepo\">\n                                                                \n                                <div class=\"testi-person-info\">\n                                                                      <div class=\"name\">Alejandro Restrepo<\/div>\n                                                                    \n                                                                      <div class=\"role\">Xegmenta<\/div>\n                                                                  <\/div>\n                                \n                                <div class=\"testi-quote-icon small\">\"<\/div>\n                              <\/div>\n                            <\/div>\n                          <\/div>\n                        <\/article>\n                        \n                                                \n                        <article class=\"testi-slide\" \n                                 data-index=\"4\" \n                                 data-position=\"left\"\n                                 role=\"group\" \n                                 aria-roledescription=\"slide\">\n                          <div class=\"testi-card\">\n                            <div class=\"testi-quote-mark small\">\"<\/div>\n                            <div class=\"testi-body\">\n                                                              <p class=\"testi-text\">\nEl personal de Open City nos ha ayudado desde que comenzamos nuestro proyecto de publicidad en establecimientos comerciales en Florida. Nos fueron apoyando en cada etapa\n\n\n\n\n<\/p>\n                                                            \n                              <div class=\"testi-person\">\n                                                                  <img decoding=\"async\" class=\"testi-avatar\" \n                                       src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/oceansblue-ramon-reinoso-7b41bfa5085806dfa24b8c9de0ce567f-150x150.png\" \n                                       alt=\"Ram\u00f3n Reinoso\">\n                                                                \n                                <div class=\"testi-person-info\">\n                                                                      <div class=\"name\">Ram\u00f3n Reinoso<\/div>\n                                                                    \n                                                                      <div class=\"role\">Reibarts<\/div>\n                                                                  <\/div>\n                                \n                                <div class=\"testi-quote-icon small\">\"<\/div>\n                              <\/div>\n                            <\/div>\n                          <\/div>\n                        <\/article>\n                        \n                                                \n                        <article class=\"testi-slide\" \n                                 data-index=\"5\" \n                                 data-position=\"hidden\"\n                                 role=\"group\" \n                                 aria-roledescription=\"slide\">\n                          <div class=\"testi-card\">\n                            <div class=\"testi-quote-mark small\">\"<\/div>\n                            <div class=\"testi-body\">\n                                                              <p class=\"testi-text\">\nHemos estado trabajando con Open City desde el a\u00f1o 2016. Siempre nos han apoyado en lo que hemos necesitado. Sabemos que podemos confiar en que siempre estar\u00e1n ah\u00ed para ayudarnos.\n\n\n\n\n<\/p>\n                                                            \n                              <div class=\"testi-person\">\n                                                                  <img decoding=\"async\" class=\"testi-avatar\" \n                                       src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/oceansblue-jorge-roldan-48c29f281099638adbe5cf04e3ecb1be-150x150.png\" \n                                       alt=\"Jorge Roldan\">\n                                                                \n                                <div class=\"testi-person-info\">\n                                                                      <div class=\"name\">Jorge Roldan<\/div>\n                                                                    \n                                                                      <div class=\"role\">Nexans<\/div>\n                                                                  <\/div>\n                                \n                                <div class=\"testi-quote-icon small\">\"<\/div>\n                              <\/div>\n                            <\/div>\n                          <\/div>\n                        <\/article>\n                        \n                                                \n                        <article class=\"testi-slide\" \n                                 data-index=\"6\" \n                                 data-position=\"hidden\"\n                                 role=\"group\" \n                                 aria-roledescription=\"slide\">\n                          <div class=\"testi-card\">\n                            <div class=\"testi-quote-mark small\">\"<\/div>\n                            <div class=\"testi-body\">\n                                                              <p class=\"testi-text\">\nTenemos instalado un sistema de comunicaciones internas en la empresa desde 2016 usando el software de Digital Signage de Open City\n\n\n\n\n<\/p>\n                                                            \n                              <div class=\"testi-person\">\n                                                                  <img decoding=\"async\" class=\"testi-avatar\" \n                                       src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/oceansblue-francisca-ariztia-w-e586564c9a877f887aaa493460b23ebf-150x150.png\" \n                                       alt=\"Francisca Arizt\u00eda\">\n                                                                \n                                <div class=\"testi-person-info\">\n                                                                      <div class=\"name\">Francisca Arizt\u00eda<\/div>\n                                                                    \n                                                                      <div class=\"role\">AquaChile<\/div>\n                                                                  <\/div>\n                                \n                                <div class=\"testi-quote-icon small\">\"<\/div>\n                              <\/div>\n                            <\/div>\n                          <\/div>\n                        <\/article>\n                        \n                                          <\/div>\n\n                  <button class=\"testi-nav next\" id=\"testi-75a487f-nextBtn\" aria-label=\"Siguiente\">\n                    <svg viewBox=\"0 0 24 24\">\n                      <path d=\"M9 6l6 6-6 6\"\/>\n                    <\/svg>\n                  <\/button>\n\n                  <div class=\"testi-dots\" id=\"testi-75a487f-dots\" role=\"tablist\" aria-label=\"Paginaci\u00f3n\">\n                    <button class=\"dot active\" data-slide=\"0\" aria-label=\"Slide 1\"><\/button><button class=\"dot \" data-slide=\"1\" aria-label=\"Slide 2\"><\/button><button class=\"dot \" data-slide=\"2\" aria-label=\"Slide 3\"><\/button><button class=\"dot \" data-slide=\"3\" aria-label=\"Slide 4\"><\/button><button class=\"dot \" data-slide=\"4\" aria-label=\"Slide 5\"><\/button><button class=\"dot \" data-slide=\"5\" aria-label=\"Slide 6\"><\/button><button class=\"dot \" data-slide=\"6\" aria-label=\"Slide 7\"><\/button>                  <\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n\n            <script>\n            (function() {\n              const widgetId = 'testi-75a487f';\n              const autoplayEnabled = true;\n              const autoplayDelay = 5500;\n\n              class TestiCarousel {\n                constructor(widgetId) {\n                  this.widgetId = widgetId;\n                  this.track = document.getElementById(widgetId + '-track');\n                  this.slides = Array.from(this.track.querySelectorAll('.testi-slide'));\n                  this.total = this.slides.length;\n                  this.current = 0;\n                  this.isAnimating = false;\n                  this.transition = 600;\n                  this.minSwipe = 45;\n                  this.startX = 0;\n                  this.currentX = 0;\n                  this.dragging = false;\n                  this.moved = false;\n\n                  this.prevBtn = document.getElementById(widgetId + '-prevBtn');\n                  this.nextBtn = document.getElementById(widgetId + '-nextBtn');\n                  this.dots = Array.from(document.querySelectorAll('#' + widgetId + '-dots .dot'));\n\n                  this.bind();\n                  this.update();\n                  \n                  if (autoplayEnabled) {\n                    this.startAutoplay();\n                  }\n                }\n\n                bind() {\n                  this.prevBtn.addEventListener('click', () => this.goto('prev'));\n                  this.nextBtn.addEventListener('click', () => this.goto('next'));\n                  \n                  this.dots.forEach(d => d.addEventListener('click', () => {\n                    const idx = parseInt(d.getAttribute('data-slide'), 10);\n                    this.goTo(idx);\n                  }));\n\n                  this.track.addEventListener('mousedown', (e) => this.startDrag(e));\n                  document.addEventListener('mousemove', (e) => this.onDrag(e));\n                  document.addEventListener('mouseup', () => this.endDrag());\n\n                  this.track.addEventListener('touchstart', (e) => this.startDrag(e), {passive: true});\n                  this.track.addEventListener('touchmove', (e) => this.onDrag(e), {passive: true});\n                  this.track.addEventListener('touchend', () => this.endDrag());\n\n                  document.addEventListener('keydown', (e) => {\n                    if (e.key === 'ArrowLeft') this.goto('prev');\n                    if (e.key === 'ArrowRight') this.goto('next');\n                  });\n\n                  const wrapper = document.querySelector('.testi-carousel-wrapper');\n                  if (wrapper) {\n                    wrapper.addEventListener('mouseenter', () => this.pauseAuto());\n                    wrapper.addEventListener('mouseleave', () => this.resumeAuto());\n                  }\n                }\n\n                startDrag(e) {\n                  if (e.target.closest('.testi-nav') || e.target.closest('button')) return;\n                  this.dragging = true;\n                  this.moved = false;\n                  this.startX = this.getX(e);\n                  this.currentX = this.startX;\n                  this.pauseAuto();\n                  this.track.style.cursor = 'grabbing';\n                }\n\n                onDrag(e) {\n                  if (!this.dragging) return;\n                  this.currentX = this.getX(e);\n                  if (Math.abs(this.currentX - this.startX) > 6) this.moved = true;\n                }\n\n                endDrag() {\n                  if (!this.dragging) return;\n                  this.dragging = false;\n                  this.track.style.cursor = 'grab';\n                  const dist = this.startX - this.currentX;\n                  if (this.moved && Math.abs(dist) > this.minSwipe) {\n                    if (dist > 0) this.goto('next');\n                    else this.goto('prev');\n                  } else {\n                    this.resumeAuto();\n                  }\n                  this.startX = this.currentX = 0;\n                  this.moved = false;\n                }\n\n                getX(e) {\n                  return e.type.includes('mouse') ? e.clientX : (e.touches && e.touches[0] && e.touches[0].clientX) || 0;\n                }\n\n                goto(dir) {\n                  if (this.isAnimating) return;\n                  if (dir === 'next') this.current = (this.current + 1) % this.total;\n                  else this.current = (this.current - 1 + this.total) % this.total;\n                  this.update();\n                  this.resetAuto();\n                }\n\n                goTo(idx) {\n                  if (this.isAnimating || idx === this.current) return;\n                  this.current = idx;\n                  this.update();\n                  this.resetAuto();\n                }\n\n                update() {\n                  this.isAnimating = true;\n                  this.slides.forEach((s, i) => {\n                    const pos = this.calcPosition(i);\n                    s.setAttribute('data-position', pos);\n                    \n                    \/\/ Update quote sizes\n                    const quoteMark = s.querySelector('.testi-quote-mark');\n                    const quoteIcon = s.querySelector('.testi-quote-icon');\n                    if (pos === 'center') {\n                      if (quoteMark) quoteMark.classList.remove('small');\n                      if (quoteIcon) quoteIcon.classList.remove('small');\n                    } else {\n                      if (quoteMark) quoteMark.classList.add('small');\n                      if (quoteIcon) quoteIcon.classList.add('small');\n                    }\n                  });\n\n                  this.dots.forEach((d, i) => d.classList.toggle('active', i === this.current));\n\n                  setTimeout(() => this.isAnimating = false, this.transition);\n                }\n\n                calcPosition(i) {\n                  const diff = i - this.current;\n                  const half = Math.floor(this.total \/ 2);\n                  let nd = diff;\n                  if (diff > half) nd -= this.total;\n                  if (diff < -half) nd += this.total;\n                  if (nd === 0) return 'center';\n                  if (nd === 1) return 'right';\n                  if (nd === -1) return 'left';\n                  if (nd === 2) return 'far-right';\n                  if (nd === -2) return 'far-left';\n                  return 'hidden';\n                }\n\n                startAutoplay() {\n                  this.autoId = setInterval(() => this.goto('next'), autoplayDelay);\n                }\n\n                pauseAuto() {\n                  if (this.autoId) {\n                    clearInterval(this.autoId);\n                    this.autoId = null;\n                  }\n                }\n\n                resumeAuto() {\n                  if (!this.autoId && autoplayEnabled) this.startAutoplay();\n                }\n\n                resetAuto() {\n                  this.pauseAuto();\n                  if (autoplayEnabled) this.startAutoplay();\n                }\n              }\n\n              if (document.readyState === 'loading') {\n                document.addEventListener('DOMContentLoaded', () => new TestiCarousel(widgetId));\n              } else {\n                new TestiCarousel(widgetId);\n              }\n            })();\n            <\/script>\n\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-28c75fd e-flex e-con-boxed e-con e-parent\" data-id=\"28c75fd\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-b6a04b7 e-con-full e-flex e-con e-child\" data-id=\"b6a04b7\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-13d92a0 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"13d92a0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><strong>Aprende<\/strong> M\u00e1s sobre \n<strong>Comunicaci\u00f3n digital<\/strong> <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05c0fd3 elementor-widget elementor-widget-text-editor\" data-id=\"05c0fd3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>En Open City desarrollamos soluciones tecnol\u00f3gicas que conectan personas, procesos e informaci\u00f3n. Acompa\u00f1amos a empresas e instituciones en su transformaci\u00f3n digital, integrando comunicaci\u00f3n visual, gesti\u00f3n inteligente de datos y soporte continuo para un entorno m\u00e1s eficiente y humano<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f17080d e-con-full e-flex e-con e-child\" data-id=\"f17080d\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-51bc0d8 e-flex e-con-boxed e-con e-parent\" data-id=\"51bc0d8\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e6ea193 eael_liquid_glass-effect1 eael_liquid_glass_shadow-effect1 elementor-widget elementor-widget-jet-listing-grid\" data-id=\"e6ea193\" data-element_type=\"widget\" data-settings=\"{&quot;columns&quot;:&quot;4&quot;,&quot;columns_mobile&quot;:&quot;1&quot;}\" data-widget_type=\"jet-listing-grid.default\">\n\t\t\t\t\t<div class=\"jet-listing-grid jet-listing\"><div class=\"jet-listing-grid__slider\" data-slider_options=\"{&quot;autoplaySpeed&quot;:5000,&quot;autoplay&quot;:true,&quot;pauseOnHover&quot;:true,&quot;infinite&quot;:true,&quot;centerMode&quot;:false,&quot;speed&quot;:500,&quot;arrows&quot;:true,&quot;dots&quot;:false,&quot;slidesToScroll&quot;:1,&quot;prevArrow&quot;:&quot;\\u003Cdiv class=\\u0027jet-listing-grid__slider-icon prev-arrow \\u0027 role=\\u0027button\\u0027 aria-label=\\u0027Previous\\u0027\\u003E\\u003Csvg width=\\u0027180\\u0027 height=\\u0027180\\u0027 viewBox=\\u00270 0 180 180\\u0027 fill=\\u0027none\\u0027 xmlns=\\u0027http:\\\/\\\/www.w3.org\\\/2000\\\/svg\\u0027\\u003E\\u003Cpath d=\\u0027M119 47.3166C119 48.185 118.668 48.9532 118.003 49.6212L78.8385 89L118.003 128.379C118.668 129.047 119 129.815 119 130.683C119 131.552 118.668 132.32 118.003 132.988L113.021 137.998C112.356 138.666 111.592 139 110.729 139C109.865 139 109.101 138.666 108.436 137.998L61.9966 91.3046C61.3322 90.6366 61 89.8684 61 89C61 88.1316 61.3322 87.3634 61.9966 86.6954L108.436 40.002C109.101 39.334 109.865 39 110.729 39C111.592 39 112.356 39.334 113.021 40.002L118.003 45.012C118.668 45.68 119 46.4482 119 47.3166Z\\u0027 fill=\\u0027black\\u0027\\\/\\u003E\\u003C\\\/svg\\u003E\\u003C\\\/div\\u003E&quot;,&quot;nextArrow&quot;:&quot;\\u003Cdiv class=\\u0027jet-listing-grid__slider-icon next-arrow \\u0027 role=\\u0027button\\u0027 aria-label=\\u0027Next\\u0027\\u003E\\u003Csvg width=\\u0027180\\u0027 height=\\u0027180\\u0027 viewBox=\\u00270 0 180 180\\u0027 fill=\\u0027none\\u0027 xmlns=\\u0027http:\\\/\\\/www.w3.org\\\/2000\\\/svg\\u0027\\u003E\\u003Cpath d=\\u0027M119 47.3166C119 48.185 118.668 48.9532 118.003 49.6212L78.8385 89L118.003 128.379C118.668 129.047 119 129.815 119 130.683C119 131.552 118.668 132.32 118.003 132.988L113.021 137.998C112.356 138.666 111.592 139 110.729 139C109.865 139 109.101 138.666 108.436 137.998L61.9966 91.3046C61.3322 90.6366 61 89.8684 61 89C61 88.1316 61.3322 87.3634 61.9966 86.6954L108.436 40.002C109.101 39.334 109.865 39 110.729 39C111.592 39 112.356 39.334 113.021 40.002L118.003 45.012C118.668 45.68 119 46.4482 119 47.3166Z\\u0027 fill=\\u0027black\\u0027\\\/\\u003E\\u003C\\\/svg\\u003E\\u003C\\\/div\\u003E&quot;,&quot;rtl&quot;:false,&quot;itemsCount&quot;:2,&quot;fade&quot;:false,&quot;slidesToShow&quot;:{&quot;desktop&quot;:4,&quot;tablet&quot;:4,&quot;mobile&quot;:1}}\" dir=\"ltr\"><div class=\"jet-listing-grid__items grid-col-desk-4 grid-col-tablet-4 grid-col-mobile-1 jet-listing-grid--505\" data-queried-id=\"682|WP_Post\" data-nav=\"{&quot;enabled&quot;:false,&quot;type&quot;:null,&quot;more_el&quot;:null,&quot;query&quot;:[],&quot;widget_settings&quot;:{&quot;lisitng_id&quot;:505,&quot;posts_num&quot;:6,&quot;columns&quot;:4,&quot;columns_tablet&quot;:4,&quot;columns_mobile&quot;:1,&quot;column_min_width&quot;:240,&quot;column_min_width_tablet&quot;:240,&quot;column_min_width_mobile&quot;:240,&quot;inline_columns_css&quot;:false,&quot;is_archive_template&quot;:&quot;&quot;,&quot;post_status&quot;:[&quot;publish&quot;],&quot;use_random_posts_num&quot;:&quot;&quot;,&quot;max_posts_num&quot;:9,&quot;not_found_message&quot;:&quot;No se encontraron publicaciones&quot;,&quot;is_masonry&quot;:false,&quot;equal_columns_height&quot;:&quot;&quot;,&quot;use_load_more&quot;:&quot;&quot;,&quot;load_more_id&quot;:&quot;&quot;,&quot;load_more_type&quot;:&quot;click&quot;,&quot;load_more_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;use_custom_post_types&quot;:&quot;&quot;,&quot;custom_post_types&quot;:[],&quot;hide_widget_if&quot;:&quot;&quot;,&quot;carousel_enabled&quot;:&quot;yes&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;arrows&quot;:&quot;true&quot;,&quot;arrow_icon&quot;:&quot;fa fa-angle-left&quot;,&quot;dots&quot;:&quot;&quot;,&quot;autoplay&quot;:&quot;true&quot;,&quot;pause_on_hover&quot;:&quot;true&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;true&quot;,&quot;center_mode&quot;:&quot;&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500,&quot;inject_alternative_items&quot;:&quot;&quot;,&quot;injection_items&quot;:[],&quot;scroll_slider_enabled&quot;:&quot;&quot;,&quot;scroll_slider_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;custom_query&quot;:false,&quot;custom_query_id&quot;:&quot;&quot;,&quot;_element_id&quot;:&quot;&quot;,&quot;collapse_first_last_gap&quot;:false,&quot;list_tag_selection&quot;:&quot;&quot;,&quot;list_items_wrapper_tag&quot;:&quot;div&quot;,&quot;list_item_tag&quot;:&quot;div&quot;,&quot;empty_items_wrapper_tag&quot;:&quot;div&quot;}}\" data-page=\"1\" data-pages=\"1\" data-listing-source=\"posts\" data-listing-id=\"505\" data-query-id=\"\"><div class=\"jet-listing-grid__item jet-listing-dynamic-post-492\" data-post-id=\"492\"  >\t\t<div data-elementor-type=\"jet-listing-items\" data-elementor-id=\"505\" class=\"elementor elementor-505\" data-elementor-post-type=\"jet-engine\">\n\t\t\t\t<div class=\"elementor-element elementor-element-64e147c e-flex e-con-boxed e-con e-parent\" data-id=\"64e147c\" data-element_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<div class=\"elementor-element elementor-element-b4708a7 eael_liquid_glass-effect1 eael_liquid_glass_shadow-effect1 elementor-widget elementor-widget-jet-listing-dynamic-image\" data-id=\"b4708a7\" data-element_type=\"widget\" data-widget_type=\"jet-listing-dynamic-image.default\">\n\t\t\t\t\t<div class=\"jet-listing jet-listing-dynamic-image\" ><img decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/open-city-que-es-una-cartelera-digital-fcde14913c766cf307c75059e0e89af5.png\" class=\"jet-listing-dynamic-image__img attachment-full size-full\" alt=\"open-city-que-es-una-cartelera-digital-fcde14913c766cf307c75059e0e89af5\" srcset=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/open-city-que-es-una-cartelera-digital-fcde14913c766cf307c75059e0e89af5.png 800w, https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/open-city-que-es-una-cartelera-digital-fcde14913c766cf307c75059e0e89af5-300x225.png 300w, https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/open-city-que-es-una-cartelera-digital-fcde14913c766cf307c75059e0e89af5-768x576.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" loading=\"eager\" \/><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3db7f89 elementor-align-center elementor-widget__width-initial elementor-widget-mobile__width-initial eael_liquid_glass_shadow-effect4 eael_liquid_glass-effect1 elementor-widget elementor-widget-button\" data-id=\"3db7f89\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\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\">noviembre 18, 2025<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a715cb elementor-widget elementor-widget-heading\" data-id=\"9a715cb\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00bfQu\u00e9 es una Cartelera Digital?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e5e798 elementor-widget elementor-widget-text-editor\" data-id=\"9e5e798\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Comunicaciones mas Eficaces y Entretenidas Un sistema de\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b03df4 elementor-widget elementor-widget-button\" data-id=\"4b03df4\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/opencity.cl\/?noticia=modernizacion-digital-2\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10\" height=\"4\" viewBox=\"0 0 10 4\" fill=\"none\"><path d=\"M6.818 3.696C6.91133 3.45333 7.014 3.22933 7.126 3.024C7.238 2.80933 7.364 2.60867 7.504 2.422H0V1.274H7.504C7.37333 1.08733 7.252 0.891334 7.14 0.686001C7.028 0.471334 6.92533 0.242667 6.832 0H7.896C8.47467 0.681333 9.10933 1.19933 9.8 1.554V2.156C9.10933 2.492 8.47467 3.00533 7.896 3.696H6.818Z\" fill=\"#1093DB\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Leer noticias<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div><div class=\"jet-listing-grid__item jet-listing-dynamic-post-485\" data-post-id=\"485\"  >\t\t<div data-elementor-type=\"jet-listing-items\" data-elementor-id=\"505\" class=\"elementor elementor-505\" data-elementor-post-type=\"jet-engine\">\n\t\t\t\t<div class=\"elementor-element elementor-element-64e147c e-flex e-con-boxed e-con e-parent\" data-id=\"64e147c\" data-element_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<div class=\"elementor-element elementor-element-b4708a7 eael_liquid_glass-effect1 eael_liquid_glass_shadow-effect1 elementor-widget elementor-widget-jet-listing-dynamic-image\" data-id=\"b4708a7\" data-element_type=\"widget\" data-widget_type=\"jet-listing-dynamic-image.default\">\n\t\t\t\t\t<div class=\"jet-listing jet-listing-dynamic-image\" ><img decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/open-city-que-es-el-digital-signage-y-para-que-sirve-76dc6bf0520c3ad631b35e3aa8e6c24e.png\" class=\"jet-listing-dynamic-image__img attachment-full size-full\" alt=\"open-city-que-es-el-digital-signage-y-para-que-sirve-76dc6bf0520c3ad631b35e3aa8e6c24e\" srcset=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/open-city-que-es-el-digital-signage-y-para-que-sirve-76dc6bf0520c3ad631b35e3aa8e6c24e.png 800w, https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/open-city-que-es-el-digital-signage-y-para-que-sirve-76dc6bf0520c3ad631b35e3aa8e6c24e-300x225.png 300w, https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/open-city-que-es-el-digital-signage-y-para-que-sirve-76dc6bf0520c3ad631b35e3aa8e6c24e-768x576.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" loading=\"eager\" \/><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3db7f89 elementor-align-center elementor-widget__width-initial elementor-widget-mobile__width-initial eael_liquid_glass_shadow-effect4 eael_liquid_glass-effect1 elementor-widget elementor-widget-button\" data-id=\"3db7f89\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\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\">noviembre 18, 2025<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a715cb elementor-widget elementor-widget-heading\" data-id=\"9a715cb\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00bfQu\u00e9 es el Digital Signage y para qu\u00e9 sirve?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e5e798 elementor-widget elementor-widget-text-editor\" data-id=\"9e5e798\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>En un mundo cada vez m\u00e1s visual, din\u00e1mico\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b03df4 elementor-widget elementor-widget-button\" data-id=\"4b03df4\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/opencity.cl\/?noticia=modernizacion-digital\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10\" height=\"4\" viewBox=\"0 0 10 4\" fill=\"none\"><path d=\"M6.818 3.696C6.91133 3.45333 7.014 3.22933 7.126 3.024C7.238 2.80933 7.364 2.60867 7.504 2.422H0V1.274H7.504C7.37333 1.08733 7.252 0.891334 7.14 0.686001C7.028 0.471334 6.92533 0.242667 6.832 0H7.896C8.47467 0.681333 9.10933 1.19933 9.8 1.554V2.156C9.10933 2.492 8.47467 3.00533 7.896 3.696H6.818Z\" fill=\"#1093DB\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Leer noticias<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div><\/div><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dcca1f2 elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"dcca1f2\" data-element_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=\"elementor-element elementor-element-331d0f2 e-con-full e-flex e-con e-child\" data-id=\"331d0f2\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a289329 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"a289329\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00bfLISTO PARA SER PARTE DE LA TRANSFORMACI\u00d3N DIGITAL?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-655387e elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"655387e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Conversemos sobre c\u00f3mo Open City puede ayudarte a comunicar mejor, optimizar tus procesos y evolucionar digitalmente.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-63b1fa1 e-con-full e-flex e-con e-child\" data-id=\"63b1fa1\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3e4f171 e-con-full e-flex e-con e-child\" data-id=\"3e4f171\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-79ffae4 elementor-align-justify elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"79ffae4\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/opencity.cl\/?page_id=195\">\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\">Solicitar asesor\u00eda <\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a37043c e-con-full e-flex e-con e-child\" data-id=\"a37043c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-33f0c7d elementor-align-center elementor-widget__width-initial eael_liquid_glass-effect2 eael_liquid_glass_border_distortion_yes elementor-widget elementor-widget-button\" data-id=\"33f0c7d\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#soluciones\">\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\">Nuestras soluciones<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\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\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fedf5c1 elementor-hidden-desktop elementor-hidden-tablet e-flex e-con-boxed e-con e-parent\" data-id=\"fedf5c1\" data-element_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<div class=\"elementor-element elementor-element-d24cf8b elementor-align-justify elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"d24cf8b\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/opencity.cl\/?page_id=195\">\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\">Solicitar asesor\u00eda <\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b727852 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"b727852\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Conversemos sobre c\u00f3mo Open City puede ayudarte a comunicar mejor, optimizar tus procesos y evolucionar digitalmente.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c0b4b23 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"c0b4b23\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00bfLISTO PARA SER PARTE DE LA TRANSFORMACI\u00d3N DIGITAL?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-931ce0b e-flex e-con-boxed e-con e-parent\" data-id=\"931ce0b\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f3772e1 elementor-widget elementor-widget-spacer\" data-id=\"f3772e1\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Soluciones tecnol\u00f3gicas para una vida mejor Soluciones flexibles de carteler\u00eda digital para empresas, municipalidades y cl\u00ednicas. Comunica de manera clara, \u00e1gil y moderna en todas tus locaciones. Solicitar asesor\u00eda Nuestras soluciones Transformamos la forma en que las organizaciones comunican, gestionan y operan. En Open City desarrollamos soluciones tecnol\u00f3gicas que conectan personas, procesos e informaci\u00f3n. Acompa\u00f1amos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/opencity.cl\/index.php?rest_route=\/wp\/v2\/pages\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opencity.cl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/opencity.cl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/opencity.cl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/opencity.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9"}],"version-history":[{"count":232,"href":"https:\/\/opencity.cl\/index.php?rest_route=\/wp\/v2\/pages\/9\/revisions"}],"predecessor-version":[{"id":1393,"href":"https:\/\/opencity.cl\/index.php?rest_route=\/wp\/v2\/pages\/9\/revisions\/1393"}],"wp:attachment":[{"href":"https:\/\/opencity.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}