{"id":776,"date":"2025-06-23T18:37:55","date_gmt":"2025-06-23T18:37:55","guid":{"rendered":"https:\/\/staging.atlas.buzzvel.work\/investigacao-e-noticias\/"},"modified":"2025-09-25T18:55:35","modified_gmt":"2025-09-25T18:55:35","slug":"research-and-news","status":"publish","type":"page","link":"https:\/\/staging.atlas.buzzvel.work\/en\/research-and-news\/","title":{"rendered":"Research and News"},"content":{"rendered":"\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div id=\"\" class=\"container-custom-background brown-line-right \">\n        <div class=\"container-custom-background-content\">\n        <div class=\"acf-innerblocks-container\">\n\n<section id=\"\" class=\"title-subtitle-description-block\">\n                <h1 class=\"title-subtitle-description-block__title h1\">\n            Research and News        <\/h1>\n                <p class=\"title-subtitle-description-block__description\">A space dedicated to knowledge about the hill forts of Barroso, with articles, reports, and scientific content that reveal the agricultural, natural, and archaeological world of the region.\r\n<\/p>\n    <\/section>\n\n\n\n<div style=\"height:70px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n  <article class=\"highlighted-news-block\">\n    <a \n      class=\"highlighted-news-link\"\n      href=\"https:\/\/staging.atlas.buzzvel.work\/en\/research-and-news\/georadar-and-drone-will-help-map-the-castros-of-barroso-world-agricultural-heritage\/\"\n      aria-label=\"Saiba mais sobre Ground-penetrating radar and drones will help map the hill forts of Barroso World Agricultural Heritage\">\n      <div class=\"highlighted-news-inner\">\n                <div class=\"highlighted-news-image-container\">\n          <img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"800\" src=\"https:\/\/staging.atlas.buzzvel.work\/wp-content\/uploads\/2025\/09\/Imagem-JN-Artigo.webp\" class=\"highlighted-news-image\" alt=\"\" srcset=\"https:\/\/staging.atlas.buzzvel.work\/wp-content\/uploads\/2025\/09\/Imagem-JN-Artigo.webp 1200w, https:\/\/staging.atlas.buzzvel.work\/wp-content\/uploads\/2025\/09\/Imagem-JN-Artigo-300x200.webp 300w, https:\/\/staging.atlas.buzzvel.work\/wp-content\/uploads\/2025\/09\/Imagem-JN-Artigo-1024x683.webp 1024w, https:\/\/staging.atlas.buzzvel.work\/wp-content\/uploads\/2025\/09\/Imagem-JN-Artigo-768x512.webp 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/>          <div class=\"highlighted-news-overlay\"><\/div>\n        <\/div>\n        <div class=\"highlighted-news-content-inner\">\n          <div class=\"highlighted-news-content\">\n            <header class=\"highlighted-news-header\">\n              <div class=\"highlighted-news-meta\">\n                <span class=\"highlighted-news-reading-time\">4 min<\/span>\n                <span class=\"highlighted-news-divider\" aria-hidden=\"true\">\u2022<\/span>\n                <time class=\"highlighted-news-date\" datetime=\"2025-09-24T11:22:32+00:00\">\n                  24\/09\/2025                <\/time>\n              <\/div>\n              <h2 class=\"highlighted-news-title\">Ground-penetrating radar and drones will help map the hill forts of Barroso World Agricultural Heritage<\/h2>\n            <\/header>\n            <p class=\"highlighted-news-excerpt\">Archaeologists will conduct a non-invasive survey of the Castros do Barroso, a project that also includes animated virtual reconstructions and aims to help people learn about the history and origins of the World Agricultural Heritage Site that covers Boticas and&hellip;<\/p>\n          <\/div>\n          <div class=\"highlighted-news-button btn-primary-gradient\">\n            <span class=\"highlighted-news-button-text\">\n              See More            <\/span>\n            <svg width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n              <path\n                d=\"M12.7231 4.68494C12.8209 4.65132 12.9301 4.66511 13.0151 4.72009V4.72107C15.9451 6.63802 18.3737 9.00476 20.2466 11.7631L20.6138 12.3207C20.6838 12.4309 20.6831 12.5706 20.6138 12.6791V12.6801C18.6945 15.6783 16.1386 18.2338 13.0151 20.2777C12.9585 20.314 12.8957 20.3334 12.8325 20.3334V20.6976L12.8286 20.3334C12.6947 20.3346 12.5594 20.2367 12.519 20.1107L12.5171 20.1039L12.4478 19.8705C12.3232 19.4195 12.057 18.3177 11.8706 16.5687L11.8208 16.099L11.3491 16.1224C10.7655 16.1513 10.2161 16.1664 9.7085 16.1664C7.0334 16.1664 4.15469 15.7633 4.0376 15.7465L3.95557 15.724C3.87887 15.6919 3.81583 15.6318 3.78076 15.5551L3.77979 15.5531L3.70166 15.3451C3.5733 14.9602 3.33354 14.0366 3.3335 12.5004C3.3335 10.4516 3.75926 9.49141 3.77979 9.44666L3.78076 9.4447C3.81563 9.36789 3.8785 9.30782 3.95557 9.27576L4.0376 9.2533C4.15469 9.23645 7.0334 8.83337 9.7085 8.83337C10.2161 8.83337 10.7655 8.84847 11.3491 8.87732L11.8208 8.90076L11.8706 8.43103C12.1184 6.10572 12.5073 4.92534 12.5171 4.89587V4.8949C12.5498 4.79664 12.6257 4.71897 12.7231 4.68494ZM12.8677 6.27283C12.7291 6.96906 12.5679 7.97591 12.4604 9.28748C12.4463 9.45633 12.2891 9.60128 12.0933 9.59216H12.0923C11.231 9.5321 10.4295 9.50135 9.70947 9.50134C7.74096 9.50134 5.61502 9.73056 4.65967 9.84705L4.31592 9.88904L4.23389 10.226C4.12615 10.6716 4.00149 11.4234 4.00146 12.5013C4.00146 13.5798 4.12637 14.3293 4.23389 14.7767L4.31494 15.1136L4.65967 15.1566C5.61662 15.274 7.74217 15.5013 9.70947 15.5013C10.4308 15.5013 11.2341 15.4708 12.0972 15.4105C12.1077 15.4102 12.1162 15.4107 12.1206 15.4105C12.1323 15.41 12.1313 15.4095 12.1284 15.4095H12.1392C12.285 15.4142 12.41 15.5132 12.4487 15.6517L12.4604 15.7142C12.5679 17.0246 12.7281 18.0312 12.8677 18.7289L13.02 19.4906L13.6499 19.0365C16.086 17.2825 18.1348 15.1832 19.7524 12.7797L19.9399 12.5013L19.7524 12.222C18.1363 9.81834 16.0868 7.71921 13.6499 5.96521L13.019 5.51111L12.8677 6.27283Z\"\n                fill=\"#2C2A29\" stroke=\"white\" \/>\n            <\/svg>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/a>\n  <\/article>\n\n<\/div>\n    <\/div>\n<\/div>\n\n\n\n<section id=\"\" class=\"title-subtitle-description-block\">\n            <span class=\"title-subtitle-description-block__subtitle\">Discover More About the Castros<\/span>\n                <h2 class=\"title-subtitle-description-block__title h2\">\n            Bibliography on Castros        <\/h2>\n        <\/section>\n\n\n\n<section class=\"listing-posts-block\" data-posts-per-page=\"6\" data-language=\"en\" aria-labelledby=\"posts-section-title\">\n  <header class=\"listing-posts-header\">\n    <svg class=\"listing-posts-search-icon\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n      <path d=\"M13.75 14.9167L9.08333 10.25C8.66667 10.5833 8.1875 10.8472 7.64583 11.0417C7.10417 11.2361 6.52778 11.3333 5.91667 11.3333C4.40278 11.3333 3.12167 10.8092 2.07333 9.76083C1.02444 8.71194 0.5 7.43056 0.5 5.91667C0.5 4.40278 1.02444 3.12139 2.07333 2.0725C3.12167 1.02417 4.40278 0.5 5.91667 0.5C7.43056 0.5 8.71194 1.02417 9.76083 2.0725C10.8092 3.12139 11.3333 4.40278 11.3333 5.91667C11.3333 6.52778 11.2361 7.10417 11.0417 7.64583C10.8472 8.1875 10.5833 8.66667 10.25 9.08333L14.9375 13.7708C15.0903 13.9236 15.1667 14.1111 15.1667 14.3333C15.1667 14.5556 15.0833 14.75 14.9167 14.9167C14.7639 15.0694 14.5694 15.1458 14.3333 15.1458C14.0972 15.1458 13.9028 15.0694 13.75 14.9167ZM5.91667 9.66667C6.95833 9.66667 7.84389 9.30222 8.57333 8.57333C9.30222 7.84389 9.66667 6.95833 9.66667 5.91667C9.66667 4.875 9.30222 3.98944 8.57333 3.26C7.84389 2.53111 6.95833 2.16667 5.91667 2.16667C4.875 2.16667 3.98944 2.53111 3.26 3.26C2.53111 3.98944 2.16667 4.875 2.16667 5.91667C2.16667 6.95833 2.53111 7.84389 3.26 8.57333C3.98944 9.30222 4.875 9.66667 5.91667 9.66667Z\" fill=\"#5C5A5A\" \/>\n    <\/svg>\n    <input\n      type=\"search\"\n      id=\"post-search\"\n      class=\"listing-posts-search\"\n      placeholder=\"Search...\"\n      aria-label=\"Campo de busca para posts\" \/>\n  <\/header>\n\n  <div class=\"listing-posts-list\" aria-live=\"polite\" aria-label=\"Resultados dos posts\"><\/div>\n  \n  <div class=\"listing-posts-loading\" role=\"status\" aria-label=\"Carregando posts\">\n    <div class=\"loader\" aria-hidden=\"true\"><\/div>\n    <span class=\"sr-only\">Carregando posts&#8230;<\/span>\n  <\/div>\n\n  <nav class=\"listing-posts-pagination\" role=\"navigation\" aria-label=\"Navega\u00e7\u00e3o de p\u00e1ginas\"><\/nav>\n<\/section>\n<script async>\n  window.atlasMessages = {\n  noPostsFoundTitle: \"The Atlas of the Castros of Barroso\\n\",\n  noPostsFound: \"Please try searching again by name or subject.\\n\",\n  loadingPosts: \"Carregando posts...\",\n  errorLoadingPosts: \"Erro ao carregar posts.\"};\n\ndocument.addEventListener('DOMContentLoaded', function() {\n  document.querySelectorAll('.listing-posts-block').forEach(function(block) {\n    const postsPerPage = parseInt(block.getAttribute('data-posts-per-page')) || 5;\n    const list = block.querySelector('.listing-posts-list');\n    const pagination = block.querySelector('.listing-posts-pagination');\n    const searchInput = block.querySelector('.listing-posts-search');\n    const loading = block.querySelector('.listing-posts-loading');\n    let currentPage = 1;\n    let totalPages = 1;\n    let searchTerm = '';\n    let debounceTimeout = null;\n    const language = block.getAttribute('data-language') || 'pt-pt'; \n\n    function formatDate(dateString) {\n      const [datePart] = dateString.split(' ');\n      const [year, month, day] = datePart.split('-');\n      return `${day}\/${month}\/${year}`;\n    }\n\n    function renderPosts(posts) {\n      list.innerHTML = '';\n      if (!posts.length) {\n        list.innerHTML = `<div class=\"listing-posts-no-posts\" role=\"status\">\n                            <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                              <mask id=\"mask0_3135_11157\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"40\" height=\"41\">\n                              <path d=\"M0 0.000247955H40V40.0002H0V0.000247955Z\" fill=\"white\"\/>\n                              <\/mask>\n                              <g mask=\"url(#mask0_3135_11157)\">\n                              <path d=\"M33.9513 19.6463V38.8271H6.04883V19.6463\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M2.79932 19.6462H37.2006C37.2006 14.9837 34.5082 10.7404 30.2897 8.75444L19.9999 3.91038L9.71018 8.75444C5.49166 10.7404 2.79932 14.9837 2.79932 19.6462Z\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M20 3.91028V4.44207e-05\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M20 19.6462V12.0187\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M25.5273 19.6462V13.5979\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M31.0537 19.6462V15.1771\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M14.4736 19.6462V13.5979\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M8.94629 19.6462V15.1771\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M21.3296 4.53638L23.3821 0.81833\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M18.6702 4.53638L16.6177 0.81833\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <path d=\"M24.7364 38.8271V30.46C24.7364 27.8442 22.6159 25.7236 20 25.7236C17.3842 25.7236 15.2637 27.8442 15.2637 30.46V38.8271\" stroke=\"#2C2A29\" stroke-width=\"2.34375\" stroke-miterlimit=\"10\"\/>\n                              <\/g>\n                              <\/svg>\n\n                            <h2 class=\"listing-posts-no-posts-title\" role=\"status\">${window.atlasMessages.noPostsFoundTitle}<\/h2>\n\n                            <p class=\"listing-posts-no-posts-text\" role=\"status\">${window.atlasMessages.noPostsFound}<\/p>\n                          <\/div>`;\n        pagination.innerHTML = '';\n        return;\n      }\n      posts.forEach(post => {\n        const image = post.thumbnail ? `<figure class=\\\"listing-posts-figure\\\"><img class=\\\"listing-posts-image\\\"  src=\\\"${post.thumbnail}\\\" alt=\\\"Imagem do post: ${post.title.replace(\/\\\"\/g, '&quot;')}\\\" width=\\\"360\\\" height=\\\"200\\\" loading=\\\"lazy\\\" \/><\/figure>` : '';\n        list.innerHTML += `\n          <article class=\\\"listing-posts-item\\\">\n            <a href=\\\"${post.link}\\\" class=\\\"listing-posts-link\\\" aria-label=\\\"Leia o post: ${post.title.replace(\/\\\"\/g, '&quot;')}\\\">\n              ${image}\n              <div class=\\\"listing-posts-content\\\">\n                <header class=\\\"listing-posts-header\\\">\n                <span class=\\\"listing-posts-reading-time\\\">${post.reading_time}<\/span>\n                <span class=\\\"listing-posts-divider\\\" aria-hidden=\\\"true\\\">\u2022<\/span>\n                <time class=\\\"listing-posts-date\\\" datetime=\\\"${post.post_date}\\\">${formatDate(post.post_date)}<\/time>\n                <\/header>\n                <h3 class=\\\"listing-posts-title\\\">${post.title}<\/h3>\n                <p class=\\\"listing-posts-excerpt\\\">${post.excerpt || ''}<\/p>\n              <\/div>\n            <\/a>\n          <\/article>\n        `;\n      });\n    }\n\n    function renderPagination() {\n      pagination.innerHTML = '';\n      if (totalPages <= 1) return;\n      \n      const paginationList = document.createElement('ul');\n      paginationList.className = 'flex gap-2 justify-center items-center';\n      paginationList.setAttribute('role', 'list');\n      paginationList.setAttribute('aria-label', 'P\u00e1ginas de navega\u00e7\u00e3o');\n      \n      \/\/ Left arrow\n      const leftArrowItem = document.createElement('li');\n      const leftArrowBtn = document.createElement('button');\n      leftArrowBtn.className = 'listing-posts-pagination-arrow';\n      leftArrowBtn.setAttribute('aria-label', 'P\u00e1gina anterior');\n      leftArrowBtn.disabled = currentPage === 1;\n      \n      \/\/ Insert left arrow SVG directly\n      leftArrowBtn.innerHTML = `\n        <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n          <path d=\"M5.7998 11.3L1.1998 6.70005C1.0998 6.60005 1.02914 6.49172 0.987804 6.37505C0.945804 6.25838 0.924805 6.13338 0.924805 6.00005C0.924805 5.86672 0.945804 5.74172 0.987804 5.62505C1.02914 5.50838 1.0998 5.40005 1.1998 5.30005L5.7998 0.700048C5.98314 0.516715 6.21647 0.425049 6.4998 0.425049C6.78314 0.425049 7.01647 0.516715 7.1998 0.700048C7.38314 0.883382 7.4748 1.11672 7.4748 1.40005C7.4748 1.68338 7.38314 1.91672 7.1998 2.10005L3.2998 6.00005L7.1998 9.90005C7.38314 10.0834 7.4748 10.3167 7.4748 10.6C7.4748 10.8834 7.38314 11.1167 7.1998 11.3C7.01647 11.4834 6.78314 11.575 6.4998 11.575C6.21647 11.575 5.98314 11.4834 5.7998 11.3Z\" fill=\"currentColor\" \/>\n        <\/svg>\n      `;\n      \n      leftArrowBtn.addEventListener('click', function() {\n        if (currentPage > 1) {\n          currentPage--;\n          fetchPosts();\n          window.scrollTo({ top: block.offsetTop, behavior: 'smooth' });\n        }\n      });\n      leftArrowItem.appendChild(leftArrowBtn);\n      paginationList.appendChild(leftArrowItem);\n      \n      \/\/ Page numbers with smart pagination\n      const getPageNumbers = () => {\n        const pages = [];\n        \n        if (totalPages <= 5) {\n          \/\/ Show all pages if 5 or fewer\n          for (let i = 1; i <= totalPages; i++) {\n            pages.push(i);\n          }\n        } else {\n          \/\/ Smart pagination: 1 2 3 ... 8 or 1 ... 6 7 8\n          if (currentPage <= 3) {\n            pages.push(1, 2, 3, '...', totalPages);\n          } else if (currentPage >= totalPages - 2) {\n            pages.push(1, '...', totalPages - 2, totalPages - 1, totalPages);\n          } else {\n            pages.push(1, '...', currentPage - 1, currentPage, currentPage + 1, '...', totalPages);\n          }\n        }\n        \n        return pages;\n      };\n      \n      const pageNumbers = getPageNumbers();\n      \n      pageNumbers.forEach(page => {\n        const listItem = document.createElement('li');\n        \n        if (page === '...') {\n          const ellipsis = document.createElement('span');\n          ellipsis.className = 'listing-posts-pagination-ellipsis';\n          ellipsis.textContent = '...';\n          ellipsis.setAttribute('aria-hidden', 'true');\n          listItem.appendChild(ellipsis);\n        } else {\n          const btn = document.createElement('button');\n          btn.className = 'listing-posts-pagination-btn' + (page === currentPage ? ' active' : '');\n          btn.textContent = page;\n          btn.setAttribute('aria-label', `Ir para p\u00e1gina ${page}`);\n          btn.setAttribute('aria-current', page === currentPage ? 'page' : 'false');\n          btn.addEventListener('click', function() {\n            currentPage = page;\n            fetchPosts();\n            window.scrollTo({ top: block.offsetTop, behavior: 'smooth' });\n          });\n          listItem.appendChild(btn);\n        }\n        \n        paginationList.appendChild(listItem);\n      });\n      \n      \/\/ Right arrow\n      const rightArrowItem = document.createElement('li');\n      const rightArrowBtn = document.createElement('button');\n      rightArrowBtn.className = 'listing-posts-pagination-arrow';\n      rightArrowBtn.setAttribute('aria-label', 'Pr\u00f3xima p\u00e1gina');\n      rightArrowBtn.disabled = currentPage === totalPages;\n      \n      \/\/ Insert right arrow SVG directly\n      rightArrowBtn.innerHTML = `\n        <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n          <path d=\"M1.1998 11.3C1.01647 11.1167 0.924805 10.8834 0.924805 10.6C0.924805 10.3167 1.01647 10.0834 1.1998 9.90005L5.0998 6.00005L1.1998 2.10005C1.01647 1.91672 0.924805 1.68338 0.924805 1.40005C0.924805 1.11672 1.01647 0.883382 1.1998 0.700048C1.38314 0.516715 1.61647 0.425049 1.8998 0.425049C2.18314 0.425049 2.41647 0.516715 2.5998 0.700048L7.1998 5.30005C7.2998 5.40005 7.3708 5.50838 7.4128 5.62505C7.45414 5.74172 7.4748 5.86672 7.4748 6.00005C7.4748 6.13338 7.45414 6.25838 7.4128 6.37505C7.3708 6.49172 7.2998 6.60005 7.1998 6.70005L2.5998 11.3C2.41647 11.4834 2.18314 11.575 1.8998 11.575C1.61647 11.575 1.38314 11.4834 1.1998 11.3Z\" fill=\"currentColor\" \/>\n        <\/svg>\n      `;\n      \n      rightArrowBtn.addEventListener('click', function() {\n        if (currentPage < totalPages) {\n          currentPage++;\n          fetchPosts();\n          window.scrollTo({ top: block.offsetTop, behavior: 'smooth' });\n        }\n      });\n      rightArrowItem.appendChild(rightArrowBtn);\n      paginationList.appendChild(rightArrowItem);\n      \n      pagination.appendChild(paginationList);\n    }\n\n    function fetchPosts() {\n      pagination.innerHTML = '';\n      loading.style.display = 'flex';\n      list.innerHTML = '';\n      fetch('\/wp-json\/atlas\/v1\/news', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application\/json' },\n        body: JSON.stringify({ search: searchTerm, page: currentPage, per_page: postsPerPage, lang: language })\n      })\n        .then(res => {\n          if (!res.ok) throw new Error('Failed to fetch posts');\n          return res.json();\n        })\n        .then(data => {\n          const posts = (data && data.data && data.data.posts) ? data.data.posts : [];\n          totalPages = (data && data.data && data.data.pagination && data.data.pagination.total_pages) ? data.data.pagination.total_pages : 1;\n          renderPosts(posts);\n          renderPagination();\n        })\n        .catch(() => {\n          list.innerHTML = `<p class=\"text-center py-8 text-red-500\" role=\"alert\">${window.atlasMessages.errorLoadingPosts}<\/p>`;\n        })\n        .finally(() => {\n          loading.style.display = 'none';\n        });\n    }\n\n    if (searchInput) {\n      searchInput.addEventListener('input', function() {\n        clearTimeout(debounceTimeout);\n        debounceTimeout = setTimeout(() => {\n          searchTerm = searchInput.value.trim();\n          currentPage = 1;\n          fetchPosts();\n        }, 400);\n      });\n    }\n\n    fetchPosts();\n  });\n});\n<\/script>\n\n\n\n<section id=\"\" class=\"title-subtitle-description-block\">\n            <span class=\"title-subtitle-description-block__subtitle\">The Castros<\/span>\n                <h2 class=\"title-subtitle-description-block__title h2\">\n            Explore the Atlas of the Castros of Barroso        <\/h2>\n                <p class=\"title-subtitle-description-block__description\">Explore the hill forts of Barroso and discover historical, geographical, and cultural information about each archaeological site.\r\n<\/p>\n    <\/section>\n\n\n\n<div class=\"render-map-container section\">\n\n\t<div\n\t\tid=\"root\"\n\t\tclass=\"render-map-root-container section\"\n\t\tdata-layout=\"section\"\n\t\tdata-title=\"The Atlas of the Castros of Barroso\"\n\t\tdata-description=\"Welcome to Atlas! You can locate and search for the Castros in the Barroso region by clicking on the map markers or using the list.\r\n\"\n\t\tdata-domain=\"https:\/\/staging.atlas.buzzvel.work\"\n\t\tdata-lang=\"en\"\n\t\tdata-label-view-map=\"See Map\"\n\t\tdata-label-view-list=\"See List\"\n\t\tdata-label-list-title=\"List of Hillforts\n\"\n\t\tdata-label-empty-title=\"We couldn&#039;t find any Castros.\n\"\n\t\tdata-label-empty-description=\"Try searching again by name or CNS, or even using the municipality filters.\n\"\n\t\tdata-label-councils=\"Municipalities\"\n\t\tdata-label-view-castro=\"See Hillfort\n\"\n\t\tdata-label-initial-map=\"Home Map\"\n\t\tdata-label-invalid-castros=\"No valid castros to display on the map.\"\n\t\tdata-label-no-route=\"Nenhuma rota dispon\u00edvel\"\n\t\tdata-label-map=\"Map\"\n\t\tdata-label-satellite=\"Satellite\"\n\t\tdata-label-search=\"Search\"\n\t\tdata-label-search-placeholder=\"Pesquisar..\"\n\t\tdata-label-search-aria-label=\"Campo de busca\"\n\t\tdata-label-filter-aria-label=\"Filtrar\"\n\n\t\tdata-label-intro-title-fallback=\"O Atlas dos Castros do Barroso\"\n\t\tdata-label-intro-description-fallback=\"Seja bem-vindo ao Atlas! \u00c9 poss\u00edvel localizar e pesquisar os Castros da regi\u00e3o do Barroso clicando nos indicadores do mapa ou pela lista.\"\n\t\tdata-label-close=\"Close\"\n\t\tdata-label-fullscreen=\"FullScreen\"\n\t\tdata-label-fullscreen-exit=\"Exit fullscreen\"\n\t\tdata-label-layer=\"Layer\"\n\t\tdata-label-zoom-in=\"Zoom in\"\n\t\tdata-label-zoom-out=\"Zoom out\"\n\t\tdata-label-reset-aria-label=\"Reset\"\n\t\tdata-label-abrir-filtro=\"Abrir filtro\"\n\n\t\tdata-label-cns=\"CNS\"\n\t\tdata-label-cns-missing=\"\u2014\"\n\t\tdata-label-cns-separator=\" \u00b7 \"\n\t\tdata-label-marker-click-center-title=\"Click to center {name}. Double-click to see details.\"\n\n\t\tdata-label-routes-config=\"Configurar Rotas\"\n\t\tdata-label-routes-loading=\"Carregando rotas...\"\n\t\tdata-label-routes-none-available=\"Nenhuma rota dispon\u00edvel\"\n\t\tdata-label-routes-none-council-selected-title=\"Nenhum concelho selecionado\"\n\t\tdata-label-routes-none-council-selected-description=\"Selecione pelo menos um concelho para ver as rotas dispon\u00edveis\"\n\t\tdata-label-routes-none-selected-councils-title=\"Nenhuma rota nos concelhos selecionados\"\n\t\tdata-label-routes-none-selected-councils-description=\"N\u00e3o h\u00e1 rotas dispon\u00edveis para os concelhos atualmente selecionados\"\n\t\tdata-label-routes-of-council-template=\"Rotas de {council}\"\n\t\tdata-label-kml-kmz=\"KML \/ KMZ\"\n\t\tdata-label-download-template=\"Download {name}\"\n\n\t\tdata-label-prev-page-aria-label=\"P\u00e1gina anterior\"\n\t\tdata-label-next-page-aria-label=\"Pr\u00f3xima p\u00e1gina\"\n\t\tdata-label-map-view-castro=\"See Hillfort\n\"\n\t>\n\t<\/div>\n\n\t<script>\n\t\t(function(){\n\t\t\tvar root = document.getElementById('root');\n\t\t\tif(!root) return;\n\t\t\twindow.RenderMapLabels = {\n\t\t\t\tviewMap: root.dataset.labelViewMap || 'Ver Mapa',\n\t\t\t\tviewList: root.dataset.labelViewList || 'Ver Lista',\n\t\t\t\tlistTitle: root.dataset.labelListTitle || 'Lista de Castros',\n\t\t\t\temptyTitle: root.dataset.labelEmptyTitle || 'N\u00e3o conseguimos achar nenhum Castro.',\n\t\t\t\temptyDescription: root.dataset.labelEmptyDescription || 'Tente pesquisar novamente por nome ou CNS, ou at\u00e9 utilizando os filtros de Concelhos.',\n\t\t\t\tcouncils: root.dataset.labelCouncils || 'Concelhos',\n\t\t\t\tviewCastro: root.dataset.labelViewCastro || 'Ver Castro',\n\t\t\t\tinitialMap: root.dataset.labelInitialMap || 'Mapa Inicial',\n\t\t\t\tnoRoute: root.dataset.labelNoRoute || 'Nenhuma rota dispon\u00edvel',\n\t\t\t\tinvalidCastrosMessage: root.dataset.labelInvalidCastros || 'No valid castros to display on the map.',\n\t\t\t\tmap: root.dataset.labelMap || 'Mapa',\n\t\t\t\tsatellite: root.dataset.labelSatellite || 'Sat\u00e9lite',\n\t\t\t\tsearch: root.dataset.labelSearch || 'Pesquisar',\n\n\t\t\t\t\/\/ Extra intro fallback\n\t\t\t\tintroTitleFallback: root.dataset.labelIntroTitleFallback || 'O Atlas dos Castros do Barroso',\n\t\t\t\tintroDescriptionFallback:\n\t\t\t\t\troot.dataset.labelIntroDescriptionFallback ||\n\t\t\t\t\t'Seja bem-vindo ao Atlas! \u00c9 poss\u00edvel localizar e pesquisar os Castros da regi\u00e3o do Barroso clicando nos indicadores do mapa ou pela lista.',\n\n\t\t\t\t\/\/ Search UI\n\t\t\t\tsearchPlaceholder: root.dataset.labelSearchPlaceholder || 'Pesquisar..',\n\t\t\t\tsearchAriaLabel: root.dataset.labelSearchAriaLabel || 'Campo de busca',\n\t\t\t\tfilterAriaLabel: root.dataset.labelFilterAriaLabel || 'Filtrar',\n\n\t\t\t\t\/\/ Common aria labels\n\t\t\t\tclose: root.dataset.labelClose || 'Close',\n\t\t\t\tfullscreen: root.dataset.labelFullscreen || 'FullScreen',\n\t\t\t\tfullscreenExit: root.dataset.labelFullscreenExit || 'Exit fullscreen',\n\t\t\t\tlayer: root.dataset.labelLayer || 'Layer',\n\t\t\t\tzoomIn: root.dataset.labelZoomIn || 'Zoom in',\n\t\t\t\tzoomOut: root.dataset.labelZoomOut || 'Zoom out',\n\t\t\t\tresetAriaLabel: root.dataset.labelResetAriaLabel || 'Reset',\n\t\t\t\tabrirFiltro: root.dataset.labelAbrirFiltro || 'Abrir filtro',\n\n\t\t\t\t\/\/ Castro UI labels\n\t\t\t\tcnsLabel: root.dataset.labelCns || 'CNS',\n\t\t\t\tcnsMissing: root.dataset.labelCnsMissing || '\u2014',\n\t\t\t\tcnsSeparator: root.dataset.labelCnsSeparator || ' \u00b7 ',\n\t\t\t\tmarkerClickCenterTitle:\n\t\t\t\t\troot.dataset.labelMarkerClickCenterTitle ||\n\t\t\t\t\t'Click to center {name}. Double-click to see details.',\n\n\t\t\t\t\/\/ Routes popup labels\n\t\t\t\troutesConfig: root.dataset.labelRoutesConfig || 'Configurar Rotas',\n\t\t\t\troutesLoading: root.dataset.labelRoutesLoading || 'Carregando rotas...',\n\t\t\t\troutesNoneAvailable: root.dataset.labelRoutesNoneAvailable || 'Nenhuma rota dispon\u00edvel',\n\t\t\t\troutesNoneCouncilSelectedTitle:\n\t\t\t\t\troot.dataset.labelRoutesNoneCouncilSelectedTitle || 'Nenhum concelho selecionado',\n\t\t\t\troutesNoneCouncilSelectedDescription:\n\t\t\t\t\troot.dataset.labelRoutesNoneCouncilSelectedDescription ||\n\t\t\t\t\t'Selecione pelo menos um concelho para ver as rotas dispon\u00edveis',\n\t\t\t\troutesNoneSelectedCouncilsTitle:\n\t\t\t\t\troot.dataset.labelRoutesNoneSelectedCouncilsTitle ||\n\t\t\t\t\t'Nenhuma rota nos concelhos selecionados',\n\t\t\t\troutesNoneSelectedCouncilsDescription:\n\t\t\t\t\troot.dataset.labelRoutesNoneSelectedCouncilsDescription ||\n\t\t\t\t\t'N\u00e3o h\u00e1 rotas dispon\u00edveis para os concelhos atualmente selecionados',\n\t\t\t\troutesOfCouncilTemplate:\n\t\t\t\t\troot.dataset.labelRoutesOfCouncilTemplate || 'Rotas de {council}',\n\t\t\t\tkmlKmz: root.dataset.labelKmlKmz || 'KML \/ KMZ',\n\t\t\t\tdownloadTemplate: root.dataset.labelDownloadTemplate || 'Download {name}',\n\n\t\t\t\t\/\/ Pagination\n\t\t\t\tprevPageAriaLabel: root.dataset.labelPrevPageAriaLabel || 'P\u00e1gina anterior',\n\t\t\t\tnextPageAriaLabel: root.dataset.labelNextPageAriaLabel || 'Pr\u00f3xima p\u00e1gina'\n\t\t\t};\n\t\t\t\n\t\t\twindow.RenderMapLang = root.dataset.lang || 'pt-pt';\n\t\t\t\n\t\t\tObject.defineProperty(document.documentElement, 'lang', {\n\t\t\t\tget: function() {\n\t\t\t\t\treturn root.dataset.lang || 'pt-pt';\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t})();\n\t<\/script>\n\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-776","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/staging.atlas.buzzvel.work\/en\/wp-json\/wp\/v2\/pages\/776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.atlas.buzzvel.work\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.atlas.buzzvel.work\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.atlas.buzzvel.work\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.atlas.buzzvel.work\/en\/wp-json\/wp\/v2\/comments?post=776"}],"version-history":[{"count":13,"href":"https:\/\/staging.atlas.buzzvel.work\/en\/wp-json\/wp\/v2\/pages\/776\/revisions"}],"predecessor-version":[{"id":1016,"href":"https:\/\/staging.atlas.buzzvel.work\/en\/wp-json\/wp\/v2\/pages\/776\/revisions\/1016"}],"wp:attachment":[{"href":"https:\/\/staging.atlas.buzzvel.work\/en\/wp-json\/wp\/v2\/media?parent=776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}