{"id":594,"date":"2026-03-24T05:50:38","date_gmt":"2026-03-24T05:50:38","guid":{"rendered":"https:\/\/grupocesco.mx\/?page_id=594"},"modified":"2026-04-30T01:24:42","modified_gmt":"2026-04-30T01:24:42","slug":"inversion-industrial","status":"publish","type":"page","link":"https:\/\/grupocesco.mx\/en\/inversion-industrial\/","title":{"rendered":"Inversion Industrial"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull\" style=\"min-height:861px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"1350\" height=\"1350\" class=\"wp-block-cover__image-background wp-image-855 size-full\" alt=\"\" src=\"https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/04\/capital-park-colotlan-2.webp\" style=\"object-position:56% 75%\" data-object-fit=\"cover\" data-object-position=\"56% 75%\" srcset=\"https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/04\/capital-park-colotlan-2.webp 1350w, https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/04\/capital-park-colotlan-2-300x300.webp 300w, https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/04\/capital-park-colotlan-2-1024x1024.webp 1024w, https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/04\/capital-park-colotlan-2-150x150.webp 150w, https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/04\/capital-park-colotlan-2-768x768.webp 768w, https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/04\/capital-park-colotlan-2-500x500.webp 500w, https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/04\/capital-park-colotlan-2-800x800.webp 800w, https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/04\/capital-park-colotlan-2-1280x1280.webp 1280w\" sizes=\"auto, (max-width: 1350px) 100vw, 1350px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-ast-global-color-3-background-color has-background-dim-30 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<div style=\"height:61px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center hero-title has-ast-global-color-4-color has-text-color has-link-color wp-elements-d1a34bc479d6e939387b39e3ebd19ef8 wp-block-paragraph\" style=\"font-size:70px\">El activo industrial<\/p>\n\n\n\n<p class=\"has-text-align-center has-ast-global-color-4-color has-text-color has-link-color wp-elements-5a449f73b3aa42a0b780e674d56ab03d wp-block-paragraph\" style=\"font-size:25px\">m\u00e1s estable del Real Estate en M\u00e9xico<\/p>\n<\/div><\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center has-ast-global-color-0-color has-text-color has-link-color wp-elements-fc48c24ea757eab57b0b6009116d2e44\" style=\"font-size:20px\">Desarrollo integral de proyectos industriales en M\u00e9xico<\/h2>\n\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center ti has-ast-global-color-3-color has-text-color has-link-color wp-elements-33a4a528169f92762f2d8cdaefffedd0 wp-block-paragraph\" style=\"font-size:40px\">Por qu\u00e9 invertir en naves industriales<\/p>\n\n\n\n<div style=\"height:18px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center has-ast-global-color-3-color has-text-color has-link-color wp-elements-4d3e9b2f77a2a8682d6a244b6651de28 wp-block-paragraph\">Invertir en naves industriales es uno de los modelos m\u00e1s estables dentro del real estate actual. La l\u00f3gica es simple:<\/p>\n\n\n\n<p class=\"has-text-align-center has-ast-global-color-3-color has-text-color has-link-color has-medium-font-size wp-elements-7ccd33ed90c6b5f0988b5fcef14c593e wp-block-paragraph\"><strong>Compras una bodega \u2192 se renta a una empresa \u2192 recibes flujo mensual.<\/strong><\/p>\n\n\n\n<div style=\"height:75px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group top1 has-ast-global-color-7-background-color has-background is-layout-constrained wp-container-core-group-is-layout-f1e3dc65 wp-block-group-is-layout-constrained\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">\n<div style=\"height:22px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center ti wp-block-paragraph\" style=\"font-size:40px\"><strong>Construcci\u00f3n de Naves Industriales<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator alignfull has-text-color has-ast-global-color-0-color has-alpha-channel-opacity has-ast-global-color-0-background-color has-background is-style-wide\"\/>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\" style=\"font-size:28px\">Las naves industriales destacan porque:<\/p>\n\n\n\n<ul style=\"font-size:28px\" class=\"wp-block-list\">\n<li>Alta demanda por log\u00edstica y nearshoring<\/li>\n\n\n\n<li>Contratos a largo plazo<\/li>\n\n\n\n<li>Inquilinos AAA<\/li>\n\n\n\n<li>Bajo costo de mantenimiento<\/li>\n<\/ul>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<section class=\"timeline-section\">\n\n  <div class=\"timeline\">\n    <div class=\"timeline-progress\" id=\"progress\"><\/div>\n\n    <div class=\"timeline-item left\">\n      <div class=\"timeline-number\">01<\/div>\n      <div class=\"timeline-dot\"><\/div>\n      <div class=\"timeline-title\">Selecci\u00f3n del proyecto<\/div>\n      <div class=\"timeline-text\">\n        Ubicaci\u00f3n estrat\u00e9gica con demanda log\u00edstica en corredores industriales clave.\n      <\/div>\n    <\/div>\n\n    <div class=\"timeline-item right\">\n      <div class=\"timeline-number\">02<\/div>\n      <div class=\"timeline-dot\"><\/div>\n      <div class=\"timeline-title\">Estructuraci\u00f3n del desarrollo<\/div>\n      <div class=\"timeline-text\">\n        Dise\u00f1o eficiente enfocado en rentabilidad y operaci\u00f3n industrial.\n      <\/div>\n    <\/div>\n\n    <div class=\"timeline-item left\">\n      <div class=\"timeline-number\">03<\/div>\n      <div class=\"timeline-dot\"><\/div>\n      <div class=\"timeline-title\">Construcci\u00f3n especializada<\/div>\n      <div class=\"timeline-text\">\n        Control de costos (CAPEX) y tiempos de entrega bajo est\u00e1ndares t\u00e9cnicos.\n      <\/div>\n    <\/div>\n\n    <div class=\"timeline-item right\">\n      <div class=\"timeline-number\">04<\/div>\n      <div class=\"timeline-dot\"><\/div>\n      <div class=\"timeline-title\">Comercializaci\u00f3n del activo<\/div>\n      <div class=\"timeline-text\">\n        Colocaci\u00f3n con empresas nacionales e internacionales.\n      <\/div>\n    <\/div>\n\n    <div class=\"timeline-item left\">\n      <div class=\"timeline-number\">05<\/div>\n      <div class=\"timeline-dot\"><\/div>\n      <div class=\"timeline-title\">Estabilizaci\u00f3n de renta<\/div>\n      <div class=\"timeline-text\">\n        Contrato firmado y generaci\u00f3n de flujo constante.\n      <\/div>\n    <\/div>\n\n    <div class=\"timeline-item right\">\n      <div class=\"timeline-number\">06<\/div>\n      <div class=\"timeline-dot\"><\/div>\n      <div class=\"timeline-title\">Administraci\u00f3n y seguimiento<\/div>\n      <div class=\"timeline-text\">\n        Optimizaci\u00f3n del activo y mantenimiento del valor a largo plazo.\n      <\/div>\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n<style>\n\/* \ud83d\udc47 IMPORTANTE: aseg\u00farate de tener cargada tu fuente Formadjr *\/\n@font-face {\n  font-family: 'Formadjr';\n  src: url('Formadjr.woff2') format('woff2');\n}\n\nbody{\n  margin:0;\n  font-family: 'Formadjr', sans-serif;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n\/* SECTION *\/\n.timeline-section{\n  padding:100px 10%;\n}\n\n\/* CONTENEDOR *\/\n.timeline{\n  position:relative;\n  max-width:900px;\n  margin:auto;\n}\n\n\/* LINEA BASE *\/\n.timeline::before{\n  content:\"\";\n  position:absolute;\n  left:50%;\n  top:0;\n  width:2px;\n  height:100%;\n  background:#e5e5e5;\n  transform:translateX(-50%);\n}\n\n\/* LINEA PROGRESO *\/\n.timeline-progress{\n  position:absolute;\n  left:50%;\n  top:0;\n  width:2px;\n  height:0%;\n  background:#f9a11f;\n  transform:translateX(-50%);\n  transition:height 1s ease;\n}\n\n\/* ITEM *\/\n.timeline-item{\n  position:relative;\n  width:50%;\n  padding:40px 30px;\n  opacity:0;\n  transform:translateY(40px);\n  transition:all 0.8s ease;\n}\n\n\/* IZQUIERDA *\/\n.timeline-item.left{\n  left:0;\n  text-align:right;\n}\n\n\/* DERECHA *\/\n.timeline-item.right{\n  left:50%;\n}\n\n\/* ACTIVO *\/\n.timeline-item.show{\n  opacity:1;\n  transform:translateY(0);\n}\n\n\/* NUMERO *\/\n.timeline-number{\n  font-size:90px;\n  opacity:0.05;\n  font-family:'Formadjr';\n  font-weight:600;\n}\n\n\/* PUNTO *\/\n.timeline-dot{\n  position:absolute;\n  top:40px;\n  width:12px;\n  height:12px;\n  background:#bbb;\n  border-radius:50%;\n  z-index:2;\n}\n\n\/* POSICI\u00d3N PUNTOS *\/\n.timeline-item.left .timeline-dot{\n  right:-6px;\n}\n\n.timeline-item.right .timeline-dot{\n  left:-6px;\n}\n\n\/* ACTIVO DOT *\/\n.timeline-item.show .timeline-dot{\n  background:#f9a11f;\n  transform:scale(1.4);\n}\n\n\/* TEXTO *\/\n.timeline-title{\n  font-size:22px;\n  margin:10px 0;\n  font-weight:600;\n  font-family:'Formadjr';\n}\n\n.timeline-text{\n  font-size:18px;\n  font-weight:400;\n  margin-bottom:10px;\n  margin-top:10px;\n  color:#000;\n  font-family:'Formadjr';\n}\n\n\/* \ud83d\udcf1 MOBILE *\/\n@media(max-width:768px){\n\n  .timeline-section{\n    padding:80px 20px;\n  }\n\n  .timeline::before,\n  .timeline-progress{\n    left:10px;\n  }\n\n  .timeline-item{\n    width:100%;\n    left:0 !important;\n    text-align:left;\n    padding-left:40px;\n  }\n\n  .timeline-dot{\n    left:0 !important;\n  }\n\n  .timeline-number{\n    font-size:50px;\n  }\n}\n<\/style>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function(){\n\n  const items = document.querySelectorAll('.timeline-item');\n  const progress = document.getElementById('progress');\n  const timeline = document.querySelector('.timeline');\n\n  function updateTimeline(){\n    const rect = timeline.getBoundingClientRect();\n    const windowHeight = window.innerHeight;\n\n    let progressHeight = ((windowHeight - rect.top) \/ rect.height) * 100;\n    progressHeight = Math.max(0, Math.min(progressHeight, 100));\n    progress.style.height = progressHeight + \"%\";\n\n    items.forEach(item => {\n      const itemTop = item.getBoundingClientRect().top;\n\n      if(itemTop < windowHeight * 0.85){\n        item.classList.add('show');\n      }\n    });\n  }\n\n  window.addEventListener('scroll', updateTimeline);\n  updateTimeline();\n\n});\n<\/script>\n\n\n\n<div class=\"wp-block-cover alignfull has-parallax box1\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;min-height:480px;aspect-ratio:unset;\"><div class=\"wp-block-cover__image-background wp-image-561 size-full has-parallax\" style=\"background-position:50% 50%;background-image:url(https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/03\/construccion-bodegas-industriales-jalisco-8.webp)\"><\/div><span aria-hidden=\"true\" class=\"wp-block-cover__background has-ast-global-color-3-background-color has-background-dim-70 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<div style=\"height:70px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"176\" height=\"153\" src=\"https:\/\/grupocesco.mx\/wp-content\/uploads\/2026\/03\/favicon-cesco-grupo.webp\" alt=\"\" class=\"wp-image-23\" style=\"aspect-ratio:1.1504097277293153;width:52px;height:auto\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-center ti has-ast-global-color-4-color has-text-color has-link-color wp-elements-b0957f70a7dc970187c1ff0a3988b973 wp-block-paragraph\" style=\"font-size:40px\">Indicadores del mercado industrial en M\u00e9xico<\/p>\n\n\n\n<p class=\"has-text-align-center has-ast-global-color-5-color has-text-color has-link-color has-medium-font-size wp-elements-29f1faa4792bfa0a31d753089441b318 wp-block-paragraph\">Datos reales que respaldan la rentabilidad y estabilidad del sector<\/p>\n\n\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;800&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\nbody{\n  margin:0;\n  font-family: 'Formadjr', sans-serif;\n  background:#0b0b0b;\n}\n\n\/* SECTION *\/\n.stats-section{\n  padding:60px 40px;\n}\n\n\/* GRID *\/\n.stats-grid{\n  display:grid;\n  grid-template-columns: repeat(auto-fit, minmax(280px,1fr));\n  gap:24px;\n}\n\n\/* ITEM GLASS DARK *\/\n.stat-item{\n  padding:55px 40px;\n  border-radius:22px;\n\n  background: rgba(0,0,0,0.65);\n  backdrop-filter: blur(18px);\n  -webkit-backdrop-filter: blur(18px);\n\n  border: 1px solid rgba(255,255,255,0.08);\n\n  box-shadow: 0 20px 60px rgba(0,0,0,0.6);\n\n  transition: all 0.35s ease;\n}\n\n\/* HOVER M\u00c1S ELEGANTE *\/\n.stat-item:hover{\n  transform: translateY(-8px);\n  border: 1px solid rgba(247,162,31,0.4);\n  box-shadow: 0 30px 80px rgba(0,0,0,0.9);\n}\n\n\/* NUMBER *\/\n.stat-number{\n  font-size:30px;\n  font-weight:800;\n  letter-spacing:-1.5px;\n  margin-bottom:18px;\n  text-align:center;\n}\n\n\/* TITLE (AMARILLO) *\/\n.stat-text{\n  font-size:20px;\n  color:#F7A21F;\n  text-align:center;\n  font-weight:600;\n  margin-bottom:10px;\n}\n\n\/* SUBTEXT (BLANCO LEGIBLE) *\/\n.stat-ti{\n  font-size:16px;\n  color:rgba(255,255,255,0.85);\n  line-height:1.6;\n  text-align:center;\n}\n\n\/* NOTE *\/\n.note{\n  margin-top:40px;\n  text-align:center;\n  font-size:13px;\n  color:rgba(255,255,255,0.5);\n}\n\n\/* RESPONSIVE *\/\n@media(max-width:768px){\n\n  .stats-section{\n    padding:40px 20px;\n  }\n\n  .stat-item{\n    padding:40px 25px;\n  }\n\n  .stat-number{\n    font-size:30px;\n  }\n\n  .stat-text{\n    font-size:18px;\n  }\n\n  .stat-ti{\n    font-size:15px;\n  }\n}\n<\/style>\n\n<section class=\"stats-section\">\n\n  <div class=\"stats-grid\">\n\n    <div class=\"stat-item\">\n      <div class=\"stat-number\" data-target=\"9.58\" data-suffix=\"%\">0%<\/div>\n      <div class=\"stat-text\">CAP RATE Promedio<\/div>\n      <div class=\"stat-ti\">Rendimiento anual estimado del 9.58%<\/div>\n    <\/div>\n\n    <div class=\"stat-item\">\n      <div class=\"stat-number\" data-target=\"4\" data-suffix=\"%\">0%<\/div>\n      <div class=\"stat-text\">Vacancia del 4%<\/div>\n      <div class=\"stat-ti\">Hay poco espacio disponible. Los proyectos mejor planeados son los que se ocupan primero.<\/div>\n    <\/div>\n\n    <div class=\"stat-item\">\n      <div class=\"stat-number\" data-target=\"7.16\" data-prefix=\"$\" data-suffix=\" USD\/m\u00b2\">0<\/div>\n      <div class=\"stat-text\">\u00bfPagar m\u00e1s por rentas?<\/div>\n      <div class=\"stat-ti\">El promedio de $7.16 USD\/m\u00b2 no es sobreprecio, es el costo de la eficiencia operativa y la ubicaci\u00f3n estrat\u00e9gica.<\/div>\n    <\/div>\n\n    <div class=\"stat-item\">\n      <div class=\"stat-number\" data-target=\"106\" data-suffix=\" millones m\u00b2\">0<\/div>\n      <div class=\"stat-text\">Huella industrial en M\u00e9xico<\/div>\n      <div class=\"stat-ti\">La demanda es real y estructural, liderada por E-commerce y manufactura ligera.<\/div>\n    <\/div>\n\n  <\/div>\n\n  <div class=\"note\">\n    Datos al 2Q 2026\n  <\/div>\n\n<\/section>\n\n<script>\nconst counters = document.querySelectorAll('.stat-number');\n\nconst animate = (el) => {\n  const target = parseFloat(el.getAttribute('data-target'));\n  let current = 0;\n  const duration = 1200;\n  const increment = target \/ (duration \/ 16);\n\n  const update = () => {\n    current += increment;\n\n    if(current < target){\n      format(el, current);\n      requestAnimationFrame(update);\n    } else {\n      format(el, target);\n    }\n  };\n\n  update();\n};\n\nconst format = (el, value) => {\n  const suffix = el.getAttribute('data-suffix') || \"\";\n  const prefix = el.getAttribute('data-prefix') || \"\";\n\n  let formatted = value.toFixed(2);\n\n  if(Number(formatted) % 1 === 0){\n    formatted = parseInt(formatted);\n  }\n\n  el.innerText = prefix + formatted + suffix;\n};\n\nconst observer = new IntersectionObserver(entries => {\n  entries.forEach(entry => {\n    if(entry.isIntersecting){\n      animate(entry.target);\n      observer.unobserve(entry.target);\n    }\n  });\n}, { threshold: 0.5 });\n\ncounters.forEach(c => observer.observe(c));\n<\/script>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:22px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/div>\n\n\n\n<div style=\"height:110px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center has-ast-global-color-0-color has-text-color has-link-color wp-elements-de62403ae8946e6daba1b588cfee50ca wp-block-paragraph\" style=\"font-size:20px\">2017-2025<\/p>\n\n\n\n<div style=\"height:6px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center ti wp-block-paragraph\" style=\"font-size:40px\">Evoluci\u00f3n de m2 ejecutados<\/p>\n\n\n\n<section class=\"chart-section\">\n\n  <div class=\"chart-container\">\n\n    <!-- GR\u00c1FICA -->\n    <div class=\"chart-box\">\n      <canvas id=\"chart\"><\/canvas>\n    <\/div>\n\n    <!-- DATOS -->\n    <div class=\"chart-data\">\n      <div class=\"data-item\"><strong>2017:<\/strong> 25,745 m\u00b2<\/div>\n      <div class=\"data-item\"><strong>2018:<\/strong> 38,256 m\u00b2<\/div>\n      <div class=\"data-item\"><strong>2019:<\/strong> 58,102 m\u00b2<\/div>\n      <div class=\"data-item\"><strong>2020:<\/strong> 97,719 m\u00b2<\/div>\n      <div class=\"data-item\"><strong>2021:<\/strong> 108,747 m\u00b2<\/div>\n      <div class=\"data-item\"><strong>2022:<\/strong> 92,566 m\u00b2<\/div>\n      <div class=\"data-item\"><strong>2023:<\/strong> 116,239 m\u00b2<\/div>\n      <div class=\"data-item\"><strong>2024:<\/strong> 96,250 m\u00b2<\/div>\n      <div class=\"data-item\"><strong>2025:<\/strong> 70,736 m\u00b2<\/div>\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n<style>\nbody{\n  margin:0;\n  font-family:'Formadjr', sans-serif;\n  background:#fff;\n}\n\n\/* SECTION *\/\n.chart-section{\n  padding:80px 10%;\n}\n\n\/* CONTENEDOR *\/\n.chart-container{\n  display:grid;\n  grid-template-columns:2fr 1fr;\n  gap:40px;\n  align-items:center;\n}\n\n\/* BOX *\/\n.chart-box{\n  background:#fff;\n  border-radius:20px;\n  padding:30px;\n  border:1px solid #eee;\n  opacity:0;\n  transform:translateY(40px);\n  transition:all 0.8s ease;\n}\n\n.chart-box.show{\n  opacity:1;\n  transform:translateY(0);\n}\n\n\/* DATOS *\/\n.chart-data{\n  display:flex;\n  flex-direction:column;\n  gap:12px;\n}\n\n.data-item{\n  background:#f5f5f5;\n  padding:12px;\n  border-radius:12px;\n  font-size:16px;\n  transition:all 0.3s ease;\n}\n\n.data-item:hover{\n  background:#f9a11f;\n  color:#fff;\n  transform:translateX(5px);\n}\n\n\/* CANVAS *\/\ncanvas{\n  width:100%;\n  height:400px;\n}\n\n\/* MOBILE *\/\n@media(max-width:768px){\n  .chart-container{\n    grid-template-columns:1fr;\n  }\n\n  canvas{\n    height:280px;\n  }\n}\n<\/style>\n\n<script>\nwindow.addEventListener(\"load\", function(){\n\nconst data = [\n  {year:2017, value:25745},\n  {year:2018, value:38256},\n  {year:2019, value:58102},\n  {year:2020, value:97719},\n  {year:2021, value:108747},\n  {year:2022, value:92566},\n  {year:2023, value:116239},\n  {year:2024, value:96250},\n  {year:2025, value:70736}\n];\n\nconst canvas = document.getElementById(\"chart\");\nconst ctx = canvas.getContext(\"2d\");\n\nlet points = [];\nlet hoveredIndex = -1;\nlet animated = false;\n\nfunction resize(){\n  const rect = canvas.getBoundingClientRect();\n  canvas.width = rect.width;\n  canvas.height = rect.height;\n}\n\nfunction draw(progress = 1){\n  ctx.clearRect(0,0,canvas.width,canvas.height);\n\n  const isMobile = canvas.width < 500;\n\n  const paddingLeft = isMobile ? 60 : 90;\n  const paddingRight = 20;\n  const paddingTop = 30;\n  const paddingBottom = isMobile ? 50 : 60;\n\n  const width = canvas.width - paddingLeft - paddingRight;\n  const height = canvas.height - paddingTop - paddingBottom;\n\n  const stepX = width\/(data.length-1);\n\n  const yValues = [40000,60000,80000,100000,120000];\n  const max = 120000;\n\n  \/* GRID *\/\n  ctx.strokeStyle = \"#eee\";\n  ctx.lineWidth = 1;\n  ctx.font = isMobile ? \"12px Formadjr\" : \"14px Formadjr\";\n\n  yValues.forEach(v=>{\n    const y = paddingTop + height - (v\/max)*height;\n\n    ctx.beginPath();\n    ctx.moveTo(paddingLeft,y);\n    ctx.lineTo(canvas.width-paddingRight,y);\n    ctx.stroke();\n\n    ctx.fillStyle=\"#666\";\n    ctx.textAlign=\"right\";\n    ctx.fillText(v.toLocaleString(), paddingLeft-8, y+4);\n  });\n\n  \/* LINE *\/\n  ctx.beginPath();\n  ctx.strokeStyle=\"#f9a11f\";\n  ctx.lineWidth=2;\n\n  points=[];\n\n  data.forEach((d,i)=>{\n    const x = paddingLeft + i*stepX;\n    const y = paddingTop + height - (d.value\/max)*height * progress;\n\n    points.push({x,y});\n\n    if(i===0) ctx.moveTo(x,y);\n    else ctx.lineTo(x,y);\n  });\n\n  ctx.stroke();\n\n  \/* POINTS *\/\n  points.forEach((p,i)=>{\n    ctx.beginPath();\n    ctx.arc(p.x,p.y, hoveredIndex===i?6:4,0,Math.PI*2);\n    ctx.fillStyle=\"#f9a11f\";\n    ctx.fill();\n  });\n\n  \/* X LABELS *\/\n  ctx.font = isMobile ? \"11px Formadjr\" : \"14px Formadjr\";\n\n  data.forEach((d,i)=>{\n    if(isMobile && i % 2 !== 0) return;\n\n    ctx.fillStyle=\"#666\";\n    ctx.textAlign=\"center\";\n    ctx.fillText(d.year, points[i].x, canvas.height - 25);\n  });\n\n  \/* LABEL X *\/\n  ctx.font = isMobile ? \"13px Formadjr\" : \"15px Formadjr\";\n  ctx.fillStyle=\"#444\";\n  ctx.fillText(\"A\u00f1o\", canvas.width\/2, canvas.height - 5);\n\n  \/* LABEL Y *\/\n  ctx.save();\n  ctx.translate(isMobile ? 15 : 20, canvas.height\/2);\n  ctx.rotate(-Math.PI\/2);\n  ctx.textAlign=\"center\";\n  ctx.fillText(\"m\u00b2 ejecutados\",0,0);\n  ctx.restore();\n\n  \/* TOOLTIP *\/\n  if(hoveredIndex !== -1){\n    const p = points[hoveredIndex];\n    const value = data[hoveredIndex].value.toLocaleString() + \" m\u00b2\";\n\n    ctx.fillStyle=\"#111\";\n    ctx.fillRect(p.x-40,p.y-40,80,26);\n\n    ctx.fillStyle=\"#fff\";\n    ctx.font=\"11px Formadjr\";\n    ctx.textAlign=\"center\";\n    ctx.fillText(value,p.x,p.y-23);\n  }\n}\n\n\/* ANIMACI\u00d3N *\/\nfunction animate(){\n  let p = 0;\n  function step(){\n    p += 0.02;\n    draw(p);\n    if(p < 1) requestAnimationFrame(step);\n  }\n  step();\n}\n\n\/* HOVER *\/\ncanvas.addEventListener(\"mousemove\", e=>{\n  const rect = canvas.getBoundingClientRect();\n  const mx = e.clientX - rect.left;\n  const my = e.clientY - rect.top;\n\n  hoveredIndex = -1;\n\n  points.forEach((p,i)=>{\n    if(Math.hypot(mx-p.x,my-p.y) < 10){\n      hoveredIndex = i;\n    }\n  });\n\n  draw(1);\n});\n\ncanvas.addEventListener(\"mouseleave\", ()=>{\n  hoveredIndex = -1;\n  draw(1);\n});\n\n\/* SCROLL TRIGGER *\/\nconst observer = new IntersectionObserver(entries=>{\n  entries.forEach(entry=>{\n    if(entry.isIntersecting && !animated){\n      document.querySelector('.chart-box').classList.add('show');\n      animate();\n      animated = true;\n    }\n  });\n},{threshold:0.4});\n\nobserver.observe(document.querySelector('.chart-box'));\n\nresize();\ndraw(0);\n\nwindow.addEventListener(\"resize\", ()=>{\n  resize();\n  draw(1);\n});\n\n});\n<\/script>\n\n\n\n<div style=\"height:45px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:6px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center ti wp-block-paragraph\" style=\"font-size:40px\">Industrias motor de demanda en Jalisco<\/p>\n\n\n\n<section class=\"pie-section\">\n\n  <div class=\"pie-container\">\n    <canvas id=\"pieChart\"><\/canvas>\n  <\/div>\n\n  <!-- LABELS MOBILE -->\n  <div class=\"pie-labels\">\n    <div>Log\u00edstica \u2014 34%<\/div>\n    <div>Manufactura \u2014 26%<\/div>\n    <div>Electr\u00f3nica \u2014 18%<\/div>\n    <div>Alimentos \u2014 12%<\/div>\n    <div>Pl\u00e1sticos \u2014 10%<\/div>\n  <\/div>\n\n<\/section>\n\n<style>\nbody{\n  margin:0;\n  font-family:'Formadjr', sans-serif;\n}\n\n\/* SECTION *\/\n.pie-section{\n  padding:80px 10%;\n  text-align:center;\n}\n\n\/* CONTENEDOR *\/\n.pie-container{\n  max-width:500px;\n  margin:auto;\n}\n\n\/* CANVAS *\/\ncanvas{\n  width:100%;\n  height:380px;\n}\n\n\/* LABELS MOBILE *\/\n.pie-labels{\n  display:none;\n  margin-top:20px;\n  font-size:16px;\n  color:#444;\n}\n\n@media(max-width:768px){\n  canvas{\n    height:300px;\n  }\n\n  .pie-labels{\n    display:block;\n  }\n}\n<\/style>\n\n<script>\nwindow.addEventListener(\"load\", function(){\n\nconst data = [\n  {label:\"Log\u00edstica\", value:34, color:\"#B8331B\"},\n  {label:\"Manufactura\", value:26, color:\"#E03A1F\"},\n  {label:\"Electr\u00f3nica\", value:18, color:\"#F06423\"},\n  {label:\"Alimentos\", value:12, color:\"#C9861E\"},\n  {label:\"Pl\u00e1sticos\", value:10, color:\"#F5A623\"}\n];\n\nconst canvas = document.getElementById(\"pieChart\");\nconst ctx = canvas.getContext(\"2d\");\n\nlet hoveredIndex = -1;\nconst total = data.reduce((a,b)=>a+b.value,0);\n\nfunction resize(){\n  const rect = canvas.getBoundingClientRect();\n  canvas.width = rect.width;\n  canvas.height = rect.height;\n}\n\nfunction draw(progress = 1){\n  ctx.clearRect(0,0,canvas.width,canvas.height);\n\n  const centerX = canvas.width\/2;\n  const centerY = canvas.height\/2;\n  const radius = Math.min(centerX, centerY) * 0.9;\n\n  let startAngle = -Math.PI\/2;\n\n  data.forEach((d,i)=>{\n    const slice = (d.value\/total) * Math.PI*2 * progress;\n    const end = startAngle + slice;\n\n    \/* PIE *\/\n    ctx.beginPath();\n    ctx.moveTo(centerX,centerY);\n    ctx.arc(centerX,centerY,radius,startAngle,end);\n    ctx.closePath();\n\n    ctx.fillStyle = d.color;\n    ctx.fill();\n\n    \/* HOVER *\/\n    if(i === hoveredIndex){\n      ctx.globalAlpha = 0.85;\n      ctx.fill();\n      ctx.globalAlpha = 1;\n    }\n\n    \/* % TEXTO *\/\n    const mid = startAngle + slice\/2;\n    const x = centerX + Math.cos(mid) * radius * 0.6;\n    const y = centerY + Math.sin(mid) * radius * 0.6;\n\n    ctx.fillStyle=\"#fff\";\n    ctx.font=\"bold 20px Formadjr\";\n    ctx.textAlign=\"center\";\n    ctx.fillText(d.value+\"%\", x, y);\n\n    startAngle = end;\n  });\n\n  \/* TOOLTIP *\/\n  if(hoveredIndex !== -1 && window.innerWidth > 768){\n    const d = data[hoveredIndex];\n\n    ctx.fillStyle=\"#111\";\n    ctx.fillRect(centerX-90, centerY-20, 180, 40);\n\n    ctx.fillStyle=\"#fff\";\n    ctx.font=\"16px Formadjr\";\n    ctx.textAlign=\"center\";\n    ctx.fillText(d.label, centerX, centerY+5);\n  }\n}\n\n\/* HOVER DETECTION *\/\ncanvas.addEventListener(\"mousemove\", e=>{\n  const rect = canvas.getBoundingClientRect();\n  const x = e.clientX - rect.left - canvas.width\/2;\n  const y = e.clientY - rect.top - canvas.height\/2;\n\n  const angle = Math.atan2(y,x);\n  let a = angle + Math.PI\/2;\n  if(a < 0) a += Math.PI*2;\n\n  let current = 0;\n  hoveredIndex = -1;\n\n  data.forEach((d,i)=>{\n    const slice = (d.value\/total) * Math.PI*2;\n\n    if(a >= current && a <= current+slice){\n      hoveredIndex = i;\n    }\n    current += slice;\n  });\n\n  draw(1);\n});\n\ncanvas.addEventListener(\"mouseleave\", ()=>{\n  hoveredIndex = -1;\n  draw(1);\n});\n\n\/* ANIMACI\u00d3N *\/\nfunction animate(){\n  let p = 0;\n  function step(){\n    p += 0.04;\n    draw(p);\n    if(p < 1) requestAnimationFrame(step);\n  }\n  step();\n}\n\nresize();\nanimate();\n\nwindow.addEventListener(\"resize\", ()=>{\n  resize();\n  draw(1);\n});\n\n});\n<\/script>\n\n\n\n<div style=\"height:51px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Desarrollo integral de proyectos industriales en M\u00e9xico Por qu\u00e9 invertir en naves industriales Invertir en naves industriales es uno de [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","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":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-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":"","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-4)","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-4)","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-4)","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":""}},"iawp_total_views":45,"footnotes":""},"class_list":["post-594","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/grupocesco.mx\/en\/wp-json\/wp\/v2\/pages\/594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grupocesco.mx\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/grupocesco.mx\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/grupocesco.mx\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/grupocesco.mx\/en\/wp-json\/wp\/v2\/comments?post=594"}],"version-history":[{"count":109,"href":"https:\/\/grupocesco.mx\/en\/wp-json\/wp\/v2\/pages\/594\/revisions"}],"predecessor-version":[{"id":1270,"href":"https:\/\/grupocesco.mx\/en\/wp-json\/wp\/v2\/pages\/594\/revisions\/1270"}],"wp:attachment":[{"href":"https:\/\/grupocesco.mx\/en\/wp-json\/wp\/v2\/media?parent=594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}