{"product_id":"espresso-tasting-workshop","title":"Espresso \u0026 Tasting","description":"\u003ch2 class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003e\u003cstrong\u003eEspresso \u0026amp; Tasting Workshop\u003c\/strong\u003e\u003c\/h2\u003e\n\u003ch2 class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003e\u003cem\u003eSimple, reliable espresso foundation workshop for home baristas and new baristas\u003c\/em\u003e\u003c\/h2\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eThis workshop is the starting point for anyone who wants to understand espresso in a clear, approachable way. If you’re getting inconsistent shots at home or you’re new behind the bar,\u003cspan\u003e \u003c\/span\u003e\u003cstrong\u003eEspresso \u0026amp; Tasting\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003ewill help you build a solid base before diving into milk steaming and latte art.\u003c\/p\u003e\n\u003ch4 class=\"mb-2 mt-4 font-display font-semimedium text-base first:mt-0\"\u003eWho this workshop is for\u003c\/h4\u003e\n\u003cul class=\"marker:text-quiet list-disc\"\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eHome espresso users who want more consistent, better-tasting shots.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eNew baristas or café staff who need a structured introduction to espresso.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eCoffee enthusiasts who prefer a focused, espresso-only session without milk or latte art yet.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eNo technical background is required. A curiosity about coffee and an interest in learning are enough.\u003c\/p\u003e\n\u003ch4 class=\"mb-2 mt-4 font-display font-semimedium text-base first:mt-0\"\u003eWhat you’ll learn\u003c\/h4\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003e\u003cstrong\u003e1. What espresso actually is\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul class=\"marker:text-quiet list-disc\"\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eA clear explanation of what makes espresso different from other brews.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eSimple concepts: dose, yield, brew time, and how they relate to taste.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eHow grind size and recipe affect sweetness, acidity, and bitterness.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003e\u003cstrong\u003e2. A simple, repeatable espresso recipe\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul class=\"marker:text-quiet list-disc\"\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eA reliable starting recipe you can use on most machines.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eHow to grind, dose, distribute and tamp in a consistent way.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eBasic use of scales and timers (without overwhelming you).\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003e\u003cstrong\u003e3. Tasting and troubleshooting shots\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul class=\"marker:text-quiet list-disc\"\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eGuided tasting of under-extracted, over-extracted and well-balanced shots.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eHow to connect what you taste in the cup to practical adjustments.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eEasy troubleshooting steps when shots are sour, bitter or flat.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003e\u003cstrong\u003e4. Workflow and care for your machine\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul class=\"marker:text-quiet list-disc\"\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eA clean, organised workflow from prep to shot.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eBasic cleaning and care habits that protect your machine and your coffee quality.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eSimple tips for getting the best out of your home or café equipment.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eThis class focuses on espresso only. Milk steaming and latte art are taught separately in \u003ca title=\"Milk Steaming \u0026amp; Latte Art Workshop | Moving Coffee Roastery\" href=\"https:\/\/www.movingcoffee.info\/collections\/workshop\/products\/latte-art-workshop\"\u003e\u003cstrong\u003eMilk Steaming \u0026amp; Latte Art Workshop\u003c\/strong\u003e\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch4 class=\"mb-2 mt-4 font-display font-semimedium text-base first:mt-0\"\u003eFormat\u003c\/h4\u003e\n\u003cul class=\"marker:text-quiet list-disc\"\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003e\u003cstrong\u003eDuration:\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003e2 hours\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003e\u003cstrong\u003eClass size:\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003eMaximum 1–3 participants for lots of hands-on time\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003e\u003cstrong\u003eLocation:\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003eMoving Coffee Roastery, Richmond, BC\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eYou will:\u003c\/p\u003e\n\u003cul class=\"marker:text-quiet list-disc\"\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eWork with professional equipment in our roastery.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003ePull multiple shots with direct feedback from the instructor.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eTaste together and discuss what you’re experiencing in the cup.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch4 class=\"mb-2 mt-4 font-display font-semimedium text-base first:mt-0\"\u003eWhat you’ll leave with\u003c\/h4\u003e\n\u003cul class=\"marker:text-quiet list-disc\"\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eA straightforward espresso routine you can repeat at home or at work.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eThe ability to taste your espresso and know what to adjust next.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [\u0026amp;\u0026gt;p]:pt-0 [\u0026amp;\u0026gt;p]:mb-2 [\u0026amp;\u0026gt;p]:my-0\" style=\"box-sizing: border-box; border-width: 0px; border-style: solid; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px;\"\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eA concise\u003cspan\u003e \u003c\/span\u003e\u003cstrong\u003eEspresso Foundations\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003eguide with your starting recipes and troubleshooting notes.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"box-sizing: border-box; scrollbar-width: initial; --tw-border-spacing-x: undefined; --tw-border-spacing-y: undefined; --tw-translate-x: undefined; --tw-translate-y: undefined; --tw-rotate: undefined; --tw-skew-x: undefined; --tw-skew-y: undefined; --tw-scale-x: undefined; --tw-scale-y: undefined; --tw-scroll-snap-strictness: undefined; --tw-ring-offset-width: undefined; --tw-ring-offset-color: undefined; --tw-ring-color: undefined; --tw-ring-offset-shadow: undefined; --tw-ring-shadow: undefined; --tw-shadow: undefined; --tw-shadow-colored: undefined; margin-top: 0px; margin-bottom: 0px; padding-inline-start: 0.375em; padding-top: 0px; padding-bottom: 0px; border-width: 0px; border-color: oklch(0.3039 0.04 213.679993 \/ 0.16); border-style: solid;\"\u003e \u003c\/p\u003e\n\u003ch4 class=\"mb-2 mt-4 font-display font-semimedium text-base first:mt-0\"\u003ePerfect pairing: Milk Steaming \u0026amp; Latte Art\u003c\/h4\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eOnce you’re comfortable pulling shots, continue with our\u003cspan\u003e \u003c\/span\u003e\u003ca title=\"Milk Steaming \u0026amp; Latte Art Workshop | Moving Coffee Roastery\" href=\"https:\/\/www.movingcoffee.info\/collections\/workshop\/products\/latte-art-workshop\"\u003e\u003cstrong\u003eMilk Steaming \u0026amp; Latte Art Workshop\u003c\/strong\u003e\u003c\/a\u003e. Together, the two classes form a friendly, step-by-step path from first espresso to café-style milk drinks and simple latte art.\u003c\/p\u003e\n\u003cp\u003e\u003cspan style=\"color: #999999;\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003e\u003cspan style=\"color: #999999;\"\u003eMoving Coffee Roastery holds final rights\u003c\/span\u003e\u003c\/em\u003e\u003c\/p\u003e","brand":"MOVING COFFEE ROASTERY","offers":[{"title":"Beginner","offer_id":13251033732,"sku":"WS1603-01","price":249.0,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0194\/3161\/files\/IMG_0424.jpg?v=1697048858","url":"https:\/\/www.movingcoffee.info\/products\/espresso-tasting-workshop","provider":"MOVING COFFEE ROASTERY","version":"1.0","type":"link"}