[
  {
    "id": "tg-101",
    "title": "Foundations of Editorial Floristry",
    "category": "Editorial",
    "level": "Beginner",
    "durationHours": 12,
    "priceUSD": 149,
    "rating": 4.7,
    "tags": ["editorial", "composition", "color", "foam-free"],
    "shortDescription": "A primer on structure, line, and negative space for modern arrangements.",
    "description": "Build the visual language that distinguishes editorial floristry: silhouette, gesture, tension, and restraint. Practice foam-free mechanics and learn to edit with intent.",
    "outcomes": ["Understand editorial principles", "Create foam-free table pieces", "Plan color stories"],
    "modules": ["Editorial Principles", "Foam-Free Basics", "Color Story Lab", "Critique Session"]
  },
  {
    "id": "tg-102",
    "title": "Bouquet Architecture I",
    "category": "Bouquet",
    "level": "Beginner",
    "durationHours": 10,
    "priceUSD": 129,
    "rating": 4.6,
    "tags": ["bouquet", "spiral", "conditioning"],
    "shortDescription": "Spiral technique, stem control, and proportion for hand-tied bouquets.",
    "description": "Learn ergonomic hand positions, stem spiraling, and proportion. Condition flowers for longevity and craft balanced silhouettes for everyday and editorial use.",
    "outcomes": ["Execute clean spiral technique", "Balance shape and weight", "Improve stem conditioning"],
    "modules": ["Spiral Mechanics", "Proportion & Scale", "Conditioning Workshop", "Critique"]
  },
  {
    "id": "tg-201",
    "title": "Wedding Florals: Client to Concept",
    "category": "Wedding",
    "level": "Intermediate",
    "durationHours": 16,
    "priceUSD": 199,
    "rating": 4.8,
    "tags": ["wedding", "proposal", "palette"],
    "shortDescription": "Translate client briefs into cohesive palettes and design plans.",
    "description": "Build proposals, mood boards, and palettes that capture client intent. Align logistics with creative direction, and prepare deliverables that win approvals.",
    "outcomes": ["Write detailed proposals", "Design wedding palettes", "Align logistics with design"],
    "modules": ["Client Discovery", "Mood Boards", "Palette Development", "Proposal Writing"]
  },
  {
    "id": "tg-202",
    "title": "Foam-Free Installations",
    "category": "Installation",
    "level": "Intermediate",
    "durationHours": 18,
    "priceUSD": 229,
    "rating": 4.7,
    "tags": ["installation", "foam-free", "mechanics"],
    "shortDescription": "Sustainable mechanics for arches, clouds, and suspended pieces.",
    "description": "Engineer durable, travel-safe installations with chicken wire, water sources, and anchor points. Create drama responsibly with reusable structures.",
    "outcomes": ["Build strong frames", "Hydrate without foam", "Transport safely"],
    "modules": ["Materials & Safety", "Anchors & Frames", "Hydration Systems", "Case Studies"]
  },
  {
    "id": "tg-203",
    "title": "Color Theory for Florists",
    "category": "Editorial",
    "level": "Intermediate",
    "durationHours": 8,
    "priceUSD": 119,
    "rating": 4.5,
    "tags": ["color", "editorial", "palette"],
    "shortDescription": "Translate theory into palettes that photograph beautifully.",
    "description": "Practice tonal, complementary, and split-complementary palettes. Learn camera-aware color choices and managing neutrals that read as luxury.",
    "outcomes": ["Build versatile palettes", "Use tonal restraint", "Plan camera-aware color"],
    "modules": ["Theory Refresh", "Palette Strategies", "Neutral Mastery", "Photo Considerations"]
  },
  {
    "id": "tg-204",
    "title": "Retail Floristry Essentials",
    "category": "Business",
    "level": "Beginner",
    "durationHours": 9,
    "priceUSD": 109,
    "rating": 4.4,
    "tags": ["business", "retail", "operations"],
    "shortDescription": "Pricing, merchandising, and service for profitable flower shops.",
    "description": "Set margins, build SKU families, and design displays that sell. Learn service scripts that convert and retain customers.",
    "outcomes": ["Price with confidence", "Merchandise effectively", "Improve service operations"],
    "modules": ["Margins & SKUs", "Display Design", "Service Scripts", "KPIs"]
  },
  {
    "id": "tg-205",
    "title": "Bouquet Architecture II",
    "category": "Bouquet",
    "level": "Intermediate",
    "durationHours": 12,
    "priceUSD": 159,
    "rating": 4.7,
    "tags": ["bouquet", "advanced-spiral", "texture"],
    "shortDescription": "Silhouette, texture, and asymmetry for character-rich hand-tieds.",
    "description": "Move beyond neat spirals into intentional irregularity. Use texture and gesture to add narrative while keeping balance and comfort.",
    "outcomes": ["Design asymmetry", "Manage texture", "Maintain comfort and balance"],
    "modules": ["Gesture & Line", "Texture Lab", "Asymmetry Clinic", "Critique"]
  },
  {
    "id": "tg-206",
    "title": "Event Logistics for Florists",
    "category": "Business",
    "level": "Intermediate",
    "durationHours": 7,
    "priceUSD": 99,
    "rating": 4.3,
    "tags": ["business", "logistics", "checklists"],
    "shortDescription": "From load-in to strike: timelines that protect creativity.",
    "description": "Draft production schedules, kit lists, and contingency plans that keep events on track without burning out the team.",
    "outcomes": ["Write production schedules", "Prepare kits", "Handle contingencies"],
    "modules": ["Timelines", "Kits & Tools", "Risk Planning", "Debrief"]
  },
  {
    "id": "tg-207",
    "title": "Botanical Conditioning Masterclass",
    "category": "Botany",
    "level": "Advanced",
    "durationHours": 14,
    "priceUSD": 189,
    "rating": 4.9,
    "tags": ["botany", "conditioning", "longevity"],
    "shortDescription": "Extend vase life by understanding plant physiology.",
    "description": "Analyze stem architecture, hydration, and environmental variables. Build conditioning protocols for diverse species to maximize longevity.",
    "outcomes": ["Diagnose plant needs", "Create protocols", "Reduce waste"],
    "modules": ["Physiology Basics", "Hydration Science", "Species Protocols", "Environmental Control"]
  },
  {
    "id": "tg-208",
    "title": "Sculptural Centerpieces",
    "category": "Editorial",
    "level": "Advanced",
    "durationHours": 11,
    "priceUSD": 169,
    "rating": 4.6,
    "tags": ["editorial", "centerpiece", "structure"],
    "shortDescription": "Armatures and negative space for gallery-worthy centerpieces.",
    "description": "Design airy, structural centerpieces using armatures that disappear. Manage scale relative to table layout and sight lines.",
    "outcomes": ["Build armatures", "Design negative space", "Manage table scale"],
    "modules": ["Armature Types", "Sight Lines", "Scale & Proportion", "Critique"]
  },
  {
    "id": "tg-209",
    "title": "Pricing Creative Work",
    "category": "Business",
    "level": "Advanced",
    "durationHours": 6,
    "priceUSD": 129,
    "rating": 4.5,
    "tags": ["business", "pricing", "finance"],
    "shortDescription": "Markup models, value pricing, and proposal math for florists.",
    "description": "Compare markup strategies, set design fees, and build proposal math you can explain with confidence.",
    "outcomes": ["Choose markup model", "Set design fees", "Build transparent quotes"],
    "modules": ["Markup Models", "Design Fees", "Quote Architecture", "Case Studies"]
  },
  {
    "id": "tg-210",
    "title": "Seasonal Palette Workshop: Spring",
    "category": "Editorial",
    "level": "Beginner",
    "durationHours": 5,
    "priceUSD": 79,
    "rating": 4.2,
    "tags": ["color", "seasonal", "editorial"],
    "shortDescription": "Build tonal palettes from local spring crops.",
    "description": "Work with ranunculus, hellebore, and branches to create tonal palettes that photograph with clarity.",
    "outcomes": ["Source locally", "Craft tonal palettes", "Document work"],
    "modules": ["Crop Overview", "Tonal Studies", "Capture & Notes", "Critique"]
  },
  {
    "id": "tg-211",
    "title": "Freelance Florist Toolkit",
    "category": "Business",
    "level": "Beginner",
    "durationHours": 6,
    "priceUSD": 89,
    "rating": 4.1,
    "tags": ["business", "freelance", "portfolio"],
    "shortDescription": "Rates, portfolio, and on-set etiquette for freelancers.",
    "description": "Set sustainable rates, curate a clear portfolio, and learn etiquette that keeps you booked.",
    "outcomes": ["Set rates", "Curate portfolio", "Work professionally on set"],
    "modules": ["Rates & Invoicing", "Portfolio Curation", "On-Set Etiquette", "Client Care"]
  },
  {
    "id": "tg-212",
    "title": "Styling for Photography",
    "category": "Editorial",
    "level": "Intermediate",
    "durationHours": 7,
    "priceUSD": 119,
    "rating": 4.6,
    "tags": ["editorial", "styling", "photo"],
    "shortDescription": "Compose arrangements that read cleanly on camera.",
    "description": "Design for lens behavior: contrast, edge control, and restraint. Collaborate with photographers and art directors.",
    "outcomes": ["Design for camera", "Collaborate on set", "Control edges and contrast"],
    "modules": ["Lens & Light", "Edge Control", "On-Set Workflow", "Critique"]
  },
  {
    "id": "tg-213",
    "title": "Installation Safety & Rigging",
    "category": "Installation",
    "level": "Advanced",
    "durationHours": 9,
    "priceUSD": 169,
    "rating": 4.7,
    "tags": ["installation", "safety", "rigging"],
    "shortDescription": "Risk assessment and safe rigging for large-scale florals.",
    "description": "Learn load calculations, attachment points, and fail-safes for indoor and outdoor installations.",
    "outcomes": ["Assess risks", "Choose rigging", "Implement fail-safes"],
    "modules": ["Load Basics", "Attachment Methods", "Fail-Safes", "Scenario Labs"]
  },
  {
    "id": "tg-214",
    "title": "Sourcing & Seasonality",
    "category": "Botany",
    "level": "Beginner",
    "durationHours": 8,
    "priceUSD": 99,
    "rating": 4.4,
    "tags": ["botany", "sourcing", "seasonal"],
    "shortDescription": "Build relationships with growers and design with what’s in season.",
    "description": "Navigate markets, farms, and subscriptions. Plan seasonal menus that lower cost and increase quality.",
    "outcomes": ["Source ethically", "Plan seasonal menus", "Reduce waste"],
    "modules": ["Markets 101", "Farm Partners", "Menu Planning", "Quality Control"]
  },
  {
    "id": "tg-215",
    "title": "Gesture & Line Intensives",
    "category": "Editorial",
    "level": "Advanced",
    "durationHours": 6,
    "priceUSD": 129,
    "rating": 4.5,
    "tags": ["editorial", "gesture", "line"],
    "shortDescription": "Train your eye for line quality and dynamic movement.",
    "description": "Focus on gesture-led compositions. Practice minimal placements that say more with less.",
    "outcomes": ["Refine gesture", "Edit decisively", "Create dynamic lines"],
    "modules": ["Gesture Drills", "Line Quality", "Minimal Placement", "Critique"]
  },
  {
    "id": "tg-216",
    "title": "Business Systems for Studios",
    "category": "Business",
    "level": "Advanced",
    "durationHours": 10,
    "priceUSD": 179,
    "rating": 4.6,
    "tags": ["business", "systems", "operations"],
    "shortDescription": "Build SOPs and dashboards for consistent delivery.",
    "description": "Document repeatable processes, automate checklists, and set KPIs to scale sustainably.",
    "outcomes": ["Write SOPs", "Automate tasks", "Track KPIs"],
    "modules": ["SOP Writing", "Automation Basics", "Dashboarding", "Review"]
  },
  {
    "id": "tg-217",
    "title": "Centerpieces for Long Tables",
    "category": "Editorial",
    "level": "Intermediate",
    "durationHours": 7,
    "priceUSD": 109,
    "rating": 4.3,
    "tags": ["editorial", "centerpiece", "tablescape"],
    "shortDescription": "Sight lines, repetition, and rhythm across long tables.",
    "description": "Design sequences that read coherently from end to end with balanced rhythm and negative space.",
    "outcomes": ["Plan sequences", "Respect sight lines", "Sustain rhythm"],
    "modules": ["Table Mapping", "Rhythm & Repeats", "Line of Sight", "Critique"]
  },
  {
    "id": "tg-218",
    "title": "Dried & Fresh Hybrids",
    "category": "Botany",
    "level": "Intermediate",
    "durationHours": 6,
    "priceUSD": 99,
    "rating": 4.2,
    "tags": ["botany", "texture", "hybrids"],
    "shortDescription": "Combine dried texture with fresh movement responsibly.",
    "description": "Balance weight, moisture, and color when pairing dried components with fresh stems.",
    "outcomes": ["Balance textures", "Plan moisture control", "Design durable hybrids"],
    "modules": ["Material Choices", "Moisture Strategy", "Palette Control", "Critique"]
  },
  {
    "id": "tg-219",
    "title": "Table Styling & Props",
    "category": "Editorial",
    "level": "Beginner",
    "durationHours": 5,
    "priceUSD": 79,
    "rating": 4.1,
    "tags": ["styling", "props", "tablescape"],
    "shortDescription": "Layer textiles, candles, and vessels that support florals.",
    "description": "Select props that elevate arrangements without visual noise. Practice restraint in color and reflectivity.",
    "outcomes": ["Curate props", "Avoid clutter", "Harmonize materials"],
    "modules": ["Prop Library", "Textile Basics", "Light & Reflectivity", "Case Studies"]
  },
  {
    "id": "tg-220",
    "title": "Runway & Set Collaboration",
    "category": "Editorial",
    "level": "Advanced",
    "durationHours": 9,
    "priceUSD": 169,
    "rating": 4.6,
    "tags": ["editorial", "runway", "collaboration"],
    "shortDescription": "Build clear workflows with stylists, producers, and photographers.",
    "description": "Structure communication, approvals, and on-set adjustments for runway and editorial productions.",
    "outcomes": ["Coordinate teams", "Manage approvals", "Adjust on set"],
    "modules": ["Team Roles", "Approval Flow", "On-Set Pivots", "Debrief"]
  },
  {
    "id": "tg-221",
    "title": "Workshop: Branch Mechanics",
    "category": "Installation",
    "level": "Beginner",
    "durationHours": 4,
    "priceUSD": 59,
    "rating": 4.0,
    "tags": ["installation", "branches", "mechanics"],
    "shortDescription": "Secure branches for line, gesture, and structural support.",
    "description": "Work with branches as both structure and line. Learn safe fastenings and weight distribution.",
    "outcomes": ["Fasten safely", "Use line effectively", "Support weight"],
    "modules": ["Fastenings", "Gesture & Line", "Weight Planning", "Demo"]
  },
  {
    "id": "tg-222",
    "title": "Client Communication Clinic",
    "category": "Business",
    "level": "Intermediate",
    "durationHours": 5,
    "priceUSD": 89,
    "rating": 4.2,
    "tags": ["business", "communication", "client"],
    "shortDescription": "Scripts, boundaries, and feedback loops that build trust.",
    "description": "Practice scripts for difficult calls, set boundaries, and create feedback loops that protect timelines and quality.",
    "outcomes": ["Set boundaries", "Handle feedback", "Protect timelines"],
    "modules": ["Script Library", "Boundaries", "Feedback Systems", "Roleplay"]
  },
  {
    "id": "tg-223",
    "title": "Garden-Gathered Aesthetics",
    "category": "Bouquet",
    "level": "Intermediate",
    "durationHours": 7,
    "priceUSD": 109,
    "rating": 4.3,
    "tags": ["bouquet", "garden", "texture"],
    "shortDescription": "Loose, airy arrangements that feel gathered, not forced.",
    "description": "Use airy placements and varied stem lengths to create living, breathing bouquets with narrative flow.",
    "outcomes": ["Use airy placements", "Balance movement", "Tell visual stories"],
    "modules": ["Air & Movement", "Stem Lengths", "Narrative Flow", "Critique"]
  },
  {
    "id": "tg-224",
    "title": "Proposal Design Lab",
    "category": "Business",
    "level": "Advanced",
    "durationHours": 8,
    "priceUSD": 139,
    "rating": 4.4,
    "tags": ["business", "proposal", "sales"],
    "shortDescription": "Build proposals that read clearly and close confidently.",
    "description": "Create proposals with transparent math, visuals, and clear scope. Learn to present and negotiate without pressure tactics.",
    "outcomes": ["Structure proposals", "Present clearly", "Negotiate ethically"],
    "modules": ["Proposal Structure", "Visuals & Scope", "Pricing Pages", "Presentation"]
  }
]