{"id":2682,"date":"2026-02-05T20:29:48","date_gmt":"2026-02-05T20:29:48","guid":{"rendered":"https:\/\/solucionesgeomaticas.com\/?page_id=2682"},"modified":"2026-04-21T07:00:09","modified_gmt":"2026-04-21T02:00:09","slug":"inicio","status":"publish","type":"page","link":"https:\/\/solucionesgeomaticas.com\/","title":{"rendered":"Pagina de inicio"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2682\" class=\"elementor elementor-2682\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-caba116 e-con-full e-flex e-con e-parent\" data-id=\"caba116\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-75c11dd elementor-widget elementor-widget-html\" data-id=\"75c11dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"sg-section sg-gridbg sg-hero sg-fullbleed\" id=\"inicio\">\r\n  <div class=\"sg-wrap sg-wrap--hero\">\r\n    <div class=\"sg-hero__grid\">\r\n\r\n      <!-- BRAND ROW (fila completa, sin \u201cpancarta\u201d, logo grande sin recorte) -->\r\n      <div class=\"sg-hero__brandbar\" aria-label=\"Soluciones Geom\u00e1ticas\">\r\n        <img\r\n          class=\"sg-hero__brandImg\"\r\n          src=\"https:\/\/solucionesgeomaticas.com\/wp-content\/uploads\/2023\/11\/LogoSG_Color.png\"\r\n          alt=\"Soluciones Geom\u00e1ticas \u2014 Inteligencia territorial Santander\"\r\n          loading=\"eager\"\r\n          decoding=\"async\"\r\n        \/>\r\n\r\n        <div class=\"sg-hero__brandText\">\r\n          <div class=\"sg-hero__brandName\">Soluciones Geom\u00e1ticas<\/div>\r\n          <div class=\"sg-hero__brandMeta\">Santander, Colombia \u00b7 SIG \u00b7 Catastro \u00b7 Geoanal\u00edtica<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- COPY -->\r\n      <div class=\"sg-hero__copy\">\r\n\r\n        <!-- IMPORTANTE SEO\/AIOSEO: H2 con Focus Keyword (Subheadings) -->\r\n        <h2 class=\"sg-kicker\">Inteligencia territorial Santander \u00b7 Gobierno y empresas<\/h2>\r\n\r\n        <h1 class=\"sg-h1\">\r\n          Inteligencia territorial para<br\/>\r\n          <span class=\"sg-hero__accent\">decisiones estrat\u00e9gicas<\/span>\r\n        <\/h1>\r\n\r\n        <!-- IMPORTANTE SEO\/AIOSEO: primer p\u00e1rrafo con Focus Keyword (Introduction + Density) -->\r\n        <p class=\"sg-sub\">\r\n          <strong>Inteligencia territorial Santander<\/strong>: convertimos datos geoespaciales y administrativos en tableros, mapas y modelos listos para operar en\r\n          <strong>ArcGIS<\/strong> y <strong>QGIS<\/strong>, con foco en control operativo y decisiones de alto impacto.\r\n        <\/p>\r\n\r\n        <div class=\"sg-hero__chips\" aria-label=\"Especialidades\">\r\n          <span class=\"sg-hero__chip\">Dashboards<\/span>\r\n          <span class=\"sg-hero__chip\">Catastro multiprop\u00f3sito<\/span>\r\n          <span class=\"sg-hero__chip\">Anal\u00edtica territorial<\/span>\r\n          <span class=\"sg-hero__chip\">ArcGIS \u00b7 QGIS<\/span>\r\n          <span class=\"sg-hero__chip\">Survey123<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"sg-actions\">\r\n          <a class=\"sg-btn sg-btn--primary\"\r\n             href=\"https:\/\/wa.me\/573187348220?text=Hola,%20me%20interesa%20una%20cotizaci\u00f3n%20de%20Soluciones%20Geom\u00e1ticas\"\r\n             target=\"_blank\" rel=\"noopener\">\r\n            Cotizar por WhatsApp\r\n          <\/a>\r\n          <a class=\"sg-btn sg-btn--ghost\" href=\"#servicios\">Ver servicios<\/a>\r\n        <\/div>\r\n\r\n        <div class=\"sg-hero__trust\">\r\n          Respuesta r\u00e1pida \u00b7 Diagn\u00f3stico inicial \u00b7 Ruta clara de acci\u00f3n\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- MEDIA (anclado arriba, alineado al copy) -->\r\n      <div class=\"sg-hero__media\">\r\n        <div class=\"sg-yt\" data-yt=\"fyJzu_kF1xw\" role=\"button\" tabindex=\"0\" aria-label=\"Reproducir video de Soluciones Geom\u00e1ticas\">\r\n          <div class=\"poster\" aria-hidden=\"true\"><\/div>\r\n\r\n          <div class=\"overlay\" aria-hidden=\"true\">\r\n            <button class=\"play\" type=\"button\" aria-label=\"Reproducir\">\r\n              <svg viewBox=\"0 0 68 48\" aria-hidden=\"true\" class=\"sg-yt__playSvg\">\r\n                <path d=\"M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z\" fill=\"#c00\"><\/path>\r\n                <path d=\"M 45,24 27,14 27,34\" fill=\"#fff\"><\/path>\r\n              <\/svg>\r\n            <\/button>\r\n\r\n            <div class=\"sg-yt__label\">\r\n              <div class=\"sg-yt__labelTitle\">Ver video<\/div>\r\n              <div class=\"sg-yt__labelSub\">Conozca nuestro enfoque de trabajo<\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-hero__note\">Haga clic para reproducir (carga optimizada \/ lazy).<\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <style>\r\n    \/* =========================================================\r\n       #inicio \u2014 HERO FULL BLEED + GRID REAL (equilibrio)\r\n       Ajusta el page-id si cambia.\r\n       ========================================================= *\/\r\n\r\n    body.page-id-2682 #inicio.sg-fullbleed{\r\n      position: relative !important;\r\n      left: 50% !important;\r\n      right: 50% !important;\r\n      margin-left: -50vw !important;\r\n      margin-right: -50vw !important;\r\n      width: 100vw !important;\r\n      overflow: visible !important;\r\n    }\r\n\r\n    body.page-id-2682 #inicio{\r\n      padding: clamp(56px, 6vw, 92px) 0 clamp(44px, 5vw, 74px);\r\n      overflow: visible !important;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-wrap--hero{\r\n      max-width: 1600px !important;\r\n      margin: 0 auto !important;\r\n      padding: 0 clamp(16px, 3vw, 44px) !important;\r\n    }\r\n\r\n    \/* GRID: fila 1 (brand) full width, fila 2 (copy + media) *\/\r\n    body.page-id-2682 #inicio .sg-hero__grid{\r\n      display: grid;\r\n      grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);\r\n      grid-template-areas:\r\n        \"brand brand\"\r\n        \"copy  media\";\r\n      column-gap: clamp(18px, 3.2vw, 56px);\r\n      row-gap: clamp(18px, 2.4vw, 34px);\r\n      align-items: start;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-hero__brandbar{ grid-area: brand; }\r\n    body.page-id-2682 #inicio .sg-hero__copy{ grid-area: copy; }\r\n    body.page-id-2682 #inicio .sg-hero__media{ grid-area: media; }\r\n\r\n    \/* ===== BRAND ROW (sin caja gigante, pero con \u201cpresencia\u201d) ===== *\/\r\n    body.page-id-2682 #inicio .sg-hero__brandbar{\r\n      display: flex;\r\n      align-items: center;\r\n      gap: clamp(14px, 1.5vw, 20px);\r\n      width: 100%;\r\n      margin-bottom: clamp(6px, 1vw, 14px);\r\n      background: transparent !important;\r\n      border: 0 !important;\r\n      padding: 0 !important;\r\n      backdrop-filter: none !important;\r\n      -webkit-backdrop-filter: none !important;\r\n    }\r\n\r\n    \/* Logo grande SIN recorte *\/\r\n    body.page-id-2682 #inicio .sg-hero__brandImg{\r\n      height: clamp(74px, 5.2vw, 118px);\r\n      width: auto;\r\n      display: block;\r\n      filter: drop-shadow(0 18px 36px rgba(0,0,0,.55));\r\n      transform: translateY(1px);\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-hero__brandText{\r\n      min-width: 0;\r\n      display: grid;\r\n      gap: 6px;\r\n      align-content: center;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-hero__brandName{\r\n      font-weight: 900;\r\n      font-size: clamp(18px, 1.55vw, 26px);\r\n      line-height: 1.05;\r\n      color: rgba(255,255,255,.96);\r\n      letter-spacing: -0.02em;\r\n      white-space: nowrap;\r\n      overflow: hidden;\r\n      text-overflow: ellipsis;\r\n      max-width: 60ch;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-hero__brandMeta{\r\n      font-size: 11px;\r\n      letter-spacing: .14em;\r\n      text-transform: uppercase;\r\n      color: rgba(255,255,255,.62);\r\n      white-space: nowrap;\r\n      overflow: hidden;\r\n      text-overflow: ellipsis;\r\n      max-width: 68ch;\r\n    }\r\n\r\n    \/* COPY (peso visual fuerte, buen ritmo) *\/\r\n    body.page-id-2682 #inicio .sg-hero__copy{\r\n      padding-top: 0;\r\n      background: transparent !important;\r\n      border: 0 !important;\r\n      box-shadow: none !important;\r\n      max-width: 860px;\r\n    }\r\n\r\n    \/* Kicker ahora es H2, le forzamos look \u201ckicker\u201d (sin est\u00e9tica de heading grande) *\/\r\n    body.page-id-2682 #inicio .sg-kicker{\r\n      letter-spacing: .14em;\r\n      text-transform: uppercase;\r\n      font-size: 12px;\r\n      opacity: .74;\r\n      margin: 0 0 12px;\r\n      font-weight: 700;\r\n      line-height: 1.2;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-h1{\r\n      font-weight: 900;\r\n      font-size: clamp(44px, 4.9vw, 76px);\r\n      line-height: 1.01;\r\n      margin: 0 0 14px;\r\n      color: #F7F9FF;\r\n      text-shadow: 0 2px 22px rgba(0,0,0,.35);\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-hero__accent{\r\n      color: var(--brand-gold, #C9A75A);\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-sub{\r\n      font-size: clamp(15px, 1.2vw, 18px);\r\n      line-height: 1.65;\r\n      color: rgba(247,249,255,.88) !important;\r\n      max-width: 66ch;\r\n      margin: 0 0 16px;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-hero__chips{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap:10px;\r\n      margin: 10px 0 18px;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-hero__chip{\r\n      font-size: 12px;\r\n      letter-spacing: .06em;\r\n      padding: 9px 12px;\r\n      border-radius: 999px;\r\n      background: rgba(255,255,255,.06);\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      color: rgba(255,255,255,.86);\r\n      white-space: nowrap;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-hero__trust{\r\n      margin-top: 14px;\r\n      color: rgba(247,249,255,.72);\r\n      font-size: 14px;\r\n    }\r\n\r\n    \/* MEDIA: anclado arriba, alineado con el inicio del copy *\/\r\n    body.page-id-2682 #inicio .sg-hero__media{\r\n      align-self: start;\r\n      justify-self: end;\r\n      padding-top: 0;\r\n      width: min(720px, 100%);\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-yt{\r\n      position: relative;\r\n      width: 100%;\r\n      border-radius: 22px;\r\n      overflow: hidden;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background: rgba(255,255,255,.03);\r\n      box-shadow: 0 22px 70px rgba(0,0,0,.40);\r\n      cursor: pointer;\r\n      aspect-ratio: 16 \/ 9;\r\n      min-height: clamp(260px, 24vw, 420px);\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-yt .poster{\r\n      position:absolute;\r\n      inset:0;\r\n      background-size: cover;\r\n      background-position: center;\r\n      transform: scale(1);\r\n      transition: transform .25s ease, filter .25s ease;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-yt .overlay{\r\n      position:absolute;\r\n      inset:0;\r\n      display:grid;\r\n      place-items:center;\r\n      background: linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.42));\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-yt .play{\r\n      background: transparent !important;\r\n      border: 0 !important;\r\n      padding: 0 !important;\r\n      box-shadow: none !important;\r\n      line-height: 0;\r\n      transform: translateY(-8px);\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-yt__playSvg{\r\n      width: 62px;\r\n      height: 62px;\r\n      filter: drop-shadow(0 18px 35px rgba(0,0,0,.60));\r\n      transition: transform .18s ease;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-yt__label{\r\n      margin-top: 10px;\r\n      text-align: center;\r\n      padding: 10px 14px;\r\n      border-radius: 16px;\r\n      background: rgba(0,0,0,.38);\r\n      border: 1px solid rgba(255,255,255,.12);\r\n      backdrop-filter: blur(6px);\r\n      -webkit-backdrop-filter: blur(6px);\r\n      max-width: 340px;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-yt__labelTitle{ font-weight: 800; }\r\n    body.page-id-2682 #inicio .sg-yt__labelSub{\r\n      margin-top: 3px;\r\n      font-size: 13px;\r\n      color: rgba(255,255,255,.78);\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-yt:hover .poster{\r\n      transform: scale(1.05);\r\n      filter: saturate(1.05) contrast(1.06);\r\n    }\r\n    body.page-id-2682 #inicio .sg-yt:hover .sg-yt__playSvg{\r\n      transform: scale(1.07);\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-yt iframe{\r\n      position: absolute;\r\n      inset: 0;\r\n      width: 100%;\r\n      height: 100%;\r\n      border: 0;\r\n      display: block;\r\n    }\r\n\r\n    body.page-id-2682 #inicio .sg-hero__note{\r\n      margin-top: 12px;\r\n      font-size: 13px;\r\n      color: rgba(255,255,255,.62);\r\n    }\r\n\r\n    \/* Responsive *\/\r\n    @media (max-width: 980px){\r\n      body.page-id-2682 #inicio .sg-hero__grid{\r\n        grid-template-columns: 1fr;\r\n        grid-template-areas:\r\n          \"brand\"\r\n          \"copy\"\r\n          \"media\";\r\n      }\r\n      body.page-id-2682 #inicio .sg-hero__media{\r\n        justify-self: stretch;\r\n        width: 100%;\r\n      }\r\n      body.page-id-2682 #inicio .sg-hero__brandMeta{\r\n        white-space: normal;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <script>\r\n  (() => {\r\n    function thumb(id){\r\n      return `https:\/\/i.ytimg.com\/vi\/${id}\/hqdefault.jpg`;\r\n    }\r\n\r\n    function stopAll(){\r\n      document.querySelectorAll('#inicio .sg-yt.is-playing').forEach(el=>{\r\n        el.classList.remove('is-playing');\r\n        const ifr = el.querySelector('iframe');\r\n        if (ifr) ifr.remove();\r\n        const poster = el.querySelector('.poster');\r\n        const overlay = el.querySelector('.overlay');\r\n        if (poster) poster.style.display = '';\r\n        if (overlay) overlay.style.display = '';\r\n      });\r\n    }\r\n\r\n    function play(el){\r\n      const id = el.getAttribute('data-yt');\r\n      if(!id) return;\r\n\r\n      stopAll();\r\n      el.classList.add('is-playing');\r\n\r\n      const poster = el.querySelector('.poster');\r\n      const overlay = el.querySelector('.overlay');\r\n      if (poster) poster.style.display = 'none';\r\n      if (overlay) overlay.style.display = 'none';\r\n\r\n      const iframe = document.createElement('iframe');\r\n      iframe.setAttribute('allowfullscreen','');\r\n      iframe.setAttribute('title','YouTube video player');\r\n      iframe.setAttribute('referrerpolicy','strict-origin-when-cross-origin');\r\n      iframe.setAttribute('allow','accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share');\r\n\r\n      iframe.src =\r\n        `https:\/\/www.youtube-nocookie.com\/embed\/${id}` +\r\n        `?autoplay=1&controls=1&fs=1&rel=0&modestbranding=1&playsinline=1`;\r\n\r\n      el.appendChild(iframe);\r\n    }\r\n\r\n    function init(){\r\n      const els = document.querySelectorAll('#inicio .sg-yt');\r\n      if(!els.length) return;\r\n\r\n      els.forEach(el=>{\r\n        if (el.dataset.sgReady === \"1\") return;\r\n        el.dataset.sgReady = \"1\";\r\n\r\n        const id = el.getAttribute('data-yt');\r\n        const poster = el.querySelector('.poster');\r\n        if(id && poster) poster.style.backgroundImage = `url(\"${thumb(id)}\")`;\r\n\r\n        el.addEventListener('click', () => play(el));\r\n        el.addEventListener('keydown', (e) => {\r\n          if(e.key === 'Enter' || e.key === ' '){\r\n            e.preventDefault();\r\n            play(el);\r\n          }\r\n        });\r\n      });\r\n    }\r\n\r\n    document.addEventListener('DOMContentLoaded', init);\r\n    setTimeout(init, 600);\r\n  })();\r\n  <\/script>\r\n<\/section>\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-81d1424 elementor-widget elementor-widget-html\" data-id=\"81d1424\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"sg-section sg-gridbg sg-fullbleed\" id=\"casos\">\r\n  <div class=\"sg-wrap\">\r\n    <div class=\"sg-kicker\">EXPERIENCIA<\/div>\r\n    <h2 class=\"sg-h2\">Casos en video<\/h2>\r\n    <p class=\"sg-sub\">\r\n      Casos reales en gobierno y empresas: anal\u00edtica territorial, log\u00edstica, catastro y control operativo.\r\n    <\/p>\r\n\r\n    <div class=\"sg-vc\" data-autoplay=\"1\" data-interval=\"9500\" aria-label=\"Carrusel de casos en video\">\r\n\r\n      <!-- STAGE (video principal + texto) -->\r\n      <div class=\"sg-vc__stage\">\r\n        <div class=\"sg-vc__media sg-yt\" role=\"button\" tabindex=\"0\" aria-label=\"Reproducir video seleccionado\">\r\n          <div class=\"poster\" aria-hidden=\"true\"><\/div>\r\n\r\n          <div class=\"overlay\" aria-hidden=\"true\">\r\n            <button class=\"play\" type=\"button\" aria-label=\"Reproducir\">\r\n              <svg viewBox=\"0 0 68 48\" aria-hidden=\"true\" class=\"sg-vc__playSvg\">\r\n                <path d=\"M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z\" fill=\"#c00\"><\/path>\r\n                <path d=\"M 45,24 27,14 27,34\" fill=\"#fff\"><\/path>\r\n              <\/svg>\r\n            <\/button>\r\n\r\n            <div class=\"sg-vc__label\">\r\n              <div class=\"sg-vc__labelTitle\">Ver caso<\/div>\r\n              <div class=\"sg-vc__labelSub\">Haga clic para reproducir<\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-vc__meta sg-panel\" aria-live=\"polite\">\r\n          <div class=\"sg-vc__metaTop\">\r\n            <span class=\"sg-tag sg-vc__tag\">\/\/<\/span>\r\n\r\n            <div class=\"sg-vc__nav\" aria-label=\"Controles del carrusel\">\r\n              <button class=\"sg-vc__navBtn\" type=\"button\" data-dir=\"-1\" aria-label=\"Anterior\">\u2039<\/button>\r\n              <button class=\"sg-vc__navBtn\" type=\"button\" data-dir=\"1\" aria-label=\"Siguiente\">\u203a<\/button>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <h3 class=\"sg-title sg-vc__title\">\u2014<\/h3>\r\n          <p class=\"sg-desc sg-vc__desc\">\u2014<\/p>\r\n\r\n          <div class=\"sg-actions sg-vc__actions\">\r\n            <a class=\"sg-btn sg-btn--ghost sg-vc__open\" href=\"#\" target=\"_blank\" rel=\"noopener\">\r\n              Abrir en YouTube\r\n            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- RAIL (selector) -->\r\n      <aside class=\"sg-vc__rail\" aria-label=\"Seleccione un caso\">\r\n          <button class=\"sg-vc__item\" type=\"button\"\r\n  data-yt=\"mWKPKlcul3A\"\r\n  data-url=\"https:\/\/www.youtube.com\/watch?v=mWKPKlcul3A\"\r\n  data-tag=\"\/\/ GESTI\u00d3N TERRITORIAL \u00b7 ACUEDUCTO\"\r\n  data-title=\"Gesti\u00f3n territorial para redes y trabajo en campo\"\r\n  data-desc=\"Gesti\u00f3n territorial aplicada al acueducto: redes, levantamiento en campo, organizaci\u00f3n operativa de la informaci\u00f3n y soporte GIS para decisiones t\u00e9cnicas.\"\r\n  aria-selected=\"false\">\r\n  <span class=\"sg-vc__thumb\" aria-hidden=\"true\"><\/span>\r\n  <span class=\"sg-vc__itemText\">\r\n    <span class=\"sg-vc__itemTitle\">Gesti\u00f3n territorial<\/span>\r\n    <span class=\"sg-vc__itemSub\">Redes + trabajo en campo<\/span>\r\n  <\/span>\r\n<\/button>\r\n\r\n<button class=\"sg-vc__item\" type=\"button\"\r\n  data-yt=\"GOVcZ5VWe6M\"\r\n  data-url=\"https:\/\/www.youtube.com\/watch?v=GOVcZ5VWe6M\"\r\n  data-tag=\"\/\/ POL\u00cdTICAS P\u00daBLICAS \u00b7 ARCGIS\"\r\n  data-title=\"Pol\u00edticas p\u00fablicas con ArcGIS\"\r\n  data-desc=\"ArcGIS aplicado a pol\u00edticas p\u00fablicas: integraci\u00f3n de datos, an\u00e1lisis territorial e insumos visuales para planear, evaluar y tomar decisiones con enfoque espacial.\"\r\n  aria-selected=\"false\">\r\n  <span class=\"sg-vc__thumb\" aria-hidden=\"true\"><\/span>\r\n  <span class=\"sg-vc__itemText\">\r\n    <span class=\"sg-vc__itemTitle\">Pol\u00edticas p\u00fablicas<\/span>\r\n    <span class=\"sg-vc__itemSub\">An\u00e1lisis territorial con ArcGIS<\/span>\r\n  <\/span>\r\n<\/button>\r\n        <button class=\"sg-vc__item\" type=\"button\"\r\n          data-yt=\"K1FYluRzal4\"\r\n          data-url=\"https:\/\/www.youtube.com\/watch?v=K1FYluRzal4\"\r\n          data-tag=\"\/\/ TRACKING \u00b7 2026\"\r\n          data-title=\"Tracking electoral con datos reales (2026)\"\r\n          data-desc=\"Mapas, control y estrategia en campa\u00f1a: segmentaci\u00f3n territorial, tableros de seguimiento y decisiones basadas en evidencia en tiempo real.\"\r\n          aria-selected=\"true\">\r\n          <span class=\"sg-vc__thumb\" aria-hidden=\"true\"><\/span>\r\n          <span class=\"sg-vc__itemText\">\r\n            <span class=\"sg-vc__itemTitle\">Tracking electoral (2026)<\/span>\r\n            <span class=\"sg-vc__itemSub\">Control y estrategia en campa\u00f1a<\/span>\r\n          <\/span>\r\n        <\/button>\r\n\r\n        <button class=\"sg-vc__item\" type=\"button\"\r\n          data-yt=\"d66n7Js0lZ8\"\r\n          data-url=\"https:\/\/www.youtube.com\/watch?v=d66n7Js0lZ8\"\r\n          data-tag=\"\/\/ DESARROLLO REGIONAL\"\r\n          data-title=\"Rutas Agroecol\u00f3gicas de Santander\"\r\n          data-desc=\"Narrativa territorial aplicada: nodos productivos, turismo rural y vocaciones integradas en un sistema visual y estrat\u00e9gico para impulsar regiones.\"\r\n          aria-selected=\"false\">\r\n          <span class=\"sg-vc__thumb\" aria-hidden=\"true\"><\/span>\r\n          <span class=\"sg-vc__itemText\">\r\n            <span class=\"sg-vc__itemTitle\">Rutas Agroecol\u00f3gicas<\/span>\r\n            <span class=\"sg-vc__itemSub\">Turismo + vocaci\u00f3n productiva<\/span>\r\n          <\/span>\r\n        <\/button>\r\n\r\n        <button class=\"sg-vc__item\" type=\"button\"\r\n          data-yt=\"P4m9P5rIMdI\"\r\n          data-url=\"https:\/\/www.youtube.com\/watch?v=P4m9P5rIMdI\"\r\n          data-tag=\"\/\/ SERVICIOS P\u00daBLICOS\"\r\n          data-title=\"Catastro de redes ESANT\"\r\n          data-desc=\"Catastro t\u00e9cnico y normalizaci\u00f3n para operaci\u00f3n: estructura de datos, control de calidad y entrega lista para trabajar en entornos GIS.\"\r\n          aria-selected=\"false\">\r\n          <span class=\"sg-vc__thumb\" aria-hidden=\"true\"><\/span>\r\n          <span class=\"sg-vc__itemText\">\r\n            <span class=\"sg-vc__itemTitle\">ESANT \u2014 Redes<\/span>\r\n            <span class=\"sg-vc__itemSub\">Catastro t\u00e9cnico + QA\/QC<\/span>\r\n          <\/span>\r\n        <\/button>\r\n\r\n        <button class=\"sg-vc__item\" type=\"button\"\r\n          data-yt=\"BLjd9yhd-zo\"\r\n          data-url=\"https:\/\/www.youtube.com\/watch?v=BLjd9yhd-zo\"\r\n          data-tag=\"\/\/ GOBIERNO \u00b7 ANAL\u00cdTICA\"\r\n          data-title=\"CPAT \u2014 Central de Procesamiento y Anal\u00edtica Territorial\"\r\n          data-desc=\"Integraci\u00f3n de fuentes, indicadores y tableros para toma de decisiones: una visi\u00f3n territorial operativa para instituciones p\u00fablicas.\"\r\n          aria-selected=\"false\">\r\n          <span class=\"sg-vc__thumb\" aria-hidden=\"true\"><\/span>\r\n          <span class=\"sg-vc__itemText\">\r\n            <span class=\"sg-vc__itemTitle\">CPAT<\/span>\r\n            <span class=\"sg-vc__itemSub\">Procesamiento + anal\u00edtica territorial<\/span>\r\n          <\/span>\r\n        <\/button>\r\n\r\n        <button class=\"sg-vc__item\" type=\"button\"\r\n          data-yt=\"eVg2Q2LqBM8\"\r\n          data-url=\"https:\/\/www.youtube.com\/watch?v=eVg2Q2LqBM8\"\r\n          data-tag=\"\/\/ OPERACI\u00d3N \u00b7 ARC GIS\"\r\n          data-title=\"Servicio de log\u00edstica basado en ArcGIS\"\r\n          data-desc=\"Ruteo, trazabilidad y control operativo: datos para reducir tiempos, optimizar recursos y mejorar la ejecuci\u00f3n en campo.\"\r\n          aria-selected=\"false\">\r\n          <span class=\"sg-vc__thumb\" aria-hidden=\"true\"><\/span>\r\n          <span class=\"sg-vc__itemText\">\r\n            <span class=\"sg-vc__itemTitle\">Log\u00edstica con ArcGIS<\/span>\r\n            <span class=\"sg-vc__itemSub\">Ruteo + trazabilidad<\/span>\r\n          <\/span>\r\n        <\/button>\r\n      <\/aside>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <style>\r\n    \/* =========================================================\r\n       #casos \u2014 FULL BLEED + VIDEO CAROUSEL (premium)\r\n       ========================================================= *\/\r\n\r\n    \/* FULL BLEED real *\/\r\n    body.page-id-2682 #casos.sg-fullbleed{\r\n      position: relative !important;\r\n      left: 50% !important;\r\n      right: 50% !important;\r\n      margin-left: -50vw !important;\r\n      margin-right: -50vw !important;\r\n      width: 100vw !important;\r\n      overflow: visible !important;\r\n    }\r\n\r\n    \/* Container ancho *\/\r\n    body.page-id-2682 #casos .sg-wrap{\r\n      max-width: 1680px !important;\r\n      margin: 0 auto !important;\r\n      padding-left: clamp(16px, 3vw, 56px) !important;\r\n      padding-right: clamp(16px, 3vw, 56px) !important;\r\n    }\r\n\r\n    \/* \u201cM\u00e1s vida\u201d (grid digital m\u00e1s visible SOLO aqu\u00ed) *\/\r\n    body.page-id-2682 #casos{\r\n      position: relative;\r\n      isolation: isolate;\r\n    }\r\n    body.page-id-2682 #casos::before{\r\n      content:\"\";\r\n      position:absolute; inset: -1px;\r\n      z-index:-1;\r\n      pointer-events:none;\r\n      opacity: .22;\r\n      background:\r\n        radial-gradient(900px 520px at 18% 18%, rgba(42,107,255,.22), transparent 60%),\r\n        radial-gradient(760px 520px at 82% 38%, rgba(231,201,138,.16), transparent 62%),\r\n        linear-gradient(to right, rgba(255,255,255,.07) 1px, transparent 1px),\r\n        linear-gradient(to bottom, rgba(255,255,255,.07) 1px, transparent 1px);\r\n      background-size: auto, auto, 56px 56px, 56px 56px;\r\n      mask-image: radial-gradient(ellipse at 50% 40%, rgba(0,0,0,1), rgba(0,0,0,.25) 64%, rgba(0,0,0,0) 82%);\r\n    }\r\n\r\n    \/* Layout *\/\r\n    body.page-id-2682 #casos .sg-vc{\r\n      display: grid;\r\n      grid-template-columns: minmax(0, 9fr) minmax(0, 3fr);\r\n      gap: clamp(16px, 2.2vw, 26px);\r\n      margin-top: 18px;\r\n      align-items: start;\r\n    }\r\n\r\n    \/* Stage *\/\r\n    body.page-id-2682 #casos .sg-vc__stage{\r\n      display: grid;\r\n      grid-template-rows: auto auto;\r\n      gap: 14px;\r\n      min-width: 0;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__media{\r\n      position: relative;\r\n      border-radius: 22px;\r\n      overflow: hidden;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background: rgba(255,255,255,.03);\r\n      box-shadow: 0 22px 70px rgba(0,0,0,.40);\r\n      cursor: pointer;\r\n      min-height: clamp(320px, 28vw, 560px);\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__media .poster{\r\n      position: absolute;\r\n      inset: 0;\r\n      background-size: cover;\r\n      background-position: center;\r\n      transform: scale(1.0);\r\n      transition: transform .28s ease, filter .28s ease, opacity .28s ease;\r\n      opacity: .96;\r\n      filter: saturate(1.05) contrast(1.05);\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__media .overlay{\r\n      position:absolute;\r\n      inset:0;\r\n      display:grid;\r\n      place-items:center;\r\n      background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.46));\r\n    }\r\n\r\n    \/* Quita \u201cborr\u00f3n\u201d: play limpio *\/\r\n    body.page-id-2682 #casos .sg-vc__media .play{\r\n      background: transparent !important;\r\n      border: 0 !important;\r\n      padding: 0 !important;\r\n      box-shadow: none !important;\r\n      backdrop-filter: none !important;\r\n      -webkit-backdrop-filter: none !important;\r\n      line-height: 0;\r\n      transform: translateY(-6px);\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__playSvg{\r\n      width: 66px;\r\n      height: 66px;\r\n      filter: drop-shadow(0 18px 38px rgba(0,0,0,.62));\r\n      transition: transform .18s ease;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__label{\r\n      margin-top: 10px;\r\n      text-align: center;\r\n      padding: 10px 14px;\r\n      border-radius: 16px;\r\n      background: rgba(0,0,0,.38);\r\n      border: 1px solid rgba(255,255,255,.12);\r\n      backdrop-filter: blur(6px);\r\n      -webkit-backdrop-filter: blur(6px);\r\n      max-width: 360px;\r\n    }\r\n    body.page-id-2682 #casos .sg-vc__labelTitle{ font-weight: 800; }\r\n    body.page-id-2682 #casos .sg-vc__labelSub{ margin-top: 3px; font-size: 13px; color: rgba(255,255,255,.78); }\r\n\r\n    body.page-id-2682 #casos .sg-vc__media:hover .poster{\r\n      transform: scale(1.05);\r\n      filter: saturate(1.08) contrast(1.08);\r\n    }\r\n    body.page-id-2682 #casos .sg-vc__media:hover .sg-vc__playSvg{\r\n      transform: scale(1.07);\r\n    }\r\n\r\n    \/* iframe *\/\r\n    body.page-id-2682 #casos .sg-vc__media iframe{\r\n      position: relative;\r\n      width: 100%;\r\n      height: 100%;\r\n      aspect-ratio: 16\/9;\r\n      display: block;\r\n    }\r\n\r\n    \/* Meta *\/\r\n    body.page-id-2682 #casos .sg-vc__meta{\r\n      border-radius: 22px;\r\n      padding: 16px 18px;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.025));\r\n      box-shadow: 0 18px 55px rgba(0,0,0,.30);\r\n      backdrop-filter: blur(10px);\r\n      -webkit-backdrop-filter: blur(10px);\r\n      overflow: hidden;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__metaTop{\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content: space-between;\r\n      gap: 12px;\r\n      margin-bottom: 10px;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__tag{\r\n      opacity: .92;\r\n      letter-spacing: .14em;\r\n      text-transform: uppercase;\r\n      font-size: 12px;\r\n      color: rgba(231,201,138,.95);\r\n      margin: 0;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__title{\r\n      margin: 0 0 8px;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__desc{\r\n      margin: 0;\r\n      color: rgba(245,247,255,.78);\r\n      max-width: 95ch;\r\n    }\r\n\r\n    \/* Nav *\/\r\n    body.page-id-2682 #casos .sg-vc__nav{\r\n      display:flex;\r\n      gap: 8px;\r\n      align-items:center;\r\n    }\r\n    body.page-id-2682 #casos .sg-vc__navBtn{\r\n      width: 38px;\r\n      height: 38px;\r\n      border-radius: 12px;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background: rgba(255,255,255,.05);\r\n      color: rgba(255,255,255,.92);\r\n      cursor: pointer;\r\n      transition: transform .16s ease, background .16s ease, border-color .16s ease;\r\n      font-size: 18px;\r\n      line-height: 1;\r\n    }\r\n    body.page-id-2682 #casos .sg-vc__navBtn:hover{\r\n      transform: translateY(-1px);\r\n      background: rgba(255,255,255,.08);\r\n      border-color: rgba(231,201,138,.26);\r\n    }\r\n\r\n    \/* Rail *\/\r\n    body.page-id-2682 #casos .sg-vc__rail{\r\n      display: flex;\r\n      flex-direction: column;\r\n      gap: 12px;\r\n      min-width: 0;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__item{\r\n      width: 100%;\r\n      display:flex;\r\n      gap: 12px;\r\n      align-items: center;\r\n      text-align: left;\r\n\r\n      padding: 12px;\r\n      border-radius: 18px;\r\n      border: 1px solid rgba(255,255,255,.12);\r\n      background: rgba(255,255,255,.03);\r\n      cursor: pointer;\r\n\r\n      transition: transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__item:hover{\r\n      transform: translateY(-2px);\r\n      background: rgba(255,255,255,.05);\r\n      border-color: rgba(255,255,255,.18);\r\n      box-shadow: 0 18px 50px rgba(0,0,0,.28);\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__item[aria-selected=\"true\"]{\r\n      border-color: rgba(231,201,138,.40);\r\n      background: linear-gradient(180deg, rgba(231,201,138,.12), rgba(255,255,255,.03));\r\n      box-shadow: 0 22px 60px rgba(0,0,0,.34);\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__thumb{\r\n      width: 112px;\r\n      height: 68px;\r\n      border-radius: 14px;\r\n      flex: 0 0 auto;\r\n      background-size: cover;\r\n      background-position: center;\r\n      border: 1px solid rgba(255,255,255,.12);\r\n      box-shadow: 0 14px 34px rgba(0,0,0,.30);\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__itemText{\r\n      min-width: 0;\r\n      display: grid;\r\n      gap: 4px;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__itemTitle{\r\n      font-weight: 800;\r\n      color: rgba(255,255,255,.92);\r\n      letter-spacing: -0.01em;\r\n      white-space: nowrap;\r\n      overflow: hidden;\r\n      text-overflow: ellipsis;\r\n    }\r\n\r\n    body.page-id-2682 #casos .sg-vc__itemSub{\r\n      font-size: 13px;\r\n      color: rgba(255,255,255,.68);\r\n      white-space: nowrap;\r\n      overflow: hidden;\r\n      text-overflow: ellipsis;\r\n    }\r\n\r\n    \/* Animaci\u00f3n cuando cambia el contenido *\/\r\n    body.page-id-2682 #casos .sg-vc__meta.is-swap{\r\n      animation: sgSwap .32s ease both;\r\n    }\r\n    @keyframes sgSwap{\r\n      from{ opacity:.0; transform: translateY(8px); }\r\n      to{ opacity:1; transform: translateY(0); }\r\n    }\r\n\r\n    \/* Responsive *\/\r\n    @media (max-width: 980px){\r\n      body.page-id-2682 #casos .sg-vc{\r\n        grid-template-columns: 1fr;\r\n      }\r\n      body.page-id-2682 #casos .sg-vc__thumb{\r\n        width: 104px;\r\n        height: 64px;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <script>\r\n  (() => {\r\n    const root = document.querySelector('body.page-id-2682 #casos');\r\n    if(!root) return;\r\n\r\n    const vc = root.querySelector('.sg-vc');\r\n    const stage = root.querySelector('.sg-vc__media');\r\n    const poster = root.querySelector('.sg-vc__media .poster');\r\n    const overlay = root.querySelector('.sg-vc__media .overlay');\r\n    const meta = root.querySelector('.sg-vc__meta');\r\n\r\n    const tagEl = root.querySelector('.sg-vc__tag');\r\n    const titleEl = root.querySelector('.sg-vc__title');\r\n    const descEl = root.querySelector('.sg-vc__desc');\r\n    const openEl = root.querySelector('.sg-vc__open');\r\n\r\n    const items = Array.from(root.querySelectorAll('.sg-vc__item'));\r\n    const navBtns = Array.from(root.querySelectorAll('.sg-vc__navBtn'));\r\n\r\n    if(!vc || !stage || !poster || !items.length) return;\r\n\r\n    const autoplay = vc.getAttribute('data-autoplay') === '1';\r\n    const intervalMs = Math.max(4500, parseInt(vc.getAttribute('data-interval') || '9500', 10));\r\n\r\n    let idx = Math.max(0, items.findIndex(b => b.getAttribute('aria-selected') === 'true'));\r\n    let timer = null;\r\n    let paused = false;\r\n\r\n    function ytThumb(id){ return `https:\/\/i.ytimg.com\/vi\/${id}\/hqdefault.jpg`; }\r\n\r\n    function stopPlaying(){\r\n      stage.classList.remove('is-playing');\r\n      const ifr = stage.querySelector('iframe');\r\n      if(ifr) ifr.remove();\r\n      if(poster) poster.style.display = '';\r\n      if(overlay) overlay.style.display = '';\r\n    }\r\n\r\n    function setActive(nextIdx, opts={}) {\r\n      idx = (nextIdx + items.length) % items.length;\r\n\r\n      items.forEach((b,i) => b.setAttribute('aria-selected', i === idx ? 'true' : 'false'));\r\n\r\n      const it = items[idx];\r\n      const id = it.getAttribute('data-yt');\r\n      const url = it.getAttribute('data-url') || '#';\r\n      const tag = it.getAttribute('data-tag') || '\/\/';\r\n      const title = it.getAttribute('data-title') || '';\r\n      const desc = it.getAttribute('data-desc') || '';\r\n\r\n      stopPlaying();\r\n\r\n      \/\/ poster stage\r\n      if(id && poster){\r\n        poster.style.backgroundImage = `url(\"${ytThumb(id)}\")`;\r\n      }\r\n\r\n      \/\/ rail thumbs\r\n      items.forEach(btn => {\r\n        const vid = btn.getAttribute('data-yt');\r\n        const t = btn.querySelector('.sg-vc__thumb');\r\n        if(vid && t && !t.dataset.ready){\r\n          t.style.backgroundImage = `url(\"${ytThumb(vid)}\")`;\r\n          t.dataset.ready = \"1\";\r\n        }\r\n      });\r\n\r\n      \/\/ text meta\r\n      if(tagEl) tagEl.textContent = tag;\r\n      if(titleEl) titleEl.textContent = title;\r\n      if(descEl) descEl.textContent = desc;\r\n      if(openEl) openEl.href = url;\r\n\r\n      \/\/ tiny animation\r\n      if(meta){\r\n        meta.classList.remove('is-swap');\r\n        \/\/ reflow\r\n        void meta.offsetWidth;\r\n        meta.classList.add('is-swap');\r\n      }\r\n\r\n      \/\/ update stage current id\/url\r\n      stage.setAttribute('data-yt', id || '');\r\n      stage.setAttribute('data-url', url || '');\r\n\r\n      if(opts.focusRail){\r\n        it.focus({preventScroll:true});\r\n      }\r\n    }\r\n\r\n    function playCurrent(){\r\n      const id = stage.getAttribute('data-yt');\r\n      if(!id) return;\r\n\r\n      stopPlaying();\r\n      stage.classList.add('is-playing');\r\n\r\n      if(poster) poster.style.display = 'none';\r\n      if(overlay) overlay.style.display = 'none';\r\n\r\n      const iframe = document.createElement('iframe');\r\n      iframe.setAttribute('allowfullscreen','');\r\n      iframe.setAttribute('title','YouTube video player');\r\n      iframe.setAttribute('referrerpolicy','strict-origin-when-cross-origin');\r\n      iframe.setAttribute(\r\n        'allow',\r\n        'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share'\r\n      );\r\n\r\n      iframe.src =\r\n        `https:\/\/www.youtube-nocookie.com\/embed\/${id}` +\r\n        `?autoplay=1&controls=1&fs=1&rel=0&modestbranding=1&playsinline=1`;\r\n\r\n      stage.appendChild(iframe);\r\n    }\r\n\r\n    function next(){ setActive(idx + 1); }\r\n    function prev(){ setActive(idx - 1); }\r\n\r\n    function startTimer(){\r\n      if(!autoplay) return;\r\n      stopTimer();\r\n      timer = setInterval(() => {\r\n        if(paused) return;\r\n        \/\/ si est\u00e1 reproduciendo, no rotar (para no cortar al usuario)\r\n        if(stage.classList.contains('is-playing')) return;\r\n        next();\r\n      }, intervalMs);\r\n    }\r\n\r\n    function stopTimer(){\r\n      if(timer){ clearInterval(timer); timer = null; }\r\n    }\r\n\r\n    \/\/ Events\r\n    items.forEach((btn, i) => {\r\n      btn.addEventListener('click', () => { paused = true; setActive(i); });\r\n      btn.addEventListener('mouseenter', () => { paused = true; });\r\n      btn.addEventListener('mouseleave', () => { paused = false; });\r\n      btn.addEventListener('keydown', (e) => {\r\n        if(e.key === 'Enter' || e.key === ' '){\r\n          e.preventDefault();\r\n          paused = true;\r\n          setActive(i);\r\n        }\r\n      });\r\n    });\r\n\r\n    navBtns.forEach(b => {\r\n      b.addEventListener('click', () => {\r\n        paused = true;\r\n        const dir = parseInt(b.getAttribute('data-dir') || '0', 10);\r\n        setActive(idx + dir);\r\n      });\r\n    });\r\n\r\n    stage.addEventListener('click', () => { paused = true; playCurrent(); });\r\n    stage.addEventListener('keydown', (e) => {\r\n      if(e.key === 'Enter' || e.key === ' '){\r\n        e.preventDefault();\r\n        paused = true;\r\n        playCurrent();\r\n      }\r\n      if(e.key === 'ArrowRight'){ e.preventDefault(); paused = true; next(); }\r\n      if(e.key === 'ArrowLeft'){ e.preventDefault(); paused = true; prev(); }\r\n    });\r\n\r\n    \/\/ Pause on hover overall\r\n    vc.addEventListener('mouseenter', () => { paused = true; });\r\n    vc.addEventListener('mouseleave', () => { paused = false; });\r\n\r\n    \/\/ Init\r\n    setActive(idx);\r\n    startTimer();\r\n\r\n    \/\/ Elementor re-render friendly (suave)\r\n    setTimeout(() => {\r\n      if(!root.querySelector('.sg-vc__thumb[data-ready=\"1\"]')) setActive(idx);\r\n    }, 700);\r\n  })();\r\n  <\/script>\r\n\r\n  <!-- (Opcional) SEO ligero: videos como ItemList -->\r\n  <script type=\"application\/ld+json\">\r\n  {\r\n    \"@context\": \"https:\/\/schema.org\",\r\n    \"@type\": \"ItemList\",\r\n    \"name\": \"Soluciones Geom\u00e1ticas \u2014 Casos en video\",\r\n    \"itemListElement\": [\r\n      { \"@type\": \"ListItem\", \"position\": 1, \"url\": \"https:\/\/www.youtube.com\/watch?v=K1FYluRzal4\" },\r\n      { \"@type\": \"ListItem\", \"position\": 2, \"url\": \"https:\/\/www.youtube.com\/watch?v=d66n7Js0lZ8\" },\r\n      { \"@type\": \"ListItem\", \"position\": 3, \"url\": \"https:\/\/www.youtube.com\/watch?v=P4m9P5rIMdI\" },\r\n      { \"@type\": \"ListItem\", \"position\": 4, \"url\": \"https:\/\/www.youtube.com\/watch?v=BLjd9yhd-zo\" },\r\n      { \"@type\": \"ListItem\", \"position\": 5, \"url\": \"https:\/\/www.youtube.com\/watch?v=eVg2Q2LqBM8\" }\r\n    ]\r\n  }\r\n  <\/script>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-61bd487 elementor-widget elementor-widget-html\" data-id=\"61bd487\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"sg-section\" id=\"servicios\">\r\n  <div class=\"sg-wrap\">\r\n    <p class=\"sg-kicker\">SERVICIOS<\/p>\r\n    <h2 class=\"sg-h2\">Servicios SIG y geoanal\u00edtica para decisiones p\u00fablicas y privadas<\/h2>\r\n    <p class=\"sg-sub\">\r\n      En Soluciones Geom\u00e1ticas desarrollamos proyectos de <strong>Sistemas de Informaci\u00f3n Geogr\u00e1fica (SIG)<\/strong>,\r\n      <strong>catastro multiprop\u00f3sito<\/strong> y <strong>anal\u00edtica territorial<\/strong>. Integramos datos, construimos modelos\r\n      y entregamos resultados listos para operar en <strong>ArcGIS<\/strong> y <strong>QGIS<\/strong>: mapas, tableros, bases y reportes ejecutivos.\r\n    <\/p>\r\n\r\n    <div class=\"sg-grid sg-grid--services\" style=\"margin-top:18px;\">\r\n\r\n      <!-- 1) Multicatastro -->\r\n      <article class=\"sg-card sg-panel\">\r\n        <div class=\"sg-card__head\">\r\n          <p class=\"sg-tag\">\/\/ CATASTRO<\/p>\r\n          <div class=\"sg-icon\" aria-hidden=\"true\">\r\n            <img class=\"sg-icon__img\"\r\n              src=\"https:\/\/solucionesgeomaticas.com\/wp-content\/uploads\/2023\/11\/Multicatastro_Blanco.png\"\r\n              alt=\"\"\r\n              loading=\"lazy\"\r\n              decoding=\"async\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- ANTES: sg-video con YouTube. AHORA: MISMA CAJA, pero con FOTO -->\r\n        <div class=\"sg-video sg-photo\" role=\"img\" aria-label=\"Multicatastro\">\r\n          <div class=\"poster\" aria-hidden=\"true\"\r\n               style=\"background-image:url('https:\/\/solucionesgeomaticas.com\/wp-content\/uploads\/2024\/04\/Untitled_1.19.1-scaled.jpg');\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-body\">\r\n          <h3 class=\"sg-title\">Multicatastro y catastro multiprop\u00f3sito<\/h3>\r\n          <p class=\"sg-desc\">\r\n            Estructuramos y normalizamos informaci\u00f3n predial y territorial para actualizaci\u00f3n catastral, planeaci\u00f3n, recaudo\r\n            y soporte t\u00e9cnico a la gesti\u00f3n municipal.\r\n          <\/p>\r\n          <ul class=\"sg-list\">\r\n            <li>Modelos de datos, consistencia y control de calidad.<\/li>\r\n            <li>Cartograf\u00eda tem\u00e1tica, indicadores y reportes t\u00e9cnicos.<\/li>\r\n            <li>Entregables compatibles con ArcGIS Pro \/ ArcGIS Online \/ QGIS.<\/li>\r\n          <\/ul>\r\n          <div class=\"sg-morehint\" aria-hidden=\"true\">Pase el cursor para ver m\u00e1s<\/div>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <!-- 2) Geoanal\u00edtica -->\r\n      <article class=\"sg-card sg-panel\">\r\n        <div class=\"sg-card__head\">\r\n          <p class=\"sg-tag\">\/\/ ANAL\u00cdTICA<\/p>\r\n          <div class=\"sg-icon\" aria-hidden=\"true\">\r\n            <img class=\"sg-icon__img\"\r\n              src=\"https:\/\/solucionesgeomaticas.com\/wp-content\/uploads\/2023\/11\/Geoanalitica_Blanco.png\"\r\n              alt=\"\"\r\n              loading=\"lazy\"\r\n              decoding=\"async\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-video sg-photo\" role=\"img\" aria-label=\"Geoanal\u00edtica\">\r\n          <div class=\"poster\" aria-hidden=\"true\"\r\n               style=\"background-image:url('https:\/\/solucionesgeomaticas.com\/wp-content\/uploads\/2024\/04\/Untitled_1.20.1-scaled.jpg');\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-body\">\r\n          <h3 class=\"sg-title\">Geoanal\u00edtica y tableros de control<\/h3>\r\n          <p class=\"sg-desc\">\r\n            Convertimos datos geogr\u00e1ficos y administrativos en inteligencia accionable para priorizaci\u00f3n, seguimiento\r\n            y toma de decisiones en gobierno y empresas.\r\n          <\/p>\r\n          <ul class=\"sg-list\">\r\n            <li>Dashboards, mapas de calor, segmentaci\u00f3n e indicadores.<\/li>\r\n            <li>Integraci\u00f3n de fuentes (Excel, encuestas, bases, GIS).<\/li>\r\n            <li>Publicaci\u00f3n y visualizaci\u00f3n en ArcGIS Online o QGIS.<\/li>\r\n          <\/ul>\r\n          <div class=\"sg-morehint\" aria-hidden=\"true\">Pase el cursor para ver m\u00e1s<\/div>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <!-- 3) Activos -->\r\n      <article class=\"sg-card sg-panel\">\r\n        <div class=\"sg-card__head\">\r\n          <p class=\"sg-tag\">\/\/ ACTIVOS<\/p>\r\n          <div class=\"sg-icon\" aria-hidden=\"true\">\r\n            <img class=\"sg-icon__img\"\r\n              src=\"https:\/\/solucionesgeomaticas.com\/wp-content\/uploads\/2026\/02\/BancoSG_Blanco.png\"\r\n              alt=\"\"\r\n              loading=\"lazy\"\r\n              decoding=\"async\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-video sg-photo\" role=\"img\" aria-label=\"Banco inmobiliario\">\r\n          <div class=\"poster\" aria-hidden=\"true\"\r\n               style=\"background-image:url('https:\/\/solucionesgeomaticas.com\/wp-content\/uploads\/2024\/04\/Untitled_1.30.1-scaled.jpg');\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-body\">\r\n          <h3 class=\"sg-title\">Banco inmobiliario y gesti\u00f3n de activos<\/h3>\r\n          <p class=\"sg-desc\">\r\n            Inventarios georreferenciados para control, priorizaci\u00f3n y optimizaci\u00f3n de predios, equipamientos y activos\r\n            territoriales con fichas y trazabilidad.\r\n          <\/p>\r\n          <ul class=\"sg-list\">\r\n            <li>Ficha por activo con ubicaci\u00f3n, estado, uso y evidencias.<\/li>\r\n            <li>Priorizaci\u00f3n de inversi\u00f3n y mantenimiento con criterios.<\/li>\r\n            <li>Mapas y tableros para gerencia y operaci\u00f3n.<\/li>\r\n          <\/ul>\r\n          <div class=\"sg-morehint\" aria-hidden=\"true\">Pase el cursor para ver m\u00e1s<\/div>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <!-- 4) Campo -->\r\n      <article class=\"sg-card sg-panel\">\r\n        <div class=\"sg-card__head\">\r\n          <p class=\"sg-tag\">\/\/ CAMPO<\/p>\r\n          <div class=\"sg-icon\" aria-hidden=\"true\">\r\n            <img class=\"sg-icon__img\"\r\n              src=\"https:\/\/solucionesgeomaticas.com\/wp-content\/uploads\/2024\/05\/3.-LogisitaTerritorialSG_Blanco.png\"\r\n              alt=\"\"\r\n              loading=\"lazy\"\r\n              decoding=\"async\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-video sg-photo\" role=\"img\" aria-label=\"Log\u00edstica territorial\">\r\n          <div class=\"poster\" aria-hidden=\"true\"\r\n               style=\"background-image:url('https:\/\/solucionesgeomaticas.com\/wp-content\/uploads\/2024\/04\/Untitled_1.25.1-scaled.jpg');\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-body\">\r\n          <h3 class=\"sg-title\">Log\u00edstica territorial y operaci\u00f3n en campo<\/h3>\r\n          <p class=\"sg-desc\">\r\n            Planeamos y controlamos levantamientos y capturas de informaci\u00f3n: rutas, equipos, formularios y validaci\u00f3n,\r\n            con entregables consistentes para operaci\u00f3n.\r\n          <\/p>\r\n          <ul class=\"sg-list\">\r\n            <li>Dise\u00f1o de formularios (Survey123\/ODK) y control de calidad.<\/li>\r\n            <li>Ruteo, trazabilidad y seguimiento de brigadas en campo.<\/li>\r\n            <li>Consolidaci\u00f3n y entrega: mapas, BD, reportes y evidencias.<\/li>\r\n          <\/ul>\r\n          <div class=\"sg-morehint\" aria-hidden=\"true\">Pase el cursor para ver m\u00e1s<\/div>\r\n        <\/div>\r\n      <\/article>\r\n\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n\/* =========================================================\r\n   SERVICIOS (#servicios) \u2014 MISMO LOOK\/INTERACCI\u00d3N\r\n   Solo:\r\n   - sg-video ahora muestra FOTO\r\n   - bloque m\u00e1s ancho (sin \u201ccaja\u201d)\r\n   ========================================================= *\/\r\n\r\n\/* 1) HACER EL BLOQUE M\u00c1S ANCHO (full-bleed) SIN TOCAR EL RESTO *\/\r\nbody.page-id-2682 #servicios{\r\n  width: 100vw;\r\n  margin-left: calc(50% - 50vw);\r\n  margin-right: calc(50% - 50vw);\r\n  padding-left: var(--sg-gutter, 24px);\r\n  padding-right: var(--sg-gutter, 24px);\r\n}\r\n\r\n\/* 2) WRAP m\u00e1s ancho SOLO aqu\u00ed (no cambia otras secciones) *\/\r\nbody.page-id-2682 #servicios .sg-wrap{\r\n  max-width: 1600px !important; \/* ajusta: 1480\u20131760 si quieres *\/\r\n  width: 100% !important;\r\n  margin: 0 auto !important;\r\n}\r\n\r\n\/* =========================================================\r\n   TU CSS EXISTENTE (lo dejo igual)\r\n   ========================================================= *\/\r\n\r\n\/* Card glass + hover *\/\r\n#servicios .sg-grid--services .sg-card.sg-panel{\r\n  border-radius: 22px;\r\n  overflow: hidden;\r\n  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));\r\n  border: 1px solid rgba(255,255,255,.10);\r\n  box-shadow: 0 18px 55px rgba(0,0,0,.35);\r\n  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;\r\n}\r\n\r\n#servicios .sg-grid--services .sg-card.sg-panel:hover{\r\n  transform: translateY(-4px);\r\n  border-color: rgba(255,255,255,.18);\r\n  box-shadow: 0 26px 85px rgba(0,0,0,.52);\r\n}\r\n\r\n\/* Header: tag izquierda, \u00edcono derecha *\/\r\n#servicios .sg-grid--services .sg-card__head{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  gap: 14px;\r\n  padding: 16px 16px 12px;\r\n}\r\n\r\n\/* Tag *\/\r\n#servicios .sg-grid--services .sg-tag{\r\n  margin: 0;\r\n  font-size: 12px;\r\n  letter-spacing: .14em;\r\n  text-transform: uppercase;\r\n  opacity: .92;\r\n  white-space: nowrap;\r\n}\r\n\r\n\/* Badge \u00edcono visible *\/\r\n#servicios .sg-grid--services .sg-icon{\r\n  width: 78px;\r\n  height: 78px;\r\n  border-radius: 20px;\r\n  display: grid;\r\n  place-items: center;\r\n\r\n  background: radial-gradient(120% 120% at 30% 20%, rgba(255,255,255,.12), rgba(255,255,255,.06));\r\n  border: 1px solid rgba(255,255,255,.16);\r\n  box-shadow:\r\n    0 14px 40px rgba(0,0,0,.35),\r\n    inset 0 1px 0 rgba(255,255,255,.08);\r\n\r\n  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;\r\n}\r\n\r\n#servicios .sg-grid--services .sg-card:hover .sg-icon{\r\n  transform: translateY(-1px) scale(1.02);\r\n  border-color: rgba(255,255,255,.22);\r\n  box-shadow:\r\n    0 18px 50px rgba(0,0,0,.45),\r\n    inset 0 1px 0 rgba(255,255,255,.10);\r\n}\r\n\r\n\/* Imagen del \u00edcono *\/\r\n#servicios .sg-grid--services .sg-icon__img{\r\n  width: 54px;\r\n  height: 54px;\r\n  max-width: none;\r\n  max-height: none;\r\n  display: block;\r\n\r\n  object-fit: contain;\r\n  object-position: center;\r\n\r\n  transform: scale(1.35);\r\n  transform-origin: center;\r\n\r\n  filter: drop-shadow(0 10px 22px rgba(0,0,0,.45));\r\n}\r\n\r\n\/* \u201csg-video\u201d sigue igual, solo que ahora es FOTO *\/\r\n#servicios .sg-grid--services .sg-video{\r\n  position: relative;\r\n  border-radius: 18px;\r\n  overflow: hidden;\r\n  border: 1px solid rgba(255,255,255,.10);\r\n  box-shadow: 0 14px 35px rgba(0,0,0,.35);\r\n  cursor: default; \/* ya no es bot\u00f3n *\/\r\n}\r\n\r\n\/* Poster con zoom suave *\/\r\n#servicios .sg-grid--services .sg-video .poster{\r\n  position: absolute;\r\n  inset: 0;\r\n  background-size: cover;\r\n  background-position: center;\r\n  transform: scale(1);\r\n  transition: transform .22s ease, filter .22s ease;\r\n  filter: saturate(1.05) contrast(1.05);\r\n}\r\n\r\n\/* Hover zoom (se mantiene) *\/\r\n#servicios .sg-grid--services .sg-card:hover .sg-video .poster{\r\n  transform: scale(1.04);\r\n  filter: saturate(1.08) contrast(1.06);\r\n}\r\n\r\n\/* Cuerpo *\/\r\n#servicios .sg-grid--services .sg-body{\r\n  padding: 14px 18px 18px;\r\n}\r\n\r\n#servicios .sg-grid--services .sg-title{\r\n  margin-top: 14px;\r\n}\r\n\r\n\/* Interacci\u00f3n: lista colapsada + se despliega al hover *\/\r\n#servicios .sg-grid--services .sg-list{\r\n  position: relative;\r\n  margin-top: 10px;\r\n  max-height: 86px;\r\n  overflow: hidden;\r\n  transition: max-height .26s ease;\r\n}\r\n\r\n#servicios .sg-grid--services .sg-list::after{\r\n  content: \"\";\r\n  position: absolute;\r\n  left: 0;\r\n  right: 0;\r\n  bottom: 0;\r\n  height: 44px;\r\n  background: linear-gradient(to bottom, rgba(10,14,22,0), rgba(10,14,22,.88));\r\n  pointer-events: none;\r\n  opacity: 1;\r\n  transition: opacity .18s ease;\r\n}\r\n\r\n#servicios .sg-grid--services .sg-card:hover .sg-list{\r\n  max-height: 220px;\r\n}\r\n#servicios .sg-grid--services .sg-card:hover .sg-list::after{\r\n  opacity: 0;\r\n}\r\n\r\n\/* Hint *\/\r\n#servicios .sg-grid--services .sg-morehint{\r\n  margin-top: 10px;\r\n  font-size: 12px;\r\n  opacity: .65;\r\n  letter-spacing: .06em;\r\n  text-transform: uppercase;\r\n  transition: opacity .18s ease, transform .18s ease;\r\n}\r\n#servicios .sg-grid--services .sg-card:hover .sg-morehint{\r\n  opacity: 0;\r\n  transform: translateY(-4px);\r\n}\r\n\r\n\/* Responsive *\/\r\n@media (max-width: 520px){\r\n  #servicios .sg-grid--services .sg-icon{\r\n    width: 64px;\r\n    height: 64px;\r\n    border-radius: 18px;\r\n  }\r\n  #servicios .sg-grid--services .sg-icon__img{\r\n    width: 44px;\r\n    height: 44px;\r\n    transform: scale(1.30);\r\n  }\r\n  #servicios .sg-grid--services .sg-list{\r\n    max-height: 96px;\r\n  }\r\n}\r\n<\/style>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7789c76 elementor-widget elementor-widget-html\" data-id=\"7789c76\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"sg-section sg-gridbg sg-fullbleed\" id=\"proceso\">\r\n  <div class=\"sg-wrap\">\r\n    <div class=\"sg-kicker\">METODOLOG\u00cdA<\/div>\r\n    <h2 class=\"sg-h2\">C\u00f3mo trabajamos.<\/h2>\r\n    <p class=\"sg-sub\">\r\n      Un flujo claro para convertir datos territoriales en <strong>decisiones<\/strong> y <strong>operaci\u00f3n<\/strong>:\r\n      diagn\u00f3stico \u2192 datos \u2192 modelo \u2192 implementaci\u00f3n.\r\n    <\/p>\r\n\r\n    <div class=\"sg-proc\" aria-label=\"Metodolog\u00eda Soluciones Geom\u00e1ticas\">\r\n      <!-- NAV \/ STEPS -->\r\n      <nav class=\"sg-proc__nav\" aria-label=\"Pasos de trabajo\">\r\n        <div class=\"sg-proc__rail\" aria-hidden=\"true\">\r\n          <div class=\"sg-proc__railFill\"><\/div>\r\n        <\/div>\r\n\r\n        <button class=\"sg-proc__step is-active\" type=\"button\"\r\n          data-step=\"diag\" aria-selected=\"true\" aria-controls=\"proc-diag\">\r\n          <span class=\"sg-proc__num\">01<\/span>\r\n          <span class=\"sg-proc__label\">\r\n            <span class=\"sg-proc__title\">Diagn\u00f3stico<\/span>\r\n            <span class=\"sg-proc__hint\">Objetivo, contexto, restricciones<\/span>\r\n          <\/span>\r\n        <\/button>\r\n\r\n        <button class=\"sg-proc__step\" type=\"button\"\r\n          data-step=\"data\" aria-selected=\"false\" aria-controls=\"proc-data\">\r\n          <span class=\"sg-proc__num\">02<\/span>\r\n          <span class=\"sg-proc__label\">\r\n            <span class=\"sg-proc__title\">Datos<\/span>\r\n            <span class=\"sg-proc__hint\">Captura, integraci\u00f3n, QA\/QC<\/span>\r\n          <\/span>\r\n        <\/button>\r\n\r\n        <button class=\"sg-proc__step\" type=\"button\"\r\n          data-step=\"model\" aria-selected=\"false\" aria-controls=\"proc-model\">\r\n          <span class=\"sg-proc__num\">03<\/span>\r\n          <span class=\"sg-proc__label\">\r\n            <span class=\"sg-proc__title\">Modelo<\/span>\r\n            <span class=\"sg-proc__hint\">Indicadores, anal\u00edtica, automatizaci\u00f3n<\/span>\r\n          <\/span>\r\n        <\/button>\r\n\r\n        <button class=\"sg-proc__step\" type=\"button\"\r\n          data-step=\"deploy\" aria-selected=\"false\" aria-controls=\"proc-deploy\">\r\n          <span class=\"sg-proc__num\">04<\/span>\r\n          <span class=\"sg-proc__label\">\r\n            <span class=\"sg-proc__title\">Implementaci\u00f3n<\/span>\r\n            <span class=\"sg-proc__hint\">Operaci\u00f3n, transferencia, seguimiento<\/span>\r\n          <\/span>\r\n        <\/button>\r\n\r\n        <div class=\"sg-proc__controls\" aria-label=\"Controles\">\r\n          <button class=\"sg-proc__ctrl\" type=\"button\" data-dir=\"-1\" aria-label=\"Paso anterior\">\u2039<\/button>\r\n          <button class=\"sg-proc__ctrl\" type=\"button\" data-dir=\"1\" aria-label=\"Paso siguiente\">\u203a<\/button>\r\n        <\/div>\r\n      <\/nav>\r\n\r\n      <!-- DETAIL PANEL -->\r\n      <div class=\"sg-proc__panel sg-panel\" role=\"region\" aria-live=\"polite\">\r\n        <div class=\"sg-proc__swap\">\r\n\r\n          <!-- 01 -->\r\n          <article class=\"sg-proc__card is-active\" id=\"proc-diag\" data-step=\"diag\">\r\n            <div class=\"sg-proc__cardTop\">\r\n              <span class=\"sg-tag\">\/\/ 01 \u00b7 DIAGN\u00d3STICO<\/span>\r\n              <span class=\"sg-proc__badge\">Alineaci\u00f3n y claridad<\/span>\r\n            <\/div>\r\n\r\n            <h3 class=\"sg-title\">Definimos el \u201cpara qu\u00e9\u201d antes del \u201ccon qu\u00e9\u201d<\/h3>\r\n            <p class=\"sg-desc\">\r\n              Arrancamos entendiendo la decisi\u00f3n o la operaci\u00f3n que necesitas soportar:\r\n              control en campo, seguimiento gerencial, cumplimiento t\u00e9cnico, planeaci\u00f3n o priorizaci\u00f3n de inversi\u00f3n.\r\n              Aqu\u00ed evitamos el error t\u00edpico: producir capas sin rumbo.\r\n            <\/p>\r\n\r\n            <div class=\"sg-proc__grid2\">\r\n              <div class=\"sg-proc__mini\">\r\n                <div class=\"sg-proc__miniTitle\">Lo que identificamos<\/div>\r\n                <ul class=\"sg-proc__list\">\r\n                  <li>Alcance real, usuarios y \u201cmomento de uso\u201d (operaci\u00f3n vs gerencia).<\/li>\r\n                  <li>Restricciones: datos disponibles, tiempos, calidad, institucionalidad.<\/li>\r\n                  <li>Criterios de \u00e9xito: qu\u00e9 significa \u201cfunciona\u201d en tu caso.<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n              <div class=\"sg-proc__mini\">\r\n                <div class=\"sg-proc__miniTitle\">Resultado de esta etapa<\/div>\r\n                <ul class=\"sg-proc__list\">\r\n                  <li>Ruta de trabajo: pasos, fuentes y entregables operativos.<\/li>\r\n                  <li>Mapa de riesgos: qu\u00e9 puede fallar y c\u00f3mo lo mitigamos.<\/li>\r\n                  <li>Estructura base de datos \/ capas (ArcGIS o QGIS).<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n            <\/div>\r\n          <\/article>\r\n\r\n          <!-- 02 -->\r\n          <article class=\"sg-proc__card\" id=\"proc-data\" data-step=\"data\">\r\n            <div class=\"sg-proc__cardTop\">\r\n              <span class=\"sg-tag\">\/\/ 02 \u00b7 DATOS<\/span>\r\n              <span class=\"sg-proc__badge\">Calidad primero<\/span>\r\n            <\/div>\r\n\r\n            <h3 class=\"sg-title\">Datos listos para an\u00e1lisis (no \u201carchivos sueltos\u201d)<\/h3>\r\n            <p class=\"sg-desc\">\r\n              Integramos y normalizamos informaci\u00f3n de campo y oficina: encuestas, Excel, bases existentes, cartograf\u00eda,\r\n              activos, predios o redes. Si el dato est\u00e1 sucio, el tablero solo maquilla el problema.\r\n            <\/p>\r\n\r\n            <div class=\"sg-proc__grid2\">\r\n              <div class=\"sg-proc__mini\">\r\n                <div class=\"sg-proc__miniTitle\">Qu\u00e9 hacemos<\/div>\r\n                <ul class=\"sg-proc__list\">\r\n                  <li>Dise\u00f1o\/ajuste de captura (Survey123\/AGOL o flujos compatibles).<\/li>\r\n                  <li>Integraci\u00f3n de fuentes y trazabilidad (qu\u00e9 viene de d\u00f3nde).<\/li>\r\n                  <li>QA\/QC: consistencia, duplicados, vac\u00edos, dominios y reglas.<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n              <div class=\"sg-proc__mini\">\r\n                <div class=\"sg-proc__miniTitle\">Qu\u00e9 queda listo<\/div>\r\n                <ul class=\"sg-proc__list\">\r\n                  <li>Base geogr\u00e1fica estructurada (GDB\/servicio\/paquete seg\u00fan tu operaci\u00f3n).<\/li>\r\n                  <li>Capas limpias y normalizadas para ArcGIS\/QGIS.<\/li>\r\n                  <li>Registro claro de criterios y supuestos (para continuidad).<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n            <\/div>\r\n          <\/article>\r\n\r\n          <!-- 03 -->\r\n          <article class=\"sg-proc__card\" id=\"proc-model\" data-step=\"model\">\r\n            <div class=\"sg-proc__cardTop\">\r\n              <span class=\"sg-tag\">\/\/ 03 \u00b7 MODELO<\/span>\r\n              <span class=\"sg-proc__badge\">Inteligencia territorial<\/span>\r\n            <\/div>\r\n\r\n            <h3 class=\"sg-title\">Del dato al criterio: indicadores, mapas y control<\/h3>\r\n            <p class=\"sg-desc\">\r\n              Construimos anal\u00edtica espacial y modelos de decisi\u00f3n: segmentaci\u00f3n, priorizaci\u00f3n, indicadores,\r\n              mapas tem\u00e1ticos y tableros. Si aplica, automatizamos procesos para que no dependas de \u201chacerlo a mano\u201d.\r\n            <\/p>\r\n\r\n            <div class=\"sg-proc__grid2\">\r\n              <div class=\"sg-proc__mini\">\r\n                <div class=\"sg-proc__miniTitle\">Ejemplos de uso<\/div>\r\n                <ul class=\"sg-proc__list\">\r\n                  <li>Priorizar inversi\u00f3n \/ mantenimiento seg\u00fan criterios territoriales.<\/li>\r\n                  <li>Control operativo: seguimiento, alertas, avances y cobertura.<\/li>\r\n                  <li>Visi\u00f3n gerencial: m\u00e9tricas claras, filtros \u00fatiles, narrativa simple.<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n              <div class=\"sg-proc__mini\">\r\n                <div class=\"sg-proc__miniTitle\">Implementaci\u00f3n t\u00e9cnica<\/div>\r\n                <ul class=\"sg-proc__list\">\r\n                  <li>Dashboards, mapas web, anal\u00edtica y cartograf\u00eda ejecutiva.<\/li>\r\n                  <li>Modelos reproducibles (reglas\/criterios) y documentaci\u00f3n.<\/li>\r\n                  <li>Automatizaciones seg\u00fan el caso (procesos repetitivos).<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n            <\/div>\r\n          <\/article>\r\n\r\n          <!-- 04 -->\r\n          <article class=\"sg-proc__card\" id=\"proc-deploy\" data-step=\"deploy\">\r\n            <div class=\"sg-proc__cardTop\">\r\n              <span class=\"sg-tag\">\/\/ 04 \u00b7 IMPLEMENTACI\u00d3N<\/span>\r\n              <span class=\"sg-proc__badge\">Operaci\u00f3n real<\/span>\r\n            <\/div>\r\n\r\n            <h3 class=\"sg-title\">Lo dejamos funcionando: adopci\u00f3n, transferencia y soporte<\/h3>\r\n            <p class=\"sg-desc\">\r\n              Una soluci\u00f3n SIG no sirve si se queda \u201cbonita\u201d pero nadie la usa. Cerramos con implementaci\u00f3n operativa:\r\n              permisos, roles, publicaci\u00f3n, capacitaci\u00f3n y una ruta de continuidad para que el sistema crezca sin romperse.\r\n            <\/p>\r\n\r\n            <div class=\"sg-proc__grid2\">\r\n              <div class=\"sg-proc__mini\">\r\n                <div class=\"sg-proc__miniTitle\">Para operaci\u00f3n<\/div>\r\n                <ul class=\"sg-proc__list\">\r\n                  <li>Estructura de capas y visualizaci\u00f3n para equipos de campo\/oficina.<\/li>\r\n                  <li>Flujo de actualizaci\u00f3n: qui\u00e9n edita, qui\u00e9n valida, qui\u00e9n decide.<\/li>\r\n                  <li>Tableros accionables (no decorativos): lo que importa arriba.<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n              <div class=\"sg-proc__mini\">\r\n                <div class=\"sg-proc__miniTitle\">Para continuidad<\/div>\r\n                <ul class=\"sg-proc__list\">\r\n                  <li>Transferencia de conocimiento y documentaci\u00f3n clave.<\/li>\r\n                  <li>Lineamientos para mantener calidad con el tiempo.<\/li>\r\n                  <li>Escalamiento: nuevas capas, nuevos indicadores, nuevos casos.<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n            <\/div>\r\n          <\/article>\r\n\r\n        <\/div>\r\n\r\n        <div class=\"sg-proc__footer\">\r\n          <div class=\"sg-proc__chips\" aria-label=\"Puntos clave\">\r\n            <span class=\"sg-proc__chip\">QA\/QC y dominios<\/span>\r\n            <span class=\"sg-proc__chip\">Trazabilidad<\/span>\r\n            <span class=\"sg-proc__chip\">Decisi\u00f3n + operaci\u00f3n<\/span>\r\n            <span class=\"sg-proc__chip\">ArcGIS \/ QGIS<\/span>\r\n            <span class=\"sg-proc__chip\">Documentaci\u00f3n<\/span>\r\n          <\/div>\r\n\r\n          <div class=\"sg-actions\" style=\"margin-top:14px;\">\r\n            <a class=\"sg-btn sg-btn--ghost\" href=\"#casos\">Ver casos en video<\/a>\r\n            <a class=\"sg-btn sg-btn--primary\"\r\n               href=\"https:\/\/wa.me\/573187348220?text=Hola,%20me%20interesa%20una%20cotizaci\u00f3n%20de%20Soluciones%20Geom\u00e1ticas\"\r\n               target=\"_blank\" rel=\"noopener\">\r\n              Hablar por WhatsApp\r\n            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <style>\r\n    \/* =========================================================\r\n       #proceso \u2014 FULL BLEED + STEPPER INTERACTIVO (premium)\r\n       ========================================================= *\/\r\n\r\n    \/* FULL BLEED real *\/\r\n    body.page-id-2682 #proceso.sg-fullbleed{\r\n      position: relative !important;\r\n      left: 50% !important;\r\n      right: 50% !important;\r\n      margin-left: -50vw !important;\r\n      margin-right: -50vw !important;\r\n      width: 100vw !important;\r\n      overflow: visible !important;\r\n    }\r\n\r\n    \/* M\u00e1s ancho que \u201ccajita\u201d *\/\r\n    body.page-id-2682 #proceso .sg-wrap{\r\n      max-width: 1680px !important;\r\n      margin: 0 auto !important;\r\n      padding-left: clamp(16px, 3vw, 56px) !important;\r\n      padding-right: clamp(16px, 3vw, 56px) !important;\r\n    }\r\n\r\n    body.page-id-2682 #proceso{\r\n      position: relative;\r\n      isolation: isolate;\r\n      padding-top: clamp(54px, 5.5vw, 92px);\r\n      padding-bottom: clamp(54px, 5.5vw, 92px);\r\n    }\r\n\r\n    \/* Fondo \u201ccon vida\u201d solo aqu\u00ed *\/\r\n    body.page-id-2682 #proceso::before{\r\n      content:\"\";\r\n      position:absolute; inset: -1px;\r\n      z-index:-1;\r\n      pointer-events:none;\r\n      opacity: .20;\r\n      background:\r\n        radial-gradient(860px 520px at 18% 20%, rgba(42,107,255,.20), transparent 60%),\r\n        radial-gradient(760px 520px at 82% 44%, rgba(231,201,138,.15), transparent 62%),\r\n        linear-gradient(to right, rgba(255,255,255,.07) 1px, transparent 1px),\r\n        linear-gradient(to bottom, rgba(255,255,255,.07) 1px, transparent 1px);\r\n      background-size: auto, auto, 56px 56px, 56px 56px;\r\n      mask-image: radial-gradient(ellipse at 50% 40%, rgba(0,0,0,1), rgba(0,0,0,.25) 64%, rgba(0,0,0,0) 82%);\r\n    }\r\n\r\n    \/* Layout *\/\r\n    body.page-id-2682 #proceso .sg-proc{\r\n      display: grid;\r\n      grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);\r\n      gap: clamp(16px, 2.2vw, 26px);\r\n      margin-top: 18px;\r\n      align-items: start;\r\n    }\r\n\r\n    \/* NAV *\/\r\n    body.page-id-2682 #proceso .sg-proc__nav{\r\n      position: sticky;\r\n      top: 92px;\r\n      display: grid;\r\n      gap: 12px;\r\n      padding: 14px;\r\n      border-radius: 22px;\r\n      border: 1px solid rgba(255,255,255,.12);\r\n      background: rgba(255,255,255,.03);\r\n      box-shadow: 0 18px 55px rgba(0,0,0,.26);\r\n      backdrop-filter: blur(10px);\r\n      -webkit-backdrop-filter: blur(10px);\r\n      overflow: hidden;\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__rail{\r\n      position: absolute;\r\n      left: 20px;\r\n      top: 18px;\r\n      bottom: 18px;\r\n      width: 2px;\r\n      background: rgba(255,255,255,.10);\r\n      border-radius: 999px;\r\n      pointer-events: none;\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__railFill{\r\n      position:absolute;\r\n      left:0; top:0;\r\n      width:100%;\r\n      height: 25%;\r\n      background: linear-gradient(180deg, rgba(231,201,138,.65), rgba(42,107,255,.35));\r\n      border-radius: 999px;\r\n      transition: height .26s ease;\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__step{\r\n      display: grid;\r\n      grid-template-columns: 52px 1fr;\r\n      align-items: center;\r\n      gap: 10px;\r\n      text-align: left;\r\n\r\n      padding: 12px 12px 12px 6px;\r\n      border-radius: 18px;\r\n      border: 1px solid rgba(255,255,255,.10);\r\n      background: rgba(255,255,255,.02);\r\n      cursor: pointer;\r\n\r\n      transition: transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease;\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__step:hover{\r\n      transform: translateY(-2px);\r\n      background: rgba(255,255,255,.04);\r\n      border-color: rgba(255,255,255,.16);\r\n      box-shadow: 0 18px 50px rgba(0,0,0,.26);\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__num{\r\n      width: 44px;\r\n      height: 44px;\r\n      border-radius: 14px;\r\n      display: grid;\r\n      place-items: center;\r\n\r\n      font-weight: 900;\r\n      letter-spacing: .08em;\r\n      color: rgba(255,255,255,.92);\r\n\r\n      background: radial-gradient(120% 120% at 30% 20%, rgba(255,255,255,.10), rgba(255,255,255,.03));\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      box-shadow: inset 0 1px 0 rgba(255,255,255,.08);\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__title{\r\n      font-weight: 850;\r\n      color: rgba(255,255,255,.94);\r\n      letter-spacing: -0.01em;\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__hint{\r\n      margin-top: 2px;\r\n      font-size: 13px;\r\n      color: rgba(255,255,255,.66);\r\n      white-space: nowrap;\r\n      overflow: hidden;\r\n      text-overflow: ellipsis;\r\n      max-width: 28ch;\r\n      display:block;\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__step.is-active,\r\n    body.page-id-2682 #proceso .sg-proc__step[aria-selected=\"true\"]{\r\n      border-color: rgba(231,201,138,.38);\r\n      background: linear-gradient(180deg, rgba(231,201,138,.12), rgba(255,255,255,.02));\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__step.is-active .sg-proc__num{\r\n      border-color: rgba(231,201,138,.32);\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__controls{\r\n      display:flex;\r\n      gap: 8px;\r\n      justify-content: flex-end;\r\n      margin-top: 6px;\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__ctrl{\r\n      width: 38px;\r\n      height: 38px;\r\n      border-radius: 12px;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background: rgba(255,255,255,.05);\r\n      color: rgba(255,255,255,.92);\r\n      cursor: pointer;\r\n      transition: transform .16s ease, background .16s ease, border-color .16s ease;\r\n      font-size: 18px;\r\n      line-height: 1;\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__ctrl:hover{\r\n      transform: translateY(-1px);\r\n      background: rgba(255,255,255,.08);\r\n      border-color: rgba(231,201,138,.26);\r\n    }\r\n\r\n    \/* PANEL *\/\r\n    body.page-id-2682 #proceso .sg-proc__panel{\r\n      border-radius: 22px;\r\n      padding: 18px;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.025));\r\n      box-shadow: 0 22px 70px rgba(0,0,0,.32);\r\n      backdrop-filter: blur(10px);\r\n      -webkit-backdrop-filter: blur(10px);\r\n      min-width: 0;\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__card{\r\n      display: none;\r\n      opacity: 0;\r\n      transform: translateY(8px);\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__card.is-active{\r\n      display: block;\r\n      animation: sgProcIn .30s ease both;\r\n    }\r\n    @keyframes sgProcIn{\r\n      to{ opacity:1; transform: translateY(0); }\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__cardTop{\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content: space-between;\r\n      gap: 12px;\r\n      margin-bottom: 10px;\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__badge{\r\n      font-size: 12px;\r\n      padding: 7px 10px;\r\n      border-radius: 999px;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background: rgba(0,0,0,.20);\r\n      color: rgba(255,255,255,.78);\r\n      white-space: nowrap;\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__grid2{\r\n      display:grid;\r\n      grid-template-columns: 1fr 1fr;\r\n      gap: 14px;\r\n      margin-top: 14px;\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__mini{\r\n      border-radius: 18px;\r\n      border: 1px solid rgba(255,255,255,.12);\r\n      background: rgba(255,255,255,.03);\r\n      padding: 14px;\r\n      overflow: hidden;\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__miniTitle{\r\n      font-weight: 850;\r\n      margin-bottom: 8px;\r\n      color: rgba(255,255,255,.90);\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__list{\r\n      margin: 0;\r\n      padding-left: 18px;\r\n      color: rgba(245,247,255,.76);\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__list li{\r\n      margin: 6px 0;\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__footer{\r\n      margin-top: 14px;\r\n      padding-top: 14px;\r\n      border-top: 1px solid rgba(255,255,255,.10);\r\n    }\r\n\r\n    body.page-id-2682 #proceso .sg-proc__chips{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap: 10px;\r\n    }\r\n    body.page-id-2682 #proceso .sg-proc__chip{\r\n      font-size: 12px;\r\n      letter-spacing: .06em;\r\n      padding: 9px 12px;\r\n      border-radius: 999px;\r\n      background: rgba(255,255,255,.06);\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      color: rgba(255,255,255,.86);\r\n    }\r\n\r\n    \/* Responsive *\/\r\n    @media (max-width: 980px){\r\n      body.page-id-2682 #proceso .sg-proc{\r\n        grid-template-columns: 1fr;\r\n      }\r\n      body.page-id-2682 #proceso .sg-proc__nav{\r\n        position: relative;\r\n        top: 0;\r\n      }\r\n      body.page-id-2682 #proceso .sg-proc__grid2{\r\n        grid-template-columns: 1fr;\r\n      }\r\n      body.page-id-2682 #proceso .sg-proc__rail{\r\n        display:none;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <script>\r\n  (() => {\r\n    const root = document.querySelector('body.page-id-2682 #proceso');\r\n    if(!root) return;\r\n\r\n    const steps = Array.from(root.querySelectorAll('.sg-proc__step'));\r\n    const cards = Array.from(root.querySelectorAll('.sg-proc__card'));\r\n    const fill = root.querySelector('.sg-proc__railFill');\r\n    const ctrls = Array.from(root.querySelectorAll('.sg-proc__ctrl'));\r\n\r\n    if(!steps.length || !cards.length) return;\r\n\r\n    let idx = Math.max(0, steps.findIndex(s => s.classList.contains('is-active') || s.getAttribute('aria-selected') === 'true'));\r\n\r\n    function setActive(nextIdx){\r\n      idx = (nextIdx + steps.length) % steps.length;\r\n\r\n      steps.forEach((s,i) => {\r\n        const active = i === idx;\r\n        s.classList.toggle('is-active', active);\r\n        s.setAttribute('aria-selected', active ? 'true' : 'false');\r\n      });\r\n\r\n      const id = steps[idx].getAttribute('data-step');\r\n      cards.forEach(c => c.classList.toggle('is-active', c.getAttribute('data-step') === id));\r\n\r\n      if(fill){\r\n        const pct = ((idx + 1) \/ steps.length) * 100;\r\n        fill.style.height = pct + '%';\r\n      }\r\n    }\r\n\r\n    steps.forEach((btn, i) => {\r\n      btn.addEventListener('click', () => setActive(i));\r\n      btn.addEventListener('keydown', (e) => {\r\n        if(e.key === 'Enter' || e.key === ' '){\r\n          e.preventDefault();\r\n          setActive(i);\r\n        }\r\n        if(e.key === 'ArrowDown'){ e.preventDefault(); setActive(i+1); steps[(i+1)%steps.length].focus({preventScroll:true}); }\r\n        if(e.key === 'ArrowUp'){ e.preventDefault(); setActive(i-1); steps[(i-1+steps.length)%steps.length].focus({preventScroll:true}); }\r\n      });\r\n    });\r\n\r\n    ctrls.forEach(b => {\r\n      b.addEventListener('click', () => {\r\n        const dir = parseInt(b.getAttribute('data-dir') || '0', 10);\r\n        setActive(idx + dir);\r\n      });\r\n    });\r\n\r\n    \/\/ Animaci\u00f3n suave al entrar en viewport\r\n    if('IntersectionObserver' in window){\r\n      const io = new IntersectionObserver((entries) => {\r\n        entries.forEach(en => {\r\n          if(en.isIntersecting){\r\n            root.classList.add('is-in');\r\n            io.disconnect();\r\n          }\r\n        });\r\n      }, { threshold: 0.22 });\r\n      io.observe(root);\r\n    }\r\n\r\n    setActive(idx);\r\n  })();\r\n  <\/script>\r\n<\/section>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82a68a8 elementor-widget elementor-widget-html\" data-id=\"82a68a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"sg-section sg-fullbleed\" id=\"contacto\">\r\n  <div class=\"sg-wrap sg-wrap--contactWide\">\r\n\r\n    <!-- HEAD -->\r\n    <header class=\"sg-contactHead\" data-sg-reveal>\r\n      <div class=\"sg-kicker\">CONTACTO<\/div>\r\n      <h2 class=\"sg-h2\">Hablemos de tu proyecto<\/h2>\r\n      <p class=\"sg-sub\">\r\n        Cu\u00e9ntanos el objetivo y el contexto. Te respondemos con un diagn\u00f3stico claro y el siguiente paso recomendado.\r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"sg-contactLayout\">\r\n\r\n      <!-- CTA PRINCIPAL (IZQUIERDA) -->\r\n      <article class=\"sg-panel sg-contactHeroCard\" data-sg-glow data-sg-reveal>\r\n        <div class=\"sg-heroGlow\" aria-hidden=\"true\"><\/div>\r\n\r\n        <div class=\"sg-heroTop\">\r\n          <div class=\"sg-heroTitleBlock\">\r\n            <h3 class=\"sg-title\" style=\"margin:0;\">Respuesta r\u00e1pida y conversaci\u00f3n directa<\/h3>\r\n            <p class=\"sg-note2\" style=\"margin:10px 0 0;\">\r\n              La forma m\u00e1s r\u00e1pida es WhatsApp. Si prefieres formalidad, escr\u00edbenos por correo.\r\n            <\/p>\r\n          <\/div>\r\n\r\n          <div class=\"sg-heroChips\" aria-label=\"Indicadores\">\r\n            <span class=\"sg-chip\">Santander, Colombia<\/span>\r\n            <span class=\"sg-chip\">Gobierno y empresas<\/span>\r\n            <span class=\"sg-chip\">ArcGIS \u00b7 QGIS \u00b7 Survey123<\/span>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-heroActions\">\r\n          <a class=\"sg-btn sg-btn--primary\"\r\n             href=\"https:\/\/wa.me\/573187348220?text=Hola,%20me%20interesa%20una%20cotizaci%C3%B3n%20de%20Soluciones%20Geom%C3%A1ticas\"\r\n             target=\"_blank\" rel=\"noopener\">\r\n            WhatsApp: 318 734 8220\r\n          <\/a>\r\n\r\n          <a class=\"sg-btn sg-btn--ghost\" href=\"tel:+573187348220\">\r\n            Llamar\r\n          <\/a>\r\n        <\/div>\r\n\r\n        <div class=\"sg-heroBody\">\r\n          <!-- Columna 1: Qu\u00e9 enviar -->\r\n          <div class=\"sg-miniBlock\">\r\n            <div class=\"sg-miniTitle\">Para ubicar tu caso en minutos<\/div>\r\n            <div class=\"sg-miniList\">\r\n              <div class=\"sg-miniItem\"><span class=\"i\">1<\/span><span>\u00bfQu\u00e9 necesitas decidir\/operar?<\/span><\/div>\r\n              <div class=\"sg-miniItem\"><span class=\"i\">2<\/span><span>\u00bfMunicipio\/\u00e1rea\/entidad?<\/span><\/div>\r\n              <div class=\"sg-miniItem\"><span class=\"i\">3<\/span><span>Si existe: capa\/BD\/Excel (aunque est\u00e9 incompleto)<\/span><\/div>\r\n            <\/div>\r\n            <div class=\"sg-miniFoot\">Si no hay datos, empezamos por diagn\u00f3stico y estructuraci\u00f3n.<\/div>\r\n          <\/div>\r\n\r\n          <!-- Columna 2: Datos de contacto (CLARO Y COPIABLE) -->\r\n          <div class=\"sg-meta\">\r\n            <div class=\"m\">\r\n              <span class=\"k\">WhatsApp \/ Tel<\/span>\r\n              <span class=\"v\" data-copy=\"3187348220\">3187348220<\/span>\r\n            <\/div>\r\n\r\n            <div class=\"m\">\r\n              <span class=\"k\">Correo (Gerencia)<\/span>\r\n              <a class=\"v\" href=\"mailto:gerencia@solucionesgeomaticas.com\">gerencia@solucionesgeomaticas.com<\/a>\r\n            <\/div>\r\n\r\n            <div class=\"m\">\r\n              <span class=\"k\">Correo (Alterno)<\/span>\r\n              <a class=\"v\" href=\"mailto:geomaticass@gmail.com\">geomaticass@gmail.com<\/a>\r\n            <\/div>\r\n\r\n            <div class=\"m\">\r\n              <span class=\"k\">Ubicaci\u00f3n<\/span>\r\n              <span class=\"v\">Santander, Colombia<\/span>\r\n            <\/div>\r\n\r\n            <div class=\"m\">\r\n              <span class=\"k\">Tiempo de respuesta<\/span>\r\n              <span class=\"v\">R\u00e1pido (seg\u00fan disponibilidad)<\/span>\r\n            <\/div>\r\n\r\n            <div class=\"sg-metaHint\">\r\n              Tip: haz clic en el n\u00famero para copiarlo.\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <!-- TARJETAS SECUNDARIAS (DERECHA) -->\r\n      <aside class=\"sg-contactCards\" aria-label=\"Canales\" data-sg-reveal>\r\n\r\n        <div class=\"sg-panel sg-contactCard2 sg-accent--wa\" data-sg-glow>\r\n          <div class=\"sg-contactTop2\">\r\n            <div class=\"sg-icon2\" aria-hidden=\"true\">\ud83d\udcac<\/div>\r\n            <div>\r\n              <div class=\"sg-tag\">\/\/ M\u00c1S R\u00c1PIDO<\/div>\r\n              <h3 class=\"sg-title\" style=\"margin:6px 0 0;\">WhatsApp<\/h3>\r\n              <p class=\"sg-note2\" style=\"margin:8px 0 0;\">\r\n                Cotizaci\u00f3n, contexto y env\u00edo de capturas\/archivos.\r\n              <\/p>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"sg-line2\">\r\n            <span class=\"k\">Abrir chat<\/span>\r\n            <a class=\"v\" target=\"_blank\" rel=\"noopener\"\r\n               href=\"https:\/\/wa.me\/573187348220?text=Hola,%20me%20interesa%20una%20cotizaci%C3%B3n%20de%20Soluciones%20Geom%C3%A1ticas\">\r\n              Ir \u2192\r\n            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-panel sg-contactCard2 sg-accent--mail\" data-sg-glow>\r\n          <div class=\"sg-contactTop2\">\r\n            <div class=\"sg-icon2\" aria-hidden=\"true\">\u2709\ufe0f<\/div>\r\n            <div>\r\n              <div class=\"sg-tag\">\/\/ FORMAL<\/div>\r\n              <h3 class=\"sg-title\" style=\"margin:6px 0 0;\">Correo<\/h3>\r\n              <p class=\"sg-note2\" style=\"margin:8px 0 0;\">\r\n                Propuestas, alcance, adjuntos y trazabilidad.\r\n              <\/p>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"sg-line2\">\r\n            <span class=\"k\">Escribir a<\/span>\r\n            <a class=\"v\" href=\"mailto:gerencia@solucionesgeomaticas.com\">Gerencia \u2192<\/a>\r\n          <\/div>\r\n\r\n          <div class=\"sg-line2\" style=\"border-top:0; padding-top:10px; margin-top:0;\">\r\n            <span class=\"k\">Alterno<\/span>\r\n            <a class=\"v\" href=\"mailto:geomaticass@gmail.com\">Gmail \u2192<\/a>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sg-panel sg-contactCard2 sg-accent--call\" data-sg-glow>\r\n          <div class=\"sg-contactTop2\">\r\n            <div class=\"sg-icon2\" aria-hidden=\"true\">\ud83d\udcde<\/div>\r\n            <div>\r\n              <div class=\"sg-tag\">\/\/ DIRECTO<\/div>\r\n              <h3 class=\"sg-title\" style=\"margin:6px 0 0;\">Llamada<\/h3>\r\n              <p class=\"sg-note2\" style=\"margin:8px 0 0;\">\r\n                Ideal si necesitas alinear alcance en poco tiempo.\r\n              <\/p>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"sg-line2\">\r\n            <span class=\"k\">Llamar<\/span>\r\n            <a class=\"v\" href=\"tel:+573187348220\">3187348220 \u2192<\/a>\r\n          <\/div>\r\n        <\/div>\r\n\r\n      <\/aside>\r\n\r\n      <!-- FOOTER MINI (CIERRE) -->\r\n      <div class=\"sg-footerMini\" data-sg-reveal>\r\n        <div class=\"sg-footerLeft\">\r\n          <div class=\"sg-footerBrand\">Soluciones Geom\u00e1ticas S.A.S<\/div>\r\n          <div class=\"sg-footerSub\">SIG \u00b7 Catastro \u00b7 Geoanal\u00edtica \u00b7 Santander, Colombia<\/div>\r\n        <\/div>\r\n        <div class=\"sg-footerRight\">\r\n          <a class=\"sg-footerLink\" href=\"mailto:gerencia@solucionesgeomaticas.com\">gerencia@solucionesgeomaticas.com<\/a>\r\n          <span class=\"sg-footerDot\">\u00b7<\/span>\r\n          <a class=\"sg-footerLink\" href=\"tel:+573187348220\">3187348220<\/a>\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <style>\r\n    \/* FULL BLEED (NO CAJITA) *\/\r\n    body.page-id-2682 #contacto.sg-fullbleed{\r\n      position: relative !important;\r\n      left: 50% !important; right: 50% !important;\r\n      margin-left: -50vw !important; margin-right: -50vw !important;\r\n      width: 100vw !important;\r\n      padding: clamp(70px, 7vw, 120px) 0 clamp(40px, 4.5vw, 70px) !important;\r\n      overflow: visible !important;\r\n    }\r\n\r\n    body.page-id-2682 #contacto .sg-wrap--contactWide{\r\n      max-width: 1700px !important;\r\n      margin: 0 auto !important;\r\n      padding: 0 clamp(16px, 3vw, 54px) !important;\r\n    }\r\n\r\n    body.page-id-2682 #contacto .sg-contactHead{\r\n      margin-bottom: clamp(18px, 2.2vw, 26px);\r\n      max-width: 74ch;\r\n    }\r\n\r\n    \/* Layout *\/\r\n    body.page-id-2682 #contacto .sg-contactLayout{\r\n      display:grid;\r\n      grid-template-columns: 1.15fr .85fr;\r\n      grid-template-areas:\r\n        \"hero cards\"\r\n        \"footer footer\";\r\n      gap: clamp(16px, 2.2vw, 26px);\r\n      align-items:start;\r\n    }\r\n    body.page-id-2682 #contacto .sg-contactHeroCard{ grid-area: hero; position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.16) !important; }\r\n    body.page-id-2682 #contacto .sg-contactCards{ grid-area: cards; display:grid; gap: 14px; }\r\n    body.page-id-2682 #contacto .sg-footerMini{ grid-area: footer; }\r\n\r\n    \/* Top *\/\r\n    body.page-id-2682 #contacto .sg-heroTop{\r\n      display:flex;\r\n      gap: 14px;\r\n      align-items:flex-start;\r\n      justify-content: space-between;\r\n      flex-wrap: wrap;\r\n    }\r\n    body.page-id-2682 #contacto .sg-heroChips{\r\n      display:flex;\r\n      flex-wrap: wrap;\r\n      gap: 10px;\r\n      justify-content: flex-end;\r\n    }\r\n    body.page-id-2682 #contacto .sg-chip{\r\n      padding: 10px 12px;\r\n      border-radius: 999px;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background: rgba(255,255,255,.05);\r\n      color: rgba(255,255,255,.80);\r\n      font-size: 13px;\r\n      white-space: nowrap;\r\n    }\r\n\r\n    body.page-id-2682 #contacto .sg-heroActions{\r\n      margin-top: 14px;\r\n      display:flex;\r\n      gap: 12px;\r\n      flex-wrap: wrap;\r\n      align-items:center;\r\n    }\r\n\r\n    \/* Body *\/\r\n    body.page-id-2682 #contacto .sg-heroBody{\r\n      margin-top: 16px;\r\n      display:grid;\r\n      grid-template-columns: 1.05fr .95fr;\r\n      gap: 16px;\r\n      align-items:start;\r\n      padding-top: 14px;\r\n      border-top: 1px solid rgba(255,255,255,.10);\r\n    }\r\n\r\n    \/* Left mini *\/\r\n    body.page-id-2682 #contacto .sg-miniBlock{\r\n      padding: 14px;\r\n      border-radius: 16px;\r\n      border: 1px solid rgba(255,255,255,.12);\r\n      background: rgba(255,255,255,.04);\r\n    }\r\n    body.page-id-2682 #contacto .sg-miniTitle{\r\n      font-weight: 850;\r\n      color: rgba(255,255,255,.92);\r\n      letter-spacing: .06em;\r\n      text-transform: uppercase;\r\n      font-size: 13px;\r\n    }\r\n    body.page-id-2682 #contacto .sg-miniList{\r\n      margin-top: 10px;\r\n      display:grid;\r\n      gap: 10px;\r\n    }\r\n    body.page-id-2682 #contacto .sg-miniItem{\r\n      display:flex;\r\n      gap: 10px;\r\n      color: rgba(255,255,255,.80);\r\n      line-height: 1.45;\r\n      font-size: 14px;\r\n    }\r\n    body.page-id-2682 #contacto .sg-miniItem .i{\r\n      width: 22px; height: 22px;\r\n      border-radius: 8px;\r\n      display:grid; place-items:center;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background: rgba(231,201,138,.10);\r\n      color: rgba(231,201,138,.95);\r\n      flex: 0 0 auto;\r\n      font-weight: 900;\r\n      font-size: 12px;\r\n    }\r\n    body.page-id-2682 #contacto .sg-miniFoot{\r\n      margin-top: 12px;\r\n      color: rgba(255,255,255,.70);\r\n      font-size: 14px;\r\n      line-height: 1.5;\r\n    }\r\n\r\n    \/* Meta right *\/\r\n    body.page-id-2682 #contacto .sg-meta{\r\n      display:grid;\r\n      gap: 10px;\r\n      padding-left: 14px;\r\n      border-left: 1px solid rgba(255,255,255,.10);\r\n    }\r\n    body.page-id-2682 #contacto .sg-meta .m{\r\n      display:flex;\r\n      gap: 12px;\r\n      justify-content: space-between;\r\n      font-size: 14px;\r\n    }\r\n    body.page-id-2682 #contacto .sg-meta .k{ color: rgba(255,255,255,.56); }\r\n    body.page-id-2682 #contacto .sg-meta .v{\r\n      color: rgba(255,255,255,.90);\r\n      font-weight: 750;\r\n      text-align:right;\r\n      text-decoration:none;\r\n    }\r\n    body.page-id-2682 #contacto .sg-meta a.v{ color: rgba(231,201,138,.95); }\r\n    body.page-id-2682 #contacto .sg-meta a.v:hover{ color:#fff; text-decoration: underline; }\r\n    body.page-id-2682 #contacto .sg-meta .v[data-copy]{ cursor:pointer; }\r\n    body.page-id-2682 #contacto .sg-meta .v[data-copy]:hover{ text-decoration: underline; }\r\n    body.page-id-2682 #contacto .sg-metaHint{\r\n      margin-top: 6px;\r\n      color: rgba(255,255,255,.62);\r\n      font-size: 13px;\r\n      line-height: 1.4;\r\n    }\r\n\r\n    \/* Glow *\/\r\n    body.page-id-2682 #contacto .sg-heroGlow{\r\n      position:absolute; inset:-1px;\r\n      pointer-events:none;\r\n      opacity: .65;\r\n      background:\r\n        radial-gradient(520px 260px at var(--mx, 20%) var(--my, 20%), rgba(231,201,138,.22), transparent 62%),\r\n        radial-gradient(520px 260px at calc(var(--mx, 20%) + 20%) calc(var(--my, 20%) + 10%), rgba(42,107,255,.18), transparent 64%);\r\n      mix-blend-mode: screen;\r\n      transition: opacity .18s ease;\r\n    }\r\n    body.page-id-2682 #contacto .sg-contactHeroCard:hover .sg-heroGlow{ opacity: .9; }\r\n\r\n    \/* Cards *\/\r\n    body.page-id-2682 #contacto .sg-contactCard2{\r\n      position: relative;\r\n      overflow: hidden;\r\n      border: 1px solid rgba(255,255,255,.14) !important;\r\n      transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;\r\n    }\r\n    body.page-id-2682 #contacto .sg-contactCard2:hover{\r\n      transform: translateY(-4px);\r\n      border-color: rgba(255,255,255,.22) !important;\r\n      box-shadow: 0 26px 78px rgba(0,0,0,.55) !important;\r\n    }\r\n    body.page-id-2682 #contacto .sg-contactCard2::before{\r\n      content:\"\";\r\n      position:absolute;\r\n      left:0; top:0; bottom:0;\r\n      width: 6px;\r\n      background: var(--sg-accentCard, rgba(231,201,138,.9));\r\n      opacity: .9;\r\n    }\r\n\r\n    body.page-id-2682 #contacto .sg-contactTop2{\r\n      display:grid;\r\n      grid-template-columns: 46px 1fr;\r\n      gap: 12px;\r\n      align-items: start;\r\n    }\r\n    body.page-id-2682 #contacto .sg-icon2{\r\n      width: 46px;\r\n      height: 46px;\r\n      border-radius: 14px;\r\n      display:grid;\r\n      place-items:center;\r\n      border: 1px solid rgba(255,255,255,.14);\r\n      background:\r\n        radial-gradient(220px 160px at 30% 20%, rgba(255,255,255,.10), transparent 60%),\r\n        rgba(255,255,255,.06);\r\n      box-shadow: 0 12px 30px rgba(0,0,0,.25);\r\n      font-size: 18px;\r\n    }\r\n\r\n    body.page-id-2682 #contacto .sg-line2{\r\n      display:flex;\r\n      justify-content: space-between;\r\n      gap: 12px;\r\n      padding-top: 12px;\r\n      border-top: 1px solid rgba(255,255,255,.10);\r\n      font-size: 14px;\r\n      margin-top: 12px;\r\n    }\r\n    body.page-id-2682 #contacto .sg-line2 .k{ color: rgba(255,255,255,.56); }\r\n    body.page-id-2682 #contacto .sg-line2 .v{\r\n      color: rgba(231,201,138,.95);\r\n      font-weight: 800;\r\n      text-align:right;\r\n      text-decoration:none;\r\n    }\r\n    body.page-id-2682 #contacto .sg-line2 a.v:hover{ color:#fff; text-decoration: underline; }\r\n\r\n    body.page-id-2682 #contacto .sg-note2{\r\n      color: rgba(255,255,255,.70);\r\n      font-size: 14px;\r\n      line-height: 1.5;\r\n    }\r\n\r\n    \/* Acentos *\/\r\n    body.page-id-2682 #contacto .sg-accent--wa{ --sg-accentCard: rgba(66,234,195,.90); }\r\n    body.page-id-2682 #contacto .sg-accent--mail{ --sg-accentCard: rgba(231,201,138,.90); }\r\n    body.page-id-2682 #contacto .sg-accent--call{ --sg-accentCard: rgba(42,107,255,.90); }\r\n\r\n    \/* Footer mini *\/\r\n    body.page-id-2682 #contacto .sg-footerMini{\r\n      margin-top: clamp(4px, 1vw, 10px);\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content: space-between;\r\n      gap: 14px;\r\n      padding: 16px 16px;\r\n      border-radius: 16px;\r\n      border: 1px solid rgba(255,255,255,.12);\r\n      background: rgba(255,255,255,.03);\r\n    }\r\n    body.page-id-2682 #contacto .sg-footerBrand{\r\n      font-weight: 850;\r\n      color: rgba(255,255,255,.92);\r\n      letter-spacing: -0.01em;\r\n    }\r\n    body.page-id-2682 #contacto .sg-footerSub{\r\n      margin-top: 2px;\r\n      color: rgba(255,255,255,.62);\r\n      font-size: 13px;\r\n    }\r\n    body.page-id-2682 #contacto .sg-footerRight{\r\n      display:flex;\r\n      align-items:center;\r\n      gap: 10px;\r\n      flex-wrap: wrap;\r\n      justify-content: flex-end;\r\n      text-align: right;\r\n    }\r\n    body.page-id-2682 #contacto .sg-footerLink{\r\n      color: rgba(231,201,138,.95);\r\n      font-weight: 750;\r\n      text-decoration:none;\r\n      font-size: 13px;\r\n    }\r\n    body.page-id-2682 #contacto .sg-footerLink:hover{ color:#fff; text-decoration: underline; }\r\n    body.page-id-2682 #contacto .sg-footerDot{ color: rgba(255,255,255,.35); }\r\n\r\n    \/* Reveal *\/\r\n    body.page-id-2682 #contacto [data-sg-reveal]{ opacity: 1; transform:none; }\r\n    body.page-id-2682 #contacto [data-sg-reveal].sg-in{ animation: sgFadeUp .55s ease both; }\r\n    @keyframes sgFadeUp{ from{ opacity:0; transform: translateY(10px);} to{ opacity:1; transform: translateY(0);} }\r\n    @media (prefers-reduced-motion: reduce){\r\n      body.page-id-2682 #contacto [data-sg-reveal].sg-in{ animation:none !important; }\r\n    }\r\n\r\n    \/* Responsive *\/\r\n    @media (max-width: 980px){\r\n      body.page-id-2682 #contacto .sg-contactLayout{\r\n        grid-template-columns: 1fr;\r\n        grid-template-areas:\r\n          \"hero\"\r\n          \"cards\"\r\n          \"footer\";\r\n      }\r\n      body.page-id-2682 #contacto .sg-heroBody{ grid-template-columns: 1fr; }\r\n      body.page-id-2682 #contacto .sg-meta{\r\n        border-left: 0; padding-left: 0;\r\n        border-top: 1px solid rgba(255,255,255,.10);\r\n        padding-top: 12px;\r\n      }\r\n      body.page-id-2682 #contacto .sg-footerMini{\r\n        flex-direction: column;\r\n        align-items:flex-start;\r\n      }\r\n      body.page-id-2682 #contacto .sg-footerRight{\r\n        justify-content:flex-start;\r\n        text-align:left;\r\n      }\r\n    }\r\n\r\n    \/* Toast *\/\r\n    body.page-id-2682 .sg-toast{\r\n      position: fixed;\r\n      left: 50%;\r\n      bottom: 22px;\r\n      transform: translateX(-50%) translateY(18px);\r\n      opacity: 0;\r\n      padding: 12px 14px;\r\n      border-radius: 999px;\r\n      border: 1px solid rgba(255,255,255,.16);\r\n      background: rgba(10,12,18,.72);\r\n      backdrop-filter: blur(10px);\r\n      -webkit-backdrop-filter: blur(10px);\r\n      color: rgba(255,255,255,.90);\r\n      font-weight: 700;\r\n      z-index: 99999;\r\n      transition: opacity .18s ease, transform .18s ease;\r\n    }\r\n    body.page-id-2682 .sg-toast.is-on{\r\n      opacity: 1;\r\n      transform: translateX(-50%) translateY(0);\r\n    }\r\n  <\/style>\r\n\r\n  <script>\r\n  (() => {\r\n    function bindGlow(el){\r\n      const set = (e) => {\r\n        const r = el.getBoundingClientRect();\r\n        const x = ((e.clientX - r.left) \/ r.width) * 100;\r\n        const y = ((e.clientY - r.top) \/ r.height) * 100;\r\n        el.style.setProperty('--mx', x + '%');\r\n        el.style.setProperty('--my', y + '%');\r\n      };\r\n      el.addEventListener('mousemove', set);\r\n      el.addEventListener('mouseleave', () => {\r\n        el.style.removeProperty('--mx');\r\n        el.style.removeProperty('--my');\r\n      });\r\n    }\r\n\r\n    function revealInit(){\r\n      const els = document.querySelectorAll('body.page-id-2682 #contacto [data-sg-reveal]');\r\n      if(!els.length) return;\r\n\r\n      const io = new IntersectionObserver((entries) => {\r\n        entries.forEach((en) => {\r\n          if(en.isIntersecting){\r\n            en.target.classList.add('sg-in');\r\n            io.unobserve(en.target);\r\n          }\r\n        });\r\n      }, { threshold: 0.14 });\r\n\r\n      els.forEach(el => io.observe(el));\r\n    }\r\n\r\n    function toast(msg){\r\n      let t = document.querySelector('.sg-toast');\r\n      if(!t){\r\n        t = document.createElement('div');\r\n        t.className = 'sg-toast';\r\n        document.body.appendChild(t);\r\n      }\r\n      t.textContent = msg;\r\n      t.classList.add('is-on');\r\n      clearTimeout(t._tm);\r\n      t._tm = setTimeout(()=>t.classList.remove('is-on'), 1400);\r\n    }\r\n\r\n    function copyInit(){\r\n      document.querySelectorAll('body.page-id-2682 #contacto [data-copy]').forEach(el=>{\r\n        el.addEventListener('click', async () => {\r\n          try{\r\n            await navigator.clipboard.writeText(el.getAttribute('data-copy'));\r\n            toast('N\u00famero copiado');\r\n          }catch(e){\r\n            toast('No se pudo copiar');\r\n          }\r\n        });\r\n      });\r\n    }\r\n\r\n    function init(){\r\n      document.querySelectorAll('body.page-id-2682 #contacto [data-sg-glow]').forEach(bindGlow);\r\n      revealInit();\r\n      copyInit();\r\n    }\r\n\r\n    document.addEventListener('DOMContentLoaded', init);\r\n    setTimeout(init, 600);\r\n  })();\r\n  <\/script>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Soluciones Geom\u00e1ticas Santander, Colombia \u00b7 SIG \u00b7 Catastro \u00b7 Geoanal\u00edtica Inteligencia territorial Santander \u00b7 Gobierno y empresas Inteligencia territorial para decisiones estrat\u00e9gicas Inteligencia territorial Santander: convertimos datos geoespaciales y administrativos en tableros, mapas y modelos listos para operar en ArcGIS y QGIS, con foco en control operativo y decisiones de alto impacto. Dashboards Catastro multiprop\u00f3sito [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"disabled","ast-banner-title-visibility":"disabled","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"disabled","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_joinchat":[],"footnotes":""},"class_list":["post-2682","page","type-page","status-publish","hentry"],"aioseo_notices":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"solucionesgeomaticas.com","author_link":"https:\/\/solucionesgeomaticas.com\/index.php\/author\/geomaticass-com\/"},"uagb_comment_info":0,"uagb_excerpt":"Soluciones Geom\u00e1ticas Santander, Colombia \u00b7 SIG \u00b7 Catastro \u00b7 Geoanal\u00edtica Inteligencia territorial Santander \u00b7 Gobierno y empresas Inteligencia territorial para decisiones estrat\u00e9gicas Inteligencia territorial Santander: convertimos datos geoespaciales y administrativos en tableros, mapas y modelos listos para operar en ArcGIS y QGIS, con foco en control operativo y decisiones de alto impacto. Dashboards Catastro multiprop\u00f3sito&hellip;","_links":{"self":[{"href":"https:\/\/solucionesgeomaticas.com\/index.php\/wp-json\/wp\/v2\/pages\/2682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solucionesgeomaticas.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/solucionesgeomaticas.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/solucionesgeomaticas.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solucionesgeomaticas.com\/index.php\/wp-json\/wp\/v2\/comments?post=2682"}],"version-history":[{"count":76,"href":"https:\/\/solucionesgeomaticas.com\/index.php\/wp-json\/wp\/v2\/pages\/2682\/revisions"}],"predecessor-version":[{"id":2830,"href":"https:\/\/solucionesgeomaticas.com\/index.php\/wp-json\/wp\/v2\/pages\/2682\/revisions\/2830"}],"wp:attachment":[{"href":"https:\/\/solucionesgeomaticas.com\/index.php\/wp-json\/wp\/v2\/media?parent=2682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}