{"id":90,"date":"2026-04-12T20:28:50","date_gmt":"2026-04-12T18:28:50","guid":{"rendered":"http:\/\/ocode360.com\/index.php\/workshops\/"},"modified":"2026-04-13T21:27:10","modified_gmt":"2026-04-13T19:27:10","slug":"workshops","status":"publish","type":"page","link":"https:\/\/ocode360.com\/index.php\/workshops\/","title":{"rendered":"Workshops"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Workshops \u2014 oCode360<\/title>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" \/>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin \/>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Syne:wght@400;600;700;800&#038;family=DM+Mono:ital,wght@0,300;0,400;1,300&#038;family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;1,9..40,300&#038;display=swap\" rel=\"stylesheet\" \/>\n\n  <style>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n    :root {\n      --bg:        #ffffff;\n      --surface:   #f6f6fa;\n      --border:    #e0e0ec;\n      --accent:    #00b89e;\n      --accent2:   #ff6b35;\n      --text:      #0a0a1f;\n      --muted:     #6b6b85;\n      --subtle:    #eeeef5;\n    }\n\n    html { scroll-behavior: smooth; }\n    body {\n      background: var(--bg);\n      color: var(--text);\n      font-family: 'DM Sans', sans-serif;\n      font-size: 16px;\n      line-height: 1.6;\n      overflow-x: hidden;\n    }\n\n    body::before { content: none; \/* disabled *\/\n      content: none;\n      position: fixed;\n      inset: 0;\n      background-image: url(\"data:image\/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'\/%3E%3C\/svg%3E\");\n      pointer-events: none;\n      z-index: 0;\n      opacity: 0.4;\n    }\n\n    nav {\n      position: fixed;\n      top: 0; left: 0; right: 0;\n      z-index: 100;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      padding: 1.25rem 5%;\n      background:#f0f0f4;border-bottom: 1px solid var(--border);\n      background: #f0f0f4;\n      backdrop-filter: blur(16px);\n    }\n\n    .nav-logo {\n      font-family: 'Syne', sans-serif;\n      font-weight: 800;\n      font-size: 1.2rem;\n      letter-spacing: -0.02em;\n      color: var(--text);\n      text-decoration: none;\n    }\n    .nav-logo span { color: var(--accent); }\n\n    .nav-links { flex: 1; justify-content: center;\n      display: flex;\n      gap: 3.5rem;\n      list-style: none;\n    }\n    .nav-links a {\n      font-family: 'DM Mono', monospace;\n      font-size: 1.05rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: var(--muted);\n      text-decoration: none;\n      transition: color 0.2s;\n      position: relative;\n    }\n    .nav-links a::after {\n      content: none;\n      position: absolute;\n      bottom: -4px; left: 0; right: 0;\n      height: 1px;\n      background: var(--accent);\n      transform: scaleX(0);\n      transition: transform 0.2s;\n    }\n    .nav-links a:hover,\n    .nav-links a.active { color: var(--text); }\n    .nav-links a.active::after,\n    .nav-links a:hover::after { transform: scaleX(1); }\n\n    .nav-cta {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.85rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: #ffffff;\n      background: var(--accent);\n      border: none;\n      padding: 0.6rem 1.4rem;\n      cursor: pointer;\n      text-decoration: none;\n      transition: opacity 0.2s;\n    }\n    .nav-cta:hover { opacity: 0.85; }\n    \/* \u2500\u2500 NAV ICONS \u2500\u2500 *\/\n    .nav-icons {\n      display: flex;\n      align-items: center;\n      gap: 0.25rem;\n      margin-right: 0.75rem;\n    }\n    .nav-icon {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: 36px;\n      height: 36px;\n      color: var(--muted);\n      text-decoration: none;\n      transition: color 0.2s;\n      position: relative;\n    }\n    .nav-icon:hover { color: var(--accent); }\n    .nav-icon svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }\n    .nav-cart-count {\n      position: absolute;\n      top: 2px; right: 2px;\n      background: var(--accent);\n      color: #fff;\n      font-family: 'DM Mono', monospace;\n      font-size: 0.55rem;\n      font-weight: 700;\n      min-width: 16px;\n      height: 16px;\n      border-radius: 8px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      padding: 0 3px;\n      opacity: 0;\n      transition: opacity 0.2s;\n    }\n    .nav-cart-count.has-items { opacity: 1; }\n\n\n    \/* PAGE HERO *\/\n    .page-hero {\n      padding: 10rem max(3rem, calc(50% - 560px));\n      position: relative;\n      overflow: hidden;\n    }\n    .hero-glow {\n      position: absolute;\n      top: -10%; right: -5%;\n      width: 500px; height: 500px;\n      background: radial-gradient(circle, rgba(255,107,53,0.07) 0%, transparent 65%);\n      pointer-events: none;\n    }\n\n    .eyebrow {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.72rem;\n      letter-spacing: 0.15em;\n      text-transform: uppercase;\n      color: var(--accent);\n      margin-bottom: 1.5rem;\n      display: flex;\n      align-items: center;\n      gap: 0.75rem;\n    }\n    .eyebrow::before {\n      content: none;\n      display: block;\n      width: 32px;\n      height: 1px;\n      background: var(--accent);\n    }\n\n    .page-headline {\n      font-family: 'Syne', sans-serif;\n      font-weight: 800;\n      font-size: clamp(2.5rem, 5vw, 4.5rem);\n      line-height: 1.0;\n      letter-spacing: -0.03em;\n      max-width: 720px;\n      margin-bottom: 1.5rem;\n    }\n    .accent { color: var(--accent); }\n    .accent2 { color: var(--accent2); }\n\n    .page-intro {\n      font-size: 1.1rem;\n      color: var(--muted);\n      max-width: 560px;\n      line-height: 1.75;\n    }\n\n    section { padding: 5rem max(3rem, calc(50% - 560px)); }\n\n    .section-label {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.7rem;\n      letter-spacing: 0.15em;\n      text-transform: uppercase;\n      color: var(--muted);\n      margin-bottom: 3rem;\n      padding-bottom: 1rem;\n      border-bottom: 1px solid var(--border);\n    }\n\n    \/* FORMAT EXPLAINER *\/\n    .format-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 1px;\n      background: var(--border);\n      margin-bottom: 5rem;\n    }\n\n    .format-card {\n      background: var(--bg);\n      padding: 2.5rem;\n    }\n\n    .format-icon {\n      font-size: 1.5rem;\n      margin-bottom: 1rem;\n    }\n\n    .format-title {\n      font-family: 'Syne', sans-serif;\n      font-weight: 700;\n      font-size: 1.1rem;\n      margin-bottom: 0.75rem;\n    }\n\n    .format-desc {\n      color: var(--muted);\n      font-size: 0.9rem;\n      line-height: 1.65;\n    }\n\n    \/* WORKSHOP LISTINGS *\/\n    .workshop-list {\n      display: flex;\n      flex-direction: column;\n      gap: 1px;\n      background: var(--border);\n    }\n\n    .workshop-card {\n      background: var(--bg);\n      padding: 2.75rem 3rem;\n      display: grid;\n      grid-template-columns: 3fr 1fr;\n      gap: 3rem;\n      align-items: start;\n      opacity: 0;\n      transform: translateY(16px);\n      transition: background 0.3s, opacity 0.5s, transform 0.5s;\n    }\n    .workshop-card.visible { opacity: 1; transform: none; }\n    .workshop-card:hover { background: var(--subtle); }\n\n    .workshop-meta {}\n\n    .workshop-level {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.63rem;\n      letter-spacing: 0.12em;\n      text-transform: uppercase;\n      color: var(--accent);\n      margin-bottom: 0.75rem;\n    }\n\n    .workshop-title {\n      font-family: 'Syne', sans-serif;\n      font-weight: 700;\n      font-size: 1.3rem;\n      line-height: 1.2;\n      margin-bottom: 0.75rem;\n    }\n\n    .workshop-desc {\n      color: var(--muted);\n      font-size: 0.93rem;\n      line-height: 1.7;\n      margin-bottom: 1.5rem;\n      max-width: 620px;\n    }\n\n    .workshop-topics {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 0.5rem;\n    }\n\n    .tag {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.63rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: var(--muted);\n      border: 1px solid var(--border);\n      padding: 0.3rem 0.75rem;\n    }\n\n    .workshop-sidebar {}\n\n    .ws-detail {\n      margin-bottom: 1.25rem;\n    }\n\n    .ws-detail-label {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.63rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--muted);\n      margin-bottom: 0.2rem;\n    }\n\n    .ws-detail-value {\n      font-size: 0.93rem;\n      color: var(--text);\n    }\n\n    .btn-primary {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.72rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: #ffffff;\n      background: var(--accent);\n      border: none;\n      padding: 0.75rem 1.5rem;\n      cursor: pointer;\n      text-decoration: none;\n      transition: opacity 0.2s;\n      display: inline-block;\n      margin-top: 0.5rem;\n    }\n    .btn-primary:hover { opacity: 0.85; }\n\n    .btn-ghost {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.72rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: var(--muted);\n      background: transparent;\n      border: 1px solid var(--border);\n      padding: 0.75rem 1.5rem;\n      cursor: pointer;\n      text-decoration: none;\n      transition: all 0.2s;\n      display: inline-block;\n      margin-top: 0.5rem;\n    }\n    .btn-ghost:hover { border-color: var(--accent); color: var(--accent); }\n\n    .coming-soon-badge {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.6rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--muted);\n      border: 1px dashed var(--border);\n      padding: 0.3rem 0.75rem;\n      display: inline-block;\n      margin-top: 0.75rem;\n    }\n\n    \/* CORPORATE BANNER *\/\n    .corporate-band {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      padding: 3.5rem 4rem;\n      display: grid;\n      grid-template-columns: 1fr auto;\n      gap: 3rem;\n      align-items: center;\n      margin-bottom: 5rem;\n      position: relative;\n      overflow: hidden;\n    }\n\n    .corporate-band::before {\n      content: none;\n      position: absolute;\n      top: 0; left: 0;\n      width: 4px;\n      height: 100%;\n      background: var(--accent2);\n    }\n\n    .corporate-band h2 {\n      font-family: 'Syne', sans-serif;\n      font-weight: 800;\n      font-size: 1.5rem;\n      letter-spacing: -0.02em;\n      margin-bottom: 0.5rem;\n    }\n\n    .corporate-band p {\n      color: var(--muted);\n      font-size: 0.95rem;\n      max-width: 500px;\n      line-height: 1.6;\n    }\n\n    .btn-orange {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.78rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: #ffffff;\n      background: var(--accent2);\n      border: none;\n      padding: 0.9rem 2rem;\n      cursor: pointer;\n      text-decoration: none;\n      white-space: nowrap;\n      transition: opacity 0.2s;\n      display: inline-block;\n    }\n    .btn-orange:hover { opacity: 0.85; }\n\n    footer {\n      padding: 3rem max(3rem, calc(50% - 560px));\n      border-top: 1px solid var(--border);\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      flex-wrap: wrap;\n      gap: 1rem;\n    }\n\n    .footer-logo {\n      font-family: 'Syne', sans-serif;\n      font-weight: 800;\n      font-size: 1rem;\n      color: var(--text);\n    }\n    .footer-logo span { color: var(--accent); }\n\n    .footer-copy {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.7rem;\n      letter-spacing: 0.06em;\n      color: var(--muted);\n    }\n\n    @keyframes fadeUp {\n      from { opacity: 0; transform: translateY(20px); }\n      to { opacity: 1; transform: none; }\n    }\n    .animate-in { opacity: 0; animation: fadeUp 0.6s ease forwards; }\n    .delay-1 { animation-delay: 0.2s; }\n    .delay-2 { animation-delay: 0.35s; }\n    .delay-3 { animation-delay: 0.5s; }\n\n    @media (max-width: 900px) {\n      .workshop-card { grid-template-columns: 1fr; gap: 1.5rem; }\n      .format-grid { grid-template-columns: 1fr; }\n      .corporate-band { grid-template-columns: 1fr; }\n    }\n    @media (max-width: 768px) {\n      nav { padding: 1rem 5%; }\n      .nav-links { flex: 1; justify-content: center; display: none; }\n      .page-hero, section { padding-left: 1.5rem; padding-right: 1.5rem; }\n      .workshop-card { padding: 2rem 1.5rem; }\n      .corporate-band { padding: 2rem 1.5rem; }\n      footer { padding: 2rem max(3rem, calc(50% - 560px)); }\n    }\n  <\/style>\n<\/head>\n<body>\n\n  <nav>\n    <a href=\"\/\" class=\"nav-logo\">o<span>Code<\/span>360<\/a>\n    <ul class=\"nav-links\">\n      <li><a href=\"\/\">Home<\/a><\/li>\n      <li><a href=\"\/index.php\/services\/\">Services<\/a><\/li>\n      <li><a href=\"#\">Courses<\/a><\/li>\n      <li><a href=\"#\">Coaching<\/a><\/li>\n      <li><a href=\"\/index.php\/workshops\/\" class=\"active\">Workshops<\/a><\/li>\n      <li><a href=\"#\">Tools<\/a><\/li>\n      <li><a href=\"\/index.php\/resources\/\">Resources<\/a><\/li>\n      <li><a href=\"#\">About<\/a><\/li>\n    <\/ul>\n    <div class=\"nav-icons\">\n      <a href=\"\/index.php\/wishlist\/\" class=\"nav-icon\" title=\"Wishlist\">\n        <svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"\/><\/svg>\n      <\/a>\n      <a href=\"\/index.php\/cart\/\" class=\"nav-icon\" title=\"Cart\" id=\"nav-cart-link\">\n        <svg viewBox=\"0 0 24 24\"><path d=\"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"\/><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"\/><path d=\"M16 10a4 4 0 0 1-8 0\"\/><\/svg>\n        <span class=\"nav-cart-count\" id=\"nav-cart-count\"><\/span>\n      <\/a>\n      <a href=\"\/index.php\/my-account\/\" class=\"nav-icon\" title=\"My Account\">\n        <svg viewBox=\"0 0 24 24\"><path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"\/><circle cx=\"12\" cy=\"7\" r=\"4\"\/><\/svg>\n      <\/a>\n    <\/div>\n    <a href=\"\/index.php\/book-a-call\/\" class=\"nav-cta\">Book a Call<\/a>\n  <\/nav>\n\n  <div class=\"page-hero\">\n    <div class=\"hero-glow\"><\/div>\n    <div class=\"eyebrow animate-in delay-1\">Workshops<\/div>\n    <h1 class=\"page-headline animate-in delay-2\">Focused learning. <span class=\"accent2\">Real outcomes.<\/span><\/h1>\n    <p class=\"page-intro animate-in delay-3\">Half-day and full-day live sessions for analytics practitioners. Between self-paced courses and private coaching \u2014 structured, interactive, and applied to your actual work.<\/p>\n  <\/div>\n\n  <section>\n    <div class=\"section-label\">\/\/ Workshop formats<\/div>\n\n    <div class=\"format-grid\">\n      <div class=\"format-card\">\n        <div class=\"format-icon\">\ud83d\udda5<\/div>\n        <div class=\"format-title\">Live Online<\/div>\n        <p class=\"format-desc\">Virtual sessions via Zoom or Teams. Small cohorts of 6\u201316 participants. Includes exercises, breakout rooms, and Q&#038;A time with the instructor.<\/p>\n      <\/div>\n      <div class=\"format-card\">\n        <div class=\"format-icon\">\ud83c\udfe2<\/div>\n        <div class=\"format-title\">In-Person (Cape Town)<\/div>\n        <p class=\"format-desc\">On-site or hosted venue sessions for local teams. Better for hands-on work and team-building around a shared data challenge.<\/p>\n      <\/div>\n      <div class=\"format-card\">\n        <div class=\"format-icon\">\ud83c\udfd7<\/div>\n        <div class=\"format-title\">Private Team Sessions<\/div>\n        <p class=\"format-desc\">Custom-scoped workshops delivered exclusively for your team. We tailor content to your tools, your data, and your specific skill gaps.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"section-label\">\/\/ Upcoming workshops<\/div>\n\n    <div class=\"workshop-list\">\n\n      <div class=\"workshop-card\">\n        <div class=\"workshop-meta\">\n          <div class=\"workshop-level\">SQL \u00b7 Intermediate<\/div>\n          <h2 class=\"workshop-title\">SQL for Business Analysts \u2014 Half Day Intensive<\/h2>\n          <p class=\"workshop-desc\">Go beyond SELECT * and learn the SQL patterns that make the biggest difference in real analytics work: window functions, CTEs, subqueries, date maths, and performance tips. You&#8217;ll write and run queries throughout \u2014 not just watch slides.<\/p>\n          <div class=\"workshop-topics\">\n            <span class=\"tag\">Window Functions<\/span>\n            <span class=\"tag\">CTEs<\/span>\n            <span class=\"tag\">Date Logic<\/span>\n            <span class=\"tag\">Aggregations<\/span>\n            <span class=\"tag\">Query Optimisation<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"workshop-sidebar\">\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Duration<\/div>\n            <div class=\"ws-detail-value\">4 hours (half day)<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Format<\/div>\n            <div class=\"ws-detail-value\">Live Online<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Group Size<\/div>\n            <div class=\"ws-detail-value\">Max 12<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Price<\/div>\n            <div class=\"ws-detail-value\">R 1 200 per person<\/div>\n          <\/div>\n          <a href=\"\/index.php\/book-a-call\/\" class=\"btn-primary\">Register Interest<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"workshop-card\">\n        <div class=\"workshop-meta\">\n          <div class=\"workshop-level\">Power BI \u00b7 Beginner\u2013Intermediate<\/div>\n          <h2 class=\"workshop-title\">Power BI Foundations \u2014 Full Day<\/h2>\n          <p class=\"workshop-desc\">Build your first end-to-end Power BI report from raw data. Covers data connections, Power Query transformations, the data model, basic DAX measures, and report design principles. You leave with a working report and the confidence to build the next one yourself.<\/p>\n          <div class=\"workshop-topics\">\n            <span class=\"tag\">Power Query<\/span>\n            <span class=\"tag\">Data Modelling<\/span>\n            <span class=\"tag\">DAX Basics<\/span>\n            <span class=\"tag\">Report Design<\/span>\n            <span class=\"tag\">Publishing<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"workshop-sidebar\">\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Duration<\/div>\n            <div class=\"ws-detail-value\">8 hours (full day)<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Format<\/div>\n            <div class=\"ws-detail-value\">Live Online or In-Person<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Group Size<\/div>\n            <div class=\"ws-detail-value\">Max 16<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Price<\/div>\n            <div class=\"ws-detail-value\">R 2 200 per person<\/div>\n          <\/div>\n          <a href=\"\/index.php\/book-a-call\/\" class=\"btn-primary\">Register Interest<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"workshop-card\">\n        <div class=\"workshop-meta\">\n          <div class=\"workshop-level\">Strategy \u00b7 All Levels<\/div>\n          <h2 class=\"workshop-title\">KPI Workshop \u2014 From Objectives to Dashboards<\/h2>\n          <p class=\"workshop-desc\">A facilitated session for business and analytics teams to align on what to measure and why. We work through your actual business objectives, design a coherent KPI framework, and map it to existing or planned dashboards. Practical, collaborative, and immediately usable.<\/p>\n          <div class=\"workshop-topics\">\n            <span class=\"tag\">OKRs to KPIs<\/span>\n            <span class=\"tag\">Metric Hierarchies<\/span>\n            <span class=\"tag\">Dashboard Planning<\/span>\n            <span class=\"tag\">Stakeholder Alignment<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"workshop-sidebar\">\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Duration<\/div>\n            <div class=\"ws-detail-value\">4 hours (half day)<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Format<\/div>\n            <div class=\"ws-detail-value\">Team-only (private)<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Group Size<\/div>\n            <div class=\"ws-detail-value\">4\u201310 (team)<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Price<\/div>\n            <div class=\"ws-detail-value\">From R 8 000 per session<\/div>\n          <\/div>\n          <a href=\"\/index.php\/book-a-call\/\" class=\"btn-primary\">Book for Your Team<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"workshop-card\" style=\"opacity: 0.5; pointer-events: none;\">\n        <div class=\"workshop-meta\">\n          <div class=\"workshop-level\">Python \u00b7 Beginner<\/div>\n          <h2 class=\"workshop-title\">Python for Data Analysts \u2014 Zero to Useful<\/h2>\n          <p class=\"workshop-desc\">A practical introduction to Python for analysts who don&#8217;t have a programming background. Covers Python basics, pandas for data wrangling, and matplotlib for visualisation \u2014 using real business datasets throughout.<\/p>\n          <div class=\"workshop-topics\">\n            <span class=\"tag\">Python Basics<\/span>\n            <span class=\"tag\">pandas<\/span>\n            <span class=\"tag\">Data Wrangling<\/span>\n            <span class=\"tag\">Visualisation<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"workshop-sidebar\">\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Duration<\/div>\n            <div class=\"ws-detail-value\">Full day<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Format<\/div>\n            <div class=\"ws-detail-value\">Live Online<\/div>\n          <\/div>\n          <div class=\"ws-detail\">\n            <div class=\"ws-detail-label\">Price<\/div>\n            <div class=\"ws-detail-value\">TBC<\/div>\n          <\/div>\n          <span class=\"coming-soon-badge\">Coming Q3 2025<\/span>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/section>\n\n  <!-- CORPORATE BAND -->\n  <section style=\"padding-top: 0;\">\n    <div class=\"corporate-band\">\n      <div>\n        <h2>Need a custom session for your team?<\/h2>\n        <p>We design private workshops tailored to your team&#8217;s tools, data, and skill level. Minimum 4 participants. Available online and in Cape Town. Contact us to discuss scope and pricing.<\/p>\n      <\/div>\n      <a href=\"\/index.php\/book-a-call\/\" class=\"btn-orange\">Enquire About Private Training<\/a>\n    <\/div>\n  <\/section>\n\n  <footer>\n    <div class=\"footer-logo\">o<span>Code<\/span>360<\/div>\n    <div class=\"footer-copy\">\u00a9 2025 oCode360 \u00b7 JVW Business Solutions \u00b7 Cape Town, South Africa<\/div>\n  <\/footer>\n\n  <script>\n    const observer = new IntersectionObserver((entries) => {\n      entries.forEach(e => { if (e.isIntersecting) e.target.classList.add('visible'); });\n    }, { threshold: 0.1 });\n    document.querySelectorAll('.workshop-card').forEach(el => observer.observe(el));\n  <\/script>\n  <script>\n    (function() {\n      fetch('\/wp-json\/wc\/store\/v1\/cart', { credentials: 'include' })\n        .then(function(r) { return r.json(); })\n        .then(function(data) {\n          var count = data.items_count || 0;\n          var badge = document.getElementById('nav-cart-count');\n          if (badge && count > 0) {\n            badge.textContent = count;\n            badge.classList.add('has-items');\n          }\n        })\n        .catch(function() {});\n    })();\n  <\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>Workshops \u2014 oCode360 oCode360 Home Services Courses Coaching Workshops Tools Resources About Book a Call Workshops Focused learning. Real outcomes. Half-day and full-day live sessions for analytics practitioners. Between self-paced courses and private coaching \u2014 structured, interactive, and applied to your actual work. \/\/ Workshop formats \ud83d\udda5 Live Online Virtual sessions via Zoom or Teams. [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"ocode360-blank","meta":{"footnotes":""},"class_list":["post-90","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/pages\/90","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/comments?post=90"}],"version-history":[{"count":13,"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/pages\/90\/revisions"}],"predecessor-version":[{"id":233,"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/pages\/90\/revisions\/233"}],"wp:attachment":[{"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/media?parent=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}