{"id":387,"date":"2025-11-18T12:34:55","date_gmt":"2025-11-18T12:34:55","guid":{"rendered":"https:\/\/opencity.cl\/?page_id=387"},"modified":"2025-11-24T14:03:46","modified_gmt":"2025-11-24T14:03:46","slug":"rfid-y-control-de-activos","status":"publish","type":"page","link":"https:\/\/opencity.cl\/?page_id=387","title":{"rendered":"RFID y Control de Activos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"387\" class=\"elementor elementor-387\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-65210a4 e-flex e-con-boxed e-con e-parent\" data-id=\"65210a4\" 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-ffd59de e-con-full e-flex e-con e-child\" data-id=\"ffd59de\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3c758b5 e-con-full e-flex e-con e-child\" data-id=\"3c758b5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7eb8ed7 elementor-align-justify elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"7eb8ed7\" 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-44b14e0 e-con-full e-flex e-con e-child\" data-id=\"44b14e0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-285adc2 elementor-align-center elementor-widget__width-initial eael_liquid_glass-effect2 eael_liquid_glass_border_distortion_yes elementor-widget elementor-widget-button\" data-id=\"285adc2\" 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\">Conoce como funciona<\/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 class=\"elementor-element elementor-element-c87d61f elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"c87d61f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Optimiza la gesti\u00f3n de tus inventarios y activos con tecnolog\u00eda RFID. Controla movimientos en tiempo real, reduce p\u00e9rdidas y obt\u00e9n trazabilidad completa desde una plataforma centralizada, \u00e1gil y segura.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f3e41f4 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"f3e41f4\" 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\">CONTROL TOTAL<\/span> DE TUS ACTIVOS E INVENTARIOS<span style=\"font-weight: 600\"> EN TIEMPO REAL<\/span><\/h1>\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-c9b1f1a e-flex e-con-boxed e-con e-parent\" data-id=\"c9b1f1a\" 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-d5db5be e-con-full e-flex e-con e-child\" data-id=\"d5db5be\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c57968 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"5c57968\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><strong>TRAZABILIDAD Y CONTROL INTELIGENTE<\/strong> EN CADA MOVIMIENTO<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6c2efbc elementor-widget elementor-widget-text-editor\" data-id=\"6c2efbc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>El sistema de Identificaci\u00f3n por Radiofrecuencia (RFID) permite leer m\u00faltiples etiquetas de forma simult\u00e1nea sin contacto visual, capturando datos precisos sobre ubicaci\u00f3n, movimiento y estado de cada activo.<\/p><p>Nuestra soluci\u00f3n integra hardware, software y an\u00e1lisis de datos para ofrecer visibilidad completa de tus inventarios en tiempo real, reduciendo errores humanos y tiempos operativos.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7355e59 elementor-align-left elementor-widget__width-initial elementor-hidden-mobile elementor-widget elementor-widget-button\" data-id=\"7355e59\" 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\">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-d5661a9 e-con-full e-flex e-con e-child\" data-id=\"d5661a9\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d9a85bf elementor-widget elementor-widget-image\" data-id=\"d9a85bf\" 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=\"677\" height=\"507\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Group-6.png\" class=\"attachment-large size-large wp-image-404\" alt=\"\" srcset=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Group-6.png 677w, https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/Group-6-300x225.png 300w\" sizes=\"(max-width: 677px) 100vw, 677px\" \/>\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-46115df elementor-align-left elementor-widget__width-initial elementor-mobile-align-justify elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-button\" data-id=\"46115df\" 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-b6114bf e-flex e-con-boxed e-con e-parent\" data-id=\"b6114bf\" 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-f99954d elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"f99954d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><strong>M\u00c1S QUE PANTALLAS<\/strong> UNA HERRAMIENTA ESTRAT\u00c9GICA DE <strong>COMUNICACI\u00d3N<\/strong><\/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-e321f01 e-flex e-con-boxed e-con e-parent\" data-id=\"e321f01\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-831cfee e-con-full e-flex e-con e-child\" data-id=\"831cfee\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a9af49 elementor-widget elementor-widget-text-editor\" data-id=\"2a9af49\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u00a0Reduce dr\u00e1sticamente los tiempos de conteo con lecturas masivas y precisas.\u00a0\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f71ad8b elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"f71ad8b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Inventarios m\u00e1s r\u00e1pidos<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a42260f e-con-full e-flex e-con e-child\" data-id=\"a42260f\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d0c2870 elementor-widget elementor-widget-text-editor\" data-id=\"d0c2870\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Monitorea la ubicaci\u00f3n y el historial de cada activo en tiempo real.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac2495b elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"ac2495b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Trazabilidad completa<\/h2>\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-429dd81 e-flex e-con-boxed e-con e-parent\" data-id=\"429dd81\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-a44ffc0 e-con-full e-flex e-con e-child\" data-id=\"a44ffc0\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f5dc222 elementor-widget elementor-widget-text-editor\" data-id=\"f5dc222\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Automatiza procesos de registro y control, minimizando p\u00e9rdidas y duplicaciones.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a211e5 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"7a211e5\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Menos errores humanos<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-768f21f e-con-full e-flex e-con e-child\" data-id=\"768f21f\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-744d94f elementor-widget elementor-widget-text-editor\" data-id=\"744d94f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Sincroniza la informaci\u00f3n con tu ERP, WMS o software de gesti\u00f3n.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2195ae4 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"2195ae4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Integraci\u00f3n con sistemas existentes<\/h2>\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-b559b8e e-flex e-con-boxed e-con e-parent\" data-id=\"b559b8e\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-906c1ab e-con-full e-flex e-con e-child\" data-id=\"906c1ab\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f79b71a elementor-widget elementor-widget-image\" data-id=\"f79b71a\" 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=\"627\" height=\"572\" src=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/image-6.png\" class=\"attachment-full size-full wp-image-406\" alt=\"\" srcset=\"https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/image-6.png 627w, https:\/\/opencity.cl\/wp-content\/uploads\/2025\/11\/image-6-300x274.png 300w\" sizes=\"(max-width: 627px) 100vw, 627px\" \/>\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-6a91c01 e-con-full e-flex e-con e-child\" data-id=\"6a91c01\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c4db96b elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"c4db96b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><strong>TECNOLOG\u00cdA INTELIGENTE<\/strong> PARA GESTI\u00d3N<strong> M\u00c1S EFICIENTE<\/STRONG><\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1e4eed6 e-con-full e-flex e-con e-child\" data-id=\"1e4eed6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-32ef69d elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"32ef69d\" 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;\">01. Etiqueta tus activos<\/span><\/em><br \/>Aplicamos etiquetas RFID \u00fanicas a cada producto, herramienta o equipo para garantizar su identificaci\u00f3n autom\u00e1tica.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2bc2d30 elementor-widget__width-initial arrow-icon elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"2bc2d30\" 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-4ede23c e-con-full e-flex e-con e-child\" data-id=\"4ede23c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d51531 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"5d51531\" 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;\">02. Escanea y registra<\/span><\/em><br>\nCon nuestros lectores port\u00e1tiles o fijos, captur\u00e1s cientos de etiquetas por segundo, sin necesidad de l\u00ednea de vista ni contacto directo.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e6a192b elementor-widget__width-initial arrow-icon elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"e6a192b\" 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-c6f6bf7 e-con-full e-flex e-con e-child\" data-id=\"c6f6bf7\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70dd1b2 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"70dd1b2\" 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;\">03. Controla desde la plataforma<\/span><\/em><br>\nVisualiza movimientos, niveles de stock y ubicaci\u00f3n exacta desde un panel centralizado. Configura alertas y genera reportes autom\u00e1ticos.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cafb883 elementor-widget__width-initial arrow-icon elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"cafb883\" 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-0e66b48 e-con-full e-flex e-con e-parent\" data-id=\"0e66b48\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fc542b9 elementor-widget elementor-widget-soluciones-carousel\" data-id=\"fc542b9\" 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>UNA<\/em> SOLUCI\u00d3N PARA CUALQUIER TIPO DE <strong>ORGANIZACI\u00d3N<\/strong>                        <\/h2>\n                        \n                                                    <p class=\"soluciones-descripcion\">\n                                Nuestra tecnolog\u00eda se adapta a diferentes contextos y necesidades.                            <\/p>\n                                            <\/div>\n                    \n                    <!-- FILTROS -->\n                    <div class=\"filtros-container hidden\">\n                                            <\/div>\n                    \n                    <!-- CARRUSEL -->\n                    <div class=\"carousel-wrapper\">\n                        <div class=\"carousel-container\">\n                            <div class=\"carousel-track\" id=\"carousel-fc542b9-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\/3e70337d1b2f3f8d748437617b6b184ed03acbee.png\" alt=\"Log\u00edstica y distribuci\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\">Log\u00edstica y distribuci\u00f3n<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nAcelera la recepci\u00f3n, almacenamiento y despacho con lectura masiva y control de movimiento.\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\/25e11f4a94f650af59edd5164fe2c31f26707a7b.png\" alt=\"Retail y consumo\">\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\">Retail y consumo<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nSupervisa productos, exhibiciones y stock en tiempo real para evitar quiebres.\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\/7dbd237b6d22509a7b59dcc7d273f078d307e866.png\" alt=\"Industria y manufactura\">\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\">Industria y manufactura<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nControla herramientas, moldes y equipos de producci\u00f3n con trazabilidad continua.\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\/2120ec741df4d085593b5604166f7261522e2021.png\" alt=\"Instituciones p\u00fablicas y educaci\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\">Instituciones p\u00fablicas y educaci\u00f3n<\/h3>\n                                                    \n                                                    <!-- DESCRIPCI\u00d3N: Solo si tiene contenido -->\n                                                                                                            <div class=\"solucion-description\">\n                                                            \nAdministra equipamiento, mobiliario y documentos de forma automatizada y transparente.\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-fc542b9-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-fc542b9-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-fc542b9-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-fc542b9';\n                const autoplayEnabled = true;\n                const autoplayDelay = 5000;\n                const mostrarFiltros = false;\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-36f5f9b e-con-full e-flex e-con e-parent\" data-id=\"36f5f9b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3e92b97 elementor-widget elementor-widget-testimonios-carousel\" data-id=\"3e92b97\" 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-3e92b97-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-3e92b97-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-3e92b97-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-3e92b97-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-3e92b97';\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-6d19c1c elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"6d19c1c\" 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-14ea421 e-con-full e-flex e-con e-child\" data-id=\"14ea421\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b64ea8 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"3b64ea8\" 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 TENER EL CONTROL TOTAL DE TUS ACTIVOS?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0ea3804 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"0ea3804\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Conoce c\u00f3mo nuestra soluci\u00f3n RFID puede transformar la gesti\u00f3n de inventarios y activos de tu organizaci\u00f3n, optimizando recursos y mejorando la trazabilidad desde el primer d\u00eda.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f1f89a elementor-align-left elementor-widget__width-initial elementor-widget-mobile__width-initial elementor-widget elementor-widget-button\" data-id=\"7f1f89a\" 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 evaluaci\u00f3n<\/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-f19b1c1 elementor-hidden-desktop elementor-hidden-tablet e-flex e-con-boxed e-con e-parent\" data-id=\"f19b1c1\" 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-a94b1fb elementor-align-justify elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"a94b1fb\" 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 demo<\/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-298ea6e elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"298ea6e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Conoce c\u00f3mo nuestra soluci\u00f3n RFID puede transformar la gesti\u00f3n de inventarios y activos de tu organizaci\u00f3n, optimizando recursos y mejorando la trazabilidad desde el primer d\u00eda.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3208a36 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"3208a36\" 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 TEMER EL CONTROL TOTAL DE TUS ACTIVOS?<\/h2>\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>Solicitar asesor\u00eda Conoce como funciona Optimiza la gesti\u00f3n de tus inventarios y activos con tecnolog\u00eda RFID. Controla movimientos en tiempo real, reduce p\u00e9rdidas y obt\u00e9n trazabilidad completa desde una plataforma centralizada, \u00e1gil y segura. CONTROL TOTAL DE TUS ACTIVOS E INVENTARIOS EN TIEMPO REAL TRAZABILIDAD Y CONTROL INTELIGENTE EN CADA MOVIMIENTO El sistema de Identificaci\u00f3n [&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-387","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/opencity.cl\/index.php?rest_route=\/wp\/v2\/pages\/387","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=387"}],"version-history":[{"count":49,"href":"https:\/\/opencity.cl\/index.php?rest_route=\/wp\/v2\/pages\/387\/revisions"}],"predecessor-version":[{"id":1130,"href":"https:\/\/opencity.cl\/index.php?rest_route=\/wp\/v2\/pages\/387\/revisions\/1130"}],"wp:attachment":[{"href":"https:\/\/opencity.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}