[
    {
      "id": 1,
      "title": "Foundations of Classic Wrap",
      "category": "Classic Wrap",
      "difficulty": "Beginner",
      "duration": "2h 30m",
      "price": 59,
      "rating": 4.7,
      "lessons": 12,
      "tags": ["seams", "edges", "tape"],
      "description": "Master clean seams, square edges, and tape concealment for everyday elegance."
    },
    {
      "id": 2,
      "title": "Architected Ribbon: Balanced Bows",
      "category": "Ribbon",
      "difficulty": "Intermediate",
      "duration": "3h",
      "price": 79,
      "rating": 4.8,
      "lessons": 14,
      "tags": ["ribbon", "loops", "tails"],
      "description": "Create stable, symmetrical loops and anchor knots that hold their silhouette."
    },
    {
      "id": 3,
      "title": "Diagonal Spine Techniques",
      "category": "Classic Wrap",
      "difficulty": "Advanced",
      "duration": "2h",
      "price": 69,
      "rating": 4.6,
      "lessons": 9,
      "tags": ["diagonal", "spine", "conceal"],
      "description": "Engineer diagonal spines for tension control and perfectly aligned folds."
    },
    {
      "id": 4,
      "title": "Seasonal Statement Wraps",
      "category": "Seasonal",
      "difficulty": "Intermediate",
      "duration": "3h 15m",
      "price": 89,
      "rating": 4.5,
      "lessons": 11,
      "tags": ["holiday", "events", "color theory"],
      "description": "Compose seasonal displays, harmonize palettes, and scale for retail windows."
    },
    {
      "id": 5,
      "title": "Eco Wrap Essentials",
      "category": "Eco",
      "difficulty": "Beginner",
      "duration": "2h",
      "price": 49,
      "rating": 4.4,
      "lessons": 8,
      "tags": ["fabric", "reuse", "minimal tape"],
      "description": "Use reusable fabrics and minimal adhesives for sustainable, refined results."
    },
    {
      "id": 6,
      "title": "Retail Team: Speed & Consistency",
      "category": "Retail Team",
      "difficulty": "Intermediate",
      "duration": "2h 45m",
      "price": 95,
      "rating": 4.6,
      "lessons": 10,
      "tags": ["workflow", "teams", "calibration"],
      "description": "Build speed without sacrificing finish quality using role rotations and checklists."
    },
    {
      "id": 7,
      "title": "Monogramming & Tags",
      "category": "Luxury Detailing",
      "difficulty": "Beginner",
      "duration": "1h 40m",
      "price": 55,
      "rating": 4.3,
      "lessons": 7,
      "tags": ["tags", "letters", "branding"],
      "description": "Place monograms and tags for presence and clarity without clutter."
    },
    {
      "id": 8,
      "title": "Invisible Joins & Micro-folds",
      "category": "Luxury Detailing",
      "difficulty": "Advanced",
      "duration": "2h 20m",
      "price": 99,
      "rating": 4.9,
      "lessons": 12,
      "tags": ["seams", "micro-folds", "precision"],
      "description": "Eliminate visible seams and create museum-clean finishes with micro-fold techniques."
    },
    {
      "id": 9,
      "title": "Bow Proportions Clinic",
      "category": "Ribbon",
      "difficulty": "Beginner",
      "duration": "1h 30m",
      "price": 39,
      "rating": 4.2,
      "lessons": 6,
      "tags": ["loops", "tails", "balance"],
      "description": "Practice loop-to-tail ratios and center-knot compression for graceful bows."
    },
    {
      "id": 10,
      "title": "Event-Grade Presentation",
      "category": "Seasonal",
      "difficulty": "Advanced",
      "duration": "3h 30m",
      "price": 120,
      "rating": 4.7,
      "lessons": 13,
      "tags": ["events", "scale", "durability"],
      "description": "Scale designs for galas and corporate gifting with durable construction."
    },
    {
      "id": 11,
      "title": "Paper Grain & Tension",
      "category": "Classic Wrap",
      "difficulty": "Intermediate",
      "duration": "2h",
      "price": 65,
      "rating": 4.6,
      "lessons": 9,
      "tags": ["grain", "tension", "edges"],
      "description": "Work with paper grain to reduce tearing and maintain clean tension lines."
    },
    {
      "id": 12,
      "title": "Color Harmony for Wrapping",
      "category": "Luxury Detailing",
      "difficulty": "Beginner",
      "duration": "1h 50m",
      "price": 45,
      "rating": 4.1,
      "lessons": 7,
      "tags": ["palette", "contrast", "finish"],
      "description": "Apply palette strategies for subtle contrast and elegant finish accents."
    },
    {
      "id": 13,
      "title": "Minimalist Furoshiki",
      "category": "Eco",
      "difficulty": "Intermediate",
      "duration": "2h 10m",
      "price": 72,
      "rating": 4.5,
      "lessons": 8,
      "tags": ["fabric", "knots", "reusable"],
      "description": "Tie fabric wraps that secure gifts without adhesives or excess material."
    },
    {
      "id": 14,
      "title": "Retail Peak Season Playbook",
      "category": "Retail Team",
      "difficulty": "Intermediate",
      "duration": "2h 20m",
      "price": 88,
      "rating": 4.4,
      "lessons": 9,
      "tags": ["holiday", "workflows", "queues"],
      "description": "Prepare for peak demand with queue systems and quality spot checks."
    },
    {
      "id": 15,
      "title": "Advanced Angle Wrapping",
      "category": "Classic Wrap",
      "difficulty": "Advanced",
      "duration": "2h 40m",
      "price": 98,
      "rating": 4.8,
      "lessons": 10,
      "tags": ["angles", "corners", "precision"],
      "description": "Control acute and obtuse angles to wrap irregular boxes with confidence."
    },
    {
      "id": 16,
      "title": "Boutique Display Accents",
      "category": "Luxury Detailing",
      "difficulty": "Intermediate",
      "duration": "1h 55m",
      "price": 64,
      "rating": 4.3,
      "lessons": 8,
      "tags": ["display", "tags", "ribbons"],
      "description": "Craft display-ready accents and signage that elevate shelf presence."
    },
    {
      "id": 17,
      "title": "Ribbon Textures & Weaves",
      "category": "Ribbon",
      "difficulty": "Intermediate",
      "duration": "2h 15m",
      "price": 75,
      "rating": 4.6,
      "lessons": 9,
      "tags": ["weave", "satin", "grosgrain"],
      "description": "Select textures and weaves for structure, sheen, and long-lasting form."
    },
    {
      "id": 18,
      "title": "Corporate Gifting Protocols",
      "category": "Business",
      "difficulty": "Beginner",
      "duration": "1h 35m",
      "price": 58,
      "rating": 4.2,
      "lessons": 6,
      "tags": ["etiquette", "branding", "scale"],
      "description": "Understand etiquette, branding rules, and logistics for corporate gifting."
    },
    {
      "id": 19,
      "title": "Precision Tape Application",
      "category": "Luxury Detailing",
      "difficulty": "Beginner",
      "duration": "1h 20m",
      "price": 42,
      "rating": 4.0,
      "lessons": 5,
      "tags": ["tape", "clean", "invisible"],
      "description": "Hide tape with micro-folds and pressure techniques for invisible joins."
    },
    {
      "id": 20,
      "title": "Seasonal Color Systems",
      "category": "Seasonal",
      "difficulty": "Intermediate",
      "duration": "2h 30m",
      "price": 68,
      "rating": 4.5,
      "lessons": 8,
      "tags": ["palettes", "festive", "balance"],
      "description": "Plan festive palettes using hue families and temperature contrast."
    },
    {
      "id": 21,
      "title": "Luxury Finish Masterclass",
      "category": "Luxury Detailing",
      "difficulty": "Advanced",
      "duration": "3h 10m",
      "price": 130,
      "rating": 4.9,
      "lessons": 12,
      "tags": ["seams", "ribbon", "polish"],
      "description": "Integrate invisible seams, architectural ribbons, and polish scoring to boutique standards."
    },
    {
      "id": 22,
      "title": "Team Calibration Workshop",
      "category": "Retail Team",
      "difficulty": "Intermediate",
      "duration": "2h",
      "price": 85,
      "rating": 4.4,
      "lessons": 7,
      "tags": ["teams", "rubric", "quality"],
      "description": "Calibrate skills across teams using our 20-point rubric and shared exemplars."
    }
  ]