[
    {
      "id": "cp-basics",
      "title": "Cold Process Basics",
      "category": "Beginner",
      "level": "Beginner",
      "duration": "3h",
      "price": 79,
      "rating": 4.7,
      "seats": 18,
      "sku": "FMA-CPB-001",
      "tags": ["cold process", "trace", "beginner"],
      "shortDescription": "Start safely with lye handling, temperatures, and your first balanced batch.",
      "longDescription": "Learn essential PPE, accurate scaling, lye solution mixing, light vs. medium trace, and basic fragrance integration. Includes a printable checklist for your first three batches."
    },
    {
      "id": "lye-safety",
      "title": "Lye Safety and Lab Setup",
      "category": "Safety",
      "level": "Beginner",
      "duration": "2h",
      "price": 49,
      "rating": 4.9,
      "seats": 25,
      "sku": "FMA-LYE-002",
      "tags": ["safety", "PPE", "workspace"],
      "shortDescription": "Master safe handling, ventilation, labeling, and cleanup.",
      "longDescription": "We cover sodium hydroxide properties, dilution practices, exothermic behavior, storage, and clear labeling standards. Set up a reliable workflow and incident plan."
    },
    {
      "id": "adv-swirls",
      "title": "Advanced Swirl Techniques",
      "category": "Technique",
      "level": "Advanced",
      "duration": "4h",
      "price": 119,
      "rating": 4.8,
      "seats": 6,
      "sku": "FMA-SWL-003",
      "tags": ["swirl", "design", "color"],
      "shortDescription": "Achieve feathered, hanger, and Taiwan swirls with precision.",
      "longDescription": "Control trace, temperature, and batter viscosity to create consistent, repeatable swirls. Practice batching strategies and color dispersion for crisp lines."
    },
    {
      "id": "nat-color",
      "title": "Natural Colorants & Clays",
      "category": "Technique",
      "level": "Intermediate",
      "duration": "3.5h",
      "price": 99,
      "rating": 4.6,
      "seats": 12,
      "sku": "FMA-CLY-004",
      "tags": ["color", "botanicals", "clay"],
      "shortDescription": "Tint soaps with clays and botanicals for stable, earthy hues.",
      "longDescription": "Discover usage rates, pre-mixing methods, and light-stability considerations for clays, herbs, and plant powders. Includes a color log template."
    },
    {
      "id": "precision-layering",
      "title": "Precision Layering",
      "category": "Technique",
      "level": "Intermediate",
      "duration": "3h",
      "price": 95,
      "rating": 4.5,
      "seats": 10,
      "sku": "FMA-LAY-005",
      "tags": ["layers", "design"],
      "shortDescription": "Create clean layers by managing trace and pour timing.",
      "longDescription": "Practice controlled emulsification, temperature staging, and barrier techniques for sharp layers across multiple pours."
    },
    {
      "id": "embed-art",
      "title": "Embed Design Essentials",
      "category": "Technique",
      "level": "Advanced",
      "duration": "4h",
      "price": 129,
      "rating": 4.7,
      "seats": 8,
      "sku": "FMA-EMB-006",
      "tags": ["embeds", "design", "molds"],
      "shortDescription": "Build custom embeds and suspend them without deformation.",
      "longDescription": "Balance acceleration risks, anchor points, and pour temperature to keep embeds crisp and centered."
    },
    {
      "id": "zero-waste",
      "title": "Zero-Waste Soapmaking",
      "category": "Sustainability",
      "level": "Intermediate",
      "duration": "2.5h",
      "price": 69,
      "rating": 4.4,
      "seats": 16,
      "sku": "FMA-ZWS-007",
      "tags": ["sustainability", "planning"],
      "shortDescription": "Reduce offcuts and plan batches to minimize waste.",
      "longDescription": "Design molds and batch sizes that align with your cure space. Learn trim reuse techniques and responsible discard procedures."
    },
    {
      "id": "calc-formulas",
      "title": "Formulation Math Workshop",
      "category": "Beginner",
      "level": "Beginner",
      "duration": "3h",
      "price": 85,
      "rating": 4.6,
      "seats": 20,
      "sku": "FMA-MTH-008",
      "tags": ["formulation", "ratios"],
      "shortDescription": "Understand SAP values, water discounting, and superfatting.",
      "longDescription": "We walk through oil properties, fatty acid profiles, and balancing hardness, cleansing, and conditioning using real example recipes."
    },
    {
      "id": "scent-accords",
      "title": "Scent Accords & IFRA Basics",
      "category": "Finishing",
      "level": "Intermediate",
      "duration": "2.5h",
      "price": 89,
      "rating": 4.5,
      "seats": 14,
      "sku": "FMA-SCT-009",
      "tags": ["fragrance", "IFRA", "essential oils"],
      "shortDescription": "Blend stable accords and follow usage limits with confidence.",
      "longDescription": "Learn top/middle/base construction, acceleration awareness, discoloration control, and safety documentation for fragrances and essential oils."
    },
    {
      "id": "curing-mastery",
      "title": "Finishing & Curing Mastery",
      "category": "Finishing",
      "level": "Beginner",
      "duration": "2h",
      "price": 59,
      "rating": 4.3,
      "seats": 22,
      "sku": "FMA-CUR-010",
      "tags": ["curing", "finishing"],
      "shortDescription": "Plan dry times, bevel edges, and store bars for longevity.",
      "longDescription": "Establish predictable cure windows, humidity checks, and finishing touches that improve handfeel and look."
    },
    {
      "id": "studio-setup",
      "title": "Small Studio Setup",
      "category": "Beginner",
      "level": "Beginner",
      "duration": "2h",
      "price": 55,
      "rating": 4.2,
      "seats": 24,
      "sku": "FMA-STD-011",
      "tags": ["workspace", "tools"],
      "shortDescription": "Organize tools and workflows in a limited space.",
      "longDescription": "Zoning, labeling, and cleanup strategies for compact studios, with checklists for restocking and batch planning."
    },
    {
      "id": "color-theory",
      "title": "Color Theory for Soap",
      "category": "Technique",
      "level": "Intermediate",
      "duration": "3h",
      "price": 95,
      "rating": 4.5,
      "seats": 12,
      "sku": "FMA-CLR-012",
      "tags": ["color", "design"],
      "shortDescription": "Compose palettes and contrasts that hold through cure.",
      "longDescription": "Mix and layer hues for readable designs; anticipate shifts from gel phase and cure light exposure."
    },
    {
      "id": "gel-phase",
      "title": "Managing Gel Phase",
      "category": "Technique",
      "level": "Advanced",
      "duration": "2h",
      "price": 79,
      "rating": 4.4,
      "seats": 10,
      "sku": "FMA-GEL-013",
      "tags": ["gel phase", "temperature"],
      "shortDescription": "Control heat for consistent texture and color.",
      "longDescription": "Insulation strategies, water content choices, and signs of partial gel. Practice safe heat management for cohesive bars."
    },
    {
      "id": "labeling-law",
      "title": "Labeling Essentials",
      "category": "Business",
      "level": "Beginner",
      "duration": "1.5h",
      "price": 49,
      "rating": 4.1,
      "seats": 30,
      "sku": "FMA-LBL-014",
      "tags": ["labeling", "business"],
      "shortDescription": "Craft compliant, useful labels and batch records.",
      "longDescription": "Create INCI ingredient lists, lot numbers, and storage guidance. Maintain traceability for small-batch commerce."
    },
    {
      "id": "photography",
      "title": "Soap Photography Without Studio Lights",
      "category": "Finishing",
      "level": "Intermediate",
      "duration": "2h",
      "price": 65,
      "rating": 4.2,
      "seats": 18,
      "sku": "FMA-PHO-015",
      "tags": ["photography", "presentation"],
      "shortDescription": "Capture crisp product images with natural light.",
      "longDescription": "Composition, backgrounds, reflectors, and simple editing to present soaps clearly without heavy gear."
    },
    {
      "id": "batch-records",
      "title": "Batch Records & Quality Control",
      "category": "Business",
      "level": "Intermediate",
      "duration": "2h",
      "price": 79,
      "rating": 4.6,
      "seats": 15,
      "sku": "FMA-BRC-016",
      "tags": ["quality", "records"],
      "shortDescription": "Design batch logs that speed troubleshooting.",
      "longDescription": "Track temperatures, trace time, additives, and outcomes to spot patterns and refine methods."
    },
    {
      "id": "costing",
      "title": "Costing for Small Batches",
      "category": "Business",
      "level": "Intermediate",
      "duration": "2.5h",
      "price": 89,
      "rating": 4.3,
      "seats": 16,
      "sku": "FMA-CST-017",
      "tags": ["pricing", "business"],
      "shortDescription": "Understand unit costs and small-batch pricing choices.",
      "longDescription": "Map ingredient, packaging, and overhead costs. Build pricing scenarios that respect time and quality."
    },
    {
      "id": "seasonal-scents",
      "title": "Seasonal Scent Planning",
      "category": "Finishing",
      "level": "Intermediate",
      "duration": "2h",
      "price": 59,
      "rating": 4.0,
      "seats": 20,
      "sku": "FMA-SSN-018",
      "tags": ["fragrance", "planning"],
      "shortDescription": "Build a rotating palette without overwhelming your shelf.",
      "longDescription": "Create a scent calendar, test small, and retire or revisit accords with intention."
    },
    {
      "id": "troubleshooting",
      "title": "Troubleshooting Soap Failures",
      "category": "Beginner",
      "level": "Beginner",
      "duration": "2h",
      "price": 55,
      "rating": 4.7,
      "seats": 28,
      "sku": "FMA-TSH-019",
      "tags": ["troubleshooting", "beginner"],
      "shortDescription": "Diagnose ricing, seizing, false trace, and separation.",
      "longDescription": "Identify causes, implement prevention steps, and salvage batches when possible."
    },
    {
      "id": "molds-materials",
      "title": "Molds & Materials Survey",
      "category": "Beginner",
      "level": "Beginner",
      "duration": "1.5h",
      "price": 39,
      "rating": 4.1,
      "seats": 35,
      "sku": "FMA-MLD-020",
      "tags": ["molds", "tools"],
      "shortDescription": "Choose molds, liners, and cutters for clean results.",
      "longDescription": "Pros and cons of silicone, wood, and HDPE; liner strategies and cutting methods."
    },
    {
      "id": "water-discount",
      "title": "Water Discount & Acceleration",
      "category": "Technique",
      "level": "Advanced",
      "duration": "2h",
      "price": 89,
      "rating": 4.6,
      "seats": 9,
      "sku": "FMA-WTR-021",
      "tags": ["water discount", "trace"],
      "shortDescription": "Use water discounting to manage trace without overheating.",
      "longDescription": "Set safe ranges, evaluate fragrance acceleration, and fine-tune fluidity for designs."
    },
    {
      "id": "colorants-testing",
      "title": "Colorants Testing Lab",
      "category": "Technique",
      "level": "Intermediate",
      "duration": "3h",
      "price": 99,
      "rating": 4.5,
      "seats": 10,
      "sku": "FMA-TST-022",
      "tags": ["testing", "color"],
      "shortDescription": "Build a reliable color library with swatches.",
      "longDescription": "Design small tests to evaluate morphing, bleeding, and stability through gel and cure."
    },
    {
      "id": "clay-spa",
      "title": "Clay Bars & Spa Profiles",
      "category": "Finishing",
      "level": "Intermediate",
      "duration": "2.5h",
      "price": 79,
      "rating": 4.2,
      "seats": 12,
      "sku": "FMA-SPA-023",
      "tags": ["clay", "finish"],
      "shortDescription": "Incorporate spa clays for texture and feel.",
      "longDescription": "Balance clay loading with lather performance. Create cohesive series with labeling notes."
    },
    {
      "id": "studio-hygiene",
      "title": "Studio Hygiene & Cleanup",
      "category": "Safety",
      "level": "Beginner",
      "duration": "1.5h",
      "price": 39,
      "rating": 4.3,
      "seats": 26,
      "sku": "FMA-HYG-024",
      "tags": ["safety", "cleanup"],
      "shortDescription": "Keep tools and surfaces safe throughout the process.",
      "longDescription": "Routine cleanup checklists, storage guidelines, and accidental exposure response basics."
    }
  ]