{"id":3129,"date":"2025-11-19T17:17:19","date_gmt":"2025-11-19T17:17:19","guid":{"rendered":"https:\/\/coffeelandtours.com\/?page_id=3129"},"modified":"2026-06-08T21:02:19","modified_gmt":"2026-06-08T21:02:19","slug":"experiences","status":"publish","type":"page","link":"https:\/\/coffeelandtours.com\/es\/experiences\/","title":{"rendered":"Experiencias"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-block-494c42c4 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"uagb-block-cd2517a4 uagb-infobox__content-wrap  uagb-infobox-icon-above-title uagb-infobox-image-valign-top  wp-block-uagb-info-box--has-margin wp-block-uagb-info-box\"><div class=\"uagb-infobox-margin-wrapper\"><div class=\"uagb-ifb-content\"><div class=\"uagb-ifb-title-wrap\"><h1 class=\"uagb-ifb-title-prefix\">Cofeeland Tours<\/h1><h1 class=\"uagb-ifb-title\"><strong>experiences<\/strong><\/h1><\/div><p class=\"uagb-ifb-desc\">Our offerings are always growing and changing to ensure you have the best options to select in the regions you want to visit.<\/p><div class=\"uagb-ifb-button-wrapper wp-block-button\"><a href=\"#popmake-2949\" class=\"uagb-infobox-cta-link wp-block-button__link\" target=\"_self\" rel=\"noopener noreferrer\" onclick=\"return true;\"><span class=\"uagb-inline-editing\">Start Your Journey<\/span><\/a><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-5fcee4f8 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<style>\n  #eje-experiences-module {\n    font-family: inherit; \n    background: rgba(18, 18, 18, 0.85);\n    padding: 2rem;\n    border-radius: 12px;\n    color: #ffffff;\n    width: 100%;\n    box-sizing: border-box;\n  }\n  .module-title {\n    color: #ffffff;\n    margin-top: 0;\n    margin-bottom: 2rem;\n    font-family: inherit;\n    font-size: 2rem;\n    font-weight: bold;\n  }\n  .filters-bar {\n    display: flex;\n    gap: 1rem;\n    margin-bottom: 2rem;\n    flex-wrap: wrap;\n  }\n  .filters-bar select {\n    padding: 0.75rem 1rem;\n    background: rgba(255, 255, 255, 0.1);\n    color: #ffffff;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 6px;\n    font-family: inherit;\n    font-size: 0.9rem;\n    cursor: pointer;\n    flex: 1;\n    min-width: 140px;\n  }\n  .filters-bar select option {\n    background: #1a1a1a;\n    color: #ffffff;\n  }\n  .experiences-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n    gap: 1.5rem;\n  }\n  .experience-card {\n    background: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.08);\n    padding: 1.5rem;\n    border-radius: 8px;\n    transition: transform 0.2s ease, background 0.2s ease;\n    display: flex;\n    flex-direction: column;\n  }\n  .experience-card:hover {\n    transform: translateY(-4px);\n    background: rgba(255, 255, 255, 0.06);\n  }\n  .card-top-meta {\n    display: flex;\n    justify-content: space-between;\n    font-family: monospace;\n    font-size: 0.8rem;\n    color: #a0a0a0;\n    margin-bottom: 1rem;\n  }\n  .card-title {\n    margin: 0 0 0.5rem 0;\n    font-size: 1.3rem;\n    font-weight: 600;\n    color: #ffffff;\n  }\n  .card-location {\n    color: #d4af37;\n    font-size: 0.9rem;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin-bottom: 1rem;\n  }\n  .card-desc {\n    font-size: 0.95rem;\n    line-height: 1.5;\n    color: #cccccc;\n    margin-bottom: 0;\n  }\n<\/style>\n\n<div id=\"eje-experiences-module\">\n  <h2 class=\"module-title\">Experiences in Eje Cafetero<\/h2>\n  \n  <div class=\"filters-bar\">\n    <select id=\"filter-dept\"><option value=\"all\">All Departments<\/option><\/select>\n    <select id=\"filter-muni\"><option value=\"all\">All Municipalities<\/option><\/select>\n    <select id=\"filter-theme\"><option value=\"all\">All Themes<\/option><\/select>\n    <select id=\"filter-duration\"><option value=\"all\">Any Duration<\/option><\/select>\n    <select id=\"filter-difficulty\"><option value=\"all\">Any Difficulty<\/option><\/select>\n    <select id=\"filter-price\"><option value=\"all\">Any Price<\/option><\/select>\n  <\/div>\n\n  <div id=\"experiences-feed\" class=\"experiences-grid\"><\/div>\n<\/div>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n  const deptFilter = document.getElementById('filter-dept');\n  const muniFilter = document.getElementById('filter-muni');\n  const themeFilter = document.getElementById('filter-theme');\n  const durationFilter = document.getElementById('filter-duration');\n  const difficultyFilter = document.getElementById('filter-difficulty');\n  const priceFilter = document.getElementById('filter-price');\n  const feed = document.getElementById('experiences-feed');\n\n  if (typeof MUNI_DATA === 'undefined') {\n    feed.innerHTML = '<p style=\"color:#ff6b6b;\">Error: MUNI_DATA not found. Ensure Snippet 2 is loading on this page.<\/p>';\n    return;\n  }\n\n  const depts = new Set();\n  const munis = new Set();\n  const themes = new Set();\n  const durations = new Set();\n  const difficulties = new Set();\n  const prices = new Set();\n\n  \/\/ Scan master data for all possible metrics\n  for (const [muniName, data] of Object.entries(MUNI_DATA)) {\n    munis.add(muniName);\n    if (data.dept) depts.add(data.dept);\n    if (data.tours) data.tours.forEach(t => themes.add(t.toUpperCase()));\n    if (data.duration) durations.add(data.duration.toUpperCase());\n    if (data.difficulty) difficulties.add(data.difficulty.toUpperCase());\n    if (data.price) prices.add(data.price);\n  }\n\n  \/\/ Populate dropdowns based on whatever metrics actually exist in the data\n  [...depts].sort().forEach(d => deptFilter.insertAdjacentHTML('beforeend', `<option value=\"${d}\">${d}<\/option>`));\n  [...munis].sort().forEach(m => muniFilter.insertAdjacentHTML('beforeend', `<option value=\"${m}\">${m.replace(\/_\/g, ' ')}<\/option>`));\n  [...themes].sort().forEach(t => themeFilter.insertAdjacentHTML('beforeend', `<option value=\"${t}\">${t}<\/option>`));\n  [...durations].sort().forEach(d => durationFilter.insertAdjacentHTML('beforeend', `<option value=\"${d}\">${d}<\/option>`));\n  [...difficulties].sort().forEach(d => difficultyFilter.insertAdjacentHTML('beforeend', `<option value=\"${d}\">${d}<\/option>`));\n  \n  \/\/ Custom sort for prices to ensure $, $$, $$$ order\n  [...prices].sort((a,b) => a.length - b.length).forEach(p => priceFilter.insertAdjacentHTML('beforeend', `<option value=\"${p}\">${p}<\/option>`));\n\n  function renderExperiences() {\n    let htmlOutput = '';\n    \n    const sDept = deptFilter.value;\n    const sMuni = muniFilter.value;\n    const sTheme = themeFilter.value;\n    const sDuration = durationFilter.value;\n    const sDifficulty = difficultyFilter.value;\n    const sPrice = priceFilter.value;\n\n    for (const [muniName, data] of Object.entries(MUNI_DATA)) {\n      const itemThemes = data.tours ? data.tours.map(t => t.toUpperCase()) : [];\n      const itemDuration = data.duration ? data.duration.toUpperCase() : null;\n      const itemDifficulty = data.difficulty ? data.difficulty.toUpperCase() : null;\n      const itemPrice = data.price || null;\n\n      const mDept = sDept === 'all' || data.dept === sDept;\n      const mMuni = sMuni === 'all' || muniName === sMuni;\n      const mTheme = sTheme === 'all' || itemThemes.includes(sTheme);\n      const mDuration = sDuration === 'all' || itemDuration === sDuration;\n      const mDifficulty = sDifficulty === 'all' || itemDifficulty === sDifficulty;\n      const mPrice = sPrice === 'all' || itemPrice === sPrice;\n\n      if (mDept && mMuni && mTheme && mDuration && mDifficulty && mPrice) {\n        \n        \/\/ Build the composite tag string\n        let allTags = [...itemThemes];\n        if (itemDuration) allTags.push(itemDuration);\n        if (itemDifficulty) allTags.push(itemDifficulty);\n        \n        const tagString = allTags.length > 0 ? allTags.join(\" ] [ \") : 'EXPLORE';\n        const displayPrice = itemPrice ? itemPrice : 'TBD';\n        const cleanName = muniName.replace(\/_\/g, ' ');\n        const desc = data.desc || 'Details coming soon.';\n        const dept = data.dept || 'Region';\n\n        htmlOutput += `\n          <div class=\"experience-card\">\n            <div class=\"card-top-meta\">\n              <span class=\"tags\">[ ${tagString} ]<\/span>\n              <span class=\"price\">${displayPrice}<\/span>\n            <\/div>\n            <h3 class=\"card-title\">${cleanName}<\/h3>\n            <p class=\"card-location\">${dept}<\/p>\n            <p class=\"card-desc\">${desc}<\/p>\n          <\/div>\n        `;\n      }\n    }\n\n    if (htmlOutput === '') {\n      feed.innerHTML = '<p style=\"grid-column: 1 \/ -1; text-align: center; color: #a0a0a0; padding: 2rem;\">No experiences match your current filters.<\/p>';\n    } else {\n      feed.innerHTML = htmlOutput;\n    }\n  }\n\n  \/\/ Bind listeners\n  deptFilter.addEventListener('change', renderExperiences);\n  muniFilter.addEventListener('change', renderExperiences);\n  themeFilter.addEventListener('change', renderExperiences);\n  durationFilter.addEventListener('change', renderExperiences);\n  difficultyFilter.addEventListener('change', renderExperiences);\n  priceFilter.addEventListener('change', renderExperiences);\n\n  renderExperiences();\n});\n<\/script>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-05a4a518 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"uagb-block-9a97965e uagb-infobox__content-wrap  uagb-infobox-icon-above-title uagb-infobox-image-valign-top  wp-block-uagb-info-box--has-margin wp-block-uagb-info-box\"><div class=\"uagb-infobox-margin-wrapper\"><div class=\"uagb-ifb-content\"><div class=\"uagb-ifb-title-wrap\"><h1 class=\"uagb-ifb-title\">Have Questions? Let\u2019s Talk.<\/h1><\/div><p class=\"uagb-ifb-desc\"><strong>Planning a trip can feel like a lot, but we\u2019re here to help. Whether you need advice on where to go, how to get around, or when to visit a coffee farm, we\u2019ll make it simple. Just reach out.<\/strong><\/p><div class=\"uagb-ifb-button-wrapper wp-block-button\"><a href=\"#\" class=\"uagb-infobox-cta-link wp-block-button__link\" target=\"_self\" rel=\"noopener noreferrer\" onclick=\"return false;\"><span class=\"uagb-inline-editing\">Send Us a Message<\/span><\/a><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Experiences in Eje Cafetero All Departments All Municipalities All Themes Any Duration Any Difficulty Any Price<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"unboxed","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3129","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false},"uagb_author_info":{"display_name":"John","author_link":"https:\/\/coffeelandtours.com\/es\/author\/johncbrouillettegmail-com\/"},"uagb_comment_info":0,"uagb_excerpt":"Experiences in Eje Cafetero All Departments All Municipalities All Themes Any Duration Any Difficulty Any Price","_links":{"self":[{"href":"https:\/\/coffeelandtours.com\/es\/wp-json\/wp\/v2\/pages\/3129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coffeelandtours.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coffeelandtours.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coffeelandtours.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coffeelandtours.com\/es\/wp-json\/wp\/v2\/comments?post=3129"}],"version-history":[{"count":11,"href":"https:\/\/coffeelandtours.com\/es\/wp-json\/wp\/v2\/pages\/3129\/revisions"}],"predecessor-version":[{"id":3296,"href":"https:\/\/coffeelandtours.com\/es\/wp-json\/wp\/v2\/pages\/3129\/revisions\/3296"}],"wp:attachment":[{"href":"https:\/\/coffeelandtours.com\/es\/wp-json\/wp\/v2\/media?parent=3129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}