{"product_id":"hydroponics-urban-farming-workshop-5th-december-2026","title":"Hydroponics Urban Farming Workshop (5th December 2026)","description":"\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700\u0026amp;family=Space+Grotesk:wght@500;600;700\u0026amp;family=Space+Mono:wght@400;700\u0026amp;family=Big+Shoulders+Display:wght@900\u0026amp;family=Barlow+Semi+Condensed:wght@700\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\u003cstyle\u003e\n        \/* --- Scoped reset --- *\/\n        .cityfarm-workshop-d,\n        .cityfarm-workshop-d *,\n        .cityfarm-workshop-d *::before,\n        .cityfarm-workshop-d *::after {\n            box-sizing: border-box !important;\n            margin: 0 !important;\n            padding: 0 !important;\n        }\n\n        \/*\n         * Defensive neutraliser: kills common Shopify theme leaks.\n         * !important is used on the hardest-to-fight properties\n         * (border \/ background \/ box-shadow), then every component\n         * below re-declares its own styles.\n         *\/\n        .cityfarm-workshop-d h2,\n        .cityfarm-workshop-d h3,\n        .cityfarm-workshop-d h4,\n        .cityfarm-workshop-d p,\n        .cityfarm-workshop-d ul,\n        .cityfarm-workshop-d ol,\n        .cityfarm-workshop-d li,\n        .cityfarm-workshop-d a,\n        .cityfarm-workshop-d span,\n        .cityfarm-workshop-d div,\n        .cityfarm-workshop-d section,\n        .cityfarm-workshop-d article,\n        .cityfarm-workshop-d img,\n        .cityfarm-workshop-d svg,\n        .cityfarm-workshop-d strong,\n        .cityfarm-workshop-d em,\n        .cityfarm-workshop-d iframe,\n        .cityfarm-workshop-d figure,\n        .cityfarm-workshop-d figcaption {\n            border: none !important;\n            background: transparent !important;\n            background-color: transparent !important;\n            box-shadow: none !important;\n            outline: none !important;\n            \/* themes often uppercase or letter-space headings: take these from the wrapper instead *\/\n            font-family: inherit !important;\n            text-transform: inherit !important;\n            letter-spacing: inherit !important;\n            text-shadow: none !important;\n        }\n        .cityfarm-workshop-d a { text-decoration: none !important; }\n        .cityfarm-workshop-d img { border: none !important; max-width: none !important; }\n        .cityfarm-workshop-d ul,\n        .cityfarm-workshop-d ol { list-style: none !important; }\n        .cityfarm-workshop-d iframe { display: block !important; border: none !important; }\n\n        \/* --- Scoped design tokens (unchanged from v2) --- *\/\n        .cityfarm-workshop-d {\n            --hw-ink:        #18281c;   \/* deep greenhouse ink      *\/\n            --hw-ink-soft:   #5b6b5f;   \/* muted body text          *\/\n            --hw-forest:     #0b1f13;   \/* dark grow-room           *\/\n            --hw-forest-2:   #12351f;\n            --hw-leaf:       #3ddc84;   \/* LED grow-light green     *\/\n            --hw-leaf-dim:   #2ba25f;\n            --hw-moss:       #1f6b41;\n            --hw-paper:      #f6f4ed;   \/* warm field-paper         *\/\n            --hw-paper-2:    #efebe0;\n            --hw-white:      #ffffff;\n            --hw-line:       #e4dfd1;\n            --hw-citrus:     #ff9f1c;   \/* CityFarm orange          *\/\n            --hw-citrus-soft:#ffe7c4;\n            --hw-citrus-ink: #8a4b00;   \/* citrus text on light     *\/\n            --hw-lime:       #b5e34d;   \/* hero tag + accent (from option C) *\/\n            --hw-steel:      #3b4741;   \/* rack steel behind the hero labels *\/\n\n            font-family: 'Inter', system-ui, -apple-system, sans-serif !important;\n            font-size: 16px !important; \/* override Shopify's 10px root *\/\n            background: var(--hw-paper) !important;\n            color: var(--hw-ink) !important;\n            line-height: 1.7 !important;\n            text-transform: none !important;\n            letter-spacing: normal !important;\n            padding: 28px 16px 40px !important;\n            -webkit-font-smoothing: antialiased !important;\n            -moz-osx-font-smoothing: grayscale !important;\n            overflow-wrap: break-word !important;\n        }\n\n        .cityfarm-workshop-d .hw-container {\n            max-width: 1080px !important;\n            margin: 0 auto !important;\n        }\n\n        \/* ============================================================\n           1. HERO: the farm floor (from option C)\n           ============================================================ *\/\n        .cityfarm-workshop-d .hw-hero {\n            position: relative !important;\n            display: block !important;\n            height: clamp(460px, 56vw, 600px) !important;\n            overflow: hidden !important;\n            border-radius: 22px 22px 0 0 !important;\n            background: var(--hw-steel) !important;\n        }\n        .cityfarm-workshop-d .hw-hero-photo {\n            position: absolute !important;\n            inset: 0 !important;\n            display: block !important;\n            width: 100% !important;\n            height: 100% !important;\n            object-fit: cover !important;\n            object-position: 62% 30% !important;\n        }\n        .cityfarm-workshop-d .hw-hero::after {\n            content: '' !important;\n            position: absolute !important;\n            inset: 0 !important;\n            pointer-events: none !important;\n            background: linear-gradient(180deg, rgba(13,31,23,0) 25%, rgba(13,31,23,0.55) 55%, rgba(13,31,23,0.94) 100%) !important;\n        }\n        .cityfarm-workshop-d .hw-hero-copy {\n            position: absolute !important;\n            left: 0 !important;\n            right: 0 !important;\n            bottom: 0 !important;\n            z-index: 1 !important;\n            max-width: 720px !important;\n            padding: 0 clamp(20px, 4vw, 44px) clamp(24px, 4vw, 40px) !important;\n        }\n        .cityfarm-workshop-d .hw-hero-tag {\n            display: inline-block !important;\n            margin-bottom: 16px !important;\n            padding: 5px 10px !important;\n            border-radius: 4px !important;\n            background: var(--hw-lime) !important;\n            font-family: 'Barlow Semi Condensed', 'Arial Narrow', sans-serif !important;\n            font-size: 13px !important;\n            font-weight: 700 !important;\n            line-height: 1.3 !important;\n            letter-spacing: 0.1em !important;\n            text-transform: uppercase !important;\n            color: var(--hw-forest) !important;\n        }\n        .cityfarm-workshop-d .hw-hero-title {\n            display: block !important;\n            margin-bottom: 14px !important;\n            font-family: 'Big Shoulders Display', 'Arial Narrow', sans-serif !important;\n            font-size: clamp(44px, 7vw, 84px) !important;\n            font-weight: 900 !important;\n            line-height: 0.9 !important;\n            letter-spacing: 0.005em !important;\n            text-transform: uppercase !important;\n            color: var(--hw-white) !important;\n        }\n        .cityfarm-workshop-d .hw-hero-title span {\n            color: var(--hw-lime) !important;\n            text-transform: none !important;\n        }\n        .cityfarm-workshop-d .hw-hero-sub {\n            display: block !important;\n            max-width: 560px !important;\n            font-size: 17px !important;\n            line-height: 1.55 !important;\n            color: rgba(255,255,255,0.86) !important;\n        }\n\n        \/* --- Shelf labels under the photo --- *\/\n        .cityfarm-workshop-d .hw-labels {\n            display: grid !important;\n            grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\n            gap: 10px !important;\n            margin-bottom: 64px !important;\n            padding: 12px !important;\n            border-radius: 0 0 22px 22px !important;\n            background: var(--hw-steel) !important;\n        }\n        .cityfarm-workshop-d .hw-label {\n            display: block !important;\n            padding: 10px 14px 12px !important;\n            border-radius: 6px !important;\n            background: var(--hw-white) !important;\n        }\n        .cityfarm-workshop-d .hw-label-key {\n            display: block !important;\n            font-family: 'Barlow Semi Condensed', 'Arial Narrow', sans-serif !important;\n            font-size: 12px !important;\n            font-weight: 700 !important;\n            letter-spacing: 0.12em !important;\n            text-transform: uppercase !important;\n            line-height: 1.4 !important;\n            color: var(--hw-ink-soft) !important;\n        }\n        .cityfarm-workshop-d .hw-label-val {\n            display: block !important;\n            font-size: 17px !important;\n            font-weight: 600 !important;\n            line-height: 1.35 !important;\n            color: var(--hw-ink) !important;\n        }\n        .cityfarm-workshop-d .hw-label-val a {\n            color: var(--hw-ink) !important;\n            text-decoration: underline !important;\n            text-decoration-color: var(--hw-moss) !important;\n            text-decoration-thickness: 2px !important;\n            text-underline-offset: 3px !important;\n        }\n        .cityfarm-workshop-d .hw-label-val a:hover { color: var(--hw-moss) !important; }\n\n        \/* ============================================================\n           SECTION HEADERS\n           ============================================================ *\/\n        .cityfarm-workshop-d .hw-section {\n            margin-bottom: 64px !important;\n        }\n        .cityfarm-workshop-d .hw-eyebrow {\n            display: flex !important;\n            align-items: center !important;\n            gap: 10px !important;\n            font-family: 'Space Mono', monospace !important;\n            font-size: 11px !important;\n            font-weight: 700 !important;\n            letter-spacing: 0.16em !important;\n            text-transform: uppercase !important;\n            color: var(--hw-moss) !important;\n            margin-bottom: 12px !important;\n        }\n        .cityfarm-workshop-d .hw-eyebrow::before {\n            content: '' !important;\n            width: 26px !important;\n            height: 2px !important;\n            background: var(--hw-citrus) !important;\n            border-radius: 2px !important;\n        }\n        .cityfarm-workshop-d .hw-section h3 {\n            font-family: 'Space Grotesk', 'Inter', sans-serif !important;\n            font-size: clamp(24px, 3.4vw, 34px) !important;\n            font-weight: 700 !important;\n            letter-spacing: -0.015em !important;\n            line-height: 1.2 !important;\n            color: var(--hw-ink) !important;\n            margin-bottom: 14px !important;\n        }\n        .cityfarm-workshop-d .hw-section-lead {\n            font-size: 15px !important;\n            color: var(--hw-ink-soft) !important;\n            max-width: 640px !important;\n            margin-bottom: 28px !important;\n        }\n\n        \/* ============================================================\n           2. OBJECTIVES: what you'll learn\n           ============================================================ *\/\n        .cityfarm-workshop-d .hw-goals {\n            display: grid !important;\n            grid-template-columns: repeat(5, minmax(0, 1fr)) !important;\n            gap: 14px !important;\n        }\n        .cityfarm-workshop-d .hw-goal {\n            background: var(--hw-white) !important;\n            border: 1px solid var(--hw-line) !important;\n            border-radius: 18px !important;\n            padding: 22px 20px !important;\n            transition: transform 0.25s ease, box-shadow 0.25s ease !important;\n        }\n        .cityfarm-workshop-d .hw-goal:hover {\n            transform: translateY(-3px) !important;\n            box-shadow: 0 16px 34px -18px rgba(24,40,28,0.28) !important;\n        }\n        .cityfarm-workshop-d .hw-goal-icon {\n            width: 42px !important;\n            height: 42px !important;\n            border-radius: 12px !important;\n            background: var(--hw-paper-2) !important;\n            display: flex !important;\n            align-items: center !important;\n            justify-content: center !important;\n            color: var(--hw-moss) !important;\n            margin-bottom: 16px !important;\n        }\n        .cityfarm-workshop-d .hw-goal-icon svg {\n            width: 22px !important;\n            height: 22px !important;\n        }\n        .cityfarm-workshop-d .hw-goal h4 {\n            font-size: 15px !important;\n            font-weight: 700 !important;\n            color: var(--hw-ink) !important;\n            line-height: 1.4 !important;\n            margin-bottom: 6px !important;\n        }\n        .cityfarm-workshop-d .hw-goal p {\n            font-size: 13.5px !important;\n            color: var(--hw-ink-soft) !important;\n            line-height: 1.55 !important;\n        }\n\n        \/* ============================================================\n           3. BUILD IT, TAKE IT HOME: hands-on band + kit card\n           ============================================================ *\/\n        .cityfarm-workshop-d .hw-hands-on {\n            background: linear-gradient(135deg, var(--hw-forest) 0%, var(--hw-forest-2) 60%, #1a4429 100%) !important;\n            border-radius: 22px !important;\n            color: var(--hw-white) !important;\n            padding: clamp(30px, 4.5vw, 48px) clamp(22px, 5vw, 52px) calc(clamp(30px, 4.5vw, 48px) + 60px) !important;\n            display: grid !important;\n            grid-template-columns: 1.1fr 0.9fr !important;\n            gap: 28px !important;\n            align-items: center !important;\n            position: relative !important;\n            overflow: hidden !important;\n        }\n        .cityfarm-workshop-d .hw-hands-on::before {\n            content: '' !important;\n            position: absolute !important;\n            inset: 0 !important;\n            background: radial-gradient(ellipse 60% 80% at 92% 12%, rgba(61,220,132,0.16) 0%, transparent 60%) !important;\n            pointer-events: none !important;\n        }\n        .cityfarm-workshop-d .hw-hands-on .hw-eyebrow { color: var(--hw-leaf) !important; position: relative !important; }\n        .cityfarm-workshop-d .hw-hands-on h3 {\n            color: var(--hw-white) !important;\n            margin-bottom: 12px !important;\n            position: relative !important;\n        }\n        .cityfarm-workshop-d .hw-hands-on p {\n            color: rgba(255,255,255,0.78) !important;\n            font-size: 15px !important;\n            line-height: 1.7 !important;\n            position: relative !important;\n        }\n        .cityfarm-workshop-d .hw-hands-on p strong {\n            color: var(--hw-leaf) !important;\n            font-weight: 600 !important;\n        }\n        .cityfarm-workshop-d .hw-hands-note {\n            background: rgba(255,255,255,0.06) !important;\n            border: 1px solid rgba(255,255,255,0.14) !important;\n            border-radius: 16px !important;\n            padding: 20px 22px !important;\n            position: relative !important;\n        }\n        .cityfarm-workshop-d .hw-hands-note .hw-hn-label {\n            font-family: 'Space Mono', monospace !important;\n            font-size: 10px !important;\n            font-weight: 700 !important;\n            letter-spacing: 0.16em !important;\n            text-transform: uppercase !important;\n            color: var(--hw-citrus) !important;\n            margin-bottom: 8px !important;\n        }\n        .cityfarm-workshop-d .hw-hands-note p {\n            color: rgba(255,255,255,0.9) !important;\n            font-size: 14px !important;\n        }\n\n        \/* kit card overlaps the bottom of the band *\/\n        .cityfarm-workshop-d .hw-kit {\n            position: relative !important;\n            z-index: 2 !important;\n            display: grid !important;\n            grid-template-columns: 0.85fr 1.15fr !important;\n            margin: -60px clamp(10px, 3vw, 36px) 0 !important;\n            background: var(--hw-white) !important;\n            border: 1px solid var(--hw-line) !important;\n            border-radius: 22px !important;\n            overflow: hidden !important;\n            box-shadow: 0 26px 50px -28px rgba(11,31,19,0.45) !important;\n        }\n        .cityfarm-workshop-d .hw-kit-media {\n            background: linear-gradient(160deg, var(--hw-paper-2) 0%, var(--hw-paper) 100%) !important;\n            display: flex !important;\n            align-items: center !important;\n            justify-content: center !important;\n            padding: 30px !important;\n        }\n        .cityfarm-workshop-d .hw-kit-media img {\n            display: block !important;\n            width: 100% !important;\n            max-width: 360px !important;\n            height: auto !important;\n            border-radius: 14px !important;\n            box-shadow: 0 20px 44px -20px rgba(24,40,28,0.35) !important;\n        }\n        .cityfarm-workshop-d .hw-kit-body {\n            padding: clamp(24px, 3.6vw, 40px) !important;\n        }\n        .cityfarm-workshop-d .hw-kit-body h3 { margin-bottom: 6px !important; }\n        .cityfarm-workshop-d .hw-kit-sub {\n            font-size: 14.5px !important;\n            color: var(--hw-ink-soft) !important;\n            margin-bottom: 20px !important;\n        }\n        .cityfarm-workshop-d .hw-kit-items {\n            display: flex !important;\n            flex-direction: column !important;\n            gap: 10px !important;\n        }\n        .cityfarm-workshop-d .hw-kit-item {\n            display: flex !important;\n            align-items: flex-start !important;\n            gap: 12px !important;\n            padding: 11px 14px !important;\n            background: var(--hw-paper) !important;\n            border: 1px solid var(--hw-line) !important;\n            border-radius: 12px !important;\n        }\n        .cityfarm-workshop-d .hw-kit-check {\n            width: 22px !important;\n            height: 22px !important;\n            flex-shrink: 0 !important;\n            margin-top: 2px !important;\n            border-radius: 50% !important;\n            background: var(--hw-citrus-soft) !important;\n            color: var(--hw-citrus) !important;\n            display: flex !important;\n            align-items: center !important;\n            justify-content: center !important;\n        }\n        .cityfarm-workshop-d .hw-kit-check svg { width: 13px !important; height: 13px !important; }\n        .cityfarm-workshop-d .hw-kit-name {\n            display: block !important;\n            font-size: 14.5px !important;\n            font-weight: 600 !important;\n            color: var(--hw-ink) !important;\n            line-height: 1.45 !important;\n        }\n        .cityfarm-workshop-d .hw-kit-name a {\n            color: var(--hw-moss) !important;\n            text-decoration: underline !important;\n            text-underline-offset: 2px !important;\n        }\n        .cityfarm-workshop-d .hw-kit-name a:hover { color: var(--hw-ink) !important; }\n        .cityfarm-workshop-d .hw-kit-qty {\n            display: block !important;\n            font-family: 'Space Mono', monospace !important;\n            font-size: 11px !important;\n            color: var(--hw-ink-soft) !important;\n            letter-spacing: 0.04em !important;\n            line-height: 1.5 !important;\n            margin-top: 2px !important;\n        }\n\n        \/* ============================================================\n           4. SYLLABUS: the seed-to-harvest journey, 1 PM to 5 PM\n           ============================================================ *\/\n        .cityfarm-workshop-d .hw-journey {\n            background: var(--hw-white) !important;\n            border: 1px solid var(--hw-line) !important;\n            border-radius: 22px !important;\n            padding: clamp(26px, 4vw, 44px) !important;\n            box-shadow: 0 12px 34px -20px rgba(24,40,28,0.16) !important;\n        }\n        .cityfarm-workshop-d .hw-time {\n            position: relative !important;\n            display: flex !important;\n            align-items: center !important;\n            gap: 20px !important;\n            font-family: 'Space Mono', monospace !important;\n            font-size: 11px !important;\n            font-weight: 700 !important;\n            letter-spacing: 0.14em !important;\n            text-transform: uppercase !important;\n            color: var(--hw-moss) !important;\n            line-height: 1.4 !important;\n        }\n        .cityfarm-workshop-d .hw-time--start { padding-bottom: 22px !important; }\n        .cityfarm-workshop-d .hw-time--end { color: var(--hw-citrus-ink) !important; }\n        .cityfarm-workshop-d .hw-time-dot {\n            position: relative !important;\n            z-index: 1 !important;\n            width: 40px !important;\n            flex: none !important;\n            display: flex !important;\n            justify-content: center !important;\n        }\n        .cityfarm-workshop-d .hw-time-dot::before {\n            content: '' !important;\n            width: 14px !important;\n            height: 14px !important;\n            border-radius: 50% !important;\n            background: var(--hw-leaf) !important;\n            box-shadow: 0 0 0 4px rgba(61,220,132,0.2) !important;\n        }\n        .cityfarm-workshop-d .hw-time--end .hw-time-dot::before {\n            background: var(--hw-citrus) !important;\n            box-shadow: 0 0 0 4px rgba(255,159,28,0.22) !important;\n        }\n        \/* rail segment from the 1 PM marker down to step 01 *\/\n        .cityfarm-workshop-d .hw-time--start::after {\n            content: '' !important;\n            position: absolute !important;\n            left: 19px !important;\n            top: 50% !important;\n            bottom: 0 !important;\n            width: 2px !important;\n            background: var(--hw-leaf) !important;\n        }\n        .cityfarm-workshop-d .hw-steps {\n            display: flex !important;\n            flex-direction: column !important;\n            position: relative !important;\n        }\n        .cityfarm-workshop-d .hw-step {\n            position: relative !important;\n            display: flex !important;\n            gap: 20px !important;\n            padding-bottom: 30px !important;\n        }\n        .cityfarm-workshop-d .hw-step:last-child { padding-bottom: 22px !important; }\n        \/* rail *\/\n        .cityfarm-workshop-d .hw-step::before {\n            content: '' !important;\n            position: absolute !important;\n            top: 40px !important;\n            bottom: 0 !important;\n            left: 19px !important;\n            width: 2px !important;\n            background: linear-gradient(180deg, var(--hw-leaf) 0%, var(--hw-citrus) 100%) !important;\n        }\n        .cityfarm-workshop-d .hw-step-node {\n            position: relative !important;\n            z-index: 1 !important;\n            width: 40px !important;\n            height: 40px !important;\n            flex-shrink: 0 !important;\n            border-radius: 50% !important;\n            background: var(--hw-paper) !important;\n            border: 2px solid var(--hw-moss) !important;\n            display: flex !important;\n            align-items: center !important;\n            justify-content: center !important;\n            font-family: 'Space Mono', monospace !important;\n            font-size: 13px !important;\n            font-weight: 700 !important;\n            color: var(--hw-moss) !important;\n            line-height: 1 !important;\n        }\n        .cityfarm-workshop-d .hw-step--build .hw-step-node {\n            background: var(--hw-citrus) !important;\n            border-color: var(--hw-citrus) !important;\n            color: var(--hw-forest) !important;\n        }\n        .cityfarm-workshop-d .hw-step-body {\n            padding-top: 6px !important;\n            min-width: 0 !important;\n            flex: 1 1 auto !important;\n        }\n        .cityfarm-workshop-d .hw-step-body h4 {\n            font-size: 16px !important;\n            font-weight: 700 !important;\n            color: var(--hw-ink) !important;\n            line-height: 1.4 !important;\n            margin-bottom: 4px !important;\n        }\n        .cityfarm-workshop-d .hw-step-body h4 .hw-tech {\n            color: var(--hw-moss) !important;\n            font-weight: 600 !important;\n        }\n        .cityfarm-workshop-d .hw-tag {\n            display: inline-block !important;\n            vertical-align: 2px !important;\n            margin-left: 8px !important;\n            padding: 2px 9px !important;\n            border-radius: 999px !important;\n            background: var(--hw-citrus-soft) !important;\n            font-family: 'Space Mono', monospace !important;\n            font-size: 10px !important;\n            font-weight: 700 !important;\n            letter-spacing: 0.1em !important;\n            text-transform: uppercase !important;\n            color: var(--hw-citrus-ink) !important;\n            line-height: 1.6 !important;\n        }\n        .cityfarm-workshop-d .hw-tag--leaf {\n            background: #dff5e8 !important;\n            color: var(--hw-moss) !important;\n        }\n        .cityfarm-workshop-d .hw-step-body p {\n            font-size: 14px !important;\n            color: var(--hw-ink-soft) !important;\n            line-height: 1.6 !important;\n            max-width: 600px !important;\n        }\n        \/* breakdown sub-cards for steps 6 \u0026 7 *\/\n        .cityfarm-workshop-d .hw-breakdown {\n            display: grid !important;\n            grid-template-columns: 1fr !important;\n            gap: 10px !important;\n            margin-top: 14px !important;\n            width: 100% !important;\n            max-width: 760px !important;\n        }\n        .cityfarm-workshop-d .hw-breakdown-item {\n            background: var(--hw-paper) !important;\n            border: 1px solid var(--hw-line) !important;\n            border-radius: 12px !important;\n            padding: 12px 14px !important;\n            display: flex !important;\n            flex-direction: column !important;\n            gap: 3px !important;\n        }\n        .cityfarm-workshop-d .hw-bd-term {\n            display: flex !important;\n            align-items: baseline !important;\n            gap: 8px !important;\n            font-family: 'Space Grotesk', sans-serif !important;\n            font-size: 13.5px !important;\n            font-weight: 700 !important;\n            color: var(--hw-moss) !important;\n            line-height: 1.3 !important;\n        }\n        .cityfarm-workshop-d .hw-bd-step {\n            font-family: 'Space Mono', monospace !important;\n            font-size: 10.5px !important;\n            font-weight: 700 !important;\n            color: var(--hw-citrus-ink) !important;\n        }\n        .cityfarm-workshop-d .hw-bd-desc {\n            font-size: 13px !important;\n            color: var(--hw-ink-soft) !important;\n            line-height: 1.5 !important;\n        }\n\n        \/* ============================================================\n           5. FARM TOUR\n           ============================================================ *\/\n        .cityfarm-workshop-d .hw-tour {\n            display: grid !important;\n            grid-template-columns: 1fr 1fr !important;\n            gap: 40px !important;\n            align-items: center !important;\n        }\n        .cityfarm-workshop-d .hw-tour-media { position: relative !important; }\n        .cityfarm-workshop-d .hw-tour-media img {\n            display: block !important;\n            width: 100% !important;\n            height: auto !important;\n            border-radius: 20px !important;\n            border: 1px solid var(--hw-line) !important;\n            box-shadow: 0 18px 40px -22px rgba(24,40,28,0.3) !important;\n        }\n        .cityfarm-workshop-d .hw-tour-media figcaption {\n            position: absolute !important;\n            left: 14px !important;\n            bottom: 14px !important;\n            display: inline-flex !important;\n            align-items: center !important;\n            gap: 8px !important;\n            padding: 6px 12px !important;\n            border-radius: 999px !important;\n            background: rgba(8,20,12,0.78) !important;\n            font-family: 'Space Mono', monospace !important;\n            font-size: 10px !important;\n            font-weight: 700 !important;\n            letter-spacing: 0.12em !important;\n            text-transform: uppercase !important;\n            color: var(--hw-white) !important;\n            line-height: 1.4 !important;\n        }\n        .cityfarm-workshop-d .hw-tour p {\n            font-size: 15px !important;\n            color: var(--hw-ink-soft) !important;\n            margin-bottom: 14px !important;\n        }\n        .cityfarm-workshop-d .hw-tour p:last-child { margin-bottom: 0 !important; }\n\n        \/* ============================================================\n           6. VIDEO\n           ============================================================ *\/\n        .cityfarm-workshop-d .hw-video-row {\n            display: grid !important;\n            grid-template-columns: repeat(2, minmax(0, 340px)) !important;\n            justify-content: center !important;\n            gap: 22px !important;\n            align-items: start !important;\n        }\n        .cityfarm-workshop-d .hw-video-wrap {\n            border-radius: 20px !important;\n            overflow: hidden !important;\n            border: 1px solid var(--hw-line) !important;\n            box-shadow: 0 18px 40px -22px rgba(24,40,28,0.3) !important;\n            background: var(--hw-forest) !important;\n        }\n        .cityfarm-workshop-d .hw-video-wrap iframe {\n            width: 100% !important;\n            height: auto !important;\n            aspect-ratio: 9 \/ 16 !important;\n            border-radius: 0 !important;\n        }\n\n        \/* ============================================================\n           7. TERMS \u0026 CONDITIONS\n           ============================================================ *\/\n        .cityfarm-workshop-d .hw-terms {\n            background: var(--hw-white) !important;\n            border: 1px solid var(--hw-line) !important;\n            border-radius: 18px !important;\n            padding: clamp(24px, 3.5vw, 34px) !important;\n        }\n        .cityfarm-workshop-d .hw-terms h3 {\n            font-family: 'Space Grotesk', 'Inter', sans-serif !important;\n            font-size: 18px !important;\n            font-weight: 700 !important;\n            color: var(--hw-ink) !important;\n            margin-bottom: 14px !important;\n        }\n        .cityfarm-workshop-d .hw-terms ol { display: flex !important; flex-direction: column !important; gap: 10px !important; }\n        .cityfarm-workshop-d .hw-terms li {\n            display: flex !important;\n            gap: 12px !important;\n            font-size: 13.5px !important;\n            color: var(--hw-ink-soft) !important;\n            line-height: 1.6 !important;\n        }\n        .cityfarm-workshop-d .hw-terms li .hw-tn {\n            font-family: 'Space Mono', monospace !important;\n            font-size: 12px !important;\n            font-weight: 700 !important;\n            color: var(--hw-citrus-ink) !important;\n            flex-shrink: 0 !important;\n            line-height: 1.6 !important;\n        }\n\n        \/* ============================================================\n           8. CLOSING BAND\n           ============================================================ *\/\n        .cityfarm-workshop-d .hw-close {\n            margin-top: 40px !important;\n            background: linear-gradient(120deg, var(--hw-citrus) 0%, #ffb84d 100%) !important;\n            border-radius: 20px !important;\n            padding: clamp(24px, 4vw, 36px) clamp(22px, 4vw, 44px) !important;\n            display: flex !important;\n            align-items: center !important;\n            justify-content: space-between !important;\n            flex-wrap: wrap !important;\n            gap: 18px 28px !important;\n        }\n        .cityfarm-workshop-d .hw-close h3 {\n            font-family: 'Space Grotesk', sans-serif !important;\n            font-size: clamp(22px, 3vw, 30px) !important;\n            font-weight: 700 !important;\n            letter-spacing: -0.015em !important;\n            line-height: 1.2 !important;\n            color: #3a2400 !important;\n            margin-bottom: 6px !important;\n        }\n        .cityfarm-workshop-d .hw-close p {\n            font-size: 14.5px !important;\n            font-weight: 500 !important;\n            color: rgba(58,36,0,0.8) !important;\n            line-height: 1.6 !important;\n        }\n        .cityfarm-workshop-d .hw-close-btn {\n            display: inline-flex !important;\n            align-items: center !important;\n            gap: 8px !important;\n            padding: 13px 22px !important;\n            border-radius: 999px !important;\n            background: var(--hw-forest) !important;\n            font-size: 14.5px !important;\n            font-weight: 600 !important;\n            color: var(--hw-white) !important;\n            line-height: 1.3 !important;\n            white-space: nowrap !important;\n            transition: transform 0.2s ease, box-shadow 0.2s ease !important;\n        }\n        .cityfarm-workshop-d .hw-close-btn:hover {\n            transform: translateY(-2px) !important;\n            box-shadow: 0 10px 22px -10px rgba(11,31,19,0.6) !important;\n        }\n        .cityfarm-workshop-d .hw-close-btn svg { width: 16px !important; height: 16px !important; }\n\n        \/* --- Motion --- *\/\n        @media (prefers-reduced-motion: reduce) {\n            .cityfarm-workshop-d .hw-goal,\n            .cityfarm-workshop-d .hw-close-btn { transition: none !important; }\n        }\n\n        \/* --- Focus visible (accessibility) --- *\/\n        .cityfarm-workshop-d a:focus-visible {\n            outline: 2px solid var(--hw-moss) !important;\n            outline-offset: 3px !important;\n            border-radius: 4px !important;\n        }\n        .cityfarm-workshop-d .hw-close a:focus-visible {\n            outline-color: var(--hw-white) !important;\n        }\n\n        \/* ============================================================\n           RESPONSIVE\n           ============================================================ *\/\n        @media (max-width: 900px) {\n            .cityfarm-workshop-d .hw-goals { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }\n            .cityfarm-workshop-d .hw-goal:last-child { grid-column: 1 \/ -1 !important; }\n        }\n        @media (max-width: 760px) {\n            .cityfarm-workshop-d .hw-labels { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }\n            .cityfarm-workshop-d .hw-hands-on { grid-template-columns: 1fr !important; }\n            .cityfarm-workshop-d .hw-kit {\n                grid-template-columns: 1fr !important;\n                margin: -60px 10px 0 !important;\n            }\n            .cityfarm-workshop-d .hw-kit-media { padding: 24px !important; }\n            .cityfarm-workshop-d .hw-tour { grid-template-columns: 1fr !important; gap: 24px !important; }\n            .cityfarm-workshop-d .hw-video-row { grid-template-columns: minmax(0, 340px) !important; }\n        }\n        @media (max-width: 520px) {\n            .cityfarm-workshop-d .hw-hero { height: 520px !important; }\n            .cityfarm-workshop-d .hw-close { flex-direction: column !important; align-items: flex-start !important; }\n        }\n        @media (max-width: 480px) {\n            .cityfarm-workshop-d .hw-goals { grid-template-columns: 1fr !important; }\n        }\n        @media (min-width: 640px) {\n            .cityfarm-workshop-d .hw-breakdown {\n                grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;\n            }\n        }\n    \u003c\/style\u003e\n\u003cdiv class=\"cityfarm-workshop-d\"\u003e\n\u003cdiv class=\"hw-container\"\u003e\n\n\u003c!-- ================= HERO ================= --\u003e\n\u003csection class=\"hw-hero\" aria-labelledby=\"hw-d-title\"\u003e\n\u003cimg class=\"hw-hero-photo\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1129\/3552\/files\/1716014193151_2.jpg?v=1785867302\u0026amp;width=1400\" alt=\"CityFarm instructor explaining the plant factory racks to workshop participants\"\u003e\n\u003cdiv class=\"hw-hero-copy\"\u003e\n\u003cspan class=\"hw-hero-tag\"\u003eHydroponics workshop · Half day\u003c\/span\u003e\n\u003ch2 class=\"hw-hero-title\" id=\"hw-d-title\"\u003eLearn hydroponics on a working farm. \u003cspan\u003eLeave with your own.\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"hw-hero-sub\"\u003eFour hours inside CityFarm Malaysia's plant factory. You learn the theory, see it running at scale, and build a 10-plant system that goes home with you.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cdiv class=\"hw-labels\"\u003e\n\u003cdiv class=\"hw-label\"\u003e\n\u003cspan class=\"hw-label-key\"\u003eDate\u003c\/span\u003e\u003cspan class=\"hw-label-val\"\u003eSat, 5 Dec 2026\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"hw-label\"\u003e\n\u003cspan class=\"hw-label-key\"\u003eTime\u003c\/span\u003e\u003cspan class=\"hw-label-val\"\u003e1:00 – 5:00 PM\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"hw-label\"\u003e\n\u003cspan class=\"hw-label-key\"\u003eVenue\u003c\/span\u003e\u003cspan class=\"hw-label-val\"\u003e\u003ca href=\"https:\/\/www.google.com.my\/maps\/place\/CityFarm+Malaysia\/@3.036508,101.6988753,17z\/data=!3m1!4b1!4m5!3m4!1s0x31cc4aac781ef4cd:0x452669057ae7619b!8m2!3d3.036508!4d101.701064?hl=en\" rel=\"noopener\" target=\"_blank\"\u003eCityFarm Malaysia ↗\u003c\/a\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"hw-label\"\u003e\n\u003cspan class=\"hw-label-key\"\u003eLanguage\u003c\/span\u003e\u003cspan class=\"hw-label-val\"\u003eEnglish\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ================= OBJECTIVES ================= --\u003e\n\u003csection class=\"hw-section\" aria-labelledby=\"hw-d-goals-title\"\u003e\n\u003cdiv class=\"hw-eyebrow\"\u003eNew syllabus\u003c\/div\u003e\n\u003ch3 id=\"hw-d-goals-title\"\u003eWhat you'll learn\u003c\/h3\u003e\n\u003cp class=\"hw-section-lead\"\u003eTaught by the team that runs our indoor farm every day.\u003c\/p\u003e\n\u003cdiv class=\"hw-goals\"\u003e\n\u003carticle class=\"hw-goal\"\u003e\n\u003cdiv class=\"hw-goal-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 2.7c3.5 3.9 6 6.9 6 10.2a6 6 0 1 1-12 0c0-3.3 2.5-6.3 6-10.2Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eHydroponics fundamentals\u003c\/h4\u003e\n\u003cp\u003eHow soilless farming works and why plants thrive without soil.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"hw-goal\"\u003e\n\u003cdiv class=\"hw-goal-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"4\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 2v2.5M12 19.5V22M2 12h2.5M19.5 12H22M4.9 4.9l1.8 1.8M17.3 17.3l1.8 1.8M19.1 4.9l-1.8 1.8M6.7 17.3l-1.8 1.8\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eControlled environment agriculture\u003c\/h4\u003e\n\u003cp\u003eHow light, climate and CO₂ are orchestrated inside a modern plant factory.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"hw-goal\"\u003e\n\u003cdiv class=\"hw-goal-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 8v8M8 12h8\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eBuild your own system\u003c\/h4\u003e\n\u003cp\u003eHands-on assembly training: frame, pipes, pump and everything in between.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"hw-goal\"\u003e\n\u003cdiv class=\"hw-goal-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M3 12h18M12 3a14.5 14.5 0 0 1 0 18 14.5 14.5 0 0 1 0-18Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eThe industry today\u003c\/h4\u003e\n\u003cp\u003eCurrent trends in hydroponics and the international urban-farming landscape.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"hw-goal\"\u003e\n\u003cdiv class=\"hw-goal-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"1.5\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 21v-5h6v5M8 7.5h.01M12 7.5h.01M16 7.5h.01M8 11.5h.01M12 11.5h.01M16 11.5h.01\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePlant factory site visit\u003c\/h4\u003e\n\u003cp\u003eA guided walkthrough of our indoor, climate-controlled growing facility.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= BUILD IT, TAKE IT HOME ================= --\u003e\n\u003csection class=\"hw-section\" aria-labelledby=\"hw-d-hands-title\"\u003e\n\u003cdiv class=\"hw-hands-on\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"hw-eyebrow\"\u003eHands-on by design\u003c\/div\u003e\n\u003ch3 id=\"hw-d-hands-title\"\u003eGet your hands properly dirty\u003c\/h3\u003e\n\u003cp\u003eNo slide-deck marathons here. You'll \u003cstrong\u003escrew the frame, glue the pipes and raise your system from scratch\u003c\/strong\u003e, the exact build you'll be running at home by dinner time.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"hw-hands-note\"\u003e\n\u003cdiv class=\"hw-hn-label\"\u003eWhy hands-on?\u003c\/div\u003e\n\u003cp\u003ePeople who build their own system remember how it works. You'll leave able to troubleshoot, maintain and expand it, not just describe it.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"hw-kit\"\u003e\n\u003cdiv class=\"hw-kit-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1129\/3552\/files\/11_13_480x480.png?v=1641813405\" alt=\"CityFarm Mini Waterfall Home Garden: the system you build and take home\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"hw-kit-body\"\u003e\n\u003cdiv class=\"hw-eyebrow\"\u003eWhat's included in the fee\u003c\/div\u003e\n\u003ch3\u003eWalk out with a working farm\u003c\/h3\u003e\n\u003cp class=\"hw-kit-sub\"\u003eEvery participant takes home a complete starter kit.\u003c\/p\u003e\n\u003cul class=\"hw-kit-items\"\u003e\n\u003cli class=\"hw-kit-item\"\u003e\n\u003cspan class=\"hw-kit-check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 12.5l4.5 4.5L19 7.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"hw-kit-name\"\u003e\u003ca href=\"https:\/\/cityfarm.my\/products\/cityfarm-mini-waterfall-home-garden\" rel=\"noopener\" target=\"_blank\"\u003eCityFarm Mini Waterfall Home Garden\u003c\/a\u003e\u003c\/span\u003e\u003cspan class=\"hw-kit-qty\"\u003e1 set: the system you build during the session\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-kit-item\"\u003e\n\u003cspan class=\"hw-kit-check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 12.5l4.5 4.5L19 7.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"hw-kit-name\"\u003e\u003ca href=\"https:\/\/cityfarm.my\/products\/hydroponics-a-b-liquid-fertilizer-for-leafy-greens-500ml\" rel=\"noopener\" target=\"_blank\"\u003e500mL Hydroponics A \u0026amp; B Liquid Fertilizer for Leafy Greens\u003c\/a\u003e\u003c\/span\u003e\u003cspan class=\"hw-kit-qty\"\u003e1 set: nutrients for your first cycles\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-kit-item\"\u003e\n\u003cspan class=\"hw-kit-check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 12.5l4.5 4.5L19 7.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"hw-kit-name\"\u003eOasis Grower Solutions Horticubes\u003c\/span\u003e\u003cspan class=\"hw-kit-qty\"\u003e1 box · 154 cells: your growing medium\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-kit-item\"\u003e\n\u003cspan class=\"hw-kit-check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 12.5l4.5 4.5L19 7.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"hw-kit-name\"\u003e\u003ca href=\"https:\/\/cityfarm.my\/products\/3-in-1-function-tds-ec-meter-water-measurement-tool\" rel=\"noopener\" target=\"_blank\"\u003e3-in-1 TDS \/ EC Meter\u003c\/a\u003e\u003c\/span\u003e\u003cspan class=\"hw-kit-qty\"\u003e1 pc: measure and monitor your nutrient solution\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-kit-item\"\u003e\n\u003cspan class=\"hw-kit-check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 12.5l4.5 4.5L19 7.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"hw-kit-name\"\u003eSeeds\u003c\/span\u003e\u003cspan class=\"hw-kit-qty\"\u003e1 packet: sow on day one\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= SYLLABUS \/ JOURNEY ================= --\u003e\n\u003csection class=\"hw-section\" aria-labelledby=\"hw-d-journey-title\"\u003e\n\u003cdiv class=\"hw-eyebrow\"\u003eYour syllabus\u003c\/div\u003e\n\u003ch3 id=\"hw-d-journey-title\"\u003eOne afternoon, seed to harvest\u003c\/h3\u003e\n\u003cp class=\"hw-section-lead\"\u003eThe curriculum follows the life of a crop: understand the farm, build the system, and grow something real before you head home.\u003c\/p\u003e\n\u003cdiv class=\"hw-journey\"\u003e\n\u003cdiv class=\"hw-time hw-time--start\"\u003e\n\u003cspan class=\"hw-time-dot\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003cspan\u003e1:00 PM · Workshop starts\u003c\/span\u003e\n\u003c\/div\u003e\n\u003col class=\"hw-steps\"\u003e\n\u003cli class=\"hw-step\"\u003e\n\u003cspan class=\"hw-step-node\"\u003e01\u003c\/span\u003e\n\u003cdiv class=\"hw-step-body\"\u003e\n\u003ch4\u003eUrban farm classification\u003c\/h4\u003e\n\u003cp\u003eHow city farms are built and categorised, from balcony setups to full-scale plant factories.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-step\"\u003e\n\u003cspan class=\"hw-step-node\"\u003e02\u003c\/span\u003e\n\u003cdiv class=\"hw-step-body\"\u003e\n\u003ch4\u003eTypes of hydroponics\u003c\/h4\u003e\n\u003cp\u003eThe systems that run the world's soilless farms: NFT, DWC, aeroponics and more.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-step hw-step--build\"\u003e\n\u003cspan class=\"hw-step-node\"\u003e03\u003c\/span\u003e\n\u003cdiv class=\"hw-step-body\"\u003e\n\u003ch4\u003eBuild your own hydroponics system \u003cspan class=\"hw-tag\"\u003eHands-on\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003cp\u003eAssemble a working system by hand: screw the frame, glue the pipes, wire it up from scratch.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-step\"\u003e\n\u003cspan class=\"hw-step-node\"\u003e04\u003c\/span\u003e\n\u003cdiv class=\"hw-step-body\"\u003e\n\u003ch4\u003eDemo farm tour \u003cspan class=\"hw-tag hw-tag--leaf\"\u003eSite visit\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003cp\u003eWalk through our climate-controlled plant factory and watch a commercial grow in operation.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-step\"\u003e\n\u003cspan class=\"hw-step-node\"\u003e05\u003c\/span\u003e\n\u003cdiv class=\"hw-step-body\"\u003e\n\u003ch4\u003eOperating your hydroponics system\u003c\/h4\u003e\n\u003cp\u003eFeeding, monitoring and maintaining your system day to day, so it keeps growing after the workshop.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-step\"\u003e\n\u003cspan class=\"hw-step-node\"\u003e06\u003c\/span\u003e\n\u003cdiv class=\"hw-step-body\"\u003e\n\u003ch4\u003eTechnical session: \u003cspan class=\"hw-tech\"\u003elight, CO₂, medium, nutrients, pH\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003cp\u003eThe science that decides a good harvest, and how to read it in your own setup.\u003c\/p\u003e\n\u003cul class=\"hw-breakdown\"\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003eLight\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eSpectrum, intensity and photoperiod.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003eCO₂\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eThe carbon source of photosynthesis.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003eGrowing medium\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eThe soilless material that anchors roots and holds moisture.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003eNutrients\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eThe dissolved mineral feed plants absorb, mixed as A \u0026amp; B solutions to the right EC.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003epH\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eThe acid\/alkaline balance that keeps nutrients available.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-step\"\u003e\n\u003cspan class=\"hw-step-node\"\u003e07\u003c\/span\u003e\n\u003cdiv class=\"hw-step-body\"\u003e\n\u003ch4\u003eThe growing process, sowing to harvest\u003c\/h4\u003e\n\u003cp\u003eFollow the full crop cycle from seed to plate, and know what to do at every stage.\u003c\/p\u003e\n\u003col class=\"hw-breakdown\"\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003e\u003cspan class=\"hw-bd-step\"\u003e7.1\u003c\/span\u003eSowing\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eStarting the crop by placing seeds into the growing medium and keeping them moist, warm and dark until they germinate.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003e\u003cspan class=\"hw-bd-step\"\u003e7.2\u003c\/span\u003eTransplant\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eMoving seedlings into the system once roots emerge, spaced so each plant gets light and airflow.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003e\u003cspan class=\"hw-bd-step\"\u003e7.3\u003c\/span\u003eMonitoring\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eChecking EC, pH, water level and plant health periodically and adjusting before small issues become problems.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003e\u003cspan class=\"hw-bd-step\"\u003e7.4\u003c\/span\u003eHarvest\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eCutting crops at peak size and freshness, then cleaning and preparing them for the table.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"hw-breakdown-item\"\u003e\n\u003cspan class=\"hw-bd-term\"\u003e\u003cspan class=\"hw-bd-step\"\u003e7.5\u003c\/span\u003eMaintenance\u003c\/span\u003e\u003cspan class=\"hw-bd-desc\"\u003eKeeping the system healthy between cycles. Refilling nutrients, cleaning channels and preventing algae and pests.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cdiv class=\"hw-time hw-time--end\"\u003e\n\u003cspan class=\"hw-time-dot\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003cspan\u003e5:00 PM · Head home with your system\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= FARM TOUR ================= --\u003e\n\u003csection class=\"hw-section\" aria-labelledby=\"hw-d-tour-title\"\u003e\n\u003cdiv class=\"hw-tour\"\u003e\n\u003cfigure class=\"hw-tour-media\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1129\/3552\/files\/IMG_0045_2_480x480.jpg?v=1669379677\" alt=\"Inside CityFarm's climate-controlled indoor plant factory\" loading=\"lazy\"\u003e\n\u003cfigcaption\u003eCityFarm demo plant factory\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"hw-eyebrow\"\u003eDemo farm tour\u003c\/div\u003e\n\u003ch3 id=\"hw-d-tour-title\"\u003eStep inside a real plant factory\u003c\/h3\u003e\n\u003cp\u003eTour our climate-controlled hydroponic farm and see how a controlled environment farm operates day in, day out.\u003c\/p\u003e\n\u003cp\u003eFrom irrigation schedules to climate management, you'll see the systems you just learned about running at production scale.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= VIDEO ================= --\u003e\n\u003csection class=\"hw-section\" aria-labelledby=\"hw-d-video-title\"\u003e\n\u003cdiv class=\"hw-eyebrow\"\u003eSee it in action\u003c\/div\u003e\n\u003ch3 id=\"hw-d-video-title\"\u003eA taste of the day\u003c\/h3\u003e\n\u003cp class=\"hw-section-lead\"\u003eWatch the experience that's waiting for you at CityFarm.\u003c\/p\u003e\n\u003cdiv class=\"hw-video-row\"\u003e\n\u003cdiv class=\"hw-video-wrap\"\u003e\u003ciframe src=\"https:\/\/www.youtube.com\/embed\/w1oFh-Bln9w?si=v1dznsmA22yUsuj9\" title=\"CityFarm hydroponics workshop video preview\" loading=\"lazy\" allowfullscreen\u003e\u003c\/iframe\u003e\u003c\/div\u003e\n\u003cdiv class=\"hw-video-wrap\"\u003e\u003ciframe src=\"https:\/\/www.facebook.com\/plugins\/video.php?height=604\u0026amp;href=https%3A%2F%2Fwww.facebook.com%2Freel%2F1505663108273994%2F\u0026amp;show_text=false\u0026amp;width=340\u0026amp;t=0\" title=\"CityFarm hydroponics workshop video, shared on Facebook\" scrolling=\"no\" allowfullscreen allow=\"autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share\" loading=\"lazy\"\u003e\u003c\/iframe\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= TERMS ================= --\u003e\n\u003csection class=\"hw-terms\" aria-labelledby=\"hw-d-terms-title\"\u003e\n\u003ch3 id=\"hw-d-terms-title\"\u003eTerms \u0026amp; conditions\u003c\/h3\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cspan class=\"hw-tn\"\u003e01\u003c\/span\u003e \u003cspan\u003ePayment is non-refundable and cannot be rescheduled if the participant fails to attend the course on the scheduled date.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"hw-tn\"\u003e02\u003c\/span\u003e \u003cspan\u003eThe minimum number of registrations is 4 participants. If fewer than 4 register 3 days before the course date, we will notify you of the cancellation and process a full refund to all paid participants.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= CLOSING ================= --\u003e\n\u003csection class=\"hw-close\" aria-labelledby=\"hw-d-close-title\"\u003e\n\u003cdiv\u003e\n\u003ch3 id=\"hw-d-close-title\"\u003eReady to get growing?\u003c\/h3\u003e\n\u003cp\u003eSat, 5 Dec 2026 · 1:00 – 5:00 PM · CityFarm Malaysia\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ca class=\"hw-close-btn\" href=\"https:\/\/www.google.com.my\/maps\/place\/CityFarm+Malaysia\/@3.036508,101.6988753,17z\/data=!3m1!4b1!4m5!3m4!1s0x31cc4aac781ef4cd:0x452669057ae7619b!8m2!3d3.036508!4d101.701064?hl=en\" rel=\"noopener\" target=\"_blank\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z\"\u003e\u003c\/path\u003e\u003ccircle cx=\"12\" cy=\"10\" r=\"3\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e Get directions\u003c\/a\u003e\n\u003c\/section\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n","brand":"CityFarm","offers":[{"title":"Default Title","offer_id":67765727166655,"sku":null,"price":399.9,"currency_code":"MYR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1129\/3552\/files\/image-1793011924859.jpg?v=1793011944","url":"https:\/\/cityfarm.my\/products\/hydroponics-urban-farming-workshop-5th-december-2026","provider":"CityFarm Malaysia","version":"1.0","type":"link"}