{"id":14550,"date":"2022-11-03T20:32:07","date_gmt":"2022-11-03T20:32:07","guid":{"rendered":"https:\/\/assist.com.co\/?page_id=14550"},"modified":"2026-04-24T15:32:06","modified_gmt":"2026-04-24T15:32:06","slug":"tendencias-ti-eventos","status":"publish","type":"page","link":"https:\/\/assist.com.co\/en\/tendencias-ti-eventos\/","title":{"rendered":"Tendencias TI y eventos tecnol\u00f3gicos"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section preset--module--divi-section--default\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!-- ============================================================\n     ASSIST CONSULTORES \u2014 M\u00f3dulos Divi para \/tendencias-ti-eventos\/\n     Prefijo: evt-  |  Compatible con Divi Code Module\n     3 m\u00f3dulos independientes:\n       1. evt-hero      \u2192 reemplaza el GIF banner\n       2. evt-kpis      \u2192 stat cards sobre el calendario\n       3. evt-calendar  \u2192 calendario con color coding y estados\n     ============================================================ -->\n\n<!-- ===================== M\u00d3DULO 1: HERO ===================== -->\n<style>\n\/* Font cargada de forma aislada \u2014 no interfiere con el stack de Divi *\/\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;600;700;900&display=swap');\n\n\/* Reset de box-sizing SOLO para elementos evt- \u2014 no toca nada del tema *\/\n.evt-hero-wrap *, .evt-hero-wrap *::before, .evt-hero-wrap *::after,\n.evt-kpis *, .evt-kpis *::before, .evt-kpis *::after,\n.evt-calendar *, .evt-calendar *::before, .evt-calendar *::after {\n  box-sizing: border-box;\n}\n\n\/* font-family aplicada solo dentro de los contenedores del m\u00f3dulo *\/\n.evt-hero-wrap, .evt-kpis, .evt-calendar {\n  font-family: 'Montserrat', sans-serif;\n}\n\n\/* \u2500\u2500 Full-bleed: rompe el contenedor Divi y ocupa todo el ancho \u2500\u2500 *\/\n.evt-hero-wrap {\n  background:#071A39 !important;\n  overflow:hidden;\n  \/* T\u00e9cnica full-bleed: sale del padding del m\u00f3dulo Code de Divi *\/\n  width: 100vw !important;\n  position: relative;\n  left: 50%;\n  right: 50%;\n  margin-left: -50vw !important;\n  margin-right: -50vw !important;\n  \/* Compensar padding interno de Divi (.et_pb_column, .et_pb_code_inner) *\/\n  box-sizing: border-box;\n}\n\n.evt-hero {\n  position:relative; min-height:560px;\n  display:flex; align-items:center; overflow:hidden;\n  background:#071A39; font-family:'Montserrat',sans-serif; isolation:isolate;\n  box-sizing:border-box; width:100%;\n}\n.evt-hero canvas {\n  position:absolute; top:0; left:0; width:100%; height:100%;\n  display:block; pointer-events:none; z-index:1;\n}\n.evt-hero__overlay {\n  position:absolute; inset:0; z-index:2;\n  \/* Solo acentos sutiles \u2014 sin fondo s\u00f3lido para que las part\u00edculas sean visibles *\/\n  background:\n    radial-gradient(ellipse 55% 60% at 95% 50%, rgba(180,0,20,0.12) 0%, transparent 60%),\n    radial-gradient(ellipse 40% 45% at 5% 10%, rgba(20,80,200,0.10) 0%, transparent 55%);\n  pointer-events:none;\n}\n\n\/* \u2500\u2500 Layout dos columnas \u2500\u2500 *\/\n.evt-hero__inner {\n  position:relative; z-index:3;\n  width:100%; max-width:1100px; margin:0 auto;\n  padding:64px 40px 56px;\n  display:grid;\n  grid-template-columns: 1fr 1fr;\n  gap:48px; align-items:center;\n  box-sizing:border-box;\n}\n@media(max-width:768px){\n  .evt-hero__inner {\n    grid-template-columns:1fr;\n    gap:32px;\n    padding:48px 20px 40px;\n  }\n  .evt-hero__visual { order:-1; }\n}\n\n\/* \u2500\u2500 Columna izquierda \u2500\u2500 *\/\n.evt-hero__left { display:flex; flex-direction:column; align-items:flex-start; }\n\n.evt-hero__eyebrow {\n  display:inline-flex; align-items:center; gap:8px;\n  background:rgba(255,46,56,0.14); border:1px solid rgba(255,46,56,0.32);\n  border-radius:100px; padding:6px 16px;\n  font-size:10px; font-weight:700; letter-spacing:0.13em; text-transform:uppercase;\n  color:#FF7078; margin-bottom:22px;\n}\n.evt-hero__eyebrow span {\n  width:6px; height:6px; border-radius:50%; background:#FF2E38;\n  animation:evt-pulse 1.6s ease-in-out infinite;\n}\n@keyframes evt-pulse {\n  0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.5)}\n}\n.evt-hero__title {\n  font-size:clamp(26px,3.8vw,50px); font-weight:900; color:#fff;\n  line-height:1.08; letter-spacing:-0.025em; margin:0 0 18px; text-align:left;\n}\n.evt-hero__title em { font-style:normal; color:#FF2E38; }\n\n.evt-hero__subtitle {\n  font-size:clamp(13px,1.4vw,16px); color:rgba(255,255,255,0.58);\n  font-weight:400; line-height:1.65; margin:0 0 32px; text-align:left;\n}\n\n.evt-hero__ctas { display:flex; gap:12px; flex-wrap:wrap; }\n\n.evt-btn-primary {\n  background:#FF2E38; color:#fff; font-family:'Montserrat',sans-serif;\n  font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;\n  padding:13px 26px; border-radius:6px; border:none; cursor:pointer;\n  text-decoration:none; display:inline-block; transition:background .2s,transform .15s;\n}\n.evt-btn-primary:hover { background:#c9151e; transform:translateY(-1px); }\n.evt-btn-ghost {\n  background:transparent; color:rgba(255,255,255,.72); font-family:'Montserrat',sans-serif;\n  font-size:12px; font-weight:600; letter-spacing:.07em; text-transform:uppercase;\n  padding:13px 26px; border-radius:6px; border:1px solid rgba(255,255,255,.18);\n  cursor:pointer; text-decoration:none; display:inline-block;\n  transition:border-color .2s,color .2s,transform .15s;\n}\n.evt-btn-ghost:hover { border-color:rgba(255,255,255,.5); color:#fff; transform:translateY(-1px); }\n\n\/* \u2500\u2500 Contador regresivo \u2500\u2500 *\/\n.evt-countdown {\n  margin-top:32px; padding-top:28px;\n  border-top:1px solid rgba(255,255,255,0.1);\n  width:100%;\n}\n.evt-countdown__label {\n  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;\n  color:rgba(255,255,255,0.35); margin-bottom:12px;\n}\n.evt-countdown__event-name {\n  font-size:13px; font-weight:600; color:rgba(255,255,255,0.75);\n  margin-bottom:14px; line-height:1.4;\n}\n\/* SCOPED \u2014 solo strong dentro del nombre del evento, no global *\/\n.evt-countdown__event-name > strong { color:#fff; }\n.evt-countdown__units {\n  display:flex; gap:10px; flex-wrap:wrap;\n}\n.evt-unit {\n  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1);\n  border-radius:8px; padding:10px 14px; text-align:center; min-width:60px;\n  transition:border-color .3s;\n}\n.evt-unit:hover { border-color:rgba(255,46,56,0.4); }\n.evt-unit__num {\n  font-size:26px; font-weight:900; color:#FF2E38; line-height:1;\n  letter-spacing:-0.02em; font-variant-numeric:tabular-nums;\n}\n.evt-unit__lbl {\n  font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;\n  color:rgba(255,255,255,0.35); margin-top:4px;\n}\n\n\/* \u2500\u2500 Columna derecha \u2014 ilustraci\u00f3n CSS \u2500\u2500 *\/\n.evt-hero__visual {\n  display:flex; align-items:center; justify-content:center;\n  position:relative;\n  min-height:280px;\n  \/* Contiene el placeholder sin desbordarse *\/\n  overflow:hidden;\n  box-sizing:border-box;\n  width:100%;\n}\n\n\/* \u2500\u2500 Placeholder de imagen flotante \u2500\u2500 *\/\n.evt-img-wrap {\n  position:relative; z-index:3;\n  width:100%;\n  max-width:420px;\n  \/* Limita el ancho para que no exceda la columna *\/\n  box-sizing:border-box;\n  animation:evt-float-img 5s ease-in-out infinite;\n}\n@keyframes evt-float-img {\n  0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)}\n}\n.evt-img-placeholder {\n  width:100%;\n  \/* aspect-ratio como fallback, min-height para navegadores sin soporte *\/\n  aspect-ratio:4\/3;\n  min-height:220px;\n  border-radius:16px;\n  overflow:hidden;\n  border:1px solid rgba(255,255,255,0.12);\n  box-shadow:\n    0 24px 48px rgba(0,0,0,0.4),\n    0 6px 20px rgba(0,0,0,0.25),\n    inset 0 1px 0 rgba(255,255,255,0.08);\n  position:relative;\n  background:rgba(255,255,255,0.04);\n  box-sizing:border-box;\n}\n.evt-img-placeholder img {\n  width:100%; height:100%;\n  object-fit:cover; display:block;\n  border-radius:16px;\n}\n\n\/* Responsive \u2014 m\u00f3vil *\/\n@media(max-width:768px){\n  .evt-img-wrap {\n    max-width:100%;\n    animation:none; \/* sin float en m\u00f3vil para evitar recortes *\/\n  }\n  .evt-img-placeholder {\n    border-radius:12px;\n    min-height:180px;\n  }\n  .evt-hero__visual {\n    min-height:auto;\n    padding:0 4px;\n  }\n}\n\/* Estado sin imagen \u2014 gu\u00eda visual para el editor *\/\n.evt-img-placeholder--empty {\n  display:flex; flex-direction:column;\n  align-items:center; justify-content:center; gap:12px;\n  border:2px dashed rgba(255,255,255,0.15);\n  background:rgba(255,255,255,0.03);\n  min-height:280px;\n}\n.evt-img-placeholder--empty svg { opacity:0.3; }\n.evt-img-placeholder--empty span {\n  font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;\n  color:rgba(255,255,255,0.25); font-family:'Montserrat',sans-serif;\n}\n\/* Overlay de marca sobre la imagen (visible solo cuando hay img) *\/\n.evt-img-overlay {\n  position:absolute; inset:0; border-radius:20px;\n  background:linear-gradient(160deg, transparent 40%, rgba(7,26,57,0.55) 100%);\n  pointer-events:none;\n}\n.evt-img-badge {\n  position:absolute; bottom:16px; left:16px;\n  background:rgba(7,26,57,0.85); border:1px solid rgba(255,255,255,0.12);\n  border-radius:8px; padding:8px 12px; backdrop-filter:blur(6px);\n  display:flex; align-items:center; gap:8px;\n}\n.evt-img-badge__dot {\n  width:7px; height:7px; border-radius:50%; background:#FF2E38; flex-shrink:0;\n  animation:evt-pulse 1.6s ease-in-out infinite;\n}\n.evt-img-badge__text {\n  font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;\n  color:rgba(255,255,255,0.8); font-family:'Montserrat',sans-serif;\n}\n\n\/* Scroll indicator *\/\n.evt-hero__scroll {\n  position:absolute; bottom:20px; left:40px;\n  display:flex; flex-direction:column; align-items:center; gap:6px;\n  opacity:.35; z-index:5;\n}\n.evt-hero__scroll-line {\n  width:1px; height:28px;\n  background:linear-gradient(to bottom, transparent, rgba(255,255,255,.6));\n  animation:evt-scrollline 1.8s ease-in-out infinite;\n}\n@keyframes evt-scrollline {\n  0%,100%{opacity:.3;transform:scaleY(.7)} 50%{opacity:1;transform:scaleY(1)}\n}\n<\/style>\n\n<div class=\"evt-hero-wrap\">\n<section class=\"evt-hero\">\n  <canvas id=\"evt-canvas\"><\/canvas>\n  <div class=\"evt-hero__overlay\"><\/div>\n\n  <div class=\"evt-hero__inner\">\n\n    <!-- Columna izquierda: texto -->\n    <div class=\"evt-hero__left\">\n      <div class=\"evt-hero__eyebrow\"><span><\/span> Agenda 2026 \u00b7 Latam<\/div>\n      <h1 class=\"evt-hero__title\">Tendencias TI &amp;<br><em>Eventos del Sector<\/em><\/h1>\n      <p class=\"evt-hero__subtitle\">Conferencias, summits y webinars donde se definen las tecnolog\u00edas que transforman los mercados. Assist presente en 7 pa\u00edses de Latinoam\u00e9rica.<\/p>\n      <div class=\"evt-hero__ctas\">\n        <a href=\"#evt-calendar\" class=\"evt-btn-primary\">Ver agenda 2026<\/a>\n        <a href=\"https:\/\/www.linkedin.com\/newsletters\/assist-trends-newsletter-ti-7039635282630955008\/\" target=\"_blank\" class=\"evt-btn-ghost\">Newsletter<\/a>\n      <\/div>\n\n      <!-- Contador regresivo -->\n      <div class=\"evt-countdown\">\n        <div class=\"evt-countdown__label\">Pr\u00f3ximo evento<\/div>\n        <div class=\"evt-countdown__event-name\" id=\"evt-next-name\">Cargando...<\/div>\n        <div class=\"evt-countdown__units\">\n          <div class=\"evt-unit\"><div class=\"evt-unit__num\" id=\"evt-cd-d\">--<\/div><div class=\"evt-unit__lbl\">D\u00edas<\/div><\/div>\n          <div class=\"evt-unit\"><div class=\"evt-unit__num\" id=\"evt-cd-h\">--<\/div><div class=\"evt-unit__lbl\">Horas<\/div><\/div>\n          <div class=\"evt-unit\"><div class=\"evt-unit__num\" id=\"evt-cd-m\">--<\/div><div class=\"evt-unit__lbl\">Min<\/div><\/div>\n          <div class=\"evt-unit\"><div class=\"evt-unit__num\" id=\"evt-cd-s\">--<\/div><div class=\"evt-unit__lbl\">Seg<\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Columna derecha: imagen flotante -->\n    <div class=\"evt-hero__visual\">\n      <div class=\"evt-img-wrap\">\n        <div class=\"evt-img-placeholder\" id=\"evt-img-box\">\n          <img decoding=\"async\" src=\"https:\/\/assist.com.co\/wp-content\/uploads\/2024\/02\/fintech-finance.webp\" alt=\"Eventos tecnol\u00f3gicos y tendencias TI \u2014 Assist Consultores 2026\">\n          <div class=\"evt-img-overlay\"><\/div>\n          <div class=\"evt-img-badge\">\n            <div class=\"evt-img-badge__dot\"><\/div>\n            <span class=\"evt-img-badge__text\">Agenda 2026 \u00b7 Latam<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n  <div class=\"evt-hero__scroll\"><div class=\"evt-hero__scroll-line\"><\/div><\/div>\n<\/section>\n<\/div>\n\n<script>\n(function(){\n\n  \/* \u2500\u2500\u2500 Canvas de part\u00edculas \u2500\u2500\u2500 *\/\n  function startCanvas(){\n    const canvas = document.getElementById('evt-canvas');\n    if(!canvas) return;\n    const hero = canvas.closest('.evt-hero');\n    const ctx = canvas.getContext('2d');\n    let W, H, nodes = [], animId;\n    const COUNT = 55;\n\n    function resize(){\n      W = canvas.width  = hero.offsetWidth  || window.innerWidth;\n      H = canvas.height = hero.offsetHeight || 560;\n    }\n    function rand(a,b){ return Math.random()*(b-a)+a; }\n\n    function init(){\n      nodes = [];\n      for(let i=0;i<COUNT;i++){\n        \/* Nodos grandes azul el\u00e9ctrico como en la referencia,\n           con algunos m\u00e1s peque\u00f1os blancos dispersos *\/\n        const big = Math.random() < 0.35;\n        nodes.push({\n          x: rand(0,W), y: rand(0,H),\n          vx: rand(-0.18,0.18), vy: rand(-0.18,0.18),\n          r:  big ? rand(4,7) : rand(1.2,2.5),\n          big,\n          pulse: rand(0, Math.PI*2),\n          pulseSpeed: rand(0.02, 0.045)\n        });\n      }\n    }\n\n    function draw(){\n      ctx.fillStyle = '#071A39';\n      ctx.fillRect(0,0,W,H);\n\n      const LINK_DIST = 170;\n\n      for(let i=0;i<nodes.length;i++){\n        const a = nodes[i];\n        for(let j=i+1;j<nodes.length;j++){\n          const b = nodes[j];\n          const dx=a.x-b.x, dy=a.y-b.y;\n          const dist=Math.sqrt(dx*dx+dy*dy);\n          if(dist<LINK_DIST){\n            const t = 1 - dist\/LINK_DIST;\n            ctx.beginPath();\n            ctx.moveTo(a.x,a.y); ctx.lineTo(b.x,b.y);\n            ctx.strokeStyle = `rgba(80,160,255,${t*0.65})`;\n            ctx.lineWidth = t*1.8;\n            ctx.stroke();\n          }\n        }\n      }\n\n      for(let i=0;i<nodes.length;i++){\n        const n = nodes[i];\n        n.pulse += n.pulseSpeed;\n        const r = n.big ? n.r + Math.sin(n.pulse) * 1.4 : n.r;\n\n        if(n.big){\n          \/* Halo exterior *\/\n          ctx.beginPath(); ctx.arc(n.x,n.y,r+7,0,Math.PI*2);\n          ctx.fillStyle=`rgba(60,140,255,0.07)`; ctx.fill();\n          \/* Halo medio *\/\n          ctx.beginPath(); ctx.arc(n.x,n.y,r+3,0,Math.PI*2);\n          ctx.fillStyle=`rgba(70,150,255,0.2)`; ctx.fill();\n          \/* N\u00facleo azul brillante *\/\n          ctx.beginPath(); ctx.arc(n.x,n.y,r,0,Math.PI*2);\n          ctx.fillStyle=`rgba(90,170,255,0.95)`; ctx.fill();\n          \/* Centro blanco *\/\n          ctx.beginPath(); ctx.arc(n.x,n.y,r*0.4,0,Math.PI*2);\n          ctx.fillStyle=`rgba(230,245,255,1)`; ctx.fill();\n        } else {\n          ctx.beginPath(); ctx.arc(n.x,n.y,r,0,Math.PI*2);\n          ctx.fillStyle=`rgba(150,200,255,0.6)`; ctx.fill();\n        }\n\n        n.x += n.vx; n.y += n.vy;\n        if(n.x < -10) n.x = W+10;\n        if(n.x > W+10) n.x = -10;\n        if(n.y < -10) n.y = H+10;\n        if(n.y > H+10) n.y = -10;\n      }\n      animId = requestAnimationFrame(draw);\n    }\n\n    resize(); init(); draw();\n    window.addEventListener('resize',()=>{ cancelAnimationFrame(animId); resize(); init(); draw(); });\n  }\n\n  \/* \u2500\u2500\u2500 Contador regresivo \u2500\u2500\u2500 *\/\n  const EVENTS = [\n    { name:'<strong>HashiCorp Tech Session<\/strong> \u00b7 Bogot\u00e1', date: new Date('2026-05-28T08:00:00-05:00') },\n    { name:'<strong>IBM Tech Summit<\/strong> \u00b7 Bogot\u00e1',         date: new Date('2026-06-10T08:00:00-05:00') },\n    { name:'<strong>LATAM Architecture Day<\/strong>',           date: new Date('2026-08-14T08:00:00-05:00') },\n    { name:'<strong>ANDICOM 2026<\/strong> \u00b7 Colombia',          date: new Date('2026-09-02T08:00:00-05:00') },\n    { name:'<strong>TECH IBM<\/strong> \u00b7 Ecuador',               date: new Date('2026-10-15T08:00:00-05:00') },\n  ];\n\n  function pad(n){ return String(n).padStart(2,'0'); }\n\n  function updateCountdown(){\n    const now = Date.now();\n    const next = EVENTS.find(e => e.date.getTime() > now);\n    if(!next){\n      document.getElementById('evt-next-name').textContent = 'Agenda 2026 completada';\n      ['d','h','m','s'].forEach(u=>{ const el=document.getElementById('evt-cd-'+u); if(el) el.textContent='00'; });\n      return;\n    }\n    document.getElementById('evt-next-name').innerHTML = next.name;\n    const diff = Math.max(0, next.date.getTime() - now);\n    const d = Math.floor(diff\/86400000);\n    const h = Math.floor((diff%86400000)\/3600000);\n    const m = Math.floor((diff%3600000)\/60000);\n    const s = Math.floor((diff%60000)\/1000);\n    document.getElementById('evt-cd-d').textContent = pad(d);\n    document.getElementById('evt-cd-h').textContent = pad(h);\n    document.getElementById('evt-cd-m').textContent = pad(m);\n    document.getElementById('evt-cd-s').textContent = pad(s);\n  }\n\n  if(document.readyState==='complete'){\n    startCanvas(); updateCountdown(); setInterval(updateCountdown,1000);\n  } else {\n    window.addEventListener('load',()=>{ startCanvas(); updateCountdown(); setInterval(updateCountdown,1000); });\n  }\n\n})();\n<\/script>\n\n<!-- ===================== M\u00d3DULO 2: KPIs ===================== -->\n<style>\n.evt-kpis {\n  background: #071A39;\n  padding: 0 0 40px;\n  font-family: 'Montserrat', sans-serif;\n  \/* Full-bleed igual que el hero *\/\n  width: 100vw !important;\n  position: relative;\n  left: 50%;\n  margin-left: -50vw !important;\n  margin-right: -50vw !important;\n  box-sizing: border-box;\n}\n.evt-kpis__inner {\n  max-width: 960px;\n  margin: 0 auto;\n  padding: 0 24px;\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0,1fr));\n  gap: 12px;\n}\n.evt-kpi-card {\n  background: rgba(255,255,255,0.04);\n  border: 1px solid rgba(255,255,255,0.08);\n  border-radius: 10px;\n  padding: 20px 16px;\n  text-align: center;\n  transition: border-color 0.2s, background 0.2s;\n}\n.evt-kpi-card:hover {\n  border-color: rgba(255,46,56,0.35);\n  background: rgba(255,46,56,0.05);\n}\n.evt-kpi-card__number {\n  font-size: 38px;\n  font-weight: 900;\n  color: #FF2E38;\n  line-height: 1;\n  margin-bottom: 6px;\n  letter-spacing: -0.02em;\n}\n.evt-kpi-card__label {\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n  color: rgba(255,255,255,0.45);\n}\n@media(max-width:600px){\n  .evt-kpis__inner { grid-template-columns: repeat(2,1fr); }\n}\n<\/style>\n\n<div class=\"evt-kpis\">\n  <div class=\"evt-kpis__inner\">\n    <div class=\"evt-kpi-card\">\n      <div class=\"evt-kpi-card__number\" data-target=\"9\">0<\/div>\n      <div class=\"evt-kpi-card__label\">Eventos presenciales<\/div>\n    <\/div>\n    <div class=\"evt-kpi-card\">\n      <div class=\"evt-kpi-card__number\" data-target=\"8\">0<\/div>\n      <div class=\"evt-kpi-card__label\">Webinars 2026<\/div>\n    <\/div>\n    <div class=\"evt-kpi-card\">\n      <div class=\"evt-kpi-card__number\" data-target=\"5\">0<\/div>\n      <div class=\"evt-kpi-card__label\">Con patrocinio<\/div>\n    <\/div>\n    <div class=\"evt-kpi-card\">\n      <div class=\"evt-kpi-card__number\" data-target=\"7\">0<\/div>\n      <div class=\"evt-kpi-card__label\">Pa\u00edses presencia<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  function countUp(el){\n    const target = parseInt(el.dataset.target);\n    let current = 0;\n    const step = Math.ceil(target \/ 30);\n    const timer = setInterval(()=>{\n      current = Math.min(current+step, target);\n      el.textContent = current;\n      if(current >= target) clearInterval(timer);\n    }, 40);\n  }\n  const observer = new IntersectionObserver((entries)=>{\n    entries.forEach(e=>{\n      if(e.isIntersecting){\n        e.target.querySelectorAll('[data-target]').forEach(countUp);\n        observer.unobserve(e.target);\n      }\n    });\n  },{threshold:0.4});\n  const kpis = document.querySelector('.evt-kpis');\n  if(kpis) observer.observe(kpis);\n})();\n<\/script>\n\n<!-- ================ M\u00d3DULO 3: CALENDARIO ================= -->\n<style>\n.evt-calendar {\n  background: #f5f6f8;\n  padding: 56px 0 72px;\n  font-family: 'Montserrat', sans-serif;\n  overflow: hidden;\n  box-sizing: border-box;\n  \/* Full-bleed igual que el hero *\/\n  width: 100vw !important;\n  position: relative;\n  left: 50%;\n  margin-left: -50vw !important;\n  margin-right: -50vw !important;\n}\n.evt-calendar__inner {\n  max-width: 960px;\n  margin: 0 auto;\n  padding: 0 24px;\n  box-sizing: border-box;\n}\n.evt-calendar__header {\n  display: flex;\n  align-items: flex-end;\n  justify-content: space-between;\n  gap: 16px;\n  margin-bottom: 32px;\n  flex-wrap: wrap;\n}\n.evt-calendar__title-block {}\n.evt-calendar__label {\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.12em;\n  text-transform: uppercase;\n  color: #FF2E38;\n  margin-bottom: 6px;\n}\n.evt-calendar__title {\n  font-size: clamp(22px,4vw,34px);\n  font-weight: 900;\n  color: #071A39;\n  line-height: 1.1;\n  letter-spacing: -0.02em;\n  margin: 0;\n}\n.evt-filters {\n  display: flex;\n  gap: 6px;\n  flex-wrap: wrap;\n}\n.evt-filter-btn {\n  font-family: 'Montserrat', sans-serif;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.07em;\n  text-transform: uppercase;\n  padding: 7px 14px;\n  border-radius: 100px;\n  border: 1.5px solid #d1d5db;\n  background: #fff;\n  color: #6b7280;\n  cursor: pointer;\n  transition: all 0.18s;\n}\n.evt-filter-btn:hover { border-color: #071A39; color: #071A39; }\n.evt-filter-btn.active {\n  background: #071A39;\n  border-color: #071A39;\n  color: #fff;\n}\n\/* Recording highlight *\/\n.evt-recording {\n  background: #071A39;\n  border-radius: 12px;\n  padding: 20px 24px;\n  display: flex;\n  align-items: center;\n  gap: 20px;\n  margin-bottom: 32px;\n  position: relative;\n  overflow: hidden;\n}\n.evt-recording::before {\n  content:'';\n  position:absolute; top:0; right:0;\n  width:200px; height:100%;\n  background: linear-gradient(90deg, transparent, rgba(255,46,56,0.08));\n}\n.evt-recording__play {\n  width:48px; height:48px; border-radius:50%;\n  background:#FF2E38;\n  display:flex; align-items:center; justify-content:center;\n  flex-shrink:0; cursor:pointer;\n  transition: transform 0.15s;\n}\n.evt-recording__play:hover { transform:scale(1.08); }\n.evt-recording__play svg { margin-left:3px; }\n.evt-recording__text { flex:1; }\n.evt-recording__badge {\n  font-size: 10px; font-weight:700; letter-spacing:.1em;\n  text-transform:uppercase; color:#FF6B70;\n  margin-bottom:4px;\n}\n.evt-recording__title {\n  font-size:14px; font-weight:700; color:#fff; line-height:1.3;\n}\n.evt-recording__meta {\n  font-size:12px; color:rgba(255,255,255,0.45); margin-top:3px;\n}\n.evt-recording__cta {\n  font-size:12px; font-weight:700; color:#FF2E38;\n  text-decoration:none; white-space:nowrap;\n  transition:color 0.15s;\n}\n.evt-recording__cta:hover { color:#ff6b70; }\n\n\/* Cards grid *\/\n.evt-grid {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0,1fr));\n  gap: 16px;\n}\n@media(max-width:640px){ .evt-grid { grid-template-columns:1fr; } }\n\n\/* Card base *\/\n.evt-card {\n  background: #fff;\n  border-radius: 12px;\n  border: 1.5px solid #e5e7eb;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  transition: box-shadow 0.2s, transform 0.15s, border-color 0.2s;\n  position: relative;\n}\n.evt-card:hover {\n  box-shadow: 0 8px 28px rgba(7,26,57,0.1);\n  transform: translateY(-2px);\n  border-color: #cbd5e1;\n}\n.evt-card.is-past {\n  opacity: 0.55;\n  filter: grayscale(0.3);\n}\n.evt-card.is-past:hover { opacity: 0.7; }\n.evt-card.is-featured {\n  border-color: rgba(255,46,56,0.35);\n  grid-column: span 2;\n}\n@media(max-width:640px){ .evt-card.is-featured { grid-column:span 1; } }\n\n\/* Left accent bar by type *\/\n.evt-card::before {\n  content:'';\n  position:absolute; left:0; top:0; bottom:0;\n  width:3px;\n  border-radius:12px 0 0 12px;\n}\n.evt-card[data-type=\"webinar\"]::before    { background:#378ADD; }\n.evt-card[data-type=\"congreso\"]::before  { background:#3B6D11; }\n.evt-card[data-type=\"summit\"]::before    { background:#BA7517; }\n.evt-card[data-type=\"tech\"]::before      { background:#533AB7; }\n.evt-card[data-type=\"evento\"]::before    { background:#0F6E56; }\n.evt-card[data-type=\"feria\"]::before     { background:#993C1D; }\n\n.evt-card__head {\n  padding: 18px 20px 12px 20px;\n  display: flex;\n  align-items: flex-start;\n  gap: 14px;\n}\n.evt-card__date {\n  background: #071A39;\n  border-radius: 8px;\n  padding: 8px 10px;\n  text-align: center;\n  min-width: 46px;\n  flex-shrink: 0;\n}\n.evt-card__date-day { font-size:20px; font-weight:900; color:#fff; line-height:1; }\n.evt-card__date-month { font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,0.5); margin-top:2px; }\n\n.evt-card__meta { flex:1; min-width:0; }\n.evt-card__badges { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:6px; }\n.evt-badge {\n  font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;\n  padding:3px 8px; border-radius:100px;\n}\n.evt-badge--webinar  { background:#E6F1FB; color:#185FA5; }\n.evt-badge--congreso { background:#EAF3DE; color:#3B6D11; }\n.evt-badge--summit   { background:#FAEEDA; color:#854F0B; }\n.evt-badge--tech     { background:#EEEDFE; color:#3C3489; }\n.evt-badge--evento   { background:#E1F5EE; color:#085041; }\n.evt-badge--feria    { background:#FAECE7; color:#712B13; }\n.evt-badge--patrocinio { background:#071A39; color:#fff; }\n.evt-badge--past     { background:#f3f4f6; color:#9ca3af; }\n.evt-badge--soon     { background:#FEF9C3; color:#854D0E; }\n\n.evt-card__name {\n  font-size:14px; font-weight:700; color:#071A39; line-height:1.3;\n  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;\n}\n\n.evt-card__body {\n  padding: 0 20px 16px 20px;\n  flex:1;\n  display:flex; flex-direction:column;\n}\n.evt-card__desc {\n  font-size:12px; color:#6b7280; line-height:1.6;\n  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;\n  margin-bottom:14px; flex:1;\n}\n.evt-card__footer {\n  display:flex; align-items:center; justify-content:space-between; gap:8px;\n  flex-wrap:wrap;\n}\n.evt-card__location {\n  font-size:11px; color:#9ca3af; font-weight:500;\n  display:flex; align-items:center; gap:4px;\n}\n.evt-card__location svg { flex-shrink:0; }\n\n.evt-card__cta {\n  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;\n  padding:7px 14px; border-radius:6px; text-decoration:none;\n  transition:background 0.18s, color 0.18s;\n  white-space:nowrap;\n}\n.evt-card__cta--primary { background:#FF2E38; color:#fff; }\n.evt-card__cta--primary:hover { background:#c9151e; }\n.evt-card__cta--ghost { background:#f1f5f9; color:#071A39; }\n.evt-card__cta--ghost:hover { background:#e2e8f0; }\n.evt-card__cta--past { background:#f3f4f6; color:#9ca3af; cursor:default; }\n\n\/* No results *\/\n.evt-empty { text-align:center; padding:48px 0; color:#9ca3af; font-size:14px; }\n\n\/* Past label ribbon *\/\n.evt-card__past-label {\n  position:absolute; top:12px; right:12px;\n  font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;\n  background:#f3f4f6; color:#9ca3af; padding:3px 8px; border-radius:100px;\n}\n<\/style>\n\n<section class=\"evt-calendar\" id=\"evt-calendar\">\n  <div class=\"evt-calendar__inner\">\n\n    <div class=\"evt-calendar__header\">\n      <div class=\"evt-calendar__title-block\">\n        <div class=\"evt-calendar__label\">Assist Consultores \u00b7 2026<\/div>\n        <h2 class=\"evt-calendar__title\">Agenda de Eventos<\/h2>\n      <\/div>\n      <div class=\"evt-filters\" id=\"evt-filters\">\n        <button class=\"evt-filter-btn active\" data-filter=\"all\">Todos<\/button>\n        <button class=\"evt-filter-btn\" data-filter=\"webinar\">Webinars<\/button>\n        <button class=\"evt-filter-btn\" data-filter=\"congreso\">Congresos<\/button>\n        <button class=\"evt-filter-btn\" data-filter=\"summit\">Summits<\/button>\n        <button class=\"evt-filter-btn\" data-filter=\"tech\">Tech Session<\/button>\n        <button class=\"evt-filter-btn\" data-filter=\"patrocinio\">Patrocinio<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- Recording highlight -->\n    <div class=\"evt-recording\">\n      <div class=\"evt-recording__play\" onclick=\"window.open('https:\/\/assist.com.co\/agentes-digitales-automatizacion-empresarial\/','_blank')\">\n        <svg width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\"><polygon points=\"5,3 19,12 5,21\" fill=\"#fff\"\/><\/svg>\n      <\/div>\n      <div class=\"evt-recording__text\">\n        <div class=\"evt-recording__badge\">\ud83c\udfa5 Grabaci\u00f3n disponible<\/div>\n        <div class=\"evt-recording__title\">Technical Summit 2025 \u00b7 Sesi\u00f3n 1 \u2014 Transformaci\u00f3n Digital e IA H\u00edbrida<\/div>\n        <div class=\"evt-recording__meta\">Primera de 6 sesiones exclusivas<\/div>\n      <\/div>\n      <a href=\"https:\/\/assist.com.co\/agentes-digitales-automatizacion-empresarial\/\" target=\"_blank\" class=\"evt-recording__cta\">Ver ahora \u2192<\/a>\n    <\/div>\n\n    <!-- Cards grid -->\n    <div class=\"evt-grid\" id=\"evt-grid\">\n      <!-- Cards rendered by JS below -->\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function(){\n  \/* Fecha real del navegador \u2014 no hardcodeada *\/\n  const TODAY = new Date();\n  TODAY.setHours(0,0,0,0);\n\n  const events = [\n    {\n      id:1, type:'webinar', patrocinio:false,\n      dateStr:'09 Abr', month:'ABR', dateObj: new Date('2026-04-09'),\n      name:'Rocketbot \u00d7 Assist',\n      title:'Agentes Digitales: Automatizaci\u00f3n a Toma de Decisiones Aut\u00f3noma',\n      desc:'Trabajadores digitales que ejecutan, deciden y escalan tu operaci\u00f3n 24\/7. Speakers: Carlos Mart\u00edn & Sandra Castellanos.',\n      location:'Virtual \u00b7 Rocketbot Ecosystem',\n      time:'10:00 AM COT',\n      cta:'Ver grabaci\u00f3n', ctaUrl:'https:\/\/assist.com.co\/agentes-digitales-automatizacion-empresarial\/', ctaStyle:'past'\n    },\n    {\n      id:2, type:'congreso', patrocinio:false,\n      dateStr:'13\u201319 Abr', month:'ABR', dateObj: new Date('2026-04-13'),\n      name:'User Conf',\n      title:'Conferencia de Usuarios y Tecnolog\u00eda Empresarial',\n      desc:'Conferencia de usuarios y tecnolog\u00eda empresarial en Bogot\u00e1. Asistencia y representaci\u00f3n de Assist Consultores.',\n      location:'Bogot\u00e1, Colombia',\n      time:null,\n      cta:'Pr\u00f3ximamente', ctaUrl:null, ctaStyle:'ghost'\n    },\n    {\n      id:4, type:'congreso', patrocinio:false,\n      dateStr:'15 Abr', month:'ABR', dateObj: new Date('2026-04-15'),\n      name:'AWS Summit Bogot\u00e1 2026',\n      title:'El evento m\u00e1s grande de Amazon Web Services en Colombia',\n      desc:'Innovaciones en cloud computing, machine learning y arquitecturas serverless. \u00c1gora Bogot\u00e1.',\n      location:'\u00c1gora Bogot\u00e1',\n      time:'Todo el d\u00eda',\n      cta:'Pr\u00f3ximamente', ctaUrl:null, ctaStyle:'ghost'\n    },\n    {\n      id:5, type:'summit', patrocinio:true,\n      dateStr:'16 Abr', month:'ABR', dateObj: new Date('2026-04-16'),\n      name:'Banking Tech Summit',\n      title:'Banking Tech Summit Costa Rica 2026',\n      desc:'L\u00edderes del sector financiero centroamericano. Estrategia, arquitectura tecnol\u00f3gica e IA aplicada a la banca digital.',\n      location:'Costa Rica',\n      time:null,\n      cta:'Ver evento', ctaUrl:'https:\/\/www.bankingtechsummit.net\/', ctaStyle:'primary'\n    },\n    {\n      id:3, type:'tech', patrocinio:false,\n      dateStr:'28 May', month:'MAY', dateObj: new Date('2026-05-28'),\n      name:'HashiCorp Tech Session',\n      title:'Infraestructura como C\u00f3digo con Terraform \u00b7 Bogot\u00e1 2026',\n      desc:'Gesti\u00f3n de infraestructura empresarial con demostraci\u00f3n en vivo de Terraform junto a IBM y BOB. Automatizaci\u00f3n y cloud.',\n      location:'Bogot\u00e1, Colombia',\n      time:'Todo el d\u00eda',\n      cta:'Inscribirse', ctaUrl:'https:\/\/assist.com.co\/hashicorp-tech-session-bogota-2026\/', ctaStyle:'primary'\n    },\n    {\n      id:8, type:'summit', patrocinio:true,\n      dateStr:'10 Jun', month:'JUN', dateObj: new Date('2026-06-10'),\n      name:'IBM Tech Summit Bogot\u00e1',\n      title:'IBM Tech Summit 2026: Liderando con IA Ag\u00e9ntica',\n      desc:'Cumbre tecnol\u00f3gica IBM en Colombia. Assist como patrocinador con soluciones de integraci\u00f3n, automatizaci\u00f3n e IA.',\n      location:'Bogot\u00e1, Colombia',\n      time:null,\n      cta:'Pr\u00f3ximamente', ctaUrl:null, ctaStyle:'ghost'\n    },\n    {\n      id:9, type:'evento', patrocinio:false,\n      dateStr:'14 Ago', month:'AGO', dateObj: new Date('2026-08-14'),\n      name:'LATAM Architecture Day',\n      title:'LATAM Architecture Day 2026 \u2014 Tercera Edici\u00f3n',\n      desc:'El evento de referencia para arquitectos de software y tecnolog\u00eda en Latinoam\u00e9rica. Tercera edici\u00f3n en Bogot\u00e1.',\n      location:'Bogot\u00e1, Colombia',\n      time:null,\n      cta:'Pr\u00f3ximamente', ctaUrl:null, ctaStyle:'ghost'\n    },\n    {\n      id:10, type:'congreso', patrocinio:true,\n      dateStr:'02\u201304 Sep', month:'SEP', dateObj: new Date('2026-09-02'),\n      name:'ANDICOM 2026',\n      title:'Congreso Internacional de TIC \u00b7 ANDICOM 2026',\n      desc:'Congreso Internacional de TIC. Pre-congreso 1 Sep. Assist como patrocinador oficial con soluciones de integraci\u00f3n y IA.',\n      location:'Complejo Las Am\u00e9ricas, Colombia',\n      time:null,\n      cta:'Pr\u00f3ximamente', ctaUrl:null, ctaStyle:'ghost'\n    },\n    {\n      id:11, type:'summit', patrocinio:true,\n      dateStr:'15\u201316 Oct', month:'OCT', dateObj: new Date('2026-10-15'),\n      name:'TECH IBM Ecuador',\n      title:'TECH IBM \u00b7 Ecuador 2026',\n      desc:'Evento tecnol\u00f3gico IBM en Ecuador. Assist como patrocinador oficial, presentando soluciones de integraci\u00f3n y automatizaci\u00f3n.',\n      location:'Quito, Ecuador',\n      time:null,\n      cta:'Pr\u00f3ximamente', ctaUrl:null, ctaStyle:'ghost'\n    }\n  ];\n\n  \/* Ordenar siempre por fecha ascendente \u2014 independiente del orden del array *\/\n  events.sort((a,b) => a.dateObj - b.dateObj);\n\n  \/* Diagn\u00f3stico \u2014 visible en consola del navegador (F12) *\/\n  console.log('[EVT] TODAY:', TODAY.toDateString());\n  console.log('[EVT] Eventos cargados:', events.map(e => e.name + ' \u2192 ' + e.dateObj.toDateString() + ' | past:' + (e.dateObj < TODAY)));\n\n  function isPast(ev){\n    const evDate = new Date(ev.dateObj);\n    evDate.setHours(0,0,0,0);\n    return evDate < TODAY;\n  }\n  function isToday(ev){\n    const evDate = new Date(ev.dateObj);\n    evDate.setHours(0,0,0,0);\n    return evDate.getTime() === TODAY.getTime();\n  }\n\n  function badgeHTML(ev){\n    const map = {webinar:'webinar',congreso:'congreso',summit:'summit',tech:'tech',evento:'evento',feria:'feria'};\n    const labels = {webinar:'Webinar',congreso:'Congreso',summit:'Summit',tech:'Tech Session',evento:'Evento',feria:'Feria'};\n    let html = `<span class=\"evt-badge evt-badge--${map[ev.type]||'evento'}\">${labels[ev.type]||ev.type}<\/span>`;\n    if(ev.patrocinio) html += `<span class=\"evt-badge evt-badge--patrocinio\">Patrocinio<\/span>`;\n    if(isPast(ev)) html += `<span class=\"evt-badge evt-badge--past\">Pasado<\/span>`;\n    else if(isToday(ev)) html += `<span class=\"evt-badge evt-badge--soon\">Hoy<\/span>`;\n    return html;\n  }\n\n  function ctaHTML(ev){\n    if(ev.ctaStyle==='past') return `<a href=\"${ev.ctaUrl}\" target=\"_blank\" class=\"evt-card__cta evt-card__cta--ghost\" style=\"background:#f1f5f9;color:#071A39\">${ev.cta}<\/a>`;\n    if(ev.ctaStyle==='primary' && ev.ctaUrl) return `<a href=\"${ev.ctaUrl}\" target=\"_blank\" class=\"evt-card__cta evt-card__cta--primary\">${ev.cta}<\/a>`;\n    return `<span class=\"evt-card__cta evt-card__cta--past\">${ev.cta}<\/span>`;\n  }\n\n  function renderCard(ev){\n    const past = isPast(ev);\n    return `\n    <div class=\"evt-card${past?' is-past':''}\" data-type=\"${ev.type}\" data-patrocinio=\"${ev.patrocinio}\">\n      ${past?'<div class=\"evt-card__past-label\">Pasado<\/div>':''}\n      <div class=\"evt-card__head\">\n        <div class=\"evt-card__date\">\n          <div class=\"evt-card__date-day\">${ev.dateStr.split(' ')[0]}<\/div>\n          <div class=\"evt-card__date-month\">${ev.month}<\/div>\n        <\/div>\n        <div class=\"evt-card__meta\">\n          <div class=\"evt-card__badges\">${badgeHTML(ev)}<\/div>\n          <div class=\"evt-card__name\">${ev.name}<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"evt-card__body\">\n        <p class=\"evt-card__desc\">${ev.title}<\/p>\n        <div class=\"evt-card__footer\">\n          <div class=\"evt-card__location\">\n            <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#9ca3af\" stroke-width=\"2\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg>\n            ${ev.location}${ev.time?` \u00b7 ${ev.time}`:''}\n          <\/div>\n          ${ctaHTML(ev)}\n        <\/div>\n      <\/div>\n    <\/div>`;\n  }\n\n  function renderGrid(filter){\n    const grid = document.getElementById('evt-grid');\n    let filtered = events;\n    if(filter==='patrocinio') filtered = events.filter(e=>e.patrocinio);\n    else if(filter!=='all') filtered = events.filter(e=>e.type===filter);\n    console.log('[EVT] Renderizando', filtered.length, 'eventos con filtro:', filter);\n    filtered.forEach(e => console.log(' -', e.name, e.dateStr, '| past:', isPast(e)));\n    if(!filtered.length){\n      grid.innerHTML = '<div class=\"evt-empty\">No hay eventos en esta categor\u00eda.<\/div>';\n      return;\n    }\n    grid.innerHTML = filtered.map(renderCard).join('');\n  }\n\n  \/\/ Filters\n  document.getElementById('evt-filters').addEventListener('click',function(e){\n    const btn = e.target.closest('.evt-filter-btn');\n    if(!btn) return;\n    document.querySelectorAll('.evt-filter-btn').forEach(b=>b.classList.remove('active'));\n    btn.classList.add('active');\n    renderGrid(btn.dataset.filter);\n  });\n\n  renderGrid('all');\n})();\n<\/script>\n\n<!-- ===================== M\u00d3DULO 4: CURSOR PLAY ===================== -->\n<!-- Pegar en el mismo Code Module del calendario, al final -->\n<style>\n\/* Cursor oculto solo sobre la zona de video *\/\n.evt-recording { cursor: none; }\n\n\/* Cursor personalizado \u2014 sigue el mouse *\/\n.evt-play-cursor {\n  position: fixed;\n  top: 0; left: 0;\n  width: 88px; height: 88px;\n  border-radius: 50%;\n  background: #FF2E38;\n  display: flex; flex-direction: column;\n  align-items: center; justify-content: center; gap: 3px;\n  pointer-events: none;\n  z-index: 99999;\n  opacity: 0;\n  transform: translate(-50%, -50%) scale(0.5);\n  transition: opacity 0.22s ease, transform 0.22s cubic-bezier(0.34,1.56,0.64,1);\n  will-change: transform, opacity;\n  \/* Separar el transition del movimiento (que va por JS sin transition) *\/\n}\n.evt-play-cursor.is-visible {\n  opacity: 1;\n  transform: translate(-50%, -50%) scale(1);\n}\n.evt-play-cursor.is-clicking {\n  transform: translate(-50%, -50%) scale(0.88);\n}\n\n\/* Icono play *\/\n.evt-play-cursor__icon {\n  width: 0; height: 0;\n  border-style: solid;\n  border-width: 9px 0 9px 16px;\n  border-color: transparent transparent transparent #fff;\n  margin-left: 4px;\n}\n.evt-play-cursor__label {\n  font-family: 'Montserrat', sans-serif;\n  font-size: 9px; font-weight: 700;\n  letter-spacing: 0.1em; text-transform: uppercase;\n  color: rgba(255,255,255,0.9);\n  line-height: 1;\n}\n\n\/* Anillo exterior pulsante *\/\n.evt-play-cursor__ring {\n  position: absolute; inset: -6px;\n  border-radius: 50%;\n  border: 1.5px solid rgba(255,46,56,0.45);\n  animation: evt-ring-pulse 1.8s ease-in-out infinite;\n}\n@keyframes evt-ring-pulse {\n  0%,100% { transform: scale(1); opacity: 0.6; }\n  50%      { transform: scale(1.12); opacity: 0.15; }\n}\n<\/style>\n\n<!-- Elemento del cursor \u2014 fuera del flujo, fixed -->\n<div class=\"evt-play-cursor\" id=\"evt-play-cursor\">\n  <div class=\"evt-play-cursor__ring\"><\/div>\n  <div class=\"evt-play-cursor__icon\"><\/div>\n  <div class=\"evt-play-cursor__label\">Dale Play<\/div>\n<\/div>\n\n<script>\n(function(){\n  const cursor   = document.getElementById('evt-play-cursor');\n  const zone     = document.querySelector('.evt-recording');\n  if(!cursor || !zone) return;\n\n  let mouseX = 0, mouseY = 0;\n  let curX   = 0, curY   = 0;\n  let raf, inside = false;\n\n  \/* Movimiento suave con lerp *\/\n  function lerp(a, b, t){ return a + (b - a) * t; }\n\n  function loop(){\n    curX = lerp(curX, mouseX, 0.18);\n    curY = lerp(curY, mouseY, 0.18);\n    cursor.style.left = curX + 'px';\n    cursor.style.top  = curY + 'px';\n    raf = requestAnimationFrame(loop);\n  }\n\n  document.addEventListener('mousemove', function(e){\n    mouseX = e.clientX;\n    mouseY = e.clientY;\n  });\n\n  zone.addEventListener('mouseenter', function(){\n    inside = true;\n    cursor.classList.add('is-visible');\n    if(!raf) loop();\n  });\n\n  zone.addEventListener('mouseleave', function(){\n    inside = false;\n    cursor.classList.remove('is-visible');\n    cancelAnimationFrame(raf);\n    raf = null;\n  });\n\n  zone.addEventListener('mousedown', function(){\n    cursor.classList.add('is-clicking');\n  });\n  zone.addEventListener('mouseup', function(){\n    cursor.classList.remove('is-clicking');\n  });\n\n  \/* Clic en la zona abre el video *\/\n  zone.addEventListener('click', function(){\n    window.open('https:\/\/youtu.be\/801KkHbd-pg?si=rFhl2wwNtLYYMwI4\/', '_blank');\n  });\n})();\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_block_section preset--module--divi-section--default\">\n<div class=\"et_pb_row_1 et_pb_row et_block_row\">\n<div class=\"et_pb_column_1 et_pb_column et_pb_column_1_2 et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module preset--module--divi-text--df96b77a-cd4f-44a8-a771-2d6347592b53\"><div class=\"et_pb_text_inner\"><h2><em>Newsletter<\/em><\/h2>\n<\/div><\/div>\n\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module preset--module--divi-text--41d5859c-fbaa-458a-88e4-5d886857f235\"><div class=\"et_pb_text_inner\"><p><strong>Suscr\u00edbete a nuestro newsletter<\/strong> y recibe las \u00faltimas tendencias, eventos del sector TI y lo m\u00e1s importante en tecnolog\u00eda. Mantente a la vanguardia y asegura de estar al d\u00eda en el competitivo mundo digital.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_2 et_pb_column et_pb_column_1_2 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_0_wrapper preset--module--divi-button--94ef7aca-dcd9-4f9d-93b2-efa3466cebc7_wrapper\"><a class=\"et_pb_button_0 et_pb_button et_pb_bg_layout_light et_pb_module et_block_module preset--module--divi-button--94ef7aca-dcd9-4f9d-93b2-efa3466cebc7\" href=\"https:\/\/www.linkedin.com\/newsletters\/assist-trends-newsletter-ti-7039635282630955008\/\">\u00daNETE AHORA<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-14550","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Tendencias TI y eventos tecnol\u00f3gicos - Assist Consultores<\/title>\n<meta name=\"description\" content=\"Participa en los eventos tecnol\u00f3gicos m\u00e1s relevantes de 2025 y descubre las tendencias clave en TI para fortalecer tus estrategias de negocio.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/assist.com.co\/en\/tendencias-ti-eventos\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Eventos tecnol\u00f3gicos y tendencias TI\" \/>\n<meta property=\"og:description\" content=\"Con\u00e9ctate con l\u00edderes del sector, participa en eventos exclusivos y descubre las tendencias TI que marcar\u00e1n el 2025. \u00a1No te quedes atr\u00e1s!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/assist.com.co\/en\/tendencias-ti-eventos\/\" \/>\n<meta property=\"og:site_name\" content=\"Assist Consultores\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T15:32:06+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Tendencias TI y eventos tecnol\u00f3gicos\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/assist.com.co\\\/tendencias-ti-eventos\\\/\",\"url\":\"https:\\\/\\\/assist.com.co\\\/tendencias-ti-eventos\\\/\",\"name\":\"Tendencias TI y eventos tecnol\u00f3gicos - Assist Consultores\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/assist.com.co\\\/#website\"},\"datePublished\":\"2022-11-03T20:32:07+00:00\",\"dateModified\":\"2026-04-24T15:32:06+00:00\",\"description\":\"Participa en los eventos tecnol\u00f3gicos m\u00e1s relevantes de 2025 y descubre las tendencias clave en TI para fortalecer tus estrategias de negocio.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/assist.com.co\\\/tendencias-ti-eventos\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/assist.com.co\\\/tendencias-ti-eventos\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/assist.com.co\\\/tendencias-ti-eventos\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/assist.com.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tendencias TI y eventos tecnol\u00f3gicos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/assist.com.co\\\/#website\",\"url\":\"https:\\\/\\\/assist.com.co\\\/\",\"name\":\"Assist Consultores\",\"description\":\"Transformando Capacidades Empresariales en Sistemas Innovadores\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/assist.com.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tendencias TI y eventos tecnol\u00f3gicos - Assist Consultores","description":"Participa en los eventos tecnol\u00f3gicos m\u00e1s relevantes de 2025 y descubre las tendencias clave en TI para fortalecer tus estrategias de negocio.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/assist.com.co\/en\/tendencias-ti-eventos\/","og_locale":"en_US","og_type":"article","og_title":"Eventos tecnol\u00f3gicos y tendencias TI","og_description":"Con\u00e9ctate con l\u00edderes del sector, participa en eventos exclusivos y descubre las tendencias TI que marcar\u00e1n el 2025. \u00a1No te quedes atr\u00e1s!","og_url":"https:\/\/assist.com.co\/en\/tendencias-ti-eventos\/","og_site_name":"Assist Consultores","article_modified_time":"2026-04-24T15:32:06+00:00","twitter_card":"summary_large_image","twitter_title":"Tendencias TI y eventos tecnol\u00f3gicos","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/assist.com.co\/tendencias-ti-eventos\/","url":"https:\/\/assist.com.co\/tendencias-ti-eventos\/","name":"Tendencias TI y eventos tecnol\u00f3gicos - Assist Consultores","isPartOf":{"@id":"https:\/\/assist.com.co\/#website"},"datePublished":"2022-11-03T20:32:07+00:00","dateModified":"2026-04-24T15:32:06+00:00","description":"Participa en los eventos tecnol\u00f3gicos m\u00e1s relevantes de 2025 y descubre las tendencias clave en TI para fortalecer tus estrategias de negocio.","breadcrumb":{"@id":"https:\/\/assist.com.co\/tendencias-ti-eventos\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/assist.com.co\/tendencias-ti-eventos\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/assist.com.co\/tendencias-ti-eventos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/assist.com.co\/"},{"@type":"ListItem","position":2,"name":"Tendencias TI y eventos tecnol\u00f3gicos"}]},{"@type":"WebSite","@id":"https:\/\/assist.com.co\/#website","url":"https:\/\/assist.com.co\/","name":"Assist Consultores","description":"Transformando Capacidades Empresariales en Sistemas Innovadores","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/assist.com.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/assist.com.co\/en\/wp-json\/wp\/v2\/pages\/14550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/assist.com.co\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/assist.com.co\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/assist.com.co\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/assist.com.co\/en\/wp-json\/wp\/v2\/comments?post=14550"}],"version-history":[{"count":59,"href":"https:\/\/assist.com.co\/en\/wp-json\/wp\/v2\/pages\/14550\/revisions"}],"predecessor-version":[{"id":24641,"href":"https:\/\/assist.com.co\/en\/wp-json\/wp\/v2\/pages\/14550\/revisions\/24641"}],"wp:attachment":[{"href":"https:\/\/assist.com.co\/en\/wp-json\/wp\/v2\/media?parent=14550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}