{"id":492,"date":"2026-07-05T08:06:16","date_gmt":"2026-07-05T08:06:16","guid":{"rendered":"https:\/\/chill-lab.eu\/?page_id=492"},"modified":"2026-07-05T09:59:18","modified_gmt":"2026-07-05T09:59:18","slug":"chill-atlas","status":"publish","type":"page","link":"https:\/\/chill-lab.eu\/it\/chill-atlas\/","title":{"rendered":"CHILL Atlas"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"492\" class=\"elementor elementor-492\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd6da01 e-flex e-con-boxed e-con e-parent\" data-id=\"cd6da01\" 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-4ce4672 elementor-widget elementor-widget-html\" data-id=\"4ce4672\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"chill-atlas-map-section\">\n  <div class=\"chill-atlas-map-header\">\n    <p class=\"chill-atlas-kicker\">CHILL Atlas<\/p>\n    <h2>CHILL Atlas <span>Global Case Map<\/span><\/h2>\n    <p>\n      An interactive map of CHILL Atlas records.\n    <\/p>\n  <\/div>\n\n  <div class=\"chill-atlas-filters\">\n    <select id=\"chill-filter-geo\"><option value=\"\">Whole world<\/option><\/select>\n    <select id=\"chill-filter-area\"><option value=\"\">All thematic areas<\/option><\/select>\n    <select id=\"chill-filter-right\"><option value=\"\">All rights involved<\/option><\/select>\n  <\/div>\n\n  <div class=\"chill-atlas-layout\">\n    <div class=\"chill-map-card\">\n      <div id=\"chill-atlas-map\"><p class=\"chill-loading\">Loading cases from the website...<\/p><\/div>\n    <\/div>\n\n    <aside id=\"chill-atlas-panel\" class=\"chill-atlas-panel\">\n      <span class=\"chill-panel-label\">CHILL Atlas<\/span>\n      <h3>Select a country<\/h3>\n      <p>Click a highlighted country to see the related cases. You can zoom and drag the map.<\/p>\n    <\/aside>\n  <\/div>\n<\/section>\n\n<style>\n  html, body { max-width: 100%; overflow-x: hidden; }\n\n  .chill-atlas-map-section {\n    width: 100%; max-width: 100%; padding: 56px 24px;\n    background: radial-gradient(circle at top left, rgba(249, 115, 22, 0.28), transparent 34%),\n                radial-gradient(circle at bottom right, rgba(56, 189, 248, 0.12), transparent 34%),\n                #07111f;\n    border: 1px solid rgba(148, 163, 184, 0.18); border-radius: 30px;\n    box-sizing: border-box; color: #e5edf8; overflow: hidden;\n  }\n\n  .chill-atlas-map-header { max-width: 940px; margin: 0 auto 30px auto; text-align: center; }\n  .chill-atlas-kicker { margin: 0 0 8px 0; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 800; color: #FDBA74; }\n  .chill-atlas-map-header h2 { margin: 0 0 14px 0; font-family: \"Playfair Display\", Georgia, serif !important; font-size: clamp(42px, 6vw, 78px); line-height: 0.94; color: #f8fafc; letter-spacing: -0.04em; }\n  .chill-atlas-map-header h2 span { display: block; margin-top: 8px; font-family: \"Inter\", system-ui, sans-serif; font-size: clamp(14px, 1.5vw, 18px); font-weight: 850; letter-spacing: 0.08em; line-height: 1.25; color: #F97316; text-transform: uppercase; }\n  .chill-atlas-map-header p { margin: 0; font-size: 17px; line-height: 1.65; color: #b7c4d8; }\n\n  .chill-atlas-filters { max-width: 1120px; margin: 0 auto 22px auto; display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }\n  .chill-atlas-filters select {\n    flex: 1 1 260px; min-width: 220px; max-width: 360px; padding: 13px 15px;\n    border-radius: 14px; border: 1px solid rgba(148, 163, 184, 0.34);\n    background: #0e1a2b; color: #e5edf8; font-size: 14px; outline: none;\n    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);\n  }\n  .chill-atlas-filters select:focus { border-color: #F97316; box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.18); }\n\n  .chill-atlas-layout { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 0.85fr); gap: 22px; align-items: stretch; }\n  .chill-map-card, .chill-atlas-panel { background: rgba(10, 20, 34, 0.94); border: 1px solid rgba(148, 163, 184, 0.18); border-radius: 24px; box-shadow: 0 24px 70px rgba(0, 0, 0, 0.36); backdrop-filter: blur(10px); }\n  .chill-map-card { padding: 18px; min-height: 520px; overflow: hidden; }\n\n  #chill-atlas-map {\n    width: 100%; height: 540px; min-height: 540px; border-radius: 18px;\n    background: radial-gradient(circle at center, rgba(249, 115, 22, 0.16) 0%, rgba(249, 115, 22, 0.08) 28%, transparent 58%), #091525;\n    overflow: hidden; touch-action: none;\n  }\n  #chill-atlas-map svg { max-width: none !important; }\n\n  .chill-loading { padding: 24px; color: #94a3b8; line-height: 1.6; }\n  .chill-atlas-panel { padding: 24px; max-height: 540px; overflow-y: auto; }\n  .chill-panel-label, .chill-country-label { display: inline-flex; margin-bottom: 12px; padding: 6px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }\n  .chill-panel-label { background: rgba(249, 115, 22, 0.16); color: #FDBA74; border: 1px solid rgba(249, 115, 22, 0.28); }\n  .chill-country-label { background: rgba(249, 115, 22, 0.16); color: #FDBA74; border: 1px solid rgba(249, 115, 22, 0.32); }\n  .chill-atlas-panel h3 { margin: 0 0 12px 0; color: #f8fafc; font-size: 24px; line-height: 1.2; }\n  .chill-atlas-panel p { color: #b7c4d8; line-height: 1.6; }\n\n  .chill-country-list { margin: 14px 0 0 0; padding: 0; list-style: none; }\n  .chill-country-list li { padding: 14px 0; border-top: 1px solid rgba(148, 163, 184, 0.16); }\n  .chill-country-list li:first-child { border-top: 0; }\n  .chill-country-list a { display: block; color: #f8fafc; font-size: 15px; font-weight: 800; line-height: 1.35; text-decoration: none; }\n  .chill-country-list a:hover { color: #F97316; }\n  .chill-country-list span { display: inline-flex; max-width: 100%; margin-top: 7px; padding: 5px 9px; border-radius: 999px; background: rgba(56, 189, 248, 0.12); color: #7DD3FC; font-size: 10px; line-height: 1.35; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; white-space: normal; }\n  .chill-country-list small { display: block; margin-top: 7px; color: #94a3b8; font-size: 12px; line-height: 1.4; }\n\n  .jvm-tooltip { border-radius: 12px !important; padding: 8px 10px !important; background: #020617 !important; color: #ffffff !important; border: 1px solid rgba(249, 115, 22, 0.42) !important; box-shadow: 0 12px 28px rgba(0, 0, 0, 0.38) !important; font-size: 13px !important; pointer-events: none !important; }\n  .jvm-zoom-btn { background: #111c2f !important; color: #f8fafc !important; border: 1px solid rgba(148, 163, 184, 0.24) !important; border-radius: 10px !important; box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28) !important; }\n\n  @media (max-width: 900px) {\n    .chill-atlas-map-section { width: 100% !important; max-width: 100vw !important; padding: 34px 14px; border-radius: 22px; overflow: hidden !important; }\n    .chill-atlas-map-header { margin-bottom: 22px; }\n    .chill-atlas-map-header h2 { font-size: clamp(30px, 10vw, 42px); }\n    .chill-atlas-map-header p { font-size: 15px; line-height: 1.55; }\n    .chill-atlas-filters { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 16px; }\n    .chill-atlas-filters select { width: 100%; max-width: none; min-width: 0; font-size: 15px; }\n    .chill-atlas-layout { grid-template-columns: 1fr; gap: 16px; width: 100% !important; max-width: 100% !important; overflow: hidden !important; }\n    .chill-map-card { padding: 10px; min-height: auto; border-radius: 20px; width: 100% !important; max-width: 100% !important; overflow: hidden !important; }\n    #chill-atlas-map { height: 390px; min-height: 390px; border-radius: 16px; width: 100% !important; max-width: 100% !important; overflow: hidden !important; }\n    .chill-atlas-panel { max-height: none; padding: 20px; border-radius: 20px; width: 100% !important; max-width: 100% !important; }\n    .jvm-tooltip { display: none !important; }\n  }\n\n  @media (max-width: 520px) {\n    .chill-atlas-map-section { padding: 28px 10px; border-radius: 18px; }\n    .chill-atlas-map-header h2 { font-size: 32px; }\n    .chill-atlas-map-header p { font-size: 14px; }\n    #chill-atlas-map { height: 340px; min-height: 340px; }\n    .chill-atlas-panel h3 { font-size: 21px; }\n    .chill-country-list a { font-size: 14px; }\n    .chill-country-list span { font-size: 10px; }\n  }\n\n  #chill-atlas-map .jvm-region.jvm-selected,\n  #chill-atlas-map path.jvm-selected {\n    fill: #F97316 !important;\n    stroke: #FDBA74 !important;\n    stroke-width: 3px !important;\n    stroke-opacity: 1 !important;\n  }\n<\/style>\n\n<script>\n(function () {\n  const CDN_CSS = \"https:\/\/cdn.jsdelivr.net\/npm\/jsvectormap\/dist\/jsvectormap.min.css\";\n  const CDN_CORE = \"https:\/\/cdn.jsdelivr.net\/npm\/jsvectormap\";\n  const CDN_WORLD = \"https:\/\/cdn.jsdelivr.net\/npm\/jsvectormap\/dist\/maps\/world.js\";\n  const API_ROOT = window.location.origin + \"\/wp-json\/wp\/v2\/\";\n\n  const MAP_COLORS = {\n    base: \"#182A46\",\n    baseStroke: \"#22395B\",\n    active: \"#38BDF8\",\n    activeHover: \"#8BD3FF\",\n    selected: \"#F97316\",\n    selectedHover: \"#FB923C\",\n    selectedStroke: \"#FDBA74\",\n    selectedStrokeHover: \"#FED7AA\"\n  };\n\n  const THEMATIC_FIELD_ALIASES = [\"thematic_area\", \"thematica_area\", \"thematic_areas\", \"area_tematica\", \"topic_area\"];\n  const THEMATIC_TAXONOMY_ALIASES = [\"thematic_area\", \"thematica_area\", \"thematic_areas\", \"area_tematica\", \"topic_area\"];\n  const RIGHTS_FIELD_ALIASES = [\"rights_involved\", \"righst_involved\", \"right_involved\", \"rights\", \"diritti_coinvolti\"];\n  const RIGHTS_TAXONOMY_ALIASES = [\"rights_involved\", \"righst_involved\", \"right_involved\", \"rights\", \"diritti_coinvolti\"];\n\n  const REST_BASE_CANDIDATES = [\n    \"chill-atlas\", \"chill-atlas-records\", \"atlas-records\", \"atlas-record\",\n    \"chill-records\", \"chill-record\", \"chill_records\", \"chill_record\",\n    \"case-records\", \"case-record\", \"cases\", \"case\", \"records\", \"record\",\n    \"caso-chill\", \"casi-chill\", \"caso_chill\", \"casi_chill\",\n    \"chill-case\", \"chill-cases\", \"chill_case\", \"chill_cases\", \"posts\"\n  ];\n\n  const COUNTRY_ALIASES = {\n    \"it\": \"IT\", \"italia\": \"IT\", \"italy\": \"IT\",\n    \"de\": \"DE\", \"germania\": \"DE\", \"germany\": \"DE\",\n    \"fr\": \"FR\", \"francia\": \"FR\", \"france\": \"FR\",\n    \"es\": \"ES\", \"spagna\": \"ES\", \"spain\": \"ES\",\n    \"gb\": \"GB\", \"uk\": \"GB\", \"regno unito\": \"GB\", \"united kingdom\": \"GB\", \"great britain\": \"GB\",\n    \"us\": \"US\", \"usa\": \"US\", \"stati uniti\": \"US\", \"united states\": \"US\", \"united states of america\": \"US\",\n    \"ca\": \"CA\", \"canada\": \"CA\",\n    \"br\": \"BR\", \"brasile\": \"BR\", \"brazil\": \"BR\",\n    \"ar\": \"AR\", \"argentina\": \"AR\",\n    \"mx\": \"MX\", \"messico\": \"MX\", \"mexico\": \"MX\",\n    \"in\": \"IN\", \"india\": \"IN\",\n    \"cn\": \"CN\", \"cina\": \"CN\", \"china\": \"CN\",\n    \"jp\": \"JP\", \"giappone\": \"JP\", \"japan\": \"JP\",\n    \"kr\": \"KR\", \"corea del sud\": \"KR\", \"south korea\": \"KR\",\n    \"au\": \"AU\", \"australia\": \"AU\",\n    \"za\": \"ZA\", \"sudafrica\": \"ZA\", \"south africa\": \"ZA\",\n    \"tr\": \"TR\", \"turchia\": \"TR\", \"turkey\": \"TR\",\n    \"pl\": \"PL\", \"polonia\": \"PL\", \"poland\": \"PL\",\n    \"nl\": \"NL\", \"paesi bassi\": \"NL\", \"olanda\": \"NL\", \"netherlands\": \"NL\",\n    \"be\": \"BE\", \"belgio\": \"BE\", \"belgium\": \"BE\",\n    \"ch\": \"CH\", \"svizzera\": \"CH\", \"switzerland\": \"CH\",\n    \"se\": \"SE\", \"svezia\": \"SE\", \"sweden\": \"SE\",\n    \"no\": \"NO\", \"norvegia\": \"NO\", \"norway\": \"NO\",\n    \"ua\": \"UA\", \"ucraina\": \"UA\", \"ukraine\": \"UA\",\n    \"ru\": \"RU\", \"russia\": \"RU\",\n    \"il\": \"IL\", \"israele\": \"IL\", \"israel\": \"IL\",\n    \"ke\": \"KE\", \"kenya\": \"KE\",\n    \"ng\": \"NG\", \"nigeria\": \"NG\",\n    \"eg\": \"EG\", \"egitto\": \"EG\", \"egypt\": \"EG\",\n    \"gr\": \"GR\", \"grecia\": \"GR\", \"greece\": \"GR\",\n    \"pt\": \"PT\", \"portogallo\": \"PT\", \"portugal\": \"PT\",\n    \"ie\": \"IE\", \"irlanda\": \"IE\", \"ireland\": \"IE\",\n    \"at\": \"AT\", \"austria\": \"AT\",\n    \"dk\": \"DK\", \"danimarca\": \"DK\", \"denmark\": \"DK\",\n    \"fi\": \"FI\", \"finlandia\": \"FI\", \"finland\": \"FI\",\n    \"cz\": \"CZ\", \"cechia\": \"CZ\", \"czechia\": \"CZ\", \"repubblica ceca\": \"CZ\",\n    \"sk\": \"SK\", \"slovacchia\": \"SK\", \"slovakia\": \"SK\",\n    \"si\": \"SI\", \"slovenia\": \"SI\",\n    \"hr\": \"HR\", \"croazia\": \"HR\", \"croatia\": \"HR\",\n    \"hu\": \"HU\", \"ungheria\": \"HU\", \"hungary\": \"HU\",\n    \"ro\": \"RO\", \"romania\": \"RO\",\n    \"bg\": \"BG\", \"bulgaria\": \"BG\",\n    \"rs\": \"RS\", \"serbia\": \"RS\",\n    \"ba\": \"BA\", \"bosnia\": \"BA\", \"bosnia and herzegovina\": \"BA\",\n    \"al\": \"AL\", \"albania\": \"AL\",\n    \"mk\": \"MK\", \"north macedonia\": \"MK\", \"macedonia del nord\": \"MK\",\n    \"me\": \"ME\", \"montenegro\": \"ME\",\n    \"md\": \"MD\", \"moldavia\": \"MD\", \"moldova\": \"MD\",\n    \"ee\": \"EE\", \"estonia\": \"EE\",\n    \"lv\": \"LV\", \"lettonia\": \"LV\", \"latvia\": \"LV\",\n    \"lt\": \"LT\", \"lituania\": \"LT\", \"lithuania\": \"LT\",\n    \"lu\": \"LU\", \"lussemburgo\": \"LU\", \"luxembourg\": \"LU\",\n    \"mt\": \"MT\", \"malta\": \"MT\",\n    \"cy\": \"CY\", \"cipro\": \"CY\", \"cyprus\": \"CY\",\n    \"european union\": \"EU\", \"unione europea\": \"EU\", \"eu\": \"EU\"\n  };\n\n  const COUNTRY_NAMES = {\n    \"IT\": \"Italy\", \"DE\": \"Germany\", \"FR\": \"France\", \"ES\": \"Spain\",\n    \"GB\": \"United Kingdom\", \"US\": \"United States\", \"CA\": \"Canada\",\n    \"BR\": \"Brazil\", \"AR\": \"Argentina\", \"MX\": \"Mexico\", \"IN\": \"India\",\n    \"CN\": \"China\", \"JP\": \"Japan\", \"KR\": \"South Korea\", \"AU\": \"Australia\",\n    \"ZA\": \"South Africa\", \"TR\": \"Turkey\", \"PL\": \"Poland\", \"NL\": \"Netherlands\",\n    \"BE\": \"Belgium\", \"CH\": \"Switzerland\", \"SE\": \"Sweden\", \"NO\": \"Norway\",\n    \"UA\": \"Ukraine\", \"RU\": \"Russia\", \"IL\": \"Israel\", \"KE\": \"Kenya\",\n    \"NG\": \"Nigeria\", \"EG\": \"Egypt\", \"GR\": \"Greece\", \"PT\": \"Portugal\",\n    \"IE\": \"Ireland\", \"AT\": \"Austria\", \"DK\": \"Denmark\", \"FI\": \"Finland\",\n    \"CZ\": \"Czechia\", \"SK\": \"Slovakia\", \"SI\": \"Slovenia\", \"HR\": \"Croatia\",\n    \"HU\": \"Hungary\", \"RO\": \"Romania\", \"BG\": \"Bulgaria\", \"RS\": \"Serbia\",\n    \"BA\": \"Bosnia and Herzegovina\", \"AL\": \"Albania\", \"MK\": \"North Macedonia\",\n    \"ME\": \"Montenegro\", \"MD\": \"Moldova\", \"EE\": \"Estonia\", \"LV\": \"Latvia\",\n    \"LT\": \"Lithuania\", \"LU\": \"Luxembourg\", \"MT\": \"Malta\", \"CY\": \"Cyprus\",\n    \"EU\": \"European Union\"\n  };\n\n  const GEO_AREAS = {\n    europe: { label: \"Europe\", regions: [\"AL\",\"AT\",\"BE\",\"BA\",\"BG\",\"HR\",\"CY\",\"CZ\",\"DK\",\"EE\",\"FI\",\"FR\",\"DE\",\"GR\",\"HU\",\"IS\",\"IE\",\"IT\",\"LV\",\"LT\",\"LU\",\"MT\",\"MD\",\"ME\",\"NL\",\"MK\",\"NO\",\"PL\",\"PT\",\"RO\",\"RS\",\"SK\",\"SI\",\"ES\",\"SE\",\"CH\",\"UA\",\"GB\",\"RU\"] },\n    europeanUnion: { label: \"European Union\", regions: [\"AT\",\"BE\",\"BG\",\"HR\",\"CY\",\"CZ\",\"DK\",\"EE\",\"FI\",\"FR\",\"DE\",\"GR\",\"HU\",\"IE\",\"IT\",\"LV\",\"LT\",\"LU\",\"MT\",\"NL\",\"PL\",\"PT\",\"RO\",\"SK\",\"SI\",\"ES\",\"SE\"] },\n    councilOfEurope: { label: \"Council of Europe Area\", regions: [\"AL\",\"AD\",\"AM\",\"AT\",\"AZ\",\"BE\",\"BA\",\"BG\",\"HR\",\"CY\",\"CZ\",\"DK\",\"EE\",\"FI\",\"FR\",\"GE\",\"DE\",\"GR\",\"HU\",\"IS\",\"IE\",\"IT\",\"LV\",\"LI\",\"LT\",\"LU\",\"MT\",\"MD\",\"MC\",\"ME\",\"NL\",\"MK\",\"NO\",\"PL\",\"PT\",\"RO\",\"SM\",\"RS\",\"SK\",\"SI\",\"ES\",\"SE\",\"CH\",\"TR\",\"UA\",\"GB\"] },\n    northAmerica: { label: \"North America\", regions: [\"CA\",\"US\",\"MX\"] },\n    latinAmerica: { label: \"Latin America\", regions: [\"MX\",\"GT\",\"HN\",\"SV\",\"NI\",\"CR\",\"PA\",\"CU\",\"HT\",\"DO\",\"JM\",\"CO\",\"VE\",\"EC\",\"PE\",\"BO\",\"BR\",\"PY\",\"CL\",\"AR\",\"UY\"] },\n    africa: { label: \"Africa\", regions: [\"DZ\",\"AO\",\"BJ\",\"BW\",\"BF\",\"BI\",\"CM\",\"CF\",\"TD\",\"CG\",\"CD\",\"CI\",\"DJ\",\"EG\",\"ER\",\"ET\",\"GA\",\"GM\",\"GH\",\"GN\",\"KE\",\"LS\",\"LR\",\"LY\",\"MG\",\"MW\",\"ML\",\"MR\",\"MA\",\"MZ\",\"NA\",\"NE\",\"NG\",\"RW\",\"SN\",\"SL\",\"SO\",\"ZA\",\"SD\",\"TZ\",\"TG\",\"TN\",\"UG\",\"ZM\",\"ZW\"] },\n    mena: { label: \"Middle East and North Africa\", regions: [\"MA\",\"DZ\",\"TN\",\"LY\",\"EG\",\"SD\",\"SA\",\"YE\",\"OM\",\"AE\",\"QA\",\"BH\",\"KW\",\"IQ\",\"IR\",\"SY\",\"JO\",\"LB\",\"IL\",\"TR\"] },\n    asiaPacific: { label: \"Asia Pacific\", regions: [\"CN\",\"JP\",\"KR\",\"KP\",\"MN\",\"TW\",\"IN\",\"PK\",\"BD\",\"LK\",\"NP\",\"MM\",\"TH\",\"LA\",\"KH\",\"VN\",\"MY\",\"SG\",\"ID\",\"PH\",\"BN\",\"AU\",\"NZ\",\"PG\",\"FJ\"] },\n    globalTransnational: { label: \"Global \/ Transnational\", regions: [] }\n  };\n\n  const GEOGRAPHIC_AREA_TO_FILTER = {\n    \"europe\": \"europe\",\n    \"european union\": \"europeanUnion\",\n    \"council of europe area\": \"councilOfEurope\",\n    \"north america\": \"northAmerica\",\n    \"latin america\": \"latinAmerica\",\n    \"africa\": \"africa\",\n    \"middle east and north africa\": \"mena\",\n    \"asia pacific\": \"asiaPacific\",\n    \"global transnational\": \"globalTransnational\"\n  };\n\n  let allCases = [];\n  let visibleCases = [];\n  let mapInstance = null;\n  let selectedRegionCode = null;\n  let selectionLock = false;\n\n  function loadCSS(href) {\n    if (document.querySelector('link[href=\"' + href + '\"]')) return;\n    const link = document.createElement(\"link\");\n    link.rel = \"stylesheet\";\n    link.href = href;\n    document.head.appendChild(link);\n  }\n\n  function loadScript(src) {\n    return new Promise(function (resolve, reject) {\n      const existing = document.querySelector('script[src=\"' + src + '\"]');\n      if (existing) {\n        existing.addEventListener(\"load\", resolve);\n        existing.addEventListener(\"error\", reject);\n        setTimeout(resolve, 800);\n        return;\n      }\n      const script = document.createElement(\"script\");\n      script.src = src;\n      script.async = false;\n      script.onload = resolve;\n      script.onerror = reject;\n      document.head.appendChild(script);\n    });\n  }\n\n  function stripHTML(value) {\n    const div = document.createElement(\"div\");\n    div.innerHTML = String(value || \"\");\n    return div.textContent || div.innerText || \"\";\n  }\n\n  function escapeHTML(value) {\n    return String(value || \"\").replace(\/[&<>\"']\/g, function (char) {\n      return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\", \"'\": \"&#039;\" }[char];\n    });\n  }\n\n  function normalizeKey(value) {\n    return String(value || \"\")\n      .trim()\n      .toLowerCase()\n      .normalize(\"NFD\")\n      .replace(\/[\\u0300-\\u036f]\/g, \"\")\n      .replace(\/[_-]+\/g, \" \")\n      .replace(\/\\s+\/g, \" \");\n  }\n\n  function toArray(value) {\n    if (!value) return [];\n    if (Array.isArray(value)) return value;\n    return [value];\n  }\n\n  function valueLabel(value) {\n    if (!value) return \"\";\n    if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n    if (typeof value === \"object\") return value.name || value.label || value.title || value.value || value.slug || \"\";\n    return String(value);\n  }\n\n  function fieldLabels(value) {\n    return toArray(value).map(valueLabel).filter(Boolean);\n  }\n\n  function firstAvailableField(acf, fieldNames) {\n    for (const name of fieldNames) {\n      if (Object.prototype.hasOwnProperty.call(acf, name) && acf[name]) {\n        return acf[name];\n      }\n    }\n    return null;\n  }\n\n  function splitLabelText(value) {\n    return String(value || \"\")\n      .split(\",\")\n      .map(function (part) { return part.trim(); })\n      .filter(Boolean);\n  }\n\n  function uniqueLabels(values) {\n    const seen = {};\n    const output = [];\n\n    values.forEach(function (value) {\n      splitLabelText(value).forEach(function (label) {\n        const key = normalizeKey(label);\n        if (!key || seen[key]) return;\n        seen[key] = true;\n        output.push(label);\n      });\n    });\n\n    return output;\n  }\n\n  function taxonomyMatches(taxonomy, allowedTaxonomies) {\n    if (!taxonomy) return false;\n    const taxKey = normalizeKey(taxonomy);\n\n    return toArray(allowedTaxonomies)\n      .map(normalizeKey)\n      .some(function (allowed) {\n        return taxKey === allowed || taxKey.includes(allowed) || allowed.includes(taxKey);\n      });\n  }\n\n  function taxonomyLabels(value, post, taxonomySlugs) {\n    const values = toArray(value);\n    const allowedTaxonomies = toArray(taxonomySlugs).filter(Boolean);\n    const termById = {};\n\n    getEmbeddedTerms(post).forEach(function (term) {\n      const allowed = !allowedTaxonomies.length || taxonomyMatches(term.taxonomy, allowedTaxonomies);\n\n      if (term && term.id && allowed) {\n        termById[String(term.id)] = term.name || term.label || term.slug || \"\";\n      }\n    });\n\n    const labels = values.map(function (item) {\n      if (!item) return \"\";\n\n      if (typeof item === \"object\") {\n        return item.name || item.label || item.title || item.value || item.slug || \"\";\n      }\n\n      const raw = String(item).trim();\n\n      if (termById[raw]) return termById[raw];\n      if (\/^\\d+$\/.test(raw)) return \"\";\n\n      return raw;\n    });\n\n    return uniqueLabels(labels);\n  }\n\n  function embeddedTaxonomyLabels(post, taxonomySlugs) {\n    const allowedTaxonomies = toArray(taxonomySlugs).filter(Boolean);\n\n    const labels = getEmbeddedTerms(post)\n      .filter(function (term) {\n        return term && term.name && (!allowedTaxonomies.length || taxonomyMatches(term.taxonomy, allowedTaxonomies));\n      })\n      .map(function (term) { return term.name; });\n\n    return uniqueLabels(labels);\n  }\n\n  function taxonomyLabelsFromFieldOrTerms(post, acf, fieldNames, taxonomySlugs) {\n    const rawValue = firstAvailableField(acf, fieldNames);\n    const fromField = taxonomyLabels(rawValue, post, taxonomySlugs);\n\n    if (fromField.length) {\n      return fromField;\n    }\n\n    return embeddedTaxonomyLabels(post, taxonomySlugs);\n  }\n\n  function safeURL(value) {\n    const url = String(value || \"#\");\n    if (url.startsWith(\"\/\") || url.startsWith(\"https:\/\/\") || url.startsWith(\"http:\/\/\")) return url;\n    return \"#\";\n  }\n\n  function getEmbeddedTerms(post) {\n    const embedded = post && post._embedded ? post._embedded[\"wp:term\"] : null;\n    if (!embedded) return [];\n    return embedded.reduce(function (acc, group) { return acc.concat(group || []); }, []);\n  }\n\n  function resolveCountryFromValue(value) {\n    const label = valueLabel(value);\n    const slug = typeof value === \"object\" ? value.slug : \"\";\n    const candidates = [slug, label];\n\n    for (const candidate of candidates) {\n      const normalized = normalizeKey(candidate);\n      if (COUNTRY_ALIASES[normalized]) {\n        const code = COUNTRY_ALIASES[normalized];\n        return { code: code, name: label || COUNTRY_NAMES[code] || code };\n      }\n      if (\/^[a-z]{2}$\/i.test(String(candidate || \"\").trim())) {\n        const code = String(candidate).trim().toUpperCase();\n        return { code: code, name: label || COUNTRY_NAMES[code] || code };\n      }\n    }\n\n    return null;\n  }\n\n  function resolveCountry(post) {\n    const acf = post.acf || {};\n    const fieldValues = toArray(acf.country);\n\n    for (const item of fieldValues) {\n      const resolved = resolveCountryFromValue(item);\n      if (resolved) return resolved;\n    }\n\n    const embeddedTerms = getEmbeddedTerms(post);\n    for (const term of embeddedTerms) {\n      const resolved = resolveCountryFromValue(term);\n      if (resolved) return resolved;\n    }\n\n    return null;\n  }\n\n  function resolveGeographicArea(acf) {\n    const raw = valueLabel(acf.geographic_area);\n    const key = normalizeKey(raw);\n    return { label: raw || \"\", filterKey: GEOGRAPHIC_AREA_TO_FILTER[key] || \"\" };\n  }\n\n  function postHasChillFields(post) {\n    const acf = post.acf || {};\n    const rightsField = firstAvailableField(acf, RIGHTS_FIELD_ALIASES);\n    const thematicField = firstAvailableField(acf, THEMATIC_FIELD_ALIASES);\n\n    return Boolean(\n      acf.country ||\n      acf.geographic_area ||\n      thematicField ||\n      acf.measure_type ||\n      rightsField ||\n      acf.overview\n    );\n  }\n\n  function normalizePostToCase(post) {\n    const acf = post.acf || {};\n    const country = resolveCountry(post);\n    const geographicArea = resolveGeographicArea(acf);\n\n    const thematicAreaLabels = taxonomyLabelsFromFieldOrTerms(post, acf, THEMATIC_FIELD_ALIASES, THEMATIC_TAXONOMY_ALIASES);\n    const rightsLabels = taxonomyLabelsFromFieldOrTerms(post, acf, RIGHTS_FIELD_ALIASES, RIGHTS_TAXONOMY_ALIASES);\n    const measureTypeLabels = fieldLabels(acf.measure_type);\n\n    const areaList = thematicAreaLabels.length ? thematicAreaLabels : [\"Unspecified thematic area\"];\n    const rightsList = rightsLabels.length ? rightsLabels : [];\n\n    return {\n      id: post.id,\n      title: stripHTML(post.title && post.title.rendered ? post.title.rendered : \"Caso senza titolo\"),\n      url: post.link || \"#\",\n      country: country ? country.name : \"Unrecognized country\",\n      countryCode: country ? country.code : null,\n      geographicArea: geographicArea.label,\n      geographicAreaFilterKey: geographicArea.filterKey,\n      area: areaList.join(\", \"),\n      areaList: areaList,\n      areaKeys: areaList.map(normalizeKey),\n      rights: rightsList,\n      rightsKeys: rightsList.map(normalizeKey),\n      measureType: measureTypeLabels,\n      year: acf.year || \"\",\n      recordStatus: valueLabel(acf.record_status),\n      caseOutcome: valueLabel(acf.case_outcome)\n    };\n  }\n\n  async function discoverRestBases() {\n    const bases = [].concat(REST_BASE_CANDIDATES);\n    try {\n      const response = await fetch(API_ROOT + \"types\");\n      if (response.ok) {\n        const types = await response.json();\n        Object.keys(types).forEach(function (key) {\n          const item = types[key];\n          const haystack = normalizeKey([key, item.slug, item.name, item.rest_base].join(\" \"));\n          if (haystack.includes(\"chill\") || haystack.includes(\"atlas\") || haystack.includes(\"record\") || haystack.includes(\"case\") || haystack.includes(\"caso\")) {\n            bases.unshift(item.rest_base || item.slug || key);\n          }\n        });\n      }\n    } catch (error) {}\n    return Array.from(new Set(bases.filter(Boolean)));\n  }\n\n  async function fetchFromRestBase(restBase) {\n    let page = 1;\n    let results = [];\n    while (page <= 5) {\n      const url = API_ROOT + restBase + \"?per_page=100&page=\" + page + \"&acf_format=standard&_embed=1\";\n      const response = await fetch(url);\n      if (!response.ok) break;\n      const items = await response.json();\n      if (!Array.isArray(items) || !items.length) break;\n      results = results.concat(items);\n      const totalPages = Number(response.headers.get(\"X-WP-TotalPages\") || \"1\");\n      if (page >= totalPages) break;\n      page++;\n    }\n    return results;\n  }\n\n  async function loadCasesFromWordPress() {\n    const bases = await discoverRestBases();\n    let collected = [];\n\n    for (const base of bases) {\n      try {\n        const posts = await fetchFromRestBase(base);\n        collected = collected.concat(posts);\n      } catch (error) {}\n    }\n\n    const unique = {};\n    collected.forEach(function (post) {\n      if (post && post.id) unique[(post.type || \"post\") + \"-\" + post.id] = post;\n    });\n\n    return Object.values(unique)\n      .filter(postHasChillFields)\n      .map(normalizePostToCase)\n      .filter(function (item) { return item.title && item.countryCode && item.countryCode !== \"EU\"; });\n  }\n\n  function getRegionValuesFromCases(cases) {\n    const values = {};\n    cases.forEach(function (item) {\n      if (item.countryCode) values[item.countryCode] = 1;\n    });\n    return values;\n  }\n\n  function getRegionName(code) {\n    const found = allCases.find(function (item) { return item.countryCode === code; });\n    return found ? found.country : COUNTRY_NAMES[code] || code;\n  }\n\n  function populateFilters() {\n    const geoSelect = document.getElementById(\"chill-filter-geo\");\n    const areaSelect = document.getElementById(\"chill-filter-area\");\n    const rightSelect = document.getElementById(\"chill-filter-right\");\n    if (!geoSelect || !areaSelect || !rightSelect) return;\n\n    geoSelect.removeAttribute(\"multiple\");\n    areaSelect.removeAttribute(\"multiple\");\n    rightSelect.removeAttribute(\"multiple\");\n    geoSelect.size = 1;\n    areaSelect.size = 1;\n    rightSelect.size = 1;\n\n    geoSelect.innerHTML = '<option value=\"\">Whole world<\/option>';\n    areaSelect.innerHTML = '<option value=\"\">All thematic areas<\/option>';\n    rightSelect.innerHTML = '<option value=\"\">All rights involved<\/option>';\n\n    Object.keys(GEO_AREAS).forEach(function (key) {\n      const option = document.createElement(\"option\");\n      option.value = key;\n      option.textContent = GEO_AREAS[key].label;\n      geoSelect.appendChild(option);\n    });\n\n    const allAreaLabels = [];\n    allCases.forEach(function (item) { (item.areaList || []).forEach(function (label) { allAreaLabels.push(label); }); });\n\n    const allRightLabels = [];\n    allCases.forEach(function (item) { (item.rights || []).forEach(function (label) { allRightLabels.push(label); }); });\n\n    const areas = uniqueLabels(allAreaLabels)\n      .filter(function (area) { return normalizeKey(area) !== normalizeKey(\"Unspecified thematic area\"); })\n      .sort();\n\n    const rights = uniqueLabels(allRightLabels).sort();\n\n    areas.forEach(function (area) {\n      const option = document.createElement(\"option\");\n      option.value = normalizeKey(area);\n      option.textContent = area;\n      areaSelect.appendChild(option);\n    });\n\n    rights.forEach(function (right) {\n      const option = document.createElement(\"option\");\n      option.value = normalizeKey(right);\n      option.textContent = right;\n      rightSelect.appendChild(option);\n    });\n\n    geoSelect.onchange = function () {\n      const selectedGeo = geoSelect.value;\n      selectedRegionCode = null;\n      if (selectedGeo && GEO_AREAS[selectedGeo] && GEO_AREAS[selectedGeo].regions.length) focusOnRegions(GEO_AREAS[selectedGeo].regions, true);\n      else resetMapFocus();\n    };\n\n    areaSelect.onchange = applyFilters;\n    rightSelect.onchange = applyFilters;\n  }\n\n  function applyFilters() {\n    const areaSelect = document.getElementById(\"chill-filter-area\");\n    const rightSelect = document.getElementById(\"chill-filter-right\");\n    const selectedAreaKey = areaSelect ? normalizeKey(areaSelect.value) : \"\";\n    const selectedRightKey = rightSelect ? normalizeKey(rightSelect.value) : \"\";\n\n    visibleCases = allCases.filter(function (item) {\n      const itemAreaKeys = item.areaKeys || (item.areaList || []).map(normalizeKey);\n      const itemRightKeys = item.rightsKeys || (item.rights || []).map(normalizeKey);\n      const areaMatch = !selectedAreaKey || itemAreaKeys.includes(selectedAreaKey);\n      const rightMatch = !selectedRightKey || itemRightKeys.includes(selectedRightKey);\n      return areaMatch && rightMatch;\n    });\n\n    selectedRegionCode = null;\n    renderMap();\n\n    const panel = document.getElementById(\"chill-atlas-panel\");\n    if (panel) {\n      panel.innerHTML = `<span class=\"chill-panel-label\">Filtered results<\/span><h3>${visibleCases.length} cases shown<\/h3><p>Countries with matching records are highlighted in blue. Select one country to see the related cases.<\/p>`;\n    }\n  }\n\n  function renderCountryPanel(countryCode) {\n    const panel = document.getElementById(\"chill-atlas-panel\");\n    if (!panel) return;\n\n    const casesInCountry = visibleCases.filter(function (item) { return item.countryCode === countryCode; });\n    const countryName = casesInCountry.length ? casesInCountry[0].country : getRegionName(countryCode);\n\n    if (!casesInCountry.length) {\n      panel.innerHTML = `<span class=\"chill-country-label\">Selected country<\/span><h3>${escapeHTML(countryName)}<\/h3><p>No cases are linked to this country with the current filters.<\/p>`;\n      return;\n    }\n\n    const list = casesInCountry.map(function (item) {\n      const extraMeta = [item.year ? escapeHTML(item.year) : \"\", item.recordStatus ? escapeHTML(item.recordStatus) : \"\", item.caseOutcome ? escapeHTML(item.caseOutcome) : \"\"].filter(Boolean).join(\" \u00b7 \");\n      const areaChip = item.area ? `<span>${escapeHTML(item.area)}<\/span>` : \"\";\n      return `<li><a href=\"${safeURL(item.url)}\">${escapeHTML(item.title)}<\/a>${areaChip}${extraMeta ? `<small>${extraMeta}<\/small>` : \"\"}<\/li>`;\n    }).join(\"\");\n\n    panel.innerHTML = `<span class=\"chill-country-label\">Selected country<\/span><h3>${escapeHTML(countryName)}<\/h3><ul class=\"chill-country-list\">${list}<\/ul>`;\n  }\n\n  function clearSelectedRegionVisuals() {\n    document.querySelectorAll('#chill-atlas-map [data-code]').forEach(function (region) {\n      region.classList.remove('jvm-selected');\n      region.style.fill = \"\";\n      region.style.stroke = \"\";\n      region.style.strokeWidth = \"\";\n      region.style.strokeOpacity = \"\";\n    });\n  }\n\n  function forceSelectedRegionColour() {\n    window.setTimeout(function () {\n      if (!selectedRegionCode) return;\n      const region = document.querySelector('#chill-atlas-map [data-code=\"' + selectedRegionCode + '\"]');\n      if (region) {\n        region.classList.add('jvm-selected');\n        region.style.fill = MAP_COLORS.selected;\n        region.style.stroke = MAP_COLORS.selectedStroke;\n        region.style.strokeWidth = \"3px\";\n        region.style.strokeOpacity = \"1\";\n      }\n    }, 80);\n  }\n\n  function selectRegion(code, shouldZoom) {\n    if (!code || !mapInstance || selectionLock) return;\n    selectionLock = true;\n    selectedRegionCode = code;\n\n    try {\n      if (typeof mapInstance.clearSelectedRegions === \"function\") mapInstance.clearSelectedRegions();\n      clearSelectedRegionVisuals();\n      if (typeof mapInstance.setSelectedRegions === \"function\") mapInstance.setSelectedRegions([code]);\n    } catch (error) {\n      clearSelectedRegionVisuals();\n    }\n\n    renderCountryPanel(code);\n    forceSelectedRegionColour();\n    if (shouldZoom) focusOnRegion(code, true);\n\n    window.setTimeout(function () { selectionLock = false; }, 120);\n  }\n\n  function focusOnRegion(code, animate) {\n    if (!mapInstance || !code) return;\n    try {\n      if (typeof mapInstance.setFocus === \"function\") {\n        mapInstance.setFocus({ region: code, animate: Boolean(animate) });\n        return;\n      }\n    } catch (error) {}\n    try {\n      if (typeof mapInstance.setFocus === \"function\") mapInstance.setFocus({ regions: [code], animate: Boolean(animate) });\n    } catch (error) {}\n  }\n\n  function focusOnRegions(regions, animate) {\n    if (!mapInstance || !regions || !regions.length) return;\n    try {\n      if (typeof mapInstance.setFocus === \"function\") mapInstance.setFocus({ regions: regions, animate: Boolean(animate) });\n    } catch (error) {}\n  }\n\n  function resetMapFocus() {\n    if (!mapInstance) return;\n    try {\n      if (typeof mapInstance.setFocus === \"function\") mapInstance.setFocus({ scale: 1, x: 0.5, y: 0.5, animate: true });\n    } catch (error) {}\n  }\n\n  function renderMap() {\n    const mapElement = document.getElementById(\"chill-atlas-map\");\n    if (!mapElement || typeof jsVectorMap === \"undefined\") return;\n\n    mapElement.innerHTML = \"\";\n    if (mapInstance && typeof mapInstance.destroy === \"function\") mapInstance.destroy();\n\n    const selectedGeo = document.getElementById(\"chill-filter-geo\") ? document.getElementById(\"chill-filter-geo\").value : \"\";\n    const focusConfig = selectedGeo && GEO_AREAS[selectedGeo] && GEO_AREAS[selectedGeo].regions.length ? { regions: GEO_AREAS[selectedGeo].regions, animate: false } : null;\n\n    const mapConfig = {\n      selector: \"#chill-atlas-map\",\n      map: \"world\",\n      backgroundColor: \"transparent\",\n      zoomOnScroll: true,\n      zoomButtons: true,\n      draggable: true,\n      bindTouchEvents: true,\n      showTooltip: true,\n      regionsSelectable: true,\n      regionsSelectableOne: true,\n      selectedRegions: selectedRegionCode ? [selectedRegionCode] : [],\n      regionStyle: {\n        initial: {\n          fill: MAP_COLORS.base,\n          fillOpacity: 1,\n          stroke: MAP_COLORS.baseStroke,\n          strokeWidth: 1.1,\n          strokeOpacity: 0.88\n        },\n        hover: {\n          fill: MAP_COLORS.activeHover,\n          fillOpacity: 1,\n          stroke: \"#BFE6FF\",\n          strokeWidth: 1.7,\n          cursor: \"pointer\"\n        },\n        selected: {\n          fill: MAP_COLORS.selected,\n          fillOpacity: 1,\n          stroke: MAP_COLORS.selectedStroke,\n          strokeWidth: 3,\n          strokeOpacity: 1\n        },\n        selectedHover: {\n          fill: MAP_COLORS.selectedHover,\n          fillOpacity: 1,\n          stroke: MAP_COLORS.selectedStrokeHover,\n          strokeWidth: 3.2,\n          strokeOpacity: 1\n        }\n      },\n      series: {\n        regions: [{\n          attribute: \"fill\",\n          scale: { 1: MAP_COLORS.active },\n          values: getRegionValuesFromCases(visibleCases)\n        }]\n      },\n      onRegionTooltipShow: function (event, tooltip, code) {\n        const countryCases = visibleCases.filter(function (item) { return item.countryCode === code; });\n        tooltip.text(countryCases.length ? getRegionName(code) + \" \u2014 \" + countryCases.length + \" case(s)\" : getRegionName(code));\n      },\n      onRegionClick: function (event, code) { selectRegion(code, true); },\n      onRegionSelected: function (code, isSelected) {\n        if (selectionLock) return;\n        if (isSelected) selectRegion(code, true);\n      }\n    };\n\n    if (focusConfig) mapConfig.focusOn = focusConfig;\n    mapInstance = new jsVectorMap(mapConfig);\n    forceSelectedRegionColour();\n  }\n\n  function showMapMessage(message) {\n    const mapElement = document.getElementById(\"chill-atlas-map\");\n    if (!mapElement) return;\n    mapElement.innerHTML = `<p class=\"chill-loading\">${escapeHTML(message)}<\/p>`;\n  }\n\n  async function initChillAtlasMap() {\n    if (typeof jsVectorMap === \"undefined\") {\n      showMapMessage(\"The map library could not be loaded.\");\n      return;\n    }\n\n    showMapMessage(\"Loading cases from the website...\");\n\n    try {\n      allCases = await loadCasesFromWordPress();\n      visibleCases = [].concat(allCases);\n\n      if (!allCases.length) {\n        showMapMessage(\"No cases found. Check that records are published, ACF is visible in the REST API, and the Country field returns the term object.\");\n        const panel = document.getElementById(\"chill-atlas-panel\");\n        if (panel) {\n          panel.innerHTML = `<span class=\"chill-panel-label\">Configuration required<\/span><h3>No cases found<\/h3><p>Check that CHILL fields are exposed in the REST API and that the Country field returns the term object.<\/p>`;\n        }\n        return;\n      }\n\n      populateFilters();\n      renderMap();\n\n      const panel = document.getElementById(\"chill-atlas-panel\");\n      if (panel) {\n        panel.innerHTML = `<span class=\"chill-panel-label\">CHILL Atlas<\/span><h3>${allCases.length} cases loaded<\/h3><p>Click a highlighted country to see the list of cases. You can zoom and drag the map.<\/p>`;\n      }\n    } catch (error) {\n      console.error(\"CHILL Atlas map error:\", error);\n      showMapMessage(\"Error while loading cases from the website. Open the browser console to see the technical error.\");\n    }\n  }\n\n  function boot() {\n    loadCSS(CDN_CSS);\n    loadScript(CDN_CORE)\n      .then(function () { return loadScript(CDN_WORLD); })\n      .then(function () { initChillAtlasMap(); })\n      .catch(function () { showMapMessage(\"Unable to load the map from the CDN. Check cache, script blocking, or connection.\"); });\n  }\n\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", boot);\n  else boot();\n})();\n<\/script>\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>CHILL Atlas CHILL Atlas Global Case Map An interactive map of CHILL Atlas records. Whole world All thematic areas All rights involved Loading cases from the website&#8230; CHILL Atlas Select a country Click a highlighted country to see the related cases. You can zoom and drag the map.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"ai_generated_summary":"","wpai_meta_description":"","footnotes":""},"class_list":["post-492","page","type-page","status-publish","hentry"],"acf":[],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/chill-lab.eu\/it\/wp-json\/wp\/v2\/pages\/492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chill-lab.eu\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/chill-lab.eu\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/chill-lab.eu\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chill-lab.eu\/it\/wp-json\/wp\/v2\/comments?post=492"}],"version-history":[{"count":19,"href":"https:\/\/chill-lab.eu\/it\/wp-json\/wp\/v2\/pages\/492\/revisions"}],"predecessor-version":[{"id":566,"href":"https:\/\/chill-lab.eu\/it\/wp-json\/wp\/v2\/pages\/492\/revisions\/566"}],"wp:attachment":[{"href":"https:\/\/chill-lab.eu\/it\/wp-json\/wp\/v2\/media?parent=492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}