1 2<!DOCTYPE html> 3<html lang="es" data-default-lang="es" dir="ltr" data-color-scheme="light"> 4 <head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta name="view-transition" content="same-origin"> 8 9 <link rel="stylesheet" type="text/css" href="https://www.consejomexicano.org/assets/build/style.css?v=PBwWp6a-ShDhs1aC"> 10 11 <link rel="manifest" data-manifest /> 12 13
14<script> 15 const computedStyle = getComputedStyle(document.documentElement); 16 const headingFont = computedStyle.getPropertyValue('--gh-font-heading'); 17 const bodyFont = computedStyle.getPropertyValue('--gh-font-body'); 18 19 if (!headingFont || !bodyFont) { 20 let fontsLinks = '<link rel="preconnect" href="https://fonts.bunny.net">'; 21 22 if (!headingFont && !bodyFont) { 23 fontsLinks += `<link rel="stylesheet" href="https://fonts.bunny.net/css?family= 24inter:400,500,600 25| 26noto-sans:400,700 27">`; 28 } else if (!headingFont) { 29 fontsLinks += `<link rel="stylesheet" href="https://fonts.bunny.net/css?family= 30inter:400,500,600 31">`; 32 } else if (!bodyFont) { 33 fontsLinks += `<link rel="stylesheet" href="https://fonts.bunny.net/css?family= 34noto-sans:400,700 35">`; 36 } 37 38 document.write(fontsLinks); 39 } 40</script>
40 41 42<style> 43 :root { 44 --accent-color: #036396; 45 --cover-image: url(https://static.ghost.org/v5.0.0/images/publication-cover.jpg); 46 --font-family-heading: var(--gh-font-heading, Inter); 47 --font-family-body: var(--gh-font-body, Noto Sans); 48 } 49</style> 50
51<script> 52 window.themeConfig = { 53 enableAppMode: true, 54 colorScheme: "light", 55 site: { 56 url: "https://www.consejomexicano.org", 57 title: "COMEXI", 58 description: "Consejo Mexicano de Asuntos Internacionales A.C.", 59 accentColor: "#036396", 60 icon: "https://storage.ghost.io/c/ac/fc/acfc0832-6b0f-4b30-af16-0a7e41c415b5/content/images/2026/03/25AniversarioCOMEXI.ico", 61 } 62 } 63</script>
63 64
64<script type="module" src="https://www.consejomexicano.org/assets/build/main.js?v=UHneCuKfrWf0Wyk2"></script>
64 65 66 <link rel="icon" href="https://storage.ghost.io/c/ac/fc/acfc0832-6b0f-4b30-af16-0a7e41c415b5/content/images/2026/03/25AniversarioCOMEXI.ico" type="image/x-icon"> 67 <link rel="canonical" href="https://www.consejomexicano.org/quienes-somos/"> 68 <meta name="referrer" content="no-referrer-when-downgrade"> 69 70 <meta property="og:site_name" content="COMEXI"> 71 <meta property="og:type" content="website"> 72 <meta property="og:title" content="¿Quiénes somos?"> 73 <meta property="og:description" content="El Consejo Mexicano de Asuntos Internacionales, COMEXI, está dedicado al estudio, análisis y diálogo sobre el acontecer internacional y global. Nuestro objetivo es generar ideas que nos abran al mundo; para lograrlo, creamos comunidad y redes, abrimos espacios para el debate en los núcleos de conocimiento relevantes, y producimos información"> 74 <meta property="og:url" content="https://www.consejomexicano.org/quienes-somos/"> 75 <meta property="og:image" content="https://static.ghost.org/v5.0.0/images/publication-cover.jpg"> 76 <meta property="article:modified_time" content="2026-06-16T16:43:38.000Z"> 77 78 <meta property="article:publisher" content="https://www.facebook.com/COMEXIAC/"> 79 <meta name="twitter:card" content="summary_large_image"> 80 <meta name="twitter:title" content="¿Quiénes somos?"> 81 <meta name="twitter:description" content="El Consejo Mexicano de Asuntos Internacionales, COMEXI, está dedicado al estudio, análisis y diálogo sobre el acontecer internacional y global. Nuestro objetivo es generar ideas que nos abran al mundo; para lograrlo, creamos comunidad y redes, abrimos espacios para el debate en los núcleos de conocimiento relevantes, y producimos información"> 82 <meta name="twitter:url" content="https://www.consejomexicano.org/quienes-somos/"> 83 <meta name="twitter:image" content="https://static.ghost.org/v5.0.0/images/publication-cover.jpg"> 84 <meta name="twitter:label1" content="Written by"> 85 <meta name="twitter:data1" content="Ricardo Paniagua"> 86 <meta name="twitter:label2" content="Filed under"> 87 <meta name="twitter:data2" content=""> 88 <meta name="twitter:site" content="@COMEXI"> 89 <meta property="og:image:width" content="1200"> 90 <meta property="og:image:height" content="840"> 91 92
92<script type="application/ld+json"> 93{ 94 "@context": "https://schema.org", 95 "@type": "Article", 96 "publisher": { 97 "@type": "Organization", 98 "name": "COMEXI", 99 "url": "https://www.consejomexicano.org/", 100 "logo": { 101 "@type": "ImageObject", 102 "url": "https://storage.ghost.io/c/ac/fc/acfc0832-6b0f-4b30-af16-0a7e41c415b5/content/images/2026/03/25AniversarioCOMEXI-2.jpeg", 103 "width": 60, 104 "height": 60 105 } 106 }, 107 "author": { 108 "@type": "Person", 109 "name": "Ricardo Paniagua", 110 "sameAs": [] 111 }, 112 "headline": "¿Quiénes somos?", 113 "url": "https://www.consejomexicano.org/quienes-somos/", 114 "dateModified": "2026-06-16T16:43:38.000Z", 115 "description": "El Consejo Mexicano de Asuntos Internacionales, COMEXI, está dedicado al estudio, análisis y diálogo sobre el acontecer internacional y global. Nuestro objetivo es generar ideas que nos abran al mundo; para lograrlo, creamos comunidad y redes, abrimos espacios para el debate en los núcleos de conocimiento relevantes, y producimos información y propuestas que contribuyan al mejor entendimiento del mundo en el que vivimos, impacten en la toma de decisiones, e incidan en la formulación de polÃticas", 116 "mainEntityOfPage": "https://www.consejomexicano.org/quienes-somos/" 117} 118 </script>
118 119 120 <meta name="generator" content="Ghost 6.65"> 121 <link rel="alternate" type="application/rss+xml" title="COMEXI" href="https://www.consejomexicano.org/rss/"> 122
122<script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.71/umd/portal.min.js" data-i18n="true" data-ghost="https://www.consejomexicano.org/" data-key="4ea5846e2f8731990fe5b6229f" data-api="https://comexi.ghost.io/ghost/api/content/" data-locale="es" crossorigin="anonymous"></script>
122<style id="gh-members-styles">.gh-post-upgrade-cta-content, 123.gh-post-upgrade-cta { 124 display: flex; 125 flex-direction: column; 126 align-items: center; 127 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 128 text-align: center; 129 width: 100%; 130 color: #ffffff; 131 font-size: 16px; 132} 133 134.gh-post-upgrade-cta-content { 135 border-radius: 8px; 136 padding: 40px 4vw; 137} 138 139.gh-post-upgrade-cta h2 { 140 color: #ffffff; 141 font-size: 28px; 142 letter-spacing: -0.2px; 143 margin: 0; 144 padding: 0; 145} 146 147.gh-post-upgrade-cta p { 148 margin: 20px 0 0; 149 padding: 0; 150} 151 152.gh-post-upgrade-cta small { 153 font-size: 16px; 154 letter-spacing: -0.2px; 155} 156 157.gh-post-upgrade-cta a { 158 color: #ffffff; 159 cursor: pointer; 160 font-weight: 500; 161 box-shadow: none; 162 text-decoration: underline; 163} 164 165.gh-post-upgrade-cta a:hover { 166 color: #ffffff; 167 opacity: 0.8; 168 box-shadow: none; 169 text-decoration: underline; 170} 171 172.gh-post-upgrade-cta a.gh-btn { 173 display: block; 174 background: #ffffff; 175 text-decoration: none; 176 margin: 28px 0 0; 177 padding: 8px 18px; 178 border-radius: 4px; 179 font-size: 16px; 180 font-weight: 600; 181} 182 183.gh-post-upgrade-cta a.gh-btn:hover { 184 opacity: 0.92; 185}</style> 186
186<script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/sodo-search.min.js" data-key="4ea5846e2f8731990fe5b6229f" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/main.css" data-sodo-search="https://comexi.ghost.io/" data-locale="es" crossorigin="anonymous"></script>
186 187
187<script defer src="https://cdn.jsdelivr.net/ghost/announcement-bar@~1.1/umd/announcement-bar.min.js" data-announcement-bar="https://www.consejomexicano.org/" data-api-url="https://www.consejomexicano.org/members/api/announcement/" crossorigin="anonymous"></script>
187 188 <link href="https://www.consejomexicano.org/webmentions/receive/" rel="webmention"> 189
189<script defer src="/public/cards.min.js?v=ShRHxgy4po8zN-Wf"></script>
189 190 <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=WwnU9jw5ancNC8Gc"> 191
191<script defer src="/public/ghost-stats.min.js?v=vFcCUf6ZQ0Hyhc8h" data-stringify-payload="false" data-datasource="analytics_events" data-storage="localStorage" data-host="https://www.consejomexicano.org/.ghost/analytics/api/v1/page_hit" tb_site_uuid="acfc0832-6b0f-4b30-af16-0a7e41c415b5" tb_post_uuid="7c6e85db-4205-4347-a448-774cc354a917" tb_post_type="page" tb_member_uuid="undefined" tb_member_status="undefined" tb_gift_link=""></script>
191<style>:root {--ghost-accent-color: #036396;}</style> 192
192<script src='https://app.glueup.com/compiled/js/eb-widgets.min.js' type='text/javascript'></script>
192 193 <link rel="preconnect" href="https://fonts.bunny.net"><link rel="stylesheet" href="https://fonts.bunny.net/css?family=noto-sans:400,700"><style>:root {--gh-font-heading: Noto Sans;}</style> 194 195 <title>COMEXI</title> 196 197 </head> 198 <body class="overflow-x-hidden page-template page-quienes-somos tag-hash-rodrigo gh-font-heading-noto-sans"> 199 200<header class="site-header"> 201 202<a href="/" class="site-logo" data-logo-link aria-label="COMEXI - Home"> 203 <img src="https://storage.ghost.io/c/ac/fc/acfc0832-6b0f-4b30-af16-0a7e41c415b5/content/images/2026/03/25AniversarioCOMEXI-2.jpeg" alt="COMEXI" loading="eager" class="logo"/> 204 <img src="https://storage.ghost.io/c/ac/fc/acfc0832-6b0f-4b30-af16-0a7e41c415b5/content/images/2025/09/comexi_logo_3x_letrasblancas-1.png" alt="COMEXI" loading="eager" class="logo-dark" /> 205</a>
206<script> 207 (function() { 208 function updateLogoLink() { 209 const logoLink = document.querySelector('.site-logo[data-logo-link]'); 210 if (logoLink) { 211 const currentPath = window.location.pathname; 212 const urlParams = new URLSearchParams(window.location.search.replace(/^\?/, '')); 213 // Respetar ?lang=: si hay ?lang=es mostramos menú español, si ?lang=en mostramos inglés 214 const showEnglishMenu = urlParams.get('lang') === 'es' ? false 215 : (currentPath.startsWith('/en/') || urlParams.get('lang') === 'en'); 216 logoLink.href = showEnglishMenu ? '/en/' : '/'; 217 } 218 } 219 220 updateLogoLink(); 221 if (document.readyState === 'loading') { 222 document.addEventListener('DOMContentLoaded', updateLogoLink); 223 } else { 224 setTimeout(updateLogoLink, 100); 225 } 226 })(); 227</script>
227 228 <nav class="nav" aria-label="Main navigation"> 229 <div class="nav-lang-group nav-lang-group--es" data-lang="es" data-display="flex" aria-hidden="false"> 230 <div class="nav-item has-dropdown" role="button" tabindex="0" aria-label="Nosotros"> 231 <span class="nav-dropdown-trigger">Nosotros</span> 232 <div class="nav-submenu"> 233 <a href="/quienes-somos/" class="nav-item">Quiénes somos</a> 234 <a href="/junta-directiva/" class="nav-item">Junta Directiva</a> 235 <a href="/asociados/" class="nav-item">Asociados</a> 236 <a href="/pj-comexi/" class="nav-item">PJ COMEXI</a> 237 <a href="/nucleos-estudio/" class="nav-item">Núcleos de estudio y UERs</a> 238 <a href="/equipo-comexi/" class="nav-item">Equipo COMEXI</a> 239 <a href="/normativa/" class="nav-item">Normatividad y reportes</a> 240 </div> 241 </div> 242 243 <a href="/membresias/" class="nav-item">MembresÃas</a> 244 245 <div class="nav-item has-dropdown" role="button" tabindex="0" aria-label="Medios"> 246 <span class="nav-dropdown-trigger">Medios</span> 247 <div class="nav-submenu"> 248 <a href="/comexi-medios/" class="nav-item">COMEXI en los medios</a> 249 <a href="/contacta-experto/" class="nav-item">Contacta a un experto</a> 250 <a href="/asociados-medios/" class="nav-item">Asociados en los medios</a> 251 <a href="/sala-prensa/" class="nav-item">Sala de prensa</a> 252 </div> 253 </div> 254 255 <a href="/eventos/" class="nav-item">Eventos</a> 256 257 <div class="nav-item has-dropdown" role="button" tabindex="0" aria-label="Análisis"> 258 <span class="nav-dropdown-trigger">Análisis</span> 259 <div class="nav-submenu"> 260 <a href="/analisis-filtrar?from=reports" class="nav-item">Reportes y estudios</a> 261 <a href="/analisis-filtrar?from=policy-briefs" class="nav-item">Policy briefs y papers</a> 262 <a href="/analisis-filtrar?from=libros" class="nav-item">Libros</a> 263 </div> 264 </div> 265 266 <a href="/comexi-expediente/" class="nav-item" aria-label="Expediente COMEXI">Expediente COMEXI</a> 267 268 <a href="/donativos/" class="nav-item">Donativos</a> 269 </div> 270 271 <div class="nav-lang-group nav-lang-group--en" data-lang="en" data-display="flex" aria-hidden="true"> 272 <div class="nav-item has-dropdown" role="button" tabindex="0" aria-label="About Us"> 273 <span class="nav-dropdown-trigger">About Us</span> 274 <div class="nav-submenu"> 275 <a href="/en/about-us/" class="nav-item">Who We Are</a> 276 <a href="/en/board-of-directors/" class="nav-item">Board of Directors</a> 277 <a href="/en/members/" class="nav-item">Associates</a> 278 <a href="/en/comexi-young-professionals/" class="nav-item">COMEXI Young Professionals</a> 279 <a href="/en/study-hubs/" class="nav-item">Study Hubs and UERs</a> 280 <a href="/en/comexi-team/" class="nav-item">COMEXI Team</a> 281 <a href="/en/regulations/" class="nav-item">Regulations & Reports</a> 282 </div> 283 </div> 284 285 <a href="/en/memberships/" class="nav-item">Memberships</a> 286 287 <div class="nav-item has-dropdown" role="button" tabindex="0" aria-label="Media"> 288 <span class="nav-dropdown-trigger">Media</span> 289 <div class="nav-submenu"> 290 <a href="/en/comexi-media/" class="nav-item">COMEXI in the Media</a> 291 <a href="/en/contact-an-expert/" class="nav-item">Contact an Expert</a> 292 <a href="/en/media-partners/" class="nav-item">Associates in the Media</a> 293 <a href="/en/press-room/" class="nav-item">News Room</a> 294 </div> 295 </div> 296 297 <a href="/en/events/" class="nav-item">Events</a> 298 299 <div class="nav-item has-dropdown" role="button" tabindex="0" aria-label="Analysis">
300 <span class="nav-dropdown-trigger">Analysis</span> 301 <div class="nav-submenu"> 302 <a href="/en/analysis-filter/?from=reports" class="nav-item">Reports & Studies</a> 303 <a href="/en/analysis-filter/?from=policy-briefs" class="nav-item">Policy Briefs & Papers</a> 304 <a href="/en/analysis-filter/?from=libros" class="nav-item">Books</a> 305 </div> 306 </div> 307 308 <a href="/en/comexi-dossier/" class="nav-item" aria-label="COMEXI Dossier">COMEXI Dossier</a> 309 310 <a href="/en/donations/" class="nav-item">Donations</a> 311 </div> 312 313 <div class="nav-wrap-container" data-icon="more" tabindex="0" role="region" aria-label="More"></div> 314 </nav> 315 316 <div class="nav-actions" role="navigation" aria-label="User actions"> 317 <nav class="lang-switcher" aria-label="Selector de idioma"> 318 <a 319 class="lang-switcher__link lang-switcher__link--es" 320 data-lang="es" 321 href="/" 322 style="display: none;" 323 >ES</a> 324 <a 325 class="lang-switcher__link lang-switcher__link--en" 326 data-lang="en" 327 href="/en/" 328 style="display: none;" 329 >EN</a> 330</nav> 331
332<script> 333(function () { 334 const normalize = (path) => { 335 if (!path) { 336 return "/"; 337 } 338 if (path !== "/" && path.endsWith("/")) { 339 return path; 340 } 341 return path === "/" ? "/" : path + "/"; 342 }; 343 344 const { pathname, search: currentSearch = "", hash: currentHash = "" } = window.location; 345 const current = normalize(pathname).toLowerCase(); 346 const urlParams = new URLSearchParams(currentSearch.replace(/^\?/, '')); 347 348 const buildHref = (path) => { 349 const normalizedPath = normalize(path || "/"); 350 return normalizedPath + (currentSearch || "") + (currentHash || ""); 351 }; 352 353 const buildHrefWithLang = (path, lang) => { 354 const normalizedPath = normalize(path || "/"); 355 const params = new URLSearchParams(currentSearch.replace(/^\?/, '')); 356 if (lang === 'en') { 357 params.set('lang', 'en'); 358 } else { 359 params.set('lang', 'es'); // ?lang=es para mostrar menú español en rutas /en/ (posts sin versión ES) 360 } 361 const search = params.toString() ? '?' + params.toString() : ''; 362 return normalizedPath + search + (currentHash || ""); 363 }; 364 365 const buildHrefWithoutLang = (path) => { 366 const normalizedPath = normalize(path || "/"); 367 const params = new URLSearchParams(currentSearch.replace(/^\?/, '')); 368 params.delete('lang'); 369 const search = params.toString() ? '?' + params.toString() : ''; 370 return normalizedPath + search + (currentHash || ""); 371 }; 372 373 const docEl = document.documentElement; 374 const defaultLang = docEl.getAttribute('data-default-lang') || 'es'; 375 // ?lang=es fuerza menú español en rutas /en/. ?lang=en fuerza menú inglés en rutas sin /en/ 376 const isEnglish = urlParams.get('lang') === 'es' ? false 377 : (current === '/en/' || current.startsWith('/en/') || urlParams.get('lang') === 'en'); 378 const activeLang = isEnglish ? 'en' : 'es'; 379 380 docEl.setAttribute('data-current-lang', activeLang); 381 docEl.setAttribute('lang', isEnglish ? 'en' : defaultLang); 382 383 const navElement = document.querySelector('.nav'); 384 if (navElement) { 385 navElement.setAttribute('data-current-lang', activeLang); 386 } 387 388 // Función para detectar si estamos en móvil 389 const isMobile = () => window.innerWidth <= 768; 390 391 // Función para aplicar estilos según el tamaño de pantalla 392 const applyResponsiveStyles = () => { 393 const mobile = isMobile(); 394 395 document.querySelectorAll('.nav-lang-group--es[data-lang], .nav-lang-group--en[data-lang]').forEach(group => { 396 // Solo aplicar display si es necesario (para mostrar/ocultar según idioma) 397 const shouldBeVisible = 398 (group.classList.contains('nav-lang-group--es') && !isEnglish) || 399 (group.classList.contains('nav-lang-group--en') && isEnglish); 400 401 if (!shouldBeVisible) { 402 group.style.display = 'none'; 403 // Limpiar estilos inline cuando está oculto 404 group.style.flexDirection = ''; 405 group.style.width = ''; 406 } else { 407 const defaultDisplay = group.dataset.display || 'flex'; 408 group.style.display = defaultDisplay; 409 410 // En móvil, aplicar flex-direction: column 411 // En desktop, eliminar estilos inline para que use CSS 412 if (mobile) { 413 group.style.flexDirection = 'column'; 414 group.style.width = '100%'; 415 } else { 416 // En desktop, dejar que el CSS maneje los estilos 417 group.style.flexDirection = ''; 418 group.style.width = ''; 419 } 420 } 421 }); 422 }; 423 424 // Aplicar estilos inicialmente 425 applyResponsiveStyles(); 426 427 // Actualizar estilos cuando se redimensiona la ventana 428 window.addEventListener('resize', applyResponsiveStyles); 429 430 const PATH_MAP = { 431 "/": { en: "/en/" }, 432 "/quienes-somos/": { en: "/en/about-us/" }, 433 "/junta-directiva/": { en: "/en/board-of-directors/" }, 434 "/asociados/": { en: "/en/members/" }, 435 "/pj-comexi/": { en: "/en/comexi-young-professionals/" }, 436 "/equipo-comexi/": { en: "/en/comexi-team/" }, 437 "/nucleos-estudio/": { en: "/en/study-hubs/" }, 438 "/normativa/": { en: "/en/regulations/" }, 439 "/membresias/": { en: "/en/memberships/" }, 440 "/comexi-medios/": { en: "/en/comexi-media/" }, 441 "/contacta-experto/": { en: "/en/contact-an-expert/" }, 442 "/asociados-medios/": { en: "/en/media-partners/" }, 443 "/sala-prensa/": { en: "/en/press-room/" }, 444 "/eventos/": { en: "/en/events/" }, 445 "/analisis-filtrar/": { en: "/en/analysis-filter/" }, 446 "/comexi-expediente/": { en: "/en/comexi-dossier/" }, 447 "/donativos/": { en: "/en/donations/" }, 448 "/blog/": { en: "/en/blog/" }, 449 "/asuntos-globales/": { en: "/en/global-affairs/" }, 450 "/relaciones-exteriores/": { en: "/en/foreign-relations/" }, 451 "/sistemas-internacionales/": { en: "/en/international-systems/" }, 452 "/politica-de-privacidad/": { en: "/en/privacy-policy/" }, 453 "/terminos-condiciones/": { en: "/en/terms-and-conditions/" }, 454 455 "/en/": { es: "/" }, 456 "/en/about-us/": { es: "/quienes-somos/" }, 457 "/en/board-of-directors/": { es: "/junta-directiva/" }, 458 "/en/members/": { es: "/asociados/" }, 459 "/en/comexi-young-professionals/": { es: "/pj-comexi/" }, 460 "/en/comexi-team/": { es: "/equipo-comexi/" }, 461 "/en/study-hubs/": { es: "/nucleos-estudio/" }, 462 "/en/regulations/": { es: "/normativa/" }, 463 "/en/memberships/": { es: "/membresias/" }, 464 "/en/comexi-media/": { es: "/comexi-medios/" }, 465 "/en/contact-an-expert/": { es: "/contacta-experto/" }, 466 "/en/media-partners/": { es: "/asociados-medios/" }, 467 "/en/press-room/": { es: "/sala-prensa/" }, 468 "/en/events/": { es: "/eventos/" }, 469 "/en/analysis-filter/": { es: "/analisis-filtrar/" }, 470 "/en/comexi-dossier/": { es: "/comexi-expediente/" }, 471 "/en/donations/": { es: "/donativos/" }, 472 "/en/blog/": { es: "/blog/" }, 473 "/en/global-affairs/": { es: "/asuntos-globales/" }, 474 "/en/foreign-relations/": { es: "/relaciones-exteriores/" }, 475 "/en/international-systems/": { es: "/sistemas-internacionales/" }, 476 "/en/privacy-policy/": { es: "/politica-de-privacidad/" }, 477 "/en/terms-and-conditions/": { es: "/terminos-condiciones/" } 478 }; 479 480 const esLink = document.querySelector(".lang-switcher__link[data-lang=\"es\"]"); 481 const enLink = document.querySelector(".lang-switcher__link[data-lang=\"en\"]"); 482 483 const lookup = PATH_MAP[current] || {}; 484 485 // Para rutas no mapeadas (ej: perfiles que solo existen en español), 486 // mantener al usuario en la misma página en lugar de /en/{slug}/ (404). 487 const fallbackEs = current.startsWith("/en/") 488 ? normalize(current.replace(/^\/en/, "") || "/") 489 : normalize(current); 490 491 const fallbackEn = current.startsWith("/en/") 492 ? normalize(current) 493 : (PATH_MAP[current] ? normalize(`/en${current === "/" ? "/" : current}`) : normalize(current)); 494 495 if (esLink) { 496 if (isEnglish) { 497 // Estamos en inglés, mostrar ES para cambiar a español 498 const esTarget = lookup.es || fallbackEs; 499 if (PATH_MAP[current]) { 500 esLink.href = buildHref(esTarget); 501 } else if (current.startsWith('/en/')) { 502 // Post/página en /en/ sin versión ES: quedarse y añadir ?lang=es para menú español 503 esLink.href = buildHrefWithLang(current, 'es'); 504 } else { 505 // Página con ?lang=en: quitar param para volver a menú español 506 esLink.href = buildHrefWithoutLang(current); 507 } 508 esLink.style.display = 'inline-flex'; 509 } else { 510 // Estamos en español, no mostrar ES (mostrar EN) 511 esLink.style.display = 'none'; 512 } 513 } 514 515 if (enLink) { 516 if (isEnglish) { 517 // Estamos en inglés, no mostrar EN (mostrar ES) 518 enLink.style.display = 'none'; 519 } else { 520 // Estamos en español, mostrar EN para cambiar a inglés 521 // Si es fallback (misma página sin versión EN), usar ?lang=en para cambiar el menú 522 const enTarget = lookup.en || fallbackEn; 523 enLink.href = PATH_MAP[current] ? buildHref(enTarget) : buildHrefWithLang(current, 'en'); 524 enLink.style.display = 'inline-flex'; 525 } 526 } 527})(); 528</script>
528 529 530 531 <div role="button" tabindex="0" class="nav-item" data-icon="search" data-ghost-search aria-label="Buscar"></div> 532 533 534 <div role="button" tabindex="0" class="nav-toggle" data-icon="menu" aria-label="Menú" aria-expanded="false" aria-controls="mobile-menu"></div> 535 </div> 536</header> 537 <div class="container"> 538 539 540<main class="site-main"> 541 <article class="article"> 542 <header class="article-header mt-8"> 543 <div class="container mx-auto px-6"> 544 <h1 class="article-title text-4xl font-bold mb-4">¿Quiénes somos?</h1> 545 </div> 546 </header> 547 548 <div class="article-content"> 549 <div class="container mx-auto px-6"> 550 <div class="article-description text-lg text-gray-600 dark:text-gray-400 mb-8 prose prose-lg max-w-none"> 551 <p>El Consejo Mexicano de Asuntos Internacionales, COMEXI, está dedicado al estudio, análisis y diálogo sobre el acontecer internacional y global. Nuestro objetivo es generar ideas que nos abran al mundo; para lograrlo, creamos comunidad y redes, abrimos espacios para el debate en los núcleos de conocimiento relevantes, y producimos información y propuestas que contribuyan al mejor entendimiento del mundo en el que vivimos, impacten en la toma de decisiones, e incidan en la formulación de polÃticas públicas -nacionales e internacionales- para beneficio de México y del mundo.</p><p>El mayor capital de COMEXI es el talento de su membresÃa, ya que contamos con más de 500 asociados expertos y experimentados en múltiples arenas de la teorÃa y práctica de los asuntos globales y de las relaciones internacionales, asà como de la vida diplomática, polÃtica, social, cultural, educativa, cientÃfica y económica de México.</p><p>En COMEXI estamos siempre abiertos a nuevo talento, experiencias y temas de interés porque entendemos que vivimos en un mundo cambiante. Más aún, en COMEXI todas las voces cuentan porque la pluralidad, la igualdad de oportunidad y de participación, asà como la innovación, son fundamentales en nuestro trabajo y necesarias en la construcción del futuro.</p> 552 </div> 553 554 <div class="mt-12 mb-8"> 555 <a href="/content/files/2026/06/PLAN-DE-TRABAJO-H--CTOR-C--RDENAS.pdf" 556 target="_blank" 557 class="text-lg font-semibold hover:underline transition-all duration-300" 558 style="color: var(--accent-color) !important;"> 559 PLAN DE TRABAJO DEL DR. HÃCTOR CÃRDENAS 2025-2026 â 560 </a> 561 </div> 562 </div> 563 </div> 564 </article> 565</main> 566 567<!-- Espacio adicional antes del footer --> 568<div class="mb-16"></div> 569 570<style> 571/* Asegurar que el contenido completo se muestre - igual que en page-comexi-expediente.hbs */ 572.article-description { 573 overflow: visible !important; 574 max-height: none !important; 575 height: auto !important; 576 text-overflow: clip !important; 577 white-space: normal !important; 578} 579 580/* Asegurar que los párrafos se muestren completos sin truncar */ 581.article-description p { 582 overflow: visible !important; 583 max-height: none !important; 584 height: auto !important; 585 -webkit-line-clamp: unset !important; 586 line-clamp: unset !important; 587 text-overflow: clip !important; 588 white-space: normal !important; 589 display: block !important; 590} 591 592/* Asegurar que los enlaces se vean bien */ 593.article-description a { 594 display: inline !important; 595 text-decoration: underline !important; 596} 597 598/* Sobrescribir estilos de prose que puedan truncar */ 599.article-description.prose p { 600 overflow: visible !important; 601 max-height: none !important; 602 -webkit-line-clamp: unset !important; 603 line-clamp: unset !important; 604 text-overflow: clip !important; 605 display: block !important; 606} 607</style> 608 609 </div> 610 611 612<footer class="border-t border-b0 pb-12" data-footer> 613 <div class="container mx-auto px-6 flex flex-wrap justify-center items-center gap-12 min-h-[200px]"> 614 <div class="flex flex-col gap-4 justify-center"> 615 <!-- Logo con soporte para modo oscuro --> 616 <div class="footer-logo-container"> 617 <img src="https://storage.ghost.io/c/ac/fc/acfc0832-6b0f-4b30-af16-0a7e41c415b5/content/images/2026/03/25AniversarioCOMEXI-2.jpeg" alt="COMEXI Logo" class="footer-logo w-80 h-56 object-contain"> 618 <img src="https://storage.ghost.io/c/ac/fc/acfc0832-6b0f-4b30-af16-0a7e41c415b5/content/images/2025/09/comexi_logo_3x_letrasblancas-1.png" alt="COMEXI Logo" class="footer-logo-dark w-80 h-56 object-contain"> 619 </div> 620 </div> 621 622 <!-- Enlaces del footer personalizados --> 623 <nav class="grid gap-x-12 gap-y-4 self-center items-center" style="grid-template-columns: auto auto;" aria-label="Footer navigation"> 624 <!-- Columna 1: Enlaces legales y Contacta a un experto --> 625 <div class="flex flex-col gap-2 justify-center"> 626 <div class="flex flex-col gap-2 nav-lang-group nav-lang-group--es" data-lang="es" data-display="flex" aria-hidden="false"> 627 <a href="/politica-de-privacidad/" class="text-base font-medium text-gray-700 hover:text-blue-800">PolÃtica de privacidad</a> 628 <a href="/terminos-condiciones/" class="text-base font-medium text-gray-700 hover:text-blue-800">Términos y condiciones</a> 629 <a href="/contacta-experto/" class="text-base font-medium text-gray-700 hover:text-blue-800">Contacta a un experto</a> 630 </div> 631 632 <div class="flex flex-col gap-2 nav-lang-group nav-lang-group--en" data-lang="en" data-display="flex" aria-hidden="true"> 633 <a href="/en/privacy-policy/" class="text-base font-medium text-gray-700 hover:text-blue-800">Privacy Policy</a> 634 <a href="/en/terms-and-conditions/" class="text-base font-medium text-gray-700 hover:text-blue-800">Terms and Conditions</a> 635 <a href="/en/contact-an-expert/" class="text-base font-medium text-gray-700 hover:text-blue-800">Contact an expert</a> 636 </div> 637 </div> 638
639 <!-- Columna 2: Redes sociales --> 640 <div class="flex flex-col gap-2 justify-center"> 641 <div class="text-base font-medium text-gray-700 mb-2 nav-lang-group nav-lang-group--es" data-lang="es" data-display="block" aria-hidden="false">Redes sociales</div> 642 <div class="text-base font-medium text-gray-700 mb-2 nav-lang-group nav-lang-group--en" data-lang="en" data-display="block" aria-hidden="true">Social Networks</div> 643 644 <div class="flex gap-4 items-center"> 645 <a 646 href="https://www.linkedin.com/in/comexi/" 647 aria-label="LinkedIn" 648 class="text-gray-700 hover:text-blue-800 transition-colors" 649 target="_blank" 650 rel="noopener noreferrer" 651 > 652 <div data-icon="linkedin" class="scale-115"></div> 653 </a> 654 <a 655 href="https://x.com/COMEXI" 656 aria-label="X (Twitter)" 657 class="text-gray-700 hover:text-blue-800 transition-colors" 658 target="_blank" 659 rel="noopener noreferrer" 660 > 661 <div data-icon="x"></div> 662 </a> 663 <a 664 href="https://www.facebook.com/COMEXIAC/" 665 aria-label="Facebook" 666 class="text-gray-700 hover:text-blue-800 transition-colors" 667 target="_blank" 668 rel="noopener noreferrer" 669 > 670 <div data-icon="facebook"></div> 671 </a> 672 <a 673 href="https://www.instagram.com/comexiac/" 674 aria-label="Instagram" 675 class="text-gray-700 hover:text-blue-800 transition-colors" 676 target="_blank" 677 rel="noopener noreferrer" 678 > 679 <div data-icon="instagram" class="scale-125"></div> 680 </a> 681 </div> 682 683 <span class="text-base font-medium text-gray-700 nav-lang-group nav-lang-group--es" data-lang="es" data-display="block" aria-hidden="false">Contacto: 55 8311 6281</span> 684 <span class="text-base font-medium text-gray-700 nav-lang-group nav-lang-group--en" data-lang="en" data-display="block" aria-hidden="true">Contact: 55 8311 6281</span> 685 </div> 686 </nav> 687 </div> 688 689 <!-- Copyright personalizable --> 690 <div class="container mx-auto px-6 mt-8 pt-8 border-t border-gray-200"> 691 <div class="text-center text-gray-600"> 692 Derechos Reservados Consejo Mexicano de Asuntos Internacionales A.C. 2025 693 </div> 694 </div> 695</footer> 696 697<style> 698/* Estilos para el logo del footer con soporte para modo oscuro */ 699.footer-logo-container { 700 position: relative; 701 display: inline-block; 702} 703 704.footer-logo-container .footer-logo-dark { 705 display: none; 706} 707 708/* En modo oscuro, mostrar el logo oscuro y ocultar el claro */ 709[data-color-scheme="dark"] .footer-logo-container .footer-logo { 710 display: none; 711} 712 713[data-color-scheme="dark"] .footer-logo-container .footer-logo-dark { 714 display: block; 715} 716 717[data-current-lang="en"] .nav-lang-group--es { 718 display: none !important; 719} 720 721[data-current-lang="en"] .nav-lang-group--en { 722 display: flex !important; 723} 724 725[data-current-lang="es"] .nav-lang-group--en { 726 display: none !important; 727} 728 729[data-current-lang="en"] .nav-lang-group--en[data-display="block"] { 730 display: block !important; 731} 732 733[data-current-lang="es"] .nav-lang-group--es[data-display="block"] { 734 display: block !important; 735} 736</style> 737 738 <div class="scroll-indicator" data-icon="arrow_up"> 739 <svg viewBox="0 0 100 100"> 740 <circle cx="50" cy="50" r="48" /> 741 </svg> 742 </div> 743 744 745 746 747
747<script> 748 (function() { 749 function processInternalTags() { 750 // Buscar TODOS los tags internos (hash-) en la página 751 const tagLinks = document.querySelectorAll('a[href*="/tag/hash-"], a[class*="tag-hash-"]'); 752 753 tagLinks.forEach(function(tagLink) { 754 // Quitar el # del principio del texto si existe 755 const currentText = tagLink.textContent.trim(); 756 if (currentText.startsWith('#')) { 757 tagLink.textContent = currentText.substring(1); 758 } 759 }); 760 } 761 762 // Ejecutar cuando el DOM esté listo 763 if (document.readyState === 'loading') { 764 document.addEventListener('DOMContentLoaded', processInternalTags); 765 } else { 766 processInternalTags(); 767 } 768 769 // También ejecutar con delays para posts que se cargan dinámicamente 770 setTimeout(processInternalTags, 100); 771 setTimeout(processInternalTags, 500); 772 setTimeout(processInternalTags, 1000); 773 setTimeout(processInternalTags, 2000); 774 })(); 775 </script>
775 776 777
777<script> 778 (function() { 779 // Obtener el tÃtulo del sitio desde la configuración del tema 780 const siteTitle = window.themeConfig && window.themeConfig.site ? window.themeConfig.site.title : 'COMEXI'; 781 782 function ensureCorrectTitle() { 783 const currentTitle = document.title; 784 785 // Verificar que no tenga errores o esté vacÃo 786 const hasErrorText = currentTitle.toLowerCase().includes('no se puede') || 787 currentTitle.toLowerCase().includes('error') || 788 currentTitle.trim() === ''; 789 790 if (hasErrorText || !currentTitle) { 791 document.title = siteTitle || 'COMEXI'; 792 } 793 } 794 795 // Ejecutar inmediatamente y después de que el DOM esté listo 796 ensureCorrectTitle(); 797 798 if (document.readyState === 'loading') { 799 document.addEventListener('DOMContentLoaded', function() { 800 setTimeout(ensureCorrectTitle, 100); 801 setTimeout(ensureCorrectTitle, 500); 802 }); 803 } else { 804 setTimeout(ensureCorrectTitle, 100); 805 setTimeout(ensureCorrectTitle, 500); 806 } 807 808 // Observar cambios en el tÃtulo por si Ghost lo modifica 809 const titleObserver = new MutationObserver(ensureCorrectTitle); 810 const titleElement = document.querySelector('title'); 811 if (titleElement) { 812 titleObserver.observe(titleElement, { childList: true, characterData: true, subtree: true }); 813 } 814 })(); 815 </script>
815 816 817 </body> 818</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.