{"product_id":"kenya-kiambu","title":"KENYA: KIAMBU","description":"\u003c!--\n  =============================================\n  SAM JAMES COFFEE BAR - Product Page (v4: expandable brew methods + calculator)\n  Coffee: Kenya Gititu AA Microlot, Kiambu (Cafe Imports P# 25313, store handle kenya-kiambu)\n  Card colour: Green Apple #8CC63F (dark text on filled accent, like Buzz Lite)\n  =============================================\n--\u003e\n\u003cstyle\u003e\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@600\u0026display=swap');\n\n  .sjcb-wrap { max-width: 680px; margin: 0 auto; padding: 2rem 1rem; font-family: Helvetica, Arial, sans-serif; background: transparent; color: #ffffff; }\n  .sjcb-section { margin-bottom: 2.5rem; }\n  .sjcb-label { font-family: Helvetica, Arial, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #aaaaaa; margin: 0 0 0.75rem; }\n  .sjcb-body { font-family: Helvetica, Arial, sans-serif; font-size: 15px; line-height: 1.75; color: #b0b0b0; margin: 0; }\n  .sjcb-lead { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 17px; color: #ffffff; letter-spacing: 0.01em; }\n  .sjcb-taste-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 1.25rem; }\n  .sjcb-taste-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 1.25rem; }\n  .sjcb-taste-item { background: transparent; border: 1.5px solid #8CC63F; border-radius: 100px; height: 44px; cursor: default; display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 0.4rem; }\n  .sjcb-taste-val { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 16px; color: #fff; letter-spacing: 0.02em; margin: 0; line-height: 1.2; white-space: nowrap; }\n  .sjcb-hero-heading { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 28px; letter-spacing: 0.04em; text-transform: uppercase; color: #ffffff; margin: 0 0 0.5rem; line-height: 1.15; }\n  .sjcb-hero-body { font-family: Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.75; color: #b0b0b0; margin: 0 0 1.5rem; }\n  .sjcb-blend { display: flex; flex-direction: column; gap: 16px; }\n  .sjcb-blend-block { background: rgba(255, 255, 255, 0.06); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 20px; padding: 1rem; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1); }\n  .sjcb-blend-header { display: flex; align-items: center; gap: 10px; margin-bottom: 0.75rem; }\n  .sjcb-blend-title { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 18px; color: #ffffff; letter-spacing: 0.02em; margin: 0; }\n  .sjcb-blend-ratio { background: #8CC63F; color: #1a1a1a; font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 13px; letter-spacing: 0.05em; padding: 2px 10px; border-radius: 20px; white-space: nowrap; }\n  .sjcb-blend-rows { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }\n  .sjcb-blend-key { font-family: Helvetica, Arial, sans-serif; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: #777; margin: 0 0 2px; }\n  .sjcb-blend-val { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 14px; letter-spacing: 0.02em; color: #ffffff; margin: 0; }\n\n  \/* Brew it your way: one expandable row per method. Set --sjcb-accent to the coffee's card colour. *\/\n  .sjcb-brew { --sjcb-accent: #8CC63F; --sjcb-on-accent: #1a1a1a; display: flex; flex-direction: column; gap: 8px; margin-top: 1.25rem; }\n  .sjcb-wrap details.sjcb-brew-item { margin: 0; padding: 0; border-radius: 20px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); overflow: hidden; transition: border-color 0.15s; }\n  .sjcb-wrap details.sjcb-brew-item[open] { border-color: var(--sjcb-accent); }\n  .sjcb-wrap summary.sjcb-brew-head { display: flex; align-items: center; gap: 12px; min-height: 60px; margin: 0; padding: 0 1.1rem; list-style: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }\n  .sjcb-wrap summary.sjcb-brew-head::-webkit-details-marker { display: none; }\n  .sjcb-wrap summary.sjcb-brew-head::marker { content: \"\"; }\n  .sjcb-wrap summary.sjcb-brew-head:focus-visible { outline: 2px solid #ffffff; outline-offset: -2px; border-radius: 20px; }\n  .sjcb-brew-name { flex: 1 1 auto; font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 20px; letter-spacing: 0.04em; text-transform: uppercase; color: #ffffff; line-height: 1.1; }\n  .sjcb-brew-meta { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 17px; letter-spacing: 0.03em; color: var(--sjcb-accent); white-space: nowrap; }\n  .sjcb-brew-chev { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; background: rgba(255, 255, 255, 0.08); display: flex; align-items: center; justify-content: center; transition: transform 0.2s, background 0.15s; }\n  .sjcb-brew-chev svg { width: 12px; height: 12px; }\n  .sjcb-wrap details.sjcb-brew-item[open] .sjcb-brew-chev { transform: rotate(180deg); background: var(--sjcb-accent); }\n  .sjcb-wrap details.sjcb-brew-item[open] .sjcb-brew-chev path { stroke: var(--sjcb-on-accent); }\n  .sjcb-brew-panel { padding: 0 1.1rem 1.1rem; }\n  .sjcb-brew-specs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 0 0 1rem; }\n  .sjcb-brew-spec { padding: 0.6rem 0.4rem; border-radius: 12px; background: rgba(255, 255, 255, 0.05); text-align: center; }\n  .sjcb-brew-spec-key { font-family: Helvetica, Arial, sans-serif; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #888; margin: 0 0 2px; }\n  .sjcb-brew-spec-val { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 16px; letter-spacing: 0.02em; color: #ffffff; margin: 0; line-height: 1.1; }\n\n  \/* Calculator *\/\n  .sjcb-brew-calc { padding: 1rem; border-radius: 16px; background: rgba(0, 0, 0, 0.25); margin: 0 0 1rem; }\n  .sjcb-brew-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 100px; background: rgba(255, 255, 255, 0.06); margin: 0 0 1rem; }\n  .sjcb-brew-toggle button { min-height: 40px; border: 0; border-radius: 100px; background: transparent; color: #aaaaaa; font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 16px; letter-spacing: 0.05em; text-transform: uppercase; cursor: pointer; -webkit-tap-highlight-color: transparent; }\n  .sjcb-brew-toggle button[aria-pressed=\"true\"] { background: var(--sjcb-accent); color: var(--sjcb-on-accent); }\n  .sjcb-brew-toggle button:focus-visible { outline: 2px solid #ffffff; outline-offset: 2px; }\n  .sjcb-brew-row { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 0.25rem; }\n  .sjcb-brew-row label { font-family: Helvetica, Arial, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #aaaaaa; }\n  .sjcb-brew-row output { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 22px; color: #ffffff; }\n  .sjcb-brew-range { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 36px; margin: 0; background: transparent; cursor: pointer; touch-action: pan-y; }\n  .sjcb-brew-range:focus { outline: none; }\n  .sjcb-brew-range::-webkit-slider-runnable-track { height: 6px; border-radius: 6px; background: rgba(255, 255, 255, 0.15); }\n  .sjcb-brew-range::-moz-range-track { height: 6px; border-radius: 6px; background: rgba(255, 255, 255, 0.15); }\n  .sjcb-brew-range::-webkit-slider-thumb { -webkit-appearance: none; width: 28px; height: 28px; margin-top: -11px; border-radius: 50%; border: 3px solid #ffffff; background: var(--sjcb-accent); }\n  .sjcb-brew-range::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; border: 3px solid #ffffff; background: var(--sjcb-accent); }\n  .sjcb-brew-range:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.5); }\n  .sjcb-brew-out { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 0.5rem; }\n  .sjcb-brew-out div { padding: 0.75rem 0.5rem; border-radius: 14px; background: rgba(255, 255, 255, 0.06); text-align: center; }\n  .sjcb-brew-out div:first-child { background: var(--sjcb-accent); }\n  .sjcb-brew-out div:first-child .sjcb-brew-out-key { color: rgba(26, 26, 26, 0.7); }\n  .sjcb-brew-out div:first-child .sjcb-brew-out-num { color: var(--sjcb-on-accent); }\n  .sjcb-brew-out-key { font-family: Helvetica, Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255, 255, 255, 0.75); margin: 0 0 2px; }\n  .sjcb-brew-out-num { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 36px; color: #ffffff; margin: 0; line-height: 1; }\n  .sjcb-brew-note { font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 1.5; color: #888; margin: 0.6rem 0 0; text-align: center; }\n  .sjcb-brew-tip { font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.65; color: #b0b0b0; margin: 0; }\n  .sjcb-brew-tip b { font-family: 'Barlow Condensed', Helvetica, sans-serif; font-weight: 600; font-size: 15px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--sjcb-accent); }\n  .sjcb-brew-tip + .sjcb-brew-tip { margin-top: 0.6rem; }\n\n  @media (max-width: 380px) {\n    .sjcb-brew-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n    .sjcb-brew-meta { font-size: 15px; }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"sjcb-wrap\"\u003e\n\n  \u003cdiv class=\"sjcb-section\"\u003e\n    \u003cp class=\"sjcb-label\"\u003eTastes like\u003c\/p\u003e\n    \u003cdiv class=\"sjcb-taste-grid\"\u003e\n      \u003cdiv class=\"sjcb-taste-item\"\u003e\u003cp class=\"sjcb-taste-val\"\u003eGreen Apple\u003c\/p\u003e\u003c\/div\u003e\n      \u003cdiv class=\"sjcb-taste-item\"\u003e\u003cp class=\"sjcb-taste-val\"\u003eMaple Syrup\u003c\/p\u003e\u003c\/div\u003e\n      \u003cdiv class=\"sjcb-taste-item\"\u003e\u003cp class=\"sjcb-taste-val\"\u003eMarmalade\u003c\/p\u003e\u003c\/div\u003e\n      \u003cdiv class=\"sjcb-taste-item\"\u003e\u003cp class=\"sjcb-taste-val\"\u003eDark Chocolate\u003c\/p\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003ch2 class=\"sjcb-hero-heading\"\u003eGreen apple, maple syrup, marmalade, and dark chocolate. A rare microlot from Gititu.\u003c\/h2\u003e\n    \u003cp class=\"sjcb-hero-body\"\u003eCrisp and juicy, with a sharp green apple acidity up front and maple sweetness right behind it. Bittersweet marmalade fills the middle and the finish lands long on dark chocolate. Fewer than 100 bags, picked from hundreds of Kenyan lots on the cupping table.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"sjcb-section\"\u003e\n    \u003cp class=\"sjcb-label\"\u003eBrew it your way\u003c\/p\u003e\n    \u003cp class=\"sjcb-body\"\u003e\n      \u003cspan class=\"sjcb-lead\"\u003eMade for filter. Bold on espresso.\u003c\/span\u003e On filter at 1:16, the green apple and marmalade come through clean and the maple sweetness fills out the middle. Let the cup cool a little and the dark chocolate shows up in the finish. As espresso it’s bright and syrupy, so pull it at 1:2.2 and let it run toward 33 seconds to round off the acidity. Pick your brewer for the full recipe.\n    \u003c\/p\u003e\n\n    \u003cdiv class=\"sjcb-brew\"\u003e\n\n      \u003cdetails class=\"sjcb-brew-item\" name=\"sjcb-brew\"\u003e\n        \u003csummary class=\"sjcb-brew-head\"\u003e\n          \u003cspan class=\"sjcb-brew-name\"\u003eEspresso\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-meta\"\u003e1:2.2\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-chev\" aria-hidden=\"true\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\"\u003e\u003cpath d=\"M2 4l4 4 4-4\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"sjcb-brew-panel\"\u003e\n          \u003cdiv class=\"sjcb-brew-specs\"\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eGrind\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003eFine\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eRatio\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\" data-out=\"ratio\"\u003e1:2.2\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eTime\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\" data-out=\"time\"\u003e28 to 33s\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eTemp\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e96°C\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"sjcb-brew-calc\" data-mode=\"espresso\"\u003e\n            \u003cdiv class=\"sjcb-brew-toggle\" role=\"group\" aria-label=\"Your setup\"\u003e\n              \u003cbutton type=\"button\" data-ratio=\"2.2\" aria-pressed=\"true\"\u003eHome setup\u003c\/button\u003e\n              \u003cbutton type=\"button\" data-ratio=\"2\" aria-pressed=\"false\"\u003ePro setup\u003c\/button\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-row\"\u003e\n\u003clabel for=\"sjcb-brew-esp\"\u003eBasket dose\u003c\/label\u003e\u003coutput data-out=\"input\"\u003e18g\u003c\/output\u003e\n\u003c\/div\u003e\n            \u003cinput class=\"sjcb-brew-range\" type=\"range\" id=\"sjcb-brew-esp\" min=\"14\" max=\"22\" step=\"0.5\" value=\"18\"\u003e\n            \u003cdiv class=\"sjcb-brew-out\"\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eCoffee in\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\" data-out=\"coffee\"\u003e18g\u003c\/p\u003e\n\u003c\/div\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eEspresso out\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\" data-out=\"water\"\u003e40g\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"sjcb-brew-tip\"\u003e\u003cb\u003eHome or pro?\u003c\/b\u003e On a home machine, pull 1:2.2. With pro equipment and good water, tighten it to 1:2. In our shops that means 9 bars, remineralized RO water and an 18g VST basket.\u003c\/p\u003e\n          \u003cp class=\"sjcb-brew-tip\"\u003e\u003cb\u003eBigger basket\u003c\/b\u003e On a 20g basket, go hotter, push to 9.25 bars and let it run 30 to 36 seconds. Smaller basket, drop to 8.75 bars and run it shorter.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"sjcb-brew-item\" name=\"sjcb-brew\"\u003e\n        \u003csummary class=\"sjcb-brew-head\"\u003e\n          \u003cspan class=\"sjcb-brew-name\"\u003eCoffee maker\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-meta\"\u003e1:17\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-chev\" aria-hidden=\"true\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\"\u003e\u003cpath d=\"M2 4l4 4 4-4\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"sjcb-brew-panel\"\u003e\n          \u003cdiv class=\"sjcb-brew-specs\"\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eGrind\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003eMedium\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eRatio\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e1:17\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eTime\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003eAuto\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eWater\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003eFiltered\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"sjcb-brew-calc\" data-mode=\"filter\" data-ratio=\"17\" data-cup=\"250\"\u003e\n            \u003cdiv class=\"sjcb-brew-row\"\u003e\n\u003clabel for=\"sjcb-brew-drip\"\u003eMugs\u003c\/label\u003e\u003coutput data-out=\"input\"\u003e2\u003c\/output\u003e\n\u003c\/div\u003e\n            \u003cinput class=\"sjcb-brew-range\" type=\"range\" id=\"sjcb-brew-drip\" min=\"1\" max=\"8\" step=\"1\" value=\"2\"\u003e\n            \u003cdiv class=\"sjcb-brew-out\"\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eCoffee\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\" data-out=\"coffee\"\u003e29g\u003c\/p\u003e\n\u003c\/div\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eWater\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\" data-out=\"water\"\u003e500g\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"sjcb-brew-note\"\u003eOne mug is about 250g of water\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"sjcb-brew-tip\"\u003e\u003cb\u003eCheck the shower head\u003c\/b\u003e Watch it next time you brew. If the water doesn’t cover the whole bed of coffee, you’re wasting coffee. It’s the most important part of the machine.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"sjcb-brew-item\" name=\"sjcb-brew\"\u003e\n        \u003csummary class=\"sjcb-brew-head\"\u003e\n          \u003cspan class=\"sjcb-brew-name\"\u003eFrench press\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-meta\"\u003e1:15\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-chev\" aria-hidden=\"true\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\"\u003e\u003cpath d=\"M2 4l4 4 4-4\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"sjcb-brew-panel\"\u003e\n          \u003cdiv class=\"sjcb-brew-specs\"\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eGrind\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003eCoarse\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eRatio\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e1:15\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eTime\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e5 min\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eTemp\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e98°C\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"sjcb-brew-calc\" data-mode=\"filter\" data-ratio=\"15\" data-cup=\"250\"\u003e\n            \u003cdiv class=\"sjcb-brew-row\"\u003e\n\u003clabel for=\"sjcb-brew-press\"\u003eMugs\u003c\/label\u003e\u003coutput data-out=\"input\"\u003e2\u003c\/output\u003e\n\u003c\/div\u003e\n            \u003cinput class=\"sjcb-brew-range\" type=\"range\" id=\"sjcb-brew-press\" min=\"1\" max=\"4\" step=\"1\" value=\"2\"\u003e\n            \u003cdiv class=\"sjcb-brew-out\"\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eCoffee\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\" data-out=\"coffee\"\u003e33g\u003c\/p\u003e\n\u003c\/div\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eWater\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\" data-out=\"water\"\u003e500g\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"sjcb-brew-note\"\u003eOne mug is about 250g of water\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"sjcb-brew-tip\"\u003e\u003cb\u003eOne pour\u003c\/b\u003e The press loses heat fast, so add all the water at once. It keeps agitation down too.\u003c\/p\u003e\n          \u003cp class=\"sjcb-brew-tip\"\u003e\u003cb\u003eBlade grinder?\u003c\/b\u003e It makes bitter fines and big chunks that never extract. Let us grind it for you instead.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"sjcb-brew-item\" name=\"sjcb-brew\"\u003e\n        \u003csummary class=\"sjcb-brew-head\"\u003e\n          \u003cspan class=\"sjcb-brew-name\"\u003eKalita Wave\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-meta\"\u003e1:16\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-chev\" aria-hidden=\"true\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\"\u003e\u003cpath d=\"M2 4l4 4 4-4\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"sjcb-brew-panel\"\u003e\n          \u003cdiv class=\"sjcb-brew-specs\"\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eGrind\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003eMed fine\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eRatio\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e1:16\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eTime\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e3 min\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eTemp\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e94°C\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"sjcb-brew-calc\" data-mode=\"filter\" data-ratio=\"16\" data-cup=\"250\"\u003e\n            \u003cdiv class=\"sjcb-brew-row\"\u003e\n\u003clabel for=\"sjcb-brew-kalita\"\u003eMugs\u003c\/label\u003e\u003coutput data-out=\"input\"\u003e1\u003c\/output\u003e\n\u003c\/div\u003e\n            \u003cinput class=\"sjcb-brew-range\" type=\"range\" id=\"sjcb-brew-kalita\" min=\"1\" max=\"3\" step=\"1\" value=\"1\"\u003e\n            \u003cdiv class=\"sjcb-brew-out\"\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eCoffee\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\" data-out=\"coffee\"\u003e16g\u003c\/p\u003e\n\u003c\/div\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eWater\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\" data-out=\"water\"\u003e250g\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"sjcb-brew-note\"\u003eOne mug is about 250g of water\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"sjcb-brew-tip\"\u003e\u003cb\u003eDraining slow?\u003c\/b\u003e Lift the paper filter. On the stainless Kalita it can stick and block one of the three holes. Pour more slowly, or use a Hario Drip Assist.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"sjcb-brew-item\" name=\"sjcb-brew\"\u003e\n        \u003csummary class=\"sjcb-brew-head\"\u003e\n          \u003cspan class=\"sjcb-brew-name\"\u003eAeropress\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-meta\"\u003e1:16\u003c\/span\u003e\n          \u003cspan class=\"sjcb-brew-chev\" aria-hidden=\"true\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\"\u003e\u003cpath d=\"M2 4l4 4 4-4\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"sjcb-brew-panel\"\u003e\n          \u003cdiv class=\"sjcb-brew-specs\"\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eGrind\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003eFine\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eRatio\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e1:16\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eTime\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e4 min\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"sjcb-brew-spec\"\u003e\n\u003cp class=\"sjcb-brew-spec-key\"\u003eTemp\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-spec-val\"\u003e80°C\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"sjcb-brew-calc\"\u003e\n            \u003cdiv class=\"sjcb-brew-out\" style=\"margin-top:0;\"\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eCoffee\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\"\u003e15g\u003c\/p\u003e\n\u003c\/div\u003e\n              \u003cdiv\u003e\n\u003cp class=\"sjcb-brew-out-key\"\u003eWater\u003c\/p\u003e\n\u003cp class=\"sjcb-brew-out-num\"\u003e240g\u003c\/p\u003e\n\u003c\/div\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"sjcb-brew-note\"\u003eOne cup, up to the number 4 circle\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"sjcb-brew-tip\"\u003e\u003cb\u003eUpside down\u003c\/b\u003e Put the plunger in and stand it on its end. Add coffee and water, cap it with a filter and let it steep for four minutes. Flip it onto your cup and press slowly.\u003c\/p\u003e\n          \u003cp class=\"sjcb-brew-tip\"\u003e\u003cb\u003eWhy 80°C?\u003c\/b\u003e Hotter water for that long gives you a muddy bed that’s hard to press.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"sjcb-section\"\u003e\n    \u003cdiv class=\"sjcb-blend\"\u003e\n      \u003cdiv class=\"sjcb-blend-block\"\u003e\n        \u003cdiv class=\"sjcb-blend-header\"\u003e\n          \u003cp class=\"sjcb-blend-title\"\u003eKenya\u003c\/p\u003e\n          \u003cspan class=\"sjcb-blend-ratio\"\u003eAA Microlot\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"sjcb-blend-rows\"\u003e\n          \u003cdiv\u003e\n            \u003cp class=\"sjcb-blend-key\"\u003eRegion\u003c\/p\u003e\n            \u003cp class=\"sjcb-blend-val\"\u003eTetu, Kiambu\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cp class=\"sjcb-blend-key\"\u003eFactory\u003c\/p\u003e\n            \u003cp class=\"sjcb-blend-val\"\u003eGititu\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cp class=\"sjcb-blend-key\"\u003eCo-op\u003c\/p\u003e\n            \u003cp class=\"sjcb-blend-val\"\u003eAguthi FCS\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cp class=\"sjcb-blend-key\"\u003eAltitude\u003c\/p\u003e\n            \u003cp class=\"sjcb-blend-val\"\u003e1400–1600 MASL\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cp class=\"sjcb-blend-key\"\u003eProcess\u003c\/p\u003e\n            \u003cp class=\"sjcb-blend-val\"\u003eWashed\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cp class=\"sjcb-blend-key\"\u003eVariety\u003c\/p\u003e\n            \u003cp class=\"sjcb-blend-val\"\u003eSL28, SL34, Ruiru 11, Batian\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"sjcb-section\"\u003e\n    \u003cp class=\"sjcb-label\"\u003eThe coffee\u003c\/p\u003e\n    \u003cp class=\"sjcb-body\"\u003e\n      \u003cspan class=\"sjcb-lead\"\u003eKenya tastes like nowhere else, and this microlot shows exactly why.\u003c\/span\u003e That snap of acidity, the juicy body, the way sweet and tart sit side by side in the same sip. During the harvest, Kenyan factories blend each day’s cherry deliveries into a single day lot. Our importer’s buyer lives in Kenya through the season to cup them, and only the best are bought as microlots of fewer than 100 bags. This is one of them, an AA, the grade reserved for the largest, densest beans. Green apple and marmalade bring the brightness, maple syrup rounds it out, and dark chocolate anchors the finish so the acidity never runs away from you.\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"sjcb-section\"\u003e\n    \u003cp class=\"sjcb-label\"\u003eOrigin\u003c\/p\u003e\n    \u003cp class=\"sjcb-body\"\u003e\n      \u003cspan class=\"sjcb-lead\"\u003eGititu sits in Tetu, in Kiambu, the highest producing coffee region in Kenya.\u003c\/span\u003e High rainfall and cool highland temperatures let the cherry ripen slowly, and most of the coffee grows in the uplands on rich red volcanic soil, between Mount Kenya and the Aberdare Range at 1400 to 1600 metres. Kiambu is famous for the bright, citrusy acidity that put Kenyan coffee on the map, and this lot has it in spades. Most growers here farm between an eighth and a quarter of a hectare, so almost nobody processes at home. Instead they deliver ripe cherry to a local factory, the Kenyan name for a washing station, where it’s sorted and processed together.\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"sjcb-section\"\u003e\n    \u003cp class=\"sjcb-label\"\u003eThe factory\u003c\/p\u003e\n    \u003cp class=\"sjcb-body\"\u003e\n      \u003cspan class=\"sjcb-lead\"\u003eGititu is one of four factories run by the Aguthi Farmers Cooperative Society.\u003c\/span\u003e Aguthi has 4000 members, a committee of seven elected by the farmers, and about 60 permanent staff who handle cherry intake, payment, and processing. Around 800 of those members deliver to Gititu, and the average farm has about 300 trees, which makes a lot this good a real team effort. The factory runs several seepage tanks to keep used water away from clean water, protecting both the coffee and the land around it. The varieties are Kenyan classics. SL28 and SL34 are famous for their juicy, high toned acidity, while Ruiru 11 and Batian were bred in Kenya to stand up to leaf rust and berry disease without giving up cup quality.\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"sjcb-section\"\u003e\n    \u003cp class=\"sjcb-label\"\u003eProcess\u003c\/p\u003e\n    \u003cp class=\"sjcb-body\"\u003e\n      \u003cspan class=\"sjcb-lead\"\u003eWashed, the Kenyan way.\u003c\/span\u003e Ripe cherry is depulped the same day and fermented in open concrete tanks for 24 to 48 hours. It’s washed clean through channels, then soaked underwater for another 12 to 72 hours, a step you rarely see outside Kenya. That soak is a big part of why these coffees taste so clean and so bright. From there it dries slowly on raised beds in the mountain air.\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var calcs = document.querySelectorAll('.sjcb-brew-calc[data-mode]');\n  for (var i = 0; i \u003c calcs.length; i++) setup(calcs[i]);\n\n  function setup(calc) {\n    var mode = calc.getAttribute('data-mode');\n    var range = calc.querySelector('.sjcb-brew-range');\n    var panel = calc.parentNode;\n    var buttons = calc.querySelectorAll('.sjcb-brew-toggle button');\n    var ratio = mode === 'espresso' ? 2.2 : parseFloat(calc.getAttribute('data-ratio'));\n\n    function out(name) { return panel.querySelector('[data-out=\"' + name + '\"]'); }\n\n    function update() {\n      var v = parseFloat(range.value);\n      if (mode === 'espresso') {\n        out('input').textContent = v + 'g';\n        out('coffee').textContent = v + 'g';\n        out('water').textContent = Math.round(v * ratio) + 'g';\n        out('ratio').textContent = '1:' + ratio;\n        \/\/ Larger baskets run longer\n        out('time').textContent = v \u003e= 20 ? '30 to 36s' : '28 to 33s';\n      } else {\n        var water = v * parseInt(calc.getAttribute('data-cup'), 10);\n        out('input').textContent = v;\n        out('coffee').textContent = Math.round(water \/ ratio) + 'g';\n        out('water').textContent = water \u003e= 1000 ? parseFloat((water \/ 1000).toFixed(2)) + 'L' : water + 'g';\n      }\n    }\n\n    for (var b = 0; b \u003c buttons.length; b++) {\n      buttons[b].addEventListener('click', function () {\n        for (var k = 0; k \u003c buttons.length; k++) buttons[k].setAttribute('aria-pressed', 'false');\n        this.setAttribute('aria-pressed', 'true');\n        ratio = parseFloat(this.getAttribute('data-ratio'));\n        update();\n      });\n    }\n    range.addEventListener('input', update);\n    update();\n  }\n\n  \/\/ One method open at a time (for browsers without \u003cdetails name\u003e support)\n  var items = document.querySelectorAll('.sjcb-brew-item');\n  for (var j = 0; j \u003c items.length; j++) {\n    items[j].addEventListener('toggle', function () {\n      if (!this.open) return;\n      for (var k = 0; k \u003c items.length; k++) if (items[k] !== this) items[k].open = false;\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"Sam James Coffee Bar","offers":[{"title":"NO. WHOLE BEAN PLEASE","offer_id":50696219295814,"sku":null,"price":30.95,"currency_code":"CAD","in_stock":true},{"title":"GROUND - ESPRESSO MACHINE","offer_id":50696219328582,"sku":null,"price":30.95,"currency_code":"CAD","in_stock":true},{"title":"GROUND - ESPRESSO STOVE TOP","offer_id":50696219361350,"sku":null,"price":30.95,"currency_code":"CAD","in_stock":true},{"title":"GROUND - AEROPRESS","offer_id":50696219394118,"sku":null,"price":30.95,"currency_code":"CAD","in_stock":true},{"title":"GROUND - DRIP MACHINE","offer_id":50696219426886,"sku":null,"price":30.95,"currency_code":"CAD","in_stock":true},{"title":"GROUND - POUR OVER","offer_id":50696219459654,"sku":null,"price":30.95,"currency_code":"CAD","in_stock":true},{"title":"GROUND - FRENCH PRESS","offer_id":50696219492422,"sku":null,"price":30.95,"currency_code":"CAD","in_stock":true},{"title":"GROUND - COLD BREW","offer_id":50696219525190,"sku":null,"price":30.95,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0018\/5509\/4854\/files\/KENYAKIAMBU.png?v=1792606212","url":"https:\/\/samjamescoffeebar.com\/products\/kenya-kiambu","provider":"Sam James Coffee Bar","version":"1.0","type":"link"}