{"id":389,"date":"2025-07-18T06:48:54","date_gmt":"2025-07-18T03:48:54","guid":{"rendered":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/?page_id=389"},"modified":"2026-05-11T12:56:53","modified_gmt":"2026-05-11T09:56:53","slug":"filter-test-page","status":"publish","type":"page","link":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/filter-test-page\/","title":{"rendered":"Washing Stations"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; custom_padding_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#02a5a5&#8243; custom_padding=&#8221;|60px|5px|60px|false|false&#8221; custom_padding_tablet=&#8221;|30px||30px|false|false&#8221; custom_padding_phone=&#8221;|20px||20px|false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_font=&#8221;Roboto Slab|900|||||||&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;51px&#8221; header_font_size_tablet=&#8221;40px&#8221; header_font_size_phone=&#8221;24px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1><span style=\"color: #134a86;\">Gedeo<\/span> Washing Stations<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<!-- \u2705 FILTER SECTION --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->  .filter-section {<!-- [et_pb_line_break_holder] -->    background-color: #02A5A5;<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    margin-bottom: 2rem;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->    gap: 1rem;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .filter-section select {<!-- [et_pb_line_break_holder] -->    padding: 0.6rem 1rem;<!-- [et_pb_line_break_holder] -->    font-size: 1rem;<!-- [et_pb_line_break_holder] -->    min-width: 200px;<!-- [et_pb_line_break_holder] -->    background: #02A5A5;<!-- [et_pb_line_break_holder] -->    border: 1px solid #02A5A5;<!-- [et_pb_line_break_holder] -->    color: white; <!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  .filter-section select option {<!-- [et_pb_line_break_holder] -->    color: white; \/* Dropdown list color *\/<!-- [et_pb_line_break_holder] -->    background: #02A5A5; \/* Dropdown background *\/<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  .filter-section select option:checked {<!-- [et_pb_line_break_holder] -->    color: white;<!-- [et_pb_line_break_holder] -->    background: #02A5A5;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"filter-section\"><!-- [et_pb_line_break_holder] -->  <select id=\"locationFilter\"><!-- [et_pb_line_break_holder] --><option value=\"all\">Filter by Location<\/option><!-- [et_pb_line_break_holder] --><option value=\"all\">See All<\/option><!-- [et_pb_line_break_holder] --><option value=\"dilla zuria\">Dilla Zuria<\/option><!-- [et_pb_line_break_holder] --><option value=\"gedeb\">Gedeb<\/option><!-- [et_pb_line_break_holder] --><option value=\"yirgacheffe\">Yirgacheffe<\/option><!-- [et_pb_line_break_holder] --><option value=\"kochere\">Kochere<\/option><!-- [et_pb_line_break_holder] --><option value=\"wonago\">Wonago<\/option><!-- [et_pb_line_break_holder] --><option value=\"bule\">Bule<\/option><!-- [et_pb_line_break_holder] --><option value=\"rape\">Raphe<\/option><!-- [et_pb_line_break_holder] --><option value=\"churso\">Chorso<\/option><!-- [et_pb_line_break_holder] -->  <\/select><!-- [et_pb_line_break_holder] -->  <select id=\"elevationFilter\"><!-- [et_pb_line_break_holder] --><option value=\"all\">Filter by Elevation<\/option><!-- [et_pb_line_break_holder] --><option value=\"all\">See All<\/option><!-- [et_pb_line_break_holder] --><option value=\"1500-1699\">1,500 &#8211; 1,699<\/option><!-- [et_pb_line_break_holder] --><option value=\"1700-1899\">1,700 &#8211; 1,899<\/option><!-- [et_pb_line_break_holder] --><option value=\"1900-2099\">1,900 &#8211; 2,099<\/option><!-- [et_pb_line_break_holder] --><option value=\"2100-2299\">2,100 &#8211; 2,299<\/option><!-- [et_pb_line_break_holder] -->  <\/select><!-- [et_pb_line_break_holder] -->  <select id=\"coffeeTypeFilter\"><!-- [et_pb_line_break_holder] --><option value=\"all\">Filter by Coffee Type<\/option><!-- [et_pb_line_break_holder] --><option value=\"all\">See All<\/option><!-- [et_pb_line_break_holder] --><option value=\"natural\">Natural<\/option><!-- [et_pb_line_break_holder] --><option value=\"washed\">Washed<\/option><!-- [et_pb_line_break_holder] --><option value=\"honey\">Honey<\/option><!-- [et_pb_line_break_holder] --><option value=\"anaerobic\">Anaerobic<\/option><!-- [et_pb_line_break_holder] --><option value=\"carbonic_maceration\">Carbonic Maceration<\/option><!-- [et_pb_line_break_holder] -->  <\/select><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] -->[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;4px|||||&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;|auto|0px|auto||&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Roboto+Slab:wght@900&#038;display=swap\" rel=\"stylesheet\"\/><!-- [et_pb_line_break_holder] --><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@200&#038;display=swap\" rel=\"stylesheet\"\/><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->@import url(\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;600;700&family=Roboto+Slab:wght@400;700&family=Roboto:wght@400;500;700&display=swap\");<!-- [et_pb_line_break_holder] -->.card-grid { display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:center; }<!-- [et_pb_line_break_holder] -->.coffee-card { background:linear-gradient(to bottom right,#afd5ff,#c5ffff); border-radius:10px; overflow:hidden; display:flex; flex-direction:column; width:280px; transition:transform 0.3s; }<!-- [et_pb_line_break_holder] -->.card-image { height:150px; background-size:cover; background-position:center; }<!-- [et_pb_line_break_holder] -->.card-body { padding:1rem; flex-grow:1; display:flex; flex-direction:column; justify-content:space-between; }<!-- [et_pb_line_break_holder] -->.card-title { font-family:\"Roboto Slab\",serif; font-size:1.2rem; font-weight:900; color:#134a86; margin-bottom:0.5rem; }<!-- [et_pb_line_break_holder] -->.card-details { font-family:\"Inter\",sans-serif; font-size:13px; line-height:1.9; font-weight:200; color:black; margin-bottom:5px; }<!-- [et_pb_line_break_holder] -->.card-button { font-family:\"Inter\",sans-serif; margin-top:1rem; width:133px; background:linear-gradient(to right,#02a5a5,#134a86); color:white; padding:3px 5px; border:none; border-radius:5px; cursor:pointer; align-self:flex-start; transition:transform 0.3s ease,box-shadow 0.3s ease; text-decoration:none; text-align:center; }<!-- [et_pb_line_break_holder] -->.card-button:hover { transform:translateY(-3px); box-shadow:0 6px 12px rgba(0,0,0,0.2); }<!-- [et_pb_line_break_holder] -->#loadingMessage { text-align:center; font-size:1.3rem; color:#134a86; margin:2rem 0; font-weight:600; }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"loadingMessage\">Loading coffee cards&#8230;<\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"card-grid\" id=\"cardGrid\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/cdn.jsdelivr.net\/npm\/papaparse@5.4.1\/papaparse.min.js\"><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->const locationFilter  = document.getElementById(\"locationFilter\");<!-- [et_pb_line_break_holder] -->const elevationFilter = document.getElementById(\"elevationFilter\");<!-- [et_pb_line_break_holder] -->const coffeeTypeFilter = document.getElementById(\"coffeeTypeFilter\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 1. NAME CORRECTIONS applied to every row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->function correctNames(value) {<!-- [et_pb_line_break_holder] -->  if (!value) return value;<!-- [et_pb_line_break_holder] -->  return value<!-- [et_pb_line_break_holder] -->    .replace(\/\\bChelelektu\\b\/gi, \"\")<!-- [et_pb_line_break_holder] -->    .replace(\/\\bRape\\b\/g, \"Raphe\")<!-- [et_pb_line_break_holder] -->    .replace(\/\\bChurso\\b\/g, \"Chorso\");<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function formatElevation(elevStr) {<!-- [et_pb_line_break_holder] -->  return elevStr.replace(\/\\d+\/g, n => parseInt(n).toLocaleString());<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function getElevationRange(elevationText) {<!-- [et_pb_line_break_holder] -->  const m = elevationText.match(\/(\\d{3,4})\\s*-\\s*(\\d{3,4})\/);<!-- [et_pb_line_break_holder] -->  if (!m) return [0, 0];<!-- [et_pb_line_break_holder] -->  return [parseInt(m[1]), parseInt(m[2])];<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function resetAllFilters() {<!-- [et_pb_line_break_holder] -->  if (locationFilter)  locationFilter.value  = \"all\";<!-- [et_pb_line_break_holder] -->  if (elevationFilter) elevationFilter.value = \"all\";<!-- [et_pb_line_break_holder] -->  if (coffeeTypeFilter) coffeeTypeFilter.value = \"all\";<!-- [et_pb_line_break_holder] -->  filterCards();<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function filterCards() {<!-- [et_pb_line_break_holder] -->  const location  = locationFilter?.value.toLowerCase()  || \"all\";<!-- [et_pb_line_break_holder] -->  const elevation = elevationFilter?.value || \"all\";<!-- [et_pb_line_break_holder] -->  const type      = coffeeTypeFilter?.value.toLowerCase() || \"all\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let elevMin = 0, elevMax = 9999;<!-- [et_pb_line_break_holder] -->  if (elevation !== \"all\") {<!-- [et_pb_line_break_holder] -->    [elevMin, elevMax] = elevation.split(\"-\").map(n => parseInt(n));<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let visibleCount = 0;<!-- [et_pb_line_break_holder] -->  document.querySelectorAll(\".coffee-card\").forEach(card => {<!-- [et_pb_line_break_holder] -->    const loc      = (card.dataset.location  || \"\").toLowerCase();<!-- [et_pb_line_break_holder] -->    const elevText =  card.dataset.elevation || \"\";<!-- [et_pb_line_break_holder] -->    const [elevStart, elevEnd] = getElevationRange(elevText);<!-- [et_pb_line_break_holder] -->    const types    = (card.dataset.type || \"\").toLowerCase().split(\",\").map(t => t.trim());<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const locationMatch  = location  === \"all\" || loc === location;<!-- [et_pb_line_break_holder] -->    const elevationMatch = elevation === \"all\" || (elevStart >= elevMin && elevEnd <= elevMax);<!-- [et_pb_line_break_holder] -->    const typeMatch      = type      === \"all\" || types.some(t => t.includes(type));<!-- [et_pb_line_break_holder] -->    const match = locationMatch && elevationMatch && typeMatch;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    card.style.display = match ? \"flex\" : \"none\";<!-- [et_pb_line_break_holder] -->    if (match) visibleCount++;<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let noCardsMessage = document.getElementById(\"noCardsMessage\");<!-- [et_pb_line_break_holder] -->  const container = document.getElementById(\"cardGrid\");<!-- [et_pb_line_break_holder] -->  if (visibleCount === 0) {<!-- [et_pb_line_break_holder] -->    if (!noCardsMessage) {<!-- [et_pb_line_break_holder] -->      noCardsMessage = document.createElement(\"div\");<!-- [et_pb_line_break_holder] -->      noCardsMessage.id = \"noCardsMessage\";<!-- [et_pb_line_break_holder] -->      noCardsMessage.innerHTML = `<!-- [et_pb_line_break_holder] -->        <pee style=\"text-align:center;\">No coffee cards found matching your filters.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div style=\"text-align:center;\"><!-- [et_pb_line_break_holder] -->          <button onclick=\"resetAllFilters()\" style=\"padding:10px 20px;background:#134a86;color:white;border:none;border-radius:8px;cursor:pointer;\">Reset Filters<\/button><!-- [et_pb_line_break_holder] -->        <\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->      container.appendChild(noCardsMessage);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  } else {<!-- [et_pb_line_break_holder] -->    if (noCardsMessage) noCardsMessage.remove();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 2. POPULATE FILTER DROPDOWNS from actual data \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->function populateFilters(rows) {<!-- [et_pb_line_break_holder] -->  const locations  = new Set();<!-- [et_pb_line_break_holder] -->  const elevations = new Set();<!-- [et_pb_line_break_holder] -->  const types      = new Set();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  rows.forEach(cols => {<!-- [et_pb_line_break_holder] -->    const woreda    = cols[1]?.trim();<!-- [et_pb_line_break_holder] -->    const elevation = cols[2]?.trim();<!-- [et_pb_line_break_holder] -->    const type      = cols[3]?.trim();<!-- [et_pb_line_break_holder] -->    if (woreda)    locations.add(woreda);<!-- [et_pb_line_break_holder] -->    if (elevation) elevations.add(elevation);<!-- [et_pb_line_break_holder] -->    if (type) {<!-- [et_pb_line_break_holder] -->      type.split(\",\").forEach(t => {<!-- [et_pb_line_break_holder] -->        const cleaned = t.trim().replace(\/\\bcarbonic\\s*maceration\\b\/gi, \"carbonic maceration\");<!-- [et_pb_line_break_holder] -->        if (cleaned) types.add(cleaned.toLowerCase());<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function addOptions(selectEl, values, labelFn) {<!-- [et_pb_line_break_holder] -->    if (!selectEl) return;<!-- [et_pb_line_break_holder] -->    const existing = [...selectEl.options].map(o => o.value);<!-- [et_pb_line_break_holder] -->    [...values].sort().forEach(v => {<!-- [et_pb_line_break_holder] -->      if (!existing.includes(v)) {<!-- [et_pb_line_break_holder] -->        const opt = document.createElement(\"option\");<!-- [et_pb_line_break_holder] -->        opt.value = v;<!-- [et_pb_line_break_holder] -->        opt.textContent = labelFn ? labelFn(v) : v;<!-- [et_pb_line_break_holder] -->        selectEl.appendChild(opt);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  addOptions(locationFilter,  locations,  v => v);<!-- [et_pb_line_break_holder] -->  addOptions(coffeeTypeFilter, types,     v => v.replace(\/_\/g,\" \"));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const allElevNums = [...elevations].flatMap(e => {<!-- [et_pb_line_break_holder] -->    const m = e.match(\/(\\d{3,4})\/g);<!-- [et_pb_line_break_holder] -->    return m ? m.map(Number) : [];<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->  if (allElevNums.length && elevationFilter) {<!-- [et_pb_line_break_holder] -->    const minE = Math.min(...allElevNums);<!-- [et_pb_line_break_holder] -->    const maxE = Math.max(...allElevNums);<!-- [et_pb_line_break_holder] -->    const mid  = Math.round((minE + maxE) \/ 2);<!-- [et_pb_line_break_holder] -->    const existing = [...elevationFilter.options].map(o => o.value);<!-- [et_pb_line_break_holder] -->    const ranges = [<!-- [et_pb_line_break_holder] -->      { value: `${minE}-${mid}`,  label: `Low (${minE.toLocaleString()}\u2013${mid.toLocaleString()} m)` },<!-- [et_pb_line_break_holder] -->      { value: `${mid}-${maxE}`,  label: `High (${mid.toLocaleString()}\u2013${maxE.toLocaleString()} m)` },<!-- [et_pb_line_break_holder] -->    ];<!-- [et_pb_line_break_holder] -->    ranges.forEach(r => {<!-- [et_pb_line_break_holder] -->      if (!existing.includes(r.value)) {<!-- [et_pb_line_break_holder] -->        const opt = document.createElement(\"option\");<!-- [et_pb_line_break_holder] -->        opt.value = r.value;<!-- [et_pb_line_break_holder] -->        opt.textContent = r.label;<!-- [et_pb_line_break_holder] -->        elevationFilter.appendChild(opt);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->if (locationFilter)   locationFilter.addEventListener(\"change\",  filterCards);<!-- [et_pb_line_break_holder] -->if (elevationFilter)  elevationFilter.addEventListener(\"change\",  filterCards);<!-- [et_pb_line_break_holder] -->if (coffeeTypeFilter) coffeeTypeFilter.addEventListener(\"change\", filterCards);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 3. DISPLAY HELPERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->function processTypesForDisplay(typeString) {<!-- [et_pb_line_break_holder] -->  return typeString<!-- [et_pb_line_break_holder] -->    .replace(\/\\bcarbonic\\s*maceration\\b\/gi, \"CARBONIC_MACERATION_PLACEHOLDER\")<!-- [et_pb_line_break_holder] -->    .replace(\/\\s+\/g, \", \")<!-- [et_pb_line_break_holder] -->    .replace(\/CARBONIC_MACERATION_PLACEHOLDER\/g, \"Carbonic Maceration\");<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function processTypesForFilter(typeString) {<!-- [et_pb_line_break_holder] -->  return typeString<!-- [et_pb_line_break_holder] -->    .replace(\/\\bcarbonic\\s*maceration\\b\/g, \"carbonic_maceration\")<!-- [et_pb_line_break_holder] -->    .split(\",\")<!-- [et_pb_line_break_holder] -->    .map(t => t.trim().replace(\/\\s+\/g, \"_\"))<!-- [et_pb_line_break_holder] -->    .join(\",\");<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 4. LOAD & RENDER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->async function loadCoffeeCards() {<!-- [et_pb_line_break_holder] -->  const SHEET_URL = \"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vR623INNzy5vugdJS0VS1Qb58C5XkfcQyNeaVMve8Nw060EXQiKwd6HGv-Uhyci-ke_8LyATtuf8sh1\/pub?output=csv\";<!-- [et_pb_line_break_holder] -->  try {<!-- [et_pb_line_break_holder] -->    const response = await fetch(SHEET_URL);<!-- [et_pb_line_break_holder] -->    const csv = await response.text();<!-- [et_pb_line_break_holder] -->    const parsed = Papa.parse(csv, { skipEmptyLines: true });<!-- [et_pb_line_break_holder] -->    let rows = parsed.data;<!-- [et_pb_line_break_holder] -->    rows.shift();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    rows = rows<!-- [et_pb_line_break_holder] -->      .map(cols => cols.map(cell => correctNames(cell)))<!-- [et_pb_line_break_holder] -->      .filter(cols => {<!-- [et_pb_line_break_holder] -->        const woreda = cols[1]?.trim() || \"\";<!-- [et_pb_line_break_holder] -->        const title  = cols[0]?.trim() || \"\";<!-- [et_pb_line_break_holder] -->        return woreda !== \"\" && title !== \"\" &&<!-- [et_pb_line_break_holder] -->               !woreda.toLowerCase().includes(\"chelelektu\") &&<!-- [et_pb_line_break_holder] -->               !title.toLowerCase().includes(\"chelelektu\");<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    populateFilters(rows);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const container = document.getElementById(\"cardGrid\");<!-- [et_pb_line_break_holder] -->    container.innerHTML = \"\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    rows.forEach(cols => {<!-- [et_pb_line_break_holder] -->      const title    = cols[0]?.trim();<!-- [et_pb_line_break_holder] -->      const woreda   = cols[1]?.trim();<!-- [et_pb_line_break_holder] -->      const elevation = cols[2]?.trim();<!-- [et_pb_line_break_holder] -->      const type     = cols[3]?.trim();<!-- [et_pb_line_break_holder] -->      const grade    = cols[4]?.trim();<!-- [et_pb_line_break_holder] -->      const cardId   = cols[5]?.trim();<!-- [et_pb_line_break_holder] -->      const imageURL = cols[6]?.trim();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      if (!title || !imageURL || !cardId) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const displayTypes = processTypesForDisplay(type);<!-- [et_pb_line_break_holder] -->      const dataTypes    = processTypesForFilter(type.toLowerCase());<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const card = document.createElement(\"div\");<!-- [et_pb_line_break_holder] -->      card.className = \"coffee-card\";<!-- [et_pb_line_break_holder] -->      card.setAttribute(\"data-location\",  woreda.toLowerCase());<!-- [et_pb_line_break_holder] -->      card.setAttribute(\"data-elevation\", elevation);<!-- [et_pb_line_break_holder] -->      card.setAttribute(\"data-type\",      dataTypes);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      card.innerHTML = `<!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"card-image\" style=\"background-image:url('${imageURL}');\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"card-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"card-title\">${title}<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"card-details\"><!-- [et_pb_line_break_holder] -->            District: <b>${woreda}<\/b><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->            Elevation: <b>${formatElevation(elevation)}<\/b><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->            Type: <b>${displayTypes}<\/b><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->            Grade: <b>${grade}<\/b><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <a class=\"card-button\" href=\"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/card-details\/?id=${encodeURIComponent(cardId)}\">View more<\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->      container.appendChild(card);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    filterCards();<!-- [et_pb_line_break_holder] -->  } catch (error) {<!-- [et_pb_line_break_holder] -->    document.getElementById(\"cardGrid\").innerHTML =<!-- [et_pb_line_break_holder] -->      '<pee style=\"color:red;text-align:center;\">Failed to load data.<\/pee>';<!-- [et_pb_line_break_holder] -->    console.error(error);<!-- [et_pb_line_break_holder] -->  } finally {<!-- [et_pb_line_break_holder] -->    const loadingEl = document.getElementById(\"loadingMessage\");<!-- [et_pb_line_break_holder] -->    if (loadingEl) loadingEl.style.display = \"none\";<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->loadCoffeeCards();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#014a7e&#8221; custom_padding=&#8221;||3px|||&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||61px|||&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Roboto Slab||||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_font_size=&#8221;38px&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p class=\"p1\" style=\"text-align: center;\">Reach out to us<\/p>\n<p>[\/et_pb_text][et_pb_contact_form _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; _unique_id=&#8221;574b5fcc-6cf5-43cc-a118-bafe07cecbaa&#8221; form_field_background_color=&#8221;RGBA(255,255,255,0)&#8221; form_field_text_color=&#8221;#FFFFFF&#8221; form_field_custom_padding=&#8221;4px||4px||false|false&#8221; captcha_text_color=&#8221;#FFFFFF&#8221; captcha_font_size=&#8221;14px&#8221; form_field_font_size=&#8221;10px&#8221; custom_button=&#8221;on&#8221; button_text_size=&#8221;12px&#8221; custom_padding=&#8221;||||false|false&#8221; border_radii=&#8221;on|8px|8px|8px|8px&#8221; border_width_all=&#8221;1px&#8221; border_color_all=&#8221;#FFFFFF&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_contact_field field_id=&#8221;Name&#8221; field_title=&#8221;Name&#8221; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221; button_text_size__hover_enabled=&#8221;off&#8221; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_text_color__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_border_width__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_border_color__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_border_radius__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_bg_color__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_contact_field][et_pb_contact_field field_id=&#8221;Email&#8221; field_title=&#8221;Email Address&#8221; field_type=&#8221;email&#8221; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221; button_text_size__hover_enabled=&#8221;off&#8221; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_text_color__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_border_width__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_border_color__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_border_radius__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_bg_color__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_contact_field][et_pb_contact_field field_id=&#8221;Phone&#8221; field_title=&#8221;Phone&#8221; fullwidth_field=&#8221;on&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_contact_field][et_pb_contact_field field_id=&#8221;Message&#8221; field_title=&#8221;Message&#8221; field_type=&#8221;text&#8221; fullwidth_field=&#8221;on&#8221; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221; button_text_size__hover_enabled=&#8221;off&#8221; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_text_color__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_border_width__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_border_color__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_border_radius__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_bg_color__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_contact_field][\/et_pb_contact_form][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p style=\"text-align: right;\"><span style=\"color: #ffffff;\">Solve the equation above to submit your message.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gedeo Washing StationsReach out to usSolve the equation above to submit your message.<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"class_list":["post-389","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/wp-json\/wp\/v2\/pages\/389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/wp-json\/wp\/v2\/comments?post=389"}],"version-history":[{"count":61,"href":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/wp-json\/wp\/v2\/pages\/389\/revisions"}],"predecessor-version":[{"id":661,"href":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/wp-json\/wp\/v2\/pages\/389\/revisions\/661"}],"wp:attachment":[{"href":"https:\/\/yirgacheffeecoffeemarket.com\/cms_wp\/wp-json\/wp\/v2\/media?parent=389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}