{"id":5098,"date":"2026-01-10T01:14:09","date_gmt":"2026-01-10T07:14:09","guid":{"rendered":"https:\/\/amf.org.mx\/who-are-we\/"},"modified":"2026-07-14T18:10:19","modified_gmt":"2026-07-15T00:10:19","slug":"about-us","status":"publish","type":"page","link":"https:\/\/amf.org.mx\/en\/about-us\/","title":{"rendered":"About Us"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5098\" class=\"elementor elementor-5098 elementor-967\" data-elementor-settings=\"{&quot;element_pack_global_tooltip_width&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-639c70a6 e-flex e-con-boxed e-con e-parent\" data-id=\"639c70a6\" data-element_type=\"container\" data-e-type=\"container\" id=\"asociados\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-628222e1 e-con-full e-flex e-con e-child\" data-id=\"628222e1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6bb27914 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"6bb27914\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInRight&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Chapter I<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-65494599 elementor-widget-mobile__width-inherit elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-invisible elementor-widget elementor-widget-icon-list\" data-id=\"65494599\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"ri ri-train-fill\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Freight Railroads<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51a821d elementor-arrows-position-outside elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-image-carousel\" data-id=\"51a821d\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;4&quot;,&quot;navigation&quot;:&quot;arrows&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:50,&quot;sizes&quot;:[]},&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Logos Cap\u00edtulo 1\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 8\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/GpoMex2.webp\" alt=\"Grupo M\u00e9xico Transportes\" \/><figcaption class=\"elementor-image-carousel-caption\">Grupo M\u00e9xico Transportes<\/figcaption><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 8\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/03\/CPKC-de-Mex.png\" alt=\"CPKC de M\u00e9xico\" \/><figcaption class=\"elementor-image-carousel-caption\">CPKC de M\u00e9xico<\/figcaption><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 of 8\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/FERROVALLE.webp\" alt=\"FERROVALLE\" \/><figcaption class=\"elementor-image-carousel-caption\">FERROVALLE<\/figcaption><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 of 8\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Ferrocarril-Interoceanico.webp\" alt=\"Ferrocarril Interoce\u00e1nico\" \/><figcaption class=\"elementor-image-carousel-caption\">Ferrocarril Interoce\u00e1nico<\/figcaption><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 of 8\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Ferrocarril-Coahuila-Dgo.webp\" alt=\"L\u00ednea Coahuila Durango\" \/><figcaption class=\"elementor-image-carousel-caption\">L\u00ednea Coahuila Durango<\/figcaption><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"6 of 8\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/BNSF-Railway-650x255.webp\" alt=\"BNSF Railway\" \/><figcaption class=\"elementor-image-carousel-caption\">BNSF Railway<\/figcaption><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"7 of 8\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Union-Pasific.svg\" alt=\"Union Pacific\" \/><figcaption class=\"elementor-image-carousel-caption\">Union Pacific<\/figcaption><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"8 of 8\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Canadian-National-v2-01-650x255.webp\" alt=\"Canadian National\" \/><figcaption class=\"elementor-image-carousel-caption\">Canadian National<\/figcaption><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-left\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M646 125C629 125 613 133 604 142L308 442C296 454 292 471 292 487 292 504 296 521 308 533L604 854C617 867 629 875 646 875 663 875 679 871 692 858 704 846 713 829 713 812 713 796 708 779 692 767L438 487 692 225C700 217 708 204 708 187 708 171 704 154 692 142 675 129 663 125 646 125Z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-right\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M696 533C708 521 713 504 713 487 713 471 708 454 696 446L400 146C388 133 375 125 354 125 338 125 325 129 313 142 300 154 292 171 292 187 292 204 296 221 308 233L563 492 304 771C292 783 288 800 288 817 288 833 296 850 308 863 321 871 338 875 354 875 371 875 388 867 400 854L696 533Z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdf134e elementor-widget elementor-widget-html\" data-id=\"cdf134e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-carga\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-carga\">\n    <div class=\"logo-carousel-track\" id=\"track-carga\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/ferromex.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/GpoMex2.webp\" alt=\"Grupo M\u00e9xico Transportes\">\n        <span>Grupo M\u00e9xico Transportes<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.cpkcr.com\/es\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/03\/CPKC-de-Mex.png\" alt=\"CPKC de M\u00e9xico\">\n        <span>CPKC de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.ferrovalle.com.mx\/ferrovalle\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/FERROVALLE.webp\" alt=\"FERROVALLE\">\n        <span>FERROVALLE<\/span>\n      <\/a>\n\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Ferrocarril-Interoceanico.webp\" alt=\"Ferrocarril Interoce\u00e1nico\">\n        <span>Ferrocarril Interoce\u00e1nico<\/span>\n      <\/div>\n\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Ferrocarril-Coahuila-Dgo.webp\" alt=\"L\u00ednea Coahuila Durango\">\n        <span>L\u00ednea Coahuila Durango<\/span>\n      <\/div>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.bnsf.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/BNSF-Railway.webp\" alt=\"BNSF Railway\">\n        <span>BNSF Railway<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.up.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Union-Pasific.svg\" alt=\"Union Pacific\">\n        <span>Union Pacific<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.cn.ca\/en\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Canadian-National-v2-01.webp\" alt=\"Canadian National\">\n        <span>Canadian National<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  const wrapper   = document.getElementById('carrusel-carga');\n  const container = document.getElementById('container-carga');\n  const track     = document.getElementById('track-carga');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    \/* Reducimos el l\u00edmite a 700px. As\u00ed, aunque Elementor encajone \n       la columna, se mostrar\u00e1n 4 logos en pantallas de escritorio y tablets *\/\n    if (w >= 700) return 4;\n    if (w >= 500) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-37c6fd5 e-flex e-con-boxed e-con e-parent\" data-id=\"37c6fd5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c19f20d elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"c19f20d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d378b20 e-flex e-con-boxed e-con e-parent\" data-id=\"d378b20\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-8e36d4f e-con-full e-flex e-con e-child\" data-id=\"8e36d4f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6391bc7 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"6391bc7\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInRight&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Chapter II<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-575c977 elementor-widget-mobile__width-inherit elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-invisible elementor-widget elementor-widget-icon-list\" data-id=\"575c977\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"lu lu-train-front\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Passenger Trains<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-19296bc e-con-full e-flex e-con e-child\" data-id=\"19296bc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-87d898b e-con-full e-flex e-con e-child\" data-id=\"87d898b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7ac3a57 e-con-full e-flex e-con e-child\" data-id=\"7ac3a57\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-62a3b0b elementor-widget elementor-widget-image\" data-id=\"62a3b0b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/fsuburbanos.com\/\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"394\" height=\"155\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/FerrocarrilesSuburbanos.webp\" class=\"attachment-large size-large wp-image-5096\" alt=\"\" srcset=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/FerrocarrilesSuburbanos.webp 394w, https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/FerrocarrilesSuburbanos-300x118.webp 300w\" sizes=\"(max-width: 394px) 100vw, 394px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a34e82c e-con-full e-flex e-con e-child\" data-id=\"a34e82c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3e94e91 e-con-full e-flex e-con e-child\" data-id=\"3e94e91\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-fa378c3 e-con-full e-flex e-con e-child\" data-id=\"fa378c3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0fec0cc elementor-widget elementor-widget-image\" data-id=\"0fec0cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/trenelinsurgente.mx\/\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"358\" height=\"70\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/logo_elinsurgente.svg\" class=\"attachment-large size-large wp-image-5097\" alt=\"\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5710153 e-con-full e-flex e-con e-child\" data-id=\"5710153\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2c8258a e-flex e-con-boxed e-con e-parent\" data-id=\"2c8258a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-34c86a1 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"34c86a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b690126 e-flex e-con-boxed e-con e-parent\" data-id=\"b690126\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2080ea9 e-con-full e-flex e-con e-child\" data-id=\"2080ea9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8000b02 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"8000b02\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInRight&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Chapter III<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d8c0f8f elementor-widget-mobile__width-inherit elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-invisible elementor-widget elementor-widget-icon-list\" data-id=\"d8c0f8f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"lu lu-train-track\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Suppliers<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b7a4113 e-con-full e-flex e-con e-child\" data-id=\"b7a4113\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4bdc001  ui-split-animate elementor-widget-mobile__width-initial ui-splitby-chars elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"4bdc001\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInRight&quot;,&quot;ui_animate_split&quot;:&quot;ui-split-animate&quot;,&quot;ui_animate_split_style&quot;:&quot;fadeInUp cut&quot;,&quot;ui_animate_split_by&quot;:&quot;chars&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Consulting <\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-06b3d88 e-con-full e-flex e-con e-child\" data-id=\"06b3d88\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b89b713 elementor-widget elementor-widget-html\" data-id=\"b89b713\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-consultoria\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-consultoria\">\n    <div class=\"logo-carousel-track\" id=\"track-consultoria\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/cffa.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Centro-de-Formacion-Ferroviaria-ADOFER.webp\" alt=\"Centro de Formaci\u00f3n Ferroviaria ADOFER\">\n        <span>Centro de Formaci\u00f3n Ferroviaria ADOFER<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.grupoas5.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/AS5-Ferroviario.webp\" alt=\"AS5 Ferroviario\">\n        <span>AS5 Ferroviario<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/cibagroup.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/CIBA-Group.webp\" alt=\"CIBA Group\">\n        <span>CIBA Group<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/db-engineering-consulting.com\/de\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/DB-Engineering-And-Consulting-Gmbh-Hub-Mexico.webp\" alt=\"DB Engineering And Consulting Gmbh Hub M\u00e9xico\">\n        <span>DB Engineering And Consulting<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/depropue.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Desarrollo-de-Proyectos-Puebla.webp\" alt=\"Desarrollo de Proyectos Puebla\">\n        <span>Desarrollo de Proyectos Puebla<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.egis-group.com\/es\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/EGISEX.webp\" alt=\"EGISMEX\">\n        <span>EGISMEX<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.fugro.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/FUGRO-Mexico.webp\" alt=\"FUGRO M\u00e9xico\">\n        <span>FUGRO M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.hilti.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/HILTI-Mexicana.webp\" alt=\"HILTI Mexicana\">\n        <span>HILTI Mexicana<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/lumietri.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/LUMIETRI-de-Mexico.webp\" alt=\"LUMIETRI de M\u00e9xico\">\n        <span>LUMIETRI de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/metaengineering.com\/landing-page\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/METAENGINEERING-AUDINGTRAESA.webp\" alt=\"METAENGINEERING AUDINGTRAESA\">\n        <span>METAENGINEERING AUDINGTRAESA<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  const wrapper   = document.getElementById('carrusel-consultoria');\n  const container = document.getElementById('container-consultoria');\n  const track     = document.getElementById('track-consultoria');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  \/* Calcula el ancho exacto de cada item para que quepan justo N en el contenedor *\/\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  \/\/ --- L\u00f3gica del Loop Infinito ---\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    \/\/ Desactivamos la transici\u00f3n temporalmente si necesitamos ajustar\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    \n    \/\/ Movemos la pista a la izquierda por el tama\u00f1o de un slide\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    \/\/ Despu\u00e9s de la animaci\u00f3n...\n    setTimeout(() => {\n      track.style.transition = 'none'; \/\/ Quitamos transici\u00f3n\n      \/\/ Movemos el primer elemento al final del contenedor\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      \/\/ Reiniciamos la posici\u00f3n de la pista a 0\n      track.style.transform = 'translateX(0)';\n      \n      \/\/ Permitimos nuevas animaciones\n      \/\/ Usamos requestAnimationFrame para asegurar que el navegador registre el cambio sin transici\u00f3n\n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    \/\/ PREPARACI\u00d3N: Quitamos transici\u00f3n\n    track.style.transition = 'none';\n    \n    \/\/ Movemos el \u00daLTIMO elemento al PRINCIPIO del contenedor\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    \/\/ Como pusimos un elemento nuevo al principio, ajustamos la pista para que no se note el salto visual\n    track.style.transform = `translateX(-${step}px)`;\n\n    \/\/ Forzamos un reflow para que el navegador aplique los cambios anteriores antes de animar\n    track.offsetHeight;\n\n    \/\/ ANIMACI\u00d3N: Devolvemos la transici\u00f3n y animamos hacia 0 (que ahora es el elemento que acabamos de mover)\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    \/\/ Finalizamos\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    \/\/ Reiniciamos posici\u00f3n en resize para evitar descuadres raros\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  \/* Arranque *\/\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89e8879 elementor-widget elementor-widget-html\" data-id=\"89e8879\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-consultoria-2\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-consultoria-2\">\n    <div class=\"logo-carousel-track\" id=\"track-consultoria-2\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/mextypsa.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/MEXTYPSA.webp\" alt=\"MEXTYPSA\">\n        <span>MEXTYPSA<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.consorciouno.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ONE-MALI.webp\" alt=\"ONE MALI\">\n        <span>ONE MALI<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/railpros.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/RAILPROS-De-Mexico.webp\" alt=\"RAILPROS de M\u00e9xico\">\n        <span>RAILPROS de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.sgs.com\/es-mx\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/SGS-De-Mexico.webp\" alt=\"SGS de M\u00e9xico\">\n        <span>SGS de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/solucioneingenio.com\/web\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Solucion-e-Ingenio.webp\" alt=\"Soluci\u00f3n e Ingenio\">\n        <span>Soluci\u00f3n e Ingenio<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.tensarcorp.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/TENSAR-a-Division-Of-CMC.webp\" alt=\"TENSAR a Division of CMC\">\n        <span>TENSAR a Division of CMC<\/span>\n      <\/a>\n\n      <!-- ITEM SIN ENLACE (Convertido a div en lugar de a) -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/TLTERMINALS.webp\" alt=\"TLTERMINALS\">\n        <span>TLTERMINALS<\/span>\n      <\/div>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/trackspeq.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/TRACK-SPEQ.webp\" alt=\"TRACK SPEQ\">\n        <span>TRACK SPEQ<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.transconsult.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Transconsult.webp\" alt=\"Transconsult\">\n        <span>Transconsult<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  \/\/ NOTA: Referenciamos los nuevos IDs\n  const wrapper   = document.getElementById('carrusel-consultoria-2');\n  const container = document.getElementById('container-consultoria-2');\n  const track     = document.getElementById('track-consultoria-2');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a20e8d elementor-widget elementor-widget-html\" data-id=\"4a20e8d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-consultoria-3\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-consultoria-3\">\n    <div class=\"logo-carousel-track\" id=\"track-consultoria-3\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/grupoacre.lat\/mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ACRE-Surveying-Solutions-Mexico.webp\" alt=\"ACRE Surveying Solutions M\u00e9xico\">\n        <span>ACRE Surveying Solutions M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/lbfoster.com\/es-mx\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/LB-Foster-Company.webp\" alt=\"LB Foster Company\">\n        <span>LB Foster Company<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.entiamx.com\/es\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ENTIA-De-Mexico.webp\" alt=\"ENTIA de M\u00e9xico\">\n        <span>ENTIA de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/sinergman.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/SINERGMAN.webp\" alt=\"SINERGMAN\">\n        <span>SINERGMAN<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.riscoseguros.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/RISCO-Asesores-Profesionales-Integrados-Agente-de-Seguros.webp\" alt=\"RISCO Asesores Profesionales Integrados Agente de Seguros\">\n        <span>RISCO Asesores Profesionales Integrados Agente de Seguros<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"http:\/\/solucionesferroviarias.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Soluciones-Ferroviarias-DIIP-HABITAT.webp\" alt=\"Soluciones Ferroviarias DIIP HABITAT\">\n        <span>Soluciones Ferroviarias DIIP HABITAT<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.calymayor.com.mx\/mx.html\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/CAL-Y-MAYOR-Y-ASOCIADOS.webp\" alt=\"CAL Y MAYOR Y ASOCIADOS\">\n        <span>CAL Y MAYOR Y ASOCIADOS<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.sefcym.com\/index.php\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Construcciones-y-Maquinaria-SEF.webp\" alt=\"Construcciones y Maquinaria SEF\">\n        <span>Construcciones y Maquinaria SEF<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/coniisa.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/CONSULTORIA-INTEGRAL-EN-INGENIERIA.webp\" alt=\"CONSULTOR\u00cdA INTEGRAL EN INGENIER\u00cdA\">\n        <span>CONSULTOR\u00cdA INTEGRAL EN INGENIER\u00cdA<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.bureauveritas.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/BUREAU-VERITAS-MEXICANA.webp\" alt=\"BUREAU VERITAS MEXICANA\">\n        <span>BUREAU VERITAS MEXICANA<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  \/\/ NOTA: Referenciamos los nuevos IDs\n  const wrapper   = document.getElementById('carrusel-consultoria-3');\n  const container = document.getElementById('container-consultoria-3');\n  const track     = document.getElementById('track-consultoria-3');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ced4465 elementor-widget elementor-widget-html\" data-id=\"ced4465\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-consultoria-4\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-consultoria-4\">\n    <div class=\"logo-carousel-track\" id=\"track-consultoria-4\">\n\n      <!-- ITEM SIN ENLACE -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/DEFPCO.webp\" alt=\"DEFPCO\">\n        <span>DEFPCO<\/span>\n      <\/div>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/davrail.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/DAVRAIL.webp\" alt=\"DAVRAIL\">\n        <span>DAVRAIL<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/grupo.renfe.com\/es\/es\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/RENFE-Proyectos-Internacionales-Sociedad-Mercantil.webp\" alt=\"RENFE Proyectos Internacionales Sociedad Mercantil\">\n        <span>RENFE Proyectos Internacionales Sociedad Mercantil<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/actiinfra.com\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ACTIINFRA-Asesoria-y-Consultoria-Tecnica-en-Ingenieria-e-Infraestructura.webp\" alt=\"ACTIINFRA - Asesor\u00eda y Consultor\u00eda T\u00e9cnica en Ingenier\u00eda e Infraestructura\">\n        <span>ACTIINFRA - Asesor\u00eda y Consultor\u00eda T\u00e9cnica en Ingenier\u00eda e Infraestructura<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/ayesa-eng.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/AYESA-MEXICO.webp\" alt=\"AYESA M\u00c9XICO\">\n        <span>AYESA M\u00c9XICO<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/grupo-sacmag.com.mx\/cordina\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/CORDINA-Coordinacion-tecnico-Administrativa-de-Obras.webp\" alt=\"CORDINA Coordinaci\u00f3n t\u00e9cnico Administrativa de Obras\">\n        <span>CORDINA Coordinaci\u00f3n t\u00e9cnico Administrativa de Obras<\/span>\n      <\/a>\n\n      <!-- ITEM SIN ENLACE -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Virtus-Consultores.webp\" alt=\"Virtus Consultores\">\n        <span>Virtus Consultores<\/span>\n      <\/div>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.hkc.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/HALA-KEN-CONSULTING.webp\" alt=\"HALA KEN CONSULTING\">\n        <span>HALA KEN CONSULTING<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  \/\/ NOTA: Referenciamos los nuevos IDs\n  const wrapper   = document.getElementById('carrusel-consultoria-4');\n  const container = document.getElementById('container-consultoria-4');\n  const track     = document.getElementById('track-consultoria-4');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2c0b0b0 e-con-full e-flex e-con e-child\" data-id=\"2c0b0b0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8b9e65a  ui-split-animate elementor-widget-mobile__width-inherit ui-splitby-chars elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"8b9e65a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInRight&quot;,&quot;ui_animate_split&quot;:&quot;ui-split-animate&quot;,&quot;ui_animate_split_style&quot;:&quot;fadeInUp cut&quot;,&quot;ui_animate_split_by&quot;:&quot;chars&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Rolling Stock \/ Traction Equipment<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb79d4b elementor-widget elementor-widget-html\" data-id=\"fb79d4b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-arrastre\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-arrastre\">\n    <div class=\"logo-carousel-track\" id=\"track-arrastre\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.acdiesel.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/AC-Diesel-y-Asociados.webp\" alt=\"AC Diesel y Asociados\">\n        <span>AC Diesel y Asociados<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/azo-industrias.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Compancia-Industrial-AZO-y-SRC.webp\" alt=\"Compa\u00f1\u00eda Industrial AZO y SRC\">\n        <span>Compa\u00f1\u00eda Industrial AZO y SRC<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/dlg.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/DLG-Grupo.webp\" alt=\"DLG Grupo\">\n        <span>DLG Grupo<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/fastramex.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/FAST-TRACK-de-Mexico.webp\" alt=\"FAST TRACK de M\u00e9xico\">\n        <span>FAST TRACK de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.gatx.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Servicios-Corporativos-GATX.webp\" alt=\"Servicios Corporativos GATX\">\n        <span>Servicios Corporativos GATX<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"http:\/\/www.sgferroviarias.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Soluciones-Globales-Ferroviarias.webp\" alt=\"Soluciones Globales Ferroviarias\">\n        <span>Soluciones Globales Ferroviarias<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.gbrx.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/THE-GREENBRIER-COMPANIES.webp\" alt=\"THE GREENBRIER COMPANIES\">\n        <span>THE GREENBRIER COMPANIES<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.tidearrastre.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Total-Internacional-de-Arrastre.webp\" alt=\"Total Internacional de Arrastre\">\n        <span>Total Internacional de Arrastre<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.trinityrail.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/TRINITY-RAIL-De-Mexico.webp\" alt=\"TRINITY RAIL De M\u00e9xico\">\n        <span>TRINITY RAIL De M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.arrodemexico.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ARRO-De-Mexico.webp\" alt=\"ARRO De M\u00e9xico\">\n        <span>ARRO De M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/stucki.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/STUCKI-de-Mexico.webp\" alt=\"STUCKI de M\u00e9xico\">\n        <span>STUCKI de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/locomotive.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/LOCOMOTIVE-CENTER.webp\" alt=\"LOCOMOTIVE CENTER\">\n        <span>LOCOMOTIVE CENTER<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  \/\/ NOTA: Referenciamos los nuevos IDs de Arrastre\n  const wrapper   = document.getElementById('carrusel-arrastre');\n  const container = document.getElementById('container-arrastre');\n  const track     = document.getElementById('track-arrastre');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1a75881 e-con-full e-flex e-con e-child\" data-id=\"1a75881\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-41958a7  ui-split-animate elementor-widget-mobile__width-inherit ui-splitby-chars elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"41958a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInRight&quot;,&quot;ui_animate_split&quot;:&quot;ui-split-animate&quot;,&quot;ui_animate_split_style&quot;:&quot;fadeInUp cut&quot;,&quot;ui_animate_split_by&quot;:&quot;chars&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Infrastructure<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5bc6b2c elementor-widget elementor-widget-html\" data-id=\"5bc6b2c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-infraestructura-1\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-infraestructura-1\">\n    <div class=\"logo-carousel-track\" id=\"track-infraestructura-1\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/abcd-arquitectura.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ABCD-arquitectura.webp\" alt=\"ABCD arquitectura\">\n        <span>ABCD arquitectura<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.cecifmexico.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/CECIF.webp\" alt=\"CECIF\">\n        <span>CECIF<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.grupoazvi.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Construcciones-Urales.webp\" alt=\"Construcciones Urales\">\n        <span>Construcciones Urales<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/tobyman.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Comercial-Ordizia.webp\" alt=\"Comercial Ordizia\">\n        <span>Comercial Ordizia<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/cyfsa.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/CYFSA-Constructora-Y-Ferroviaria.webp\" alt=\"CYFSA Constructora Y Ferroviaria\">\n        <span>CYFSA Constructora Y Ferroviaria<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.daniferrotools.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/DANIFERROTOOLS.webp\" alt=\"DANIFERROTOOLS\">\n        <span>DANIFERROTOOLS<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.utilirail.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Durmientes-y-Postes-UTILIRAY.webp\" alt=\"Durmientes y Postes UTILIRAY\">\n        <span>Durmientes y Postes UTILIRAY<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/taza.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Elastomeros-TAZA.webp\" alt=\"Elast\u00f3meros TAZA\">\n        <span>Elast\u00f3meros TAZA<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/gruponci.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Grupo-NAVCI.webp\" alt=\"Grupo NAVCI\">\n        <span>Grupo NAVCI<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.hollandco.com\/resource\/equipos-para-soladuras-globales-espanol\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/HOLLAND-Rail-Group-Mexico.webp\" alt=\"HOLLAND Rail Group M\u00e9xico\">\n        <span>HOLLAND Rail Group M\u00e9xico<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  \/\/ NOTA: Referenciamos los nuevos IDs de Infraestructura 1\n  const wrapper   = document.getElementById('carrusel-infraestructura-1');\n  const container = document.getElementById('container-infraestructura-1');\n  const track     = document.getElementById('track-infraestructura-1');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bcf7a9b elementor-widget elementor-widget-html\" data-id=\"bcf7a9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-infraestructura-2\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-infraestructura-2\">\n    <div class=\"logo-carousel-track\" id=\"track-infraestructura-2\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.itisa.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Impulsora-Tlaxcalteca-de-Industrias.webp\" alt=\"Impulsora Tlaxcalteca de Industrias\">\n        <span>Impulsora Tlaxcalteca de Industrias<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/inps.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/International-Name-Plate-Mexico-Inc.webp\" alt=\"International Name Plate M\u00e9xico Inc\">\n        <span>International Name Plate M\u00e9xico Inc<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/tecnovias.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Tecnovias-Medios-Constructivos-Y-LogistiCos.webp\" alt=\"Tecnov\u00edas Medios Constructivos y Log\u00edsticos\">\n        <span>Tecnov\u00edas Medios Constructivos y Log\u00edsticos<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.gyproc.com.mx\/services\/distribuidora-kroma-sa-de-cv\/autopista-mexico-queretaro-km-335-104\/54940\/tultitlan\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Distribuidora-Kroma-PPG-COMEX.webp\" alt=\"Distribuidora Kroma PPG COMEX\">\n        <span>Distribuidora Kroma PPG COMEX<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.vossloh.com\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ROCLA-RCTI-De-Mexico.webp\" alt=\"ROCLA RCTI de M\u00e9xico\">\n        <span>ROCLA RCTI de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.roxtec.com\/mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ROXTEC-De-Mexico.webp\" alt=\"ROXTEC de M\u00e9xico\">\n        <span>ROXTEC de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.siemens.com\/es-mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/SIEMENS-MOBILITY.webp\" alt=\"SIEMENS MOBILITY\">\n        <span>SIEMENS MOBILITY<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.tso.fr\/es\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/TSO-NGE-Mexico.webp\" alt=\"TSO-NGE M\u00e9xico\">\n        <span>TSO-NGE M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.maccaferri.com\/mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/MACCAFERRI-De-Mexico.webp\" alt=\"MACCAFERRI De M\u00e9xico\">\n        <span>MACCAFERRI De M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/constructoria.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/CONSTRUCTORIA.webp\" alt=\"CONSTRUCTOR\u00cdA\">\n        <span>CONSTRUCTOR\u00cdA<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  \/\/ NOTA: Referenciamos los nuevos IDs de Infraestructura 2\n  const wrapper   = document.getElementById('carrusel-infraestructura-2');\n  const container = document.getElementById('container-infraestructura-2');\n  const track     = document.getElementById('track-infraestructura-2');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-98c2d7c elementor-widget elementor-widget-html\" data-id=\"98c2d7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-infraestructura-3\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-infraestructura-3\">\n    <div class=\"logo-carousel-track\" id=\"track-infraestructura-3\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/klk.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/KLK-Electro-Materiales-SLU.webp\" alt=\"KLK Electro Materiales SLU\">\n        <span>KLK Electro Materiales SLU<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.railmex.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/RAIL-MEX-INDUSTRIES.webp\" alt=\"RAIL MEX INDUSTRIES\">\n        <span>RAIL MEX INDUSTRIES<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.promotoraberma.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Promotora-Geotecnica-BERMA.webp\" alt=\"Promotora Geot\u00e9cnica BERMA\">\n        <span>Promotora Geot\u00e9cnica BERMA<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.holcim.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/HOLCIM-Mexico-Operaciones.webp\" alt=\"HOLCIM M\u00e9xico Operaciones\">\n        <span>HOLCIM M\u00e9xico Operaciones<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.mainlinerr.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/MAINLINE-RAILROAD-MEXICO.webp\" alt=\"MAINLINE RAILROAD - M\u00c9XICO\">\n        <span>MAINLINE RAILROAD - M\u00c9XICO<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.ingetek.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/INGETEK-Comercializadora-ACORTA.webp\" alt=\"INGETEK Comercializadora ACORTA\">\n        <span>INGETEK Comercializadora ACORTA<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.elecnor.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ELECNOR-Mexico.webp\" alt=\"ELECNOR M\u00e9xico\">\n        <span>ELECNOR M\u00e9xico<\/span>\n      <\/a>\n\n      <!-- SIN ENLACE -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Construcciones-y-Urabizaciones-De-Monclova-CUMSA.webp\" alt=\"Construcciones y Urbanizaciones De Monclova (CUMSA)\">\n        <span>Construcciones y Urbanizaciones De Monclova (CUMSA)<\/span>\n      <\/div>\n\n      <!-- SIN ENLACE -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Procesos-En-Arenas-y-Cerros-TREMOR-.webp\" alt=\"Procesos en Arenas y Cerros TREMOR\">\n        <span>Procesos en Arenas y Cerros TREMOR<\/span>\n      <\/div>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.merexmex.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/MEREX-SUPPLY.webp\" alt=\"MEREX SUPPLY\">\n        <span>MEREX SUPPLY<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  const wrapper   = document.getElementById('carrusel-infraestructura-3');\n  const container = document.getElementById('container-infraestructura-3');\n  const track     = document.getElementById('track-infraestructura-3');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52f9b95 elementor-widget elementor-widget-html\" data-id=\"52f9b95\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-infraestructura-4\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-infraestructura-4\">\n    <div class=\"logo-carousel-track\" id=\"track-infraestructura-4\">\n\n      <!-- SIN ENLACE -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Constructora-ARPOZA.webp\" alt=\"Constructora ARPOZA\">\n        <span>Constructora ARPOZA<\/span>\n      <\/div>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.mecanicaverde.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/MECANICA-VERDE.webp\" alt=\"MEC\u00c1NICA VERDE\">\n        <span>MEC\u00c1NICA VERDE<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.ohla-group.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/OHLA-Constructora-de-Proyectos-Viales-de-Mexico.webp\" alt=\"OHLA Constructora de Proyectos Viales de M\u00e9xico\">\n        <span>OHLA Constructora de Proyectos Viales de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.plassertheurer.com\/es\/inicio\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Plasser-Mexicana.webp\" alt=\"Plasser Mexicana\">\n        <span>Plasser Mexicana<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.nylco.com.mx\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Nylco-Mexicana.webp\" alt=\"Nylco Mexicana\">\n        <span>Nylco Mexicana<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.voestalpine.com\/nortrak_damy\/es\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/NORTRAK-DAMY-Cambios-de-Via.webp\" alt=\"NORTRAK - DAMY Cambios de V\u00eda\">\n        <span>NORTRAK - DAMY Cambios de V\u00eda<\/span>\n      <\/a>\n\n      <!-- SIN ENLACE -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Proveedora-de-Materiales-del-Norte.webp\" alt=\"Proveedora de Materiales del Norte\">\n        <span>Proveedora de Materiales del Norte<\/span>\n      <\/div>\n\n      <!-- SIN ENLACE -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Construccion-Mantenimiento-Ferrovias-y-Subsistemas.webp\" alt=\"Construcci\u00f3n Mantenimiento Ferrov\u00edas y Subsistemas\">\n        <span>Construcci\u00f3n Mantenimiento Ferrov\u00edas y Subsistemas<\/span>\n      <\/div>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/akrailroad.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/AK-Railroad-Materials-Inc.webp\" alt=\"A&K Railroad Materials Inc.\">\n        <span>A&K Railroad Materials Inc.<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.ferrocomer.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ferrocomer.webp\" alt=\"ferrocomer\">\n        <span>ferrocomer<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  const wrapper   = document.getElementById('carrusel-infraestructura-4');\n  const container = document.getElementById('container-infraestructura-4');\n  const track     = document.getElementById('track-infraestructura-4');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5057383 elementor-widget elementor-widget-html\" data-id=\"5057383\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-infraestructura-5\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-infraestructura-5\">\n    <div class=\"logo-carousel-track\" id=\"track-infraestructura-5\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.frauscher.com\/en\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/FRAUSCHER-Sensor-Technology-Brasil.webp\" alt=\"FRAUSCHER Sensor Technology Brasil\">\n        <span>FRAUSCHER Sensor Technology Brasil<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.wackerneuson.com\/gateway\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/WACKER-NEUSON.webp\" alt=\"WACKER NEUSON\">\n        <span>WACKER NEUSON<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/altosenergeticos.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Altos-Energeticos-Mexicanos.webp\" alt=\"Altos Energ\u00e9ticos Mexicanos\">\n        <span>Altos Energ\u00e9ticos Mexicanos<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.musco.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Musco-Lighting-Mexico.webp\" alt=\"Musco Lighting M\u00e9xico\">\n        <span>Musco Lighting M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/rbgrupo.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ALPHA-CONSTRUCTION-SAJ.webp\" alt=\"ALPHA CONSTRUCTION SAJ\">\n        <span>ALPHA CONSTRUCTION SAJ<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.yeoinfraestructura.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Yeo-y-Constructores.webp\" alt=\"Yeo y Constructores\">\n        <span>Yeo y Constructores<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.hempel.com\/en-US\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Pinturas-HEMPEL-de-Mexico.webp\" alt=\"Pinturas HEMPEL de M\u00e9xico\">\n        <span>Pinturas HEMPEL de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/fundicionmacro.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/FUNDICION-MACRO.webp\" alt=\"FUNDICION MACRO\">\n        <span>FUNDICION MACRO<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.ifersa.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/IFERSA-Infraestructuras-Ferroviarias-Rodriguez.webp\" alt=\"IFERSA Infraestructuras Ferroviarias Rodr\u00edguez\">\n        <span>IFERSA Infraestructuras Ferroviarias Rodr\u00edguez<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.comsa.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/COMSA-Infraestructuras.webp\" alt=\"COMSA Infraestructuras\">\n        <span>COMSA Infraestructuras<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  const wrapper   = document.getElementById('carrusel-infraestructura-5');\n  const container = document.getElementById('container-infraestructura-5');\n  const track     = document.getElementById('track-infraestructura-5');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9159dcc elementor-widget elementor-widget-html\" data-id=\"9159dcc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-infraestructura-6\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-infraestructura-6\">\n    <div class=\"logo-carousel-track\" id=\"track-infraestructura-6\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/viasferreasdelbajio.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/VIAS-FERREAS-DEL-BAJIO.webp\" alt=\"V\u00cdAS FERREAS DEL BAJ\u00cdO\">\n        <span>V\u00cdAS FERREAS DEL BAJ\u00cdO<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.deacero.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/DEACERO.webp\" alt=\"DEACERO\">\n        <span>DEACERO<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.comdecco.com\/es\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Comercial-e-Importadora-de-Maderas-DECCO.webp\" alt=\"Comercial e Importadora de Maderas DECCO\">\n        <span>Comercial e Importadora de Maderas DECCO<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"http:\/\/dozzerconstruccion.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/DOZZER-Construccion-y-Asesoria.webp\" alt=\"DOZZER Construcci\u00f3n y Asesor\u00eda\">\n        <span>DOZZER Construcci\u00f3n y Asesor\u00eda<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.martinusrail.com.au\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/MARTINUS-RAIL-NORTH-AMERICA-INC.webp\" alt=\"MARTINUS RAIL NORTH AMERICA INC.\">\n        <span>MARTINUS RAIL NORTH AMERICA INC.<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  const wrapper   = document.getElementById('carrusel-infraestructura-6');\n  const container = document.getElementById('container-infraestructura-6');\n  const track     = document.getElementById('track-infraestructura-6');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6788142 e-con-full e-flex e-con e-child\" data-id=\"6788142\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ea87a3f  ui-split-animate elementor-widget-mobile__width-inherit ui-splitby-chars elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"ea87a3f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInRight&quot;,&quot;ui_animate_split&quot;:&quot;ui-split-animate&quot;,&quot;ui_animate_split_style&quot;:&quot;fadeInUp cut&quot;,&quot;ui_animate_split_by&quot;:&quot;chars&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Engineering<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0d9f4fd elementor-widget elementor-widget-html\" data-id=\"0d9f4fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-ingenieria\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-ingenieria\">\n    <div class=\"logo-carousel-track\" id=\"track-ingenieria\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.group.sener\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/SENERMEX-Ingenieria-y-Sistemas.webp\" alt=\"SENERMEX Ingenier\u00eda y Sistemas\">\n        <span>SENERMEX Ingenier\u00eda y Sistemas<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/aecom.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/AECOM-URS-Corporation-Mexico.webp\" alt=\"AECOM - URS Corporation M\u00e9xico\">\n        <span>AECOM - URS Corporation M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/zois.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/ZO-Ingenieria-y-Servicios.webp\" alt=\"ZO Ingenier\u00eda y Servicios\">\n        <span>ZO Ingenier\u00eda y Servicios<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/mobility.indragroup.com\/es\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/INDRA-Sistemas-Transporte-y-Defensa.webp\" alt=\"INDRA Sistemas Transporte y Defensa\">\n        <span>INDRA Sistemas Transporte y Defensa<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/grupotdm.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/TDM-Mexico-TEMATSA-de-Mexico.webp\" alt=\"TDM M\u00e9xico TEMATSA de M\u00e9xico\">\n        <span>TDM M\u00e9xico TEMATSA de M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/raloylubricantes.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/RALOY-LUBRICANTES.webp\" alt=\"RALOY LUBRICANTES\">\n        <span>RALOY LUBRICANTES<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/sisttemex.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/SISTTEMEX.webp\" alt=\"SISTTEMEX\">\n        <span>SISTTEMEX<\/span>\n      <\/a>\n\n      <!-- SIN ENLACE -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Ingenieria-Integral-Data-Media.webp\" alt=\"Ingenier\u00eda Integral Data Media\">\n        <span>Ingenier\u00eda Integral Data Media<\/span>\n      <\/div>\n\n      <!-- SIN ENLACE -->\n      <div class=\"logo-carousel-item\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/TGC-GEOTECNIA.webp\" alt=\"TGC GEOTECNIA\">\n        <span>TGC GEOTECNIA<\/span>\n      <\/div>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.novoatechnologies.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/NOVOA-TECHNOLOGIES-OOKAY-ENERGIA.webp\" alt=\"NOVOA TECHNOLOGIES OOKAY ENERG\u00cdA\">\n        <span>NOVOA TECHNOLOGIES OOKAY ENERG\u00cdA<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  const wrapper   = document.getElementById('carrusel-ingenieria');\n  const container = document.getElementById('container-ingenieria');\n  const track     = document.getElementById('track-ingenieria');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-32a8a04 e-con-full e-flex e-con e-child\" data-id=\"32a8a04\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b04971  ui-split-animate elementor-widget-mobile__width-inherit ui-splitby-chars elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"3b04971\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;200&quot;,&quot;_animation&quot;:&quot;fadeInRight&quot;,&quot;ui_animate_split&quot;:&quot;ui-split-animate&quot;,&quot;ui_animate_split_style&quot;:&quot;fadeInUp cut&quot;,&quot;ui_animate_split_by&quot;:&quot;chars&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Logistics Services<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9bf8567 elementor-widget elementor-widget-html\" data-id=\"9bf8567\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"logo-carousel-wrapper\" id=\"carrusel-servicios-logisticos\">\n\n  <button class=\"carousel-btn carousel-btn-prev\" aria-label=\"Anterior\">\n    <svg viewbox=\"0 0 14 16\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n      <path d=\"M11 1L3 8l8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n  <div class=\"logo-carousel-track-container\" id=\"container-servicios-logisticos\">\n    <div class=\"logo-carousel-track\" id=\"track-servicios-logisticos\">\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.cordstrap.com\/es\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/cordstrap-Mexico.webp\" alt=\"cordstrap M\u00e9xico\">\n        <span>cordstrap M\u00e9xico<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/supter.com.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/SUPTER.webp\" alt=\"SUPTER\">\n        <span>SUPTER<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.latnovva.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/LATTNOVA-Servicios-y-Soluciones.webp\" alt=\"LATTNOVA Servicios y Soluciones\">\n        <span>LATTNOVA Servicios y Soluciones<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/www.conectagfa.com.mx\/#es\/principal\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/Flecha-Amarilla-Autobuses-de-la-Piedad.webp\" alt=\"Flecha Amarilla Autobuses de la Piedad\">\n        <span>Flecha Amarilla Autobuses de la Piedad<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/kpgroup.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/KP-Soluciones-Integrales-En-Logistica.webp\" alt=\"K&P Soluciones Integrales En Logist\u00edca\">\n        <span>K&P Soluciones Integrales En Logist\u00edca<\/span>\n      <\/a>\n\n      <a class=\"logo-carousel-item\" href=\"https:\/\/troop.mx\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        <img decoding=\"async\" src=\"https:\/\/amf.org.mx\/wp-content\/uploads\/2026\/01\/TROOP-Y-COMPANIA.webp\" alt=\"TROOP Y COMPA\u00d1IA\">\n        <span>TROOP Y COMPA\u00d1IA<\/span>\n      <\/a>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"carousel-btn carousel-btn-next\" aria-label=\"Siguiente\">\n    <svg viewbox=\"0 0 14 16\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n      <path d=\"M3 1l8 7-8 7\" stroke=\"#AA402C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n  <\/button>\n\n<\/div>\n\n<script>\n(function () {\n  const wrapper   = document.getElementById('carrusel-servicios-logisticos');\n  const container = document.getElementById('container-servicios-logisticos');\n  const track     = document.getElementById('track-servicios-logisticos');\n  const prevBtn   = wrapper.querySelector('.carousel-btn-prev');\n  const nextBtn   = wrapper.querySelector('.carousel-btn-next');\n\n  const GAP        = 40;\n  const INTERVAL   = 3000;\n  const TRANSITION = 700;\n\n  let isAnimating  = false;\n  let isPaused     = false;\n  let autoTimer    = null;\n\n  function getVisible() {\n    const w = container.offsetWidth;\n    if (w >= 900) return 4;\n    if (w >= 600) return 3;\n    return 1;\n  }\n\n  function setItemWidths() {\n    const visible   = getVisible();\n    const totalGap  = GAP * (visible - 1);\n    const itemWidth = (container.offsetWidth - totalGap) \/ visible;\n    const items     = track.querySelectorAll('.logo-carousel-item');\n    items.forEach(item => {\n      item.style.width = itemWidth + 'px';\n    });\n  }\n\n  function getItemStep() {\n    const item = track.querySelector('.logo-carousel-item');\n    return item ? item.offsetWidth + GAP : 220;\n  }\n\n  function moveNext() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    const step = getItemStep();\n    track.style.transform = `translateX(-${step}px)`;\n\n    setTimeout(() => {\n      track.style.transition = 'none';\n      const firstItem = track.firstElementChild;\n      track.appendChild(firstItem);\n      track.style.transform = 'translateX(0)';\n      \n      requestAnimationFrame(() => {\n          isAnimating = false;\n      });\n    }, TRANSITION);\n  }\n\n  function movePrev() {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const step = getItemStep();\n    \n    track.style.transition = 'none';\n    const lastItem = track.lastElementChild;\n    track.insertBefore(lastItem, track.firstElementChild);\n    \n    track.style.transform = `translateX(-${step}px)`;\n    track.offsetHeight;\n\n    track.style.transition = `transform ${TRANSITION}ms ease-in-out`;\n    track.style.transform = 'translateX(0)';\n\n    setTimeout(() => {\n      isAnimating = false;\n    }, TRANSITION);\n  }\n\n  function startAuto() {\n    stopAuto();\n    autoTimer = setInterval(() => {\n      if (!isPaused) moveNext();\n    }, INTERVAL);\n  }\n\n  function stopAuto() {\n    if (autoTimer) clearInterval(autoTimer);\n  }\n\n  wrapper.addEventListener('mouseenter', () => { isPaused = true; });\n  wrapper.addEventListener('mouseleave', () => { isPaused = false; });\n\n  prevBtn.addEventListener('click', () => {\n    stopAuto();\n    movePrev();\n    startAuto();\n  });\n\n  nextBtn.addEventListener('click', () => {\n    stopAuto();\n    moveNext();\n    startAuto();\n  });\n\n  window.addEventListener('resize', () => {\n    setItemWidths();\n    track.style.transition = 'none';\n    track.style.transform = 'translateX(0)';\n  });\n\n  setItemWidths();\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-68ba8a7f e-flex e-con-boxed e-con e-parent\" data-id=\"68ba8a7f\" data-element_type=\"container\" data-e-type=\"container\" id=\"equipo\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6486f180 e-con-full e-flex e-con e-child\" data-id=\"6486f180\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3dc304eb e-con-full e-flex e-con e-child\" data-id=\"3dc304eb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-14a8b897  ui-split-animate ui-splitby-chars elementor-widget elementor-widget-heading\" data-id=\"14a8b897\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;ui_animate_split&quot;:&quot;ui-split-animate&quot;,&quot;ui_animate_split_style&quot;:&quot;fadeIn&quot;,&quot;ui_animate_split_by&quot;:&quot;chars&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">OUR TEAM<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b905645 e-con-full e-flex e-con e-child\" data-id=\"5b905645\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-216c9156 e-con-full e-flex e-con e-child\" data-id=\"216c9156\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3ae2ebcb ui-e-align-left ui-e-align-tablet-left ui-e-align-mobile-left elementor-widget__width-inherit elementor-widget-mobile__width-initial ui-e-top elementor-invisible elementor-widget elementor-widget-uicore-icon-box\" data-id=\"3ae2ebcb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;400&quot;,&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;position&quot;:&quot;top&quot;,&quot;content_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\" data-widget_type=\"uicore-icon-box.default\">\n\t\t\t\t\t\n        <div class=\"ui-e-ico-box\" >\n\n            \n            <div class='ui-e-flex-wrp'>\n\n                                    <div class=\"ui-e-icon-wrp\">\n\n                        \n                    <\/div>\n                \n                <div class=\"ui-e-title-wrp\"><h4 class=\"ui-e-title\">Francisco <\/h4><div class=\"ui-e-subtitle\"> Fabila Rubio <\/div><\/div>\n            <\/div>\n\n            <div class=\"ui-e-box-content\">\n                \n                <div class=\"ui-e-description\">\n                    <p>President<\/p>                <\/div>\n\n                \n            <\/div>\n        <\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2add50e ui-e-align-left ui-e-align-tablet-left ui-e-align-mobile-left elementor-widget__width-inherit elementor-widget-mobile__width-initial ui-e-top elementor-invisible elementor-widget elementor-widget-uicore-icon-box\" data-id=\"2add50e\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;400&quot;,&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;position&quot;:&quot;top&quot;,&quot;content_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\" data-widget_type=\"uicore-icon-box.default\">\n\t\t\t\t\t\n        <div class=\"ui-e-ico-box\" >\n\n            \n            <div class='ui-e-flex-wrp'>\n\n                                    <div class=\"ui-e-icon-wrp\">\n\n                        \n                    <\/div>\n                \n                <div class=\"ui-e-title-wrp\"><h4 class=\"ui-e-title\">Paulina<\/h4><div class=\"ui-e-subtitle\"> Tellez Mart\u00ednez <\/div><\/div>\n            <\/div>\n\n            <div class=\"ui-e-box-content\">\n                \n                <div class=\"ui-e-description\">\n                    Executive Director                <\/div>\n\n                \n            <\/div>\n        <\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-11d8e1cb ui-e-align-left ui-e-align-tablet-left ui-e-align-mobile-left elementor-widget__width-inherit elementor-widget-mobile__width-initial ui-e-top elementor-invisible elementor-widget elementor-widget-uicore-icon-box\" data-id=\"11d8e1cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;400&quot;,&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;position&quot;:&quot;top&quot;,&quot;content_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\" data-widget_type=\"uicore-icon-box.default\">\n\t\t\t\t\t\n        <div class=\"ui-e-ico-box\" >\n\n            \n            <div class='ui-e-flex-wrp'>\n\n                                    <div class=\"ui-e-icon-wrp\">\n\n                        \n                    <\/div>\n                \n                <div class=\"ui-e-title-wrp\"><h4 class=\"ui-e-title\">Geraldine<\/h4><div class=\"ui-e-subtitle\"> L\u00f3pez Mart\u00ednez <\/div><\/div>\n            <\/div>\n\n            <div class=\"ui-e-box-content\">\n                \n                <div class=\"ui-e-description\">\n                    <p>Communications and Institutional Relations Manager<\/p>                <\/div>\n\n                \n            <\/div>\n        <\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-130891be ui-e-align-left ui-e-align-tablet-left ui-e-align-mobile-left elementor-widget__width-inherit elementor-widget-mobile__width-initial ui-e-top elementor-invisible elementor-widget elementor-widget-uicore-icon-box\" data-id=\"130891be\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;400&quot;,&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;position&quot;:&quot;top&quot;,&quot;content_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\" data-widget_type=\"uicore-icon-box.default\">\n\t\t\t\t\t\n        <div class=\"ui-e-ico-box\" >\n\n            \n            <div class='ui-e-flex-wrp'>\n\n                                    <div class=\"ui-e-icon-wrp\">\n\n                        \n                    <\/div>\n                \n                <div class=\"ui-e-title-wrp\"><h4 class=\"ui-e-title\">Adrian <\/h4><div class=\"ui-e-subtitle\"> Romero <\/div><\/div>\n            <\/div>\n\n            <div class=\"ui-e-box-content\">\n                \n                <div class=\"ui-e-description\">\n                    <p>Technical Deputy Manager<\/p>                <\/div>\n\n                \n            <\/div>\n        <\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-32dc72b ui-e-align-left ui-e-align-tablet-left ui-e-align-mobile-left elementor-widget__width-inherit elementor-widget-mobile__width-initial ui-e-top elementor-invisible elementor-widget elementor-widget-uicore-icon-box\" data-id=\"32dc72b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_delay&quot;:&quot;400&quot;,&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;position&quot;:&quot;top&quot;,&quot;content_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;content_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\" data-widget_type=\"uicore-icon-box.default\">\n\t\t\t\t\t\n        <div class=\"ui-e-ico-box\" >\n\n            \n            <div class='ui-e-flex-wrp'>\n\n                                    <div class=\"ui-e-icon-wrp\">\n\n                        \n                    <\/div>\n                \n                <div class=\"ui-e-title-wrp\"><h4 class=\"ui-e-title\">Nancy <\/h4><div class=\"ui-e-subtitle\"> Cabrera Hern\u00e1ndez <\/div><\/div>\n            <\/div>\n\n            <div class=\"ui-e-box-content\">\n                \n                <div class=\"ui-e-description\">\n                    Administration                <\/div>\n\n                \n            <\/div>\n        <\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Chapter I Freight Railroads Grupo M\u00e9xico Transportes CPKC de M\u00e9xico FERROVALLE Ferrocarril Interoce\u00e1nico L\u00ednea Coahuila Durango BNSF Railway Union Pacific Canadian National [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5098","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/amf.org.mx\/en\/wp-json\/wp\/v2\/pages\/5098","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/amf.org.mx\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/amf.org.mx\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/amf.org.mx\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/amf.org.mx\/en\/wp-json\/wp\/v2\/comments?post=5098"}],"version-history":[{"count":15,"href":"https:\/\/amf.org.mx\/en\/wp-json\/wp\/v2\/pages\/5098\/revisions"}],"predecessor-version":[{"id":6106,"href":"https:\/\/amf.org.mx\/en\/wp-json\/wp\/v2\/pages\/5098\/revisions\/6106"}],"wp:attachment":[{"href":"https:\/\/amf.org.mx\/en\/wp-json\/wp\/v2\/media?parent=5098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}