{"id":8118,"date":"2026-05-22T08:55:36","date_gmt":"2026-05-22T08:55:36","guid":{"rendered":"https:\/\/expressheroes.eu\/?page_id=8118"},"modified":"2026-08-11T11:54:00","modified_gmt":"2026-08-11T11:54:00","slug":"insights","status":"publish","type":"page","link":"https:\/\/expressheroes.eu\/lv\/insights-lv\/","title":{"rendered":"Insights"},"content":{"rendered":"<h1>\n<p>Insights from <br \/><em>Express Heroes<\/em><\/p>\n<\/h1>\n<div>\n<p>Practical transport and logistics knowledge for shippers, supply chain teams and business decision-makers. Explore articles about freight forwarding, multimodal transport, customs, warehousing, industry-specific logistics and cross-border operations across Europe.<\/p>\n<\/div>\n<div>\n<\/div>\n<div>\n<div class=\"eh-insights-load-more-wrap\">\n  <button type=\"button\" class=\"eh-insights-load-more\"><br \/>\n    Load more<br \/>\n  <\/button>\n<\/div>\n<p><script>\ndocument.addEventListener('DOMContentLoaded', function () {\n  const initialVisibleItems = 9;\n  const itemsPerClick = 6;<\/p>\n<p>  let visibleLimit = initialVisibleItems;\n  let updateTimer = null;<\/p>\n<p>  function getGridRoot() {\n    return document.querySelector('.eh-insights-grid');\n  }<\/p>\n<p>  function getButtonWrap() {\n    return document.querySelector('.eh-insights-load-more-wrap');\n  }<\/p>\n<p>  function getButton() {\n    return document.querySelector('.eh-insights-load-more');\n  }<\/p>\n<p>  function getInnerGrid() {\n    const gridRoot = getGridRoot();<\/p>\n<p>    if (!gridRoot) {\n      return null;\n    }<\/p>\n<p>    if (gridRoot.classList.contains('uk-grid')) {\n      return gridRoot;\n    }<\/p>\n<p>    return gridRoot.querySelector('.uk-grid');\n  }<\/p>\n<p>  function getGridItems() {\n    const innerGrid = getInnerGrid();<\/p>\n<p>    if (!innerGrid) {\n      return [];\n    }<\/p>\n<p>    return Array.from(innerGrid.children).filter(function (item) {\n      return item && item.nodeType === 1;\n    });\n  }<\/p>\n<p>  function isFilteredOutByYootheme(item) {\n    if (!item) {\n      return true;\n    }<\/p>\n<p>    if (item.hidden) {\n      return true;\n    }<\/p>\n<p>    if (item.classList.contains('uk-hidden')) {\n      return true;\n    }<\/p>\n<p>    if (item.classList.contains('uk-filter-control-hidden')) {\n      return true;\n    }<\/p>\n<p>    return false;\n  }<\/p>\n<p>  function resetOwnHiddenClasses(items) {\n    items.forEach(function (item) {\n      item.classList.remove('eh-insights-item-hidden');\n    });\n  }<\/p>\n<p>  function updateItems() {\n    const gridRoot = getGridRoot();\n    const buttonWrap = getButtonWrap();\n    const items = getGridItems();<\/p>\n<p>    if (!gridRoot || !buttonWrap || !items.length) {\n      return;\n    }<\/p>\n<p>    resetOwnHiddenClasses(items);<\/p>\n<p>    window.requestAnimationFrame(function () {\n      const availableItems = items.filter(function (item) {\n        return !isFilteredOutByYootheme(item);\n      });<\/p>\n<p>      availableItems.forEach(function (item, index) {\n        if (index >= visibleLimit) {\n          item.classList.add('eh-insights-item-hidden');\n        } else {\n          item.classList.remove('eh-insights-item-hidden');\n        }\n      });<\/p>\n<p>      if (visibleLimit >= availableItems.length) {\n        buttonWrap.style.display = 'none';\n      } else {\n        buttonWrap.style.display = 'flex';\n      }<\/p>\n<p>      gridRoot.classList.add('eh-insights-load-initialized');<\/p>\n<p>      if (window.UIkit && typeof window.UIkit.update === 'function') {\n        window.UIkit.update();\n      }\n    });\n  }<\/p>\n<p>  function scheduleUpdate(delay) {\n    window.clearTimeout(updateTimer);<\/p>\n<p>    updateTimer = window.setTimeout(function () {\n      updateItems();\n    }, delay || 120);\n  }<\/p>\n<p>  function resetAndUpdate() {\n    visibleLimit = initialVisibleItems;\n    scheduleUpdate(300);\n    scheduleUpdate(700);\n  }<\/p>\n<p>  function initLoadMore() {\n    const gridRoot = getGridRoot();\n    const button = getButton();<\/p>\n<p>    if (!gridRoot || !button) {\n      return false;\n    }<\/p>\n<p>    if (gridRoot.getAttribute('data-eh-load-more-ready') === 'yes') {\n      updateItems();\n      return true;\n    }<\/p>\n<p>    gridRoot.setAttribute('data-eh-load-more-ready', 'yes');<\/p>\n<p>    button.addEventListener('click', function () {\n      visibleLimit += itemsPerClick;\n      updateItems();\n    });<\/p>\n<p>    document.addEventListener('click', function (event) {\n      const clickedFilter = event.target.closest('[uk-filter] a, .uk-subnav a, .uk-tab a');<\/p>\n<p>      if (clickedFilter) {\n        resetAndUpdate();\n      }\n    });<\/p>\n<p>    updateItems();\n    scheduleUpdate(500);\n    scheduleUpdate(1200);<\/p>\n<p>    return true;\n  }<\/p>\n<p>  let tries = 0;<\/p>\n<p>  const waitForGrid = window.setInterval(function () {\n    tries += 1;<\/p>\n<p>    if (initLoadMore() || tries > 40) {\n      window.clearInterval(waitForGrid);\n    }\n  }, 100);\n});\n<\/script>\n<\/div>\n<div>\n<p>    <script>\ndocument.addEventListener('DOMContentLoaded', function () {\n  \/*\n   * Express Heroes Insights\n   * Adds category label after the post date in card meta line.\n   * Works for:\n   * - Single post \"Check More\" cards\n   * - Main Insights listing cards\n   *\/<\/p>\n<p>  const categoryMap = {\n    'clients-insights': 'Clients Insights',\n    'client-insights': 'Clients Insights',\n    'insights-for-carriers': 'Insights for Carriers',\n    'for-forwarders': 'For Forwarders',\n    'news': 'News'\n  };<\/p>\n<p>  function getCategoryFromUrl(href) {\n    if (!href) return '';<\/p>\n<p>    let categoryLabel = '';<\/p>\n<p>    Object.keys(categoryMap).forEach(function (slug) {\n      if (\n        href.includes('\/' + slug + '\/') ||\n        href.includes('\/category\/' + slug) ||\n        href.includes(slug)\n      ) {\n        categoryLabel = categoryMap[slug];\n      }\n    });<\/p>\n<p>    return categoryLabel;\n  }<\/p>\n<p>  function updateInsightCardMeta() {\n    const cards = document.querySelectorAll(\n      '.insights-check-more-card, .insights-main-card'\n    );<\/p>\n<p>    cards.forEach(function (card) {\n      const link = card.querySelector('a[href]');\n      if (!link) return;<\/p>\n<p>      const href = link.getAttribute('href');\n      const categoryLabel = getCategoryFromUrl(href);<\/p>\n<p>      if (!categoryLabel) return;<\/p>\n<p>      const meta = card.querySelector('.el-meta, .uk-text-meta');\n      if (!meta) return;<\/p>\n<p>      const existingCategory = meta.querySelector('.insights-card-category');\n      if (existingCategory) {\n        existingCategory.textContent = categoryLabel;\n        return;\n      }<\/p>\n<p>      const separator = document.createElement('span');\n      separator.className = 'insights-card-meta-separator';\n      separator.textContent = ' | ';<\/p>\n<p>      const category = document.createElement('span');\n      category.className = 'insights-card-category';\n      category.textContent = categoryLabel;<\/p>\n<p>      meta.appendChild(separator);\n      meta.appendChild(category);\n    });\n  }<\/p>\n<p>  updateInsightCardMeta();<\/p>\n<p>  \/*\n   * Small safety net for YOOtheme dynamic content,\n   * in case cards render slightly after DOMContentLoaded.\n   *\/\n  setTimeout(updateInsightCardMeta, 300);\n  setTimeout(updateInsightCardMeta, 1000);\n});\n<\/script>\n<\/div>\n<p><!--more--><br \/>\n<!-- {\"type\":\"layout\",\"children\":[{\"type\":\"section\",\"props\":{\"image\":\"https:\/\/expressheroes.eu\/wp-content\/uploads\/2026\/05\/express-heroes-insights-logistics-route-planning-hero.jpg\",\"image_position\":\"center-center\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"default\"},\"children\":[{\"type\":\"row\",\"props\":{\"layout\":\"1-2,1-2\",\"row_gap\":\"collapse\"},\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"padding\":\"xsmall\",\"position_sticky_breakpoint\":\"m\",\"width_medium\":\"1-2\"},\"children\":[{\"type\":\"headline\",\"props\":{\"content\":\"\n\n<p>Insights from <br \/><em>Express Heroes<\/em><\/p>\n\n\",\"content_ro_ro\":\"Sunte\u021bi un proprietar de camion interesat de parteneriat?\",\"css\":\".el-element,\\n.el-element span,\\n.el-element strong,\\n.el-element b{\\ncolor: #ffffff !important;\\n}\\n\\n.el-element em,\\n.el-element em span,\\n.el-element em strong,\\n.el-element em b{\\ncolor: #00e84f !important;\\n}\",\"image_align\":\"left\",\"image_margin\":\"xsmall\",\"title_element\":\"h1\",\"title_style\":\"heading-medium\",\"visibility\":\"l\"}},{\"type\":\"text\",\"props\":{\"column_breakpoint\":\"m\",\"content\":\"\n\n<p>Practical transport and logistics knowledge for shippers, supply chain teams and business decision-makers. Explore articles about freight forwarding, multimodal transport, customs, warehousing, industry-specific logistics and cross-border operations across Europe.<\/p>\n\n\",\"content_lt_lt\":\"\n\n<p>Praktin\u0117s transporto ir logistikos \u017einios krovini\u0173 ve\u017e\u0117jams, tiekimo grandin\u0117s komandoms ir verslo sprendim\u0173 pri\u0117m\u0117jams. Skaitykite straipsnius apie krovini\u0173 ekspedijavim\u0105, multimodalin\u012f transport\u0105, muitin\u0117s proced\u016bras, sand\u0117liavim\u0105, konkre\u010dioms verslo \u0161akoms pritaikyt\u0105 logistik\u0105 ir tarptautinius procesus visoje Europoje.<\/p>\n\n\",\"content_lv\":\"\n\n<p>Praktiskas zin\u0101\u0161anas transporta un lo\u0123istikas jom\u0101 kravu nos\u016bt\u012bt\u0101jiem, pieg\u0101des \u0137\u0113\u017eu komand\u0101m un biznesa l\u0113mumu pie\u0146\u0113m\u0113jiem. Lasiet rakstus par kravu eksped\u012bciju, multimod\u0101lajiem p\u0101rvad\u0101jumiem, muitas proced\u016br\u0101m, noliktavu lo\u0123istiku, nozaru specifiskajiem lo\u0123istikas risin\u0101jumiem un p\u0101rrobe\u017eu oper\u0101cij\u0101m vis\u0101 Eirop\u0101.<\/p>\n\n\",\"content_pl_pl\":\"\n\n<p>Praktyczna wiedza o transporcie i logistyce dla za\u0142adowc\u00f3w, zespo\u0142\u00f3w odpowiedzialnych za \u0142a\u0144cuch dostaw oraz os\u00f3b podejmuj\u0105cych decyzje biznesowe. Poznaj artyku\u0142y o spedycji, transporcie multimodalnym, odprawach celnych, magazynowaniu, logistyce bran\u017cowej oraz operacjach transgranicznych w ca\u0142ej Europie.<\/p>\n\n\",\"content_ro_ro\":\"\n\n<p>Sunte\u021bi interesat s\u0103 afla\u021bi care sunt pre\u021burile noastre actuale \u0219i posibilit\u0103\u021bile de cooperare? Contacta\u021bi-ne sau vizita\u021bi cel mai apropiat birou local al Express Heroes pentru servicii personalizate \u0219i informa\u021bii detaliate.<\/p>\n\n\",\"content_ru_ru\":\"\n\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430 \u0438 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u0433\u0440\u0443\u0437\u043e\u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u043f\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a \u0438 \u043b\u0438\u0446, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0445 \u0431\u0438\u0437\u043d\u0435\u0441-\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e\u0431 \u044d\u043a\u0441\u043f\u0435\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0433\u0440\u0443\u0437\u043e\u0432, \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u043e\u0434\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0430\u0445, \u0442\u0430\u043c\u043e\u0436\u0435\u043d\u043d\u043e\u043c \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0438, \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u043e\u0439 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0435, \u043e\u0442\u0440\u0430\u0441\u043b\u0435\u0432\u044b\u0445 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445 \u0438 \u0442\u0440\u0430\u043d\u0441\u0433\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u043f\u043e \u0432\u0441\u0435\u0439 \u0415\u0432\u0440\u043e\u043f\u0435.<\/p>\n\n\",\"content_uk\":\"\n\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u043d\u0456 \u0437\u043d\u0430\u043d\u043d\u044f \u0443 \u0441\u0444\u0435\u0440\u0456 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0443 \u0442\u0430 \u043b\u043e\u0433\u0456\u0441\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u0432\u0430\u043d\u0442\u0430\u0436\u043e\u0432\u0456\u0434\u043f\u0440\u0430\u0432\u043d\u0438\u043a\u0456\u0432, \u043a\u043e\u043c\u0430\u043d\u0434 \u0437 \u0443\u043f\u0440\u0430\u0432\u043b\u0456\u043d\u043d\u044f \u043b\u0430\u043d\u0446\u044e\u0433\u0430\u043c\u0438 \u043f\u043e\u0441\u0442\u0430\u0447\u0430\u043d\u043d\u044f \u0442\u0430 \u043e\u0441\u0456\u0431, \u044f\u043a\u0456 \u043f\u0440\u0438\u0439\u043c\u0430\u044e\u0442\u044c \u0431\u0456\u0437\u043d\u0435\u0441-\u0440\u0456\u0448\u0435\u043d\u043d\u044f. \u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u043c\u0430\u0442\u0435\u0440\u0456\u0430\u043b\u0438 \u043f\u0440\u043e \u0435\u043a\u0441\u043f\u0435\u0434\u0438\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0430\u043d\u0442\u0430\u0436\u0456\u0432, \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u043e\u0434\u0430\u043b\u044c\u043d\u0456 \u043f\u0435\u0440\u0435\u0432\u0435\u0437\u0435\u043d\u043d\u044f, \u043c\u0438\u0442\u043d\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044f, \u0441\u043a\u043b\u0430\u0434\u0441\u044c\u043a\u0443 \u043b\u043e\u0433\u0456\u0441\u0442\u0438\u043a\u0443, \u0433\u0430\u043b\u0443\u0437\u0435\u0432\u0456 \u043b\u043e\u0433\u0456\u0441\u0442\u0438\u0447\u043d\u0456 \u0440\u0456\u0448\u0435\u043d\u043d\u044f \u0442\u0430 \u0442\u0440\u0430\u043d\u0441\u043a\u043e\u0440\u0434\u043e\u043d\u043d\u0456 \u043e\u043f\u0435\u0440\u0430\u0446\u0456\u0457 \u043f\u043e \u0432\u0441\u0456\u0439 \u0404\u0432\u0440\u043e\u043f\u0456.<\/p>\n\n\",\"css\":\".el-element .el-content,\\n.el-element p{\\n  font-family: 'Roboto', sans-serif !important;\\n  font-size: 16px !important;\\n  font-weight: 400 !important;\\n  line-height: 19px !important;\\n  letter-spacing: 0 !important;\\n  text-align: justify !important;\\n  color: #ffffff !important;\\n  opacity: 1 !important;\\n  text-transform: none !important;\\n  margin: 0 !important;\\n}\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"text_align\":\"justify\"}}]},{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\",\"width_medium\":\"1-2\"}}]}],\"name\":\"001Section 1 - For Clients -  Hero - New\"},{\"type\":\"section\",\"props\":{\"image_position\":\"center-center\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"default\"},\"children\":[{\"type\":\"row\",\"props\":{\"width\":\"default\"},\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"grid\",\"props\":{\"class\":\"eh-insights-grid\",\"content_align\":false,\"content_column_breakpoint\":\"m\",\"content_dropcap\":false,\"css\":\"\/* =========================================================\\n   Local styling for Insights category filter\\n   Paste this in: Grid -> Advanced -> CSS\\n   ========================================================= *\/\\n\\n\/* Filter wrapper *\/\\n.el-element .uk-tab,\\n.el-element .el-nav,\\n.el-element .uk-subnav {\\n  width: 100% !important;\\n  max-width: none !important;\\n  margin: 0 0 48px 0 !important;\\n  padding: 0 !important;\\n\\n  display: flex !important;\\n  justify-content: flex-start !important;\\n  align-items: stretch !important;\\n  flex-wrap: nowrap !important;\\n  gap: 0 !important;\\n\\n  border-top: 1px solid #b8b8b8 !important;\\n  border-bottom: 1px solid #b8b8b8 !important;\\n  box-sizing: border-box !important;\\n}\\n\\n\/* Remove default YOOtheme \/ UIkit tab line *\/\\n.el-element .uk-tab::before,\\n.el-element .el-nav::before,\\n.el-element .uk-subnav::before {\\n  display: none !important;\\n  border: none !important;\\n  content: none !important;\\n}\\n\\n\/* Filter list items *\/\\n.el-element .uk-tab > *,\\n.el-element .el-nav > *,\\n.el-element .uk-subnav > * {\\n  margin: 0 !important;\\n  padding: 0 !important;\\n}\\n\\n\/* Filter links *\/\\n.el-element .uk-tab > * > a,\\n.el-element .el-nav > * > a,\\n.el-element .uk-subnav > * > a {\\n  min-width: 88px !important;\\n  height: 38px !important;\\n  padding: 0 18px !important;\\n\\n  display: flex !important;\\n  align-items: center !important;\\n  justify-content: center !important;\\n\\n  font-family: Roboto, Arial, sans-serif !important;\\n  font-size: 16px !important;\\n  font-weight: 400 !important;\\n  line-height: 19px !important;\\n  color: #707070 !important;\\n  text-align: center !important;\\n  text-transform: none !important;\\n  text-decoration: none !important;\\n\\n  background: #ffffff !important;\\n  border: none !important;\\n  box-sizing: border-box !important;\\n}\\n\\n\/* Active filter item *\/\\n.el-element .uk-tab > .uk-active > a,\\n.el-element .el-nav > .uk-active > a,\\n.el-element .uk-subnav > .uk-active > a,\\n.el-element .uk-tab > * > a[aria-selected=\\\"true\\\"],\\n.el-element .el-nav > * > a[aria-selected=\\\"true\\\"],\\n.el-element .uk-subnav > * > a[aria-selected=\\\"true\\\"] {\\n  background: #eeeeee !important;\\n  color: #707070 !important;\\n  border: none !important;\\n}\\n\\n\/* Kill green underline and default pseudo-elements *\/\\n.el-element .uk-tab > .uk-active > a::before,\\n.el-element .el-nav > .uk-active > a::before,\\n.el-element .uk-subnav > .uk-active > a::before,\\n.el-element .uk-tab > * > a::before,\\n.el-element .el-nav > * > a::before,\\n.el-element .uk-subnav > * > a::before,\\n.el-element .uk-tab > .uk-active > a::after,\\n.el-element .el-nav > .uk-active > a::after,\\n.el-element .uk-subnav > .uk-active > a::after,\\n.el-element .uk-tab > * > a::after,\\n.el-element .el-nav > * > a::after,\\n.el-element .uk-subnav > * > a::after {\\n  display: none !important;\\n  content: none !important;\\n  border: none !important;\\n}\\n\\n\/* Hover state *\/\\n.el-element .uk-tab > * > a:hover,\\n.el-element .el-nav > * > a:hover,\\n.el-element .uk-subnav > * > a:hover {\\n  background: #f2f2f2 !important;\\n  color: #707070 !important;\\n}\\n\\n\/* Mobile filter layout *\/\\n@media (max-width: 640px) {\\n  .el-element .uk-tab,\\n  .el-element .el-nav,\\n  .el-element .uk-subnav {\\n    flex-wrap: wrap !important;\\n  }\\n\\n  .el-element .uk-tab > * > a,\\n  .el-element .el-nav > * > a,\\n  .el-element .uk-subnav > * > a {\\n    width: 50% !important;\\n    min-width: 50% !important;\\n  }\\n}\",\"filter\":true,\"filter_align\":\"left\",\"filter_all\":true,\"filter_all_label_lt_lt\":\"Visi\",\"filter_all_label_lv\":\"Visi\",\"filter_all_label_pl_pl\":\"Wszystkie\",\"filter_all_label_ru_ru\":\"\u0412\u0441\u0435\",\"filter_all_label_uk\":\"\u0423\u0441\u0456\",\"filter_animation\":\"fade\",\"filter_grid_breakpoint\":\"m\",\"filter_grid_width\":\"auto\",\"filter_order\":\"manual\",\"filter_order_manual\":\"All News Clients Insights Insights for Carriers For Forwarders\",\"filter_position\":\"top\",\"filter_style\":\"tab\",\"filter_wrap\":true,\"grid_column_gap\":\"medium\",\"grid_default\":\"1\",\"grid_large\":\"3\",\"grid_medium\":\"3\",\"grid_row_align\":false,\"grid_row_gap\":\"medium\",\"grid_small\":\"2\",\"grid_xlarge\":\"3\",\"image_align\":\"top\",\"image_expand\":true,\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"item_animation\":true,\"lightbox\":false,\"lightbox_bg_close\":true,\"link_fullwidth\":true,\"link_style\":\"primary\",\"link_text\":\"Read more\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"text-meta\",\"panel_image_no_padding\":true,\"panel_padding\":\"default\",\"panel_style\":\"card-default\",\"show_content\":true,\"show_hover_image\":true,\"show_hover_video\":true,\"show_image\":true,\"show_link\":true,\"show_meta\":true,\"show_title\":true,\"show_video\":true,\"title_align\":\"top\",\"title_element\":\"h3\",\"title_grid_breakpoint\":\"m\",\"title_grid_width\":\"1-2\",\"title_hover_style\":\"reset\",\"title_margin_auto\":false,\"title_style\":\"h3\",\"yooessentials_access_conditions\":[],\"yooessentials_access_mode\":\"AND\"},\"children\":[{\"type\":\"grid_item\",\"props\":{\"class\":\"insights-main-card\",\"link_text\":\"Read article\"},\"source\":{\"query\":{\"name\":\"posts.customPosts\",\"arguments\":{\"terms\":[54],\"offset\":0,\"limit\":48,\"category_include_children\":\"include\",\"order\":\"date\",\"order_direction\":\"DESC\"}},\"props\":{\"content\":{\"query\":{\"name\":\"#node\"},\"name\":\"content\",\"filters\":{\"limit\":200}},\"image\":{\"query\":{\"name\":\"#node\"},\"name\":\"featuredImage.url\"},\"image_alt\":{\"query\":{\"name\":\"#node\"},\"name\":\"featuredImage.alt\"},\"link\":{\"query\":{\"name\":\"#node\"},\"name\":\"link\"},\"title\":{\"query\":{\"name\":\"#node\"},\"name\":\"title\"},\"meta\":{\"query\":{\"name\":\"#node\"},\"filters\":{\"date\":\"j M, Y\"},\"name\":\"date\"},\"tags\":{\"query\":{\"name\":\"#node\"},\"name\":\"categoryString\"}}},\"name\":\"Insights - Main Grid\"}],\"name\":\"Insights - Check More Grid\"},{\"type\":\"html\",\"props\":{\"content\":\"\n\n<div class=\\\"eh-insights-load-more-wrap\\\">\\n  <button type=\\\"button\\\" class=\\\"eh-insights-load-more\\\">\\n    Load more\\n  <\/button>\\n<\/div>\n\n\\n\\n<script>\\ndocument.addEventListener('DOMContentLoaded', function () {\\n  const initialVisibleItems = 9;\\n  const itemsPerClick = 6;\\n\\n  let visibleLimit = initialVisibleItems;\\n  let updateTimer = null;\\n\\n  function getGridRoot() {\\n    return document.querySelector('.eh-insights-grid');\\n  }\\n\\n  function getButtonWrap() {\\n    return document.querySelector('.eh-insights-load-more-wrap');\\n  }\\n\\n  function getButton() {\\n    return document.querySelector('.eh-insights-load-more');\\n  }\\n\\n  function getInnerGrid() {\\n    const gridRoot = getGridRoot();\\n\\n    if (!gridRoot) {\\n      return null;\\n    }\\n\\n    if (gridRoot.classList.contains('uk-grid')) {\\n      return gridRoot;\\n    }\\n\\n    return gridRoot.querySelector('.uk-grid');\\n  }\\n\\n  function getGridItems() {\\n    const innerGrid = getInnerGrid();\\n\\n    if (!innerGrid) {\\n      return [];\\n    }\\n\\n    return Array.from(innerGrid.children).filter(function (item) {\\n      return item && item.nodeType === 1;\\n    });\\n  }\\n\\n  function isFilteredOutByYootheme(item) {\\n    if (!item) {\\n      return true;\\n    }\\n\\n    if (item.hidden) {\\n      return true;\\n    }\\n\\n    if (item.classList.contains('uk-hidden')) {\\n      return true;\\n    }\\n\\n    if (item.classList.contains('uk-filter-control-hidden')) {\\n      return true;\\n    }\\n\\n    return false;\\n  }\\n\\n  function resetOwnHiddenClasses(items) {\\n    items.forEach(function (item) {\\n      item.classList.remove('eh-insights-item-hidden');\\n    });\\n  }\\n\\n  function updateItems() {\\n    const gridRoot = getGridRoot();\\n    const buttonWrap = getButtonWrap();\\n    const items = getGridItems();\\n\\n    if (!gridRoot || !buttonWrap || !items.length) {\\n      return;\\n    }\\n\\n    resetOwnHiddenClasses(items);\\n\\n    window.requestAnimationFrame(function () {\\n      const availableItems = items.filter(function (item) {\\n        return !isFilteredOutByYootheme(item);\\n      });\\n\\n      availableItems.forEach(function (item, index) {\\n        if (index >= visibleLimit) {\\n          item.classList.add('eh-insights-item-hidden');\\n        } else {\\n          item.classList.remove('eh-insights-item-hidden');\\n        }\\n      });\\n\\n      if (visibleLimit >= availableItems.length) {\\n        buttonWrap.style.display = 'none';\\n      } else {\\n        buttonWrap.style.display = 'flex';\\n      }\\n\\n      gridRoot.classList.add('eh-insights-load-initialized');\\n\\n      if (window.UIkit && typeof window.UIkit.update === 'function') {\\n        window.UIkit.update();\\n      }\\n    });\\n  }\\n\\n  function scheduleUpdate(delay) {\\n    window.clearTimeout(updateTimer);\\n\\n    updateTimer = window.setTimeout(function () {\\n      updateItems();\\n    }, delay || 120);\\n  }\\n\\n  function resetAndUpdate() {\\n    visibleLimit = initialVisibleItems;\\n    scheduleUpdate(300);\\n    scheduleUpdate(700);\\n  }\\n\\n  function initLoadMore() {\\n    const gridRoot = getGridRoot();\\n    const button = getButton();\\n\\n    if (!gridRoot || !button) {\\n      return false;\\n    }\\n\\n    if (gridRoot.getAttribute('data-eh-load-more-ready') === 'yes') {\\n      updateItems();\\n      return true;\\n    }\\n\\n    gridRoot.setAttribute('data-eh-load-more-ready', 'yes');\\n\\n    button.addEventListener('click', function () {\\n      visibleLimit += itemsPerClick;\\n      updateItems();\\n    });\\n\\n    document.addEventListener('click', function (event) {\\n      const clickedFilter = event.target.closest('[uk-filter] a, .uk-subnav a, .uk-tab a');\\n\\n      if (clickedFilter) {\\n        resetAndUpdate();\\n      }\\n    });\\n\\n    updateItems();\\n    scheduleUpdate(500);\\n    scheduleUpdate(1200);\\n\\n    return true;\\n  }\\n\\n  let tries = 0;\\n\\n  const waitForGrid = window.setInterval(function () {\\n    tries += 1;\\n\\n    if (initLoadMore() || tries > 40) {\\n      window.clearInterval(waitForGrid);\\n    }\\n  }, 100);\\n});\\n<\/script>\"}}]}]}],\"name\":\"002 Insights\"},{\"type\":\"section\",\"props\":{\"image_position\":\"center-center\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"default\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"html\",\"props\":{\"content\":\"<script>\\ndocument.addEventListener('DOMContentLoaded', function () {\\n  \/*\\n   * Express Heroes Insights\\n   * Adds category label after the post date in card meta line.\\n   * Works for:\\n   * - Single post \\\"Check More\\\" cards\\n   * - Main Insights listing cards\\n   *\/\\n\\n  const categoryMap = {\\n    'clients-insights': 'Clients Insights',\\n    'client-insights': 'Clients Insights',\\n    'insights-for-carriers': 'Insights for Carriers',\\n    'for-forwarders': 'For Forwarders',\\n    'news': 'News'\\n  };\\n\\n  function getCategoryFromUrl(href) {\\n    if (!href) return '';\\n\\n    let categoryLabel = '';\\n\\n    Object.keys(categoryMap).forEach(function (slug) {\\n      if (\\n        href.includes('\/' + slug + '\/') ||\\n        href.includes('\/category\/' + slug) ||\\n        href.includes(slug)\\n      ) {\\n        categoryLabel = categoryMap[slug];\\n      }\\n    });\\n\\n    return categoryLabel;\\n  }\\n\\n  function updateInsightCardMeta() {\\n    const cards = document.querySelectorAll(\\n      '.insights-check-more-card, .insights-main-card'\\n    );\\n\\n    cards.forEach(function (card) {\\n      const link = card.querySelector('a[href]');\\n      if (!link) return;\\n\\n      const href = link.getAttribute('href');\\n      const categoryLabel = getCategoryFromUrl(href);\\n\\n      if (!categoryLabel) return;\\n\\n      const meta = card.querySelector('.el-meta, .uk-text-meta');\\n      if (!meta) return;\\n\\n      const existingCategory = meta.querySelector('.insights-card-category');\\n      if (existingCategory) {\\n        existingCategory.textContent = categoryLabel;\\n        return;\\n      }\\n\\n      const separator = document.createElement('span');\\n      separator.className = 'insights-card-meta-separator';\\n      separator.textContent = ' | ';\\n\\n      const category = document.createElement('span');\\n      category.className = 'insights-card-category';\\n      category.textContent = categoryLabel;\\n\\n      meta.appendChild(separator);\\n      meta.appendChild(category);\\n    });\\n  }\\n\\n  updateInsightCardMeta();\\n\\n  \/*\\n   * Small safety net for YOOtheme dynamic content,\\n   * in case cards render slightly after DOMContentLoaded.\\n   *\/\\n  setTimeout(updateInsightCardMeta, 300);\\n  setTimeout(updateInsightCardMeta, 1000);\\n});\\n<\/script>\"}}]}]}],\"name\":\"004 Insights\"}],\"version\":\"5.0.37\"} --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Insights from Express Heroes Practical transport and logistics knowledge for shippers, supply chain teams and business decision-makers. Explore articles about freight forwarding, multimodal transport, customs, warehousing, industry-specific logistics and cross-border operations across Europe. Load more<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-8118","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/expressheroes.eu\/lv\/wp-json\/wp\/v2\/pages\/8118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/expressheroes.eu\/lv\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/expressheroes.eu\/lv\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/expressheroes.eu\/lv\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/expressheroes.eu\/lv\/wp-json\/wp\/v2\/comments?post=8118"}],"version-history":[{"count":41,"href":"https:\/\/expressheroes.eu\/lv\/wp-json\/wp\/v2\/pages\/8118\/revisions"}],"predecessor-version":[{"id":8817,"href":"https:\/\/expressheroes.eu\/lv\/wp-json\/wp\/v2\/pages\/8118\/revisions\/8817"}],"wp:attachment":[{"href":"https:\/\/expressheroes.eu\/lv\/wp-json\/wp\/v2\/media?parent=8118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}