Using PowerPoint to present your understanding, knowledge, and evaluation of the above criteria. Follow the instructions below for each section of your group PowerPoint and it should include your written work, pictures, links to videos, posters, graphs, and charts. All work must include Harvard references and be included within PowerPoint. 1. Introduction (one slide) 2. The purpose and process of health promotion (1.1) (two slides) 3. Examples and evaluation of three different types of health promotion (1.2) (three slides) 4. Relationship Between Health Education and Health Promotion (2.1) (three slides) 5. Assess three main approaches to health promotion (1.3) (three slides) 6. Assess the effectiveness of THREE different health education methods. (2.2) (three slides) 7. Assess the relative merits of different communication resources to promote health. (3.1) (two slides) 8. My own health promotion campaign design (3.2) (one slide) 9. Conclusion (one slide)   Each Assessment criteria can have a slide for references. 1. Understand the purpose and key elements of health promotion and the different approaches used. 1.1 Explain the purpose and key elements of health promotion. 1.2 Consider the advantages and potential disadvantages of THREE different ways of promoting health. 1.3 Summarise and assess the relative merits of THREE different theoretical approaches to health promotion. 2. Understand the purpose of health education and the different methods used. 2.1 Consider the meaning of health education and its relationship to health promotion. 2.2 Assess the effectiveness of THREE different health education methods. 3. Be able to design a communication resource to promote health. 3.1 Assess the relative merits of different communication resources to promote health. 3.2 Design a communication resource to promote an aspect of health

Asking for Preferences
Reading File
Searching the Web

health promotion purpose key elements WHO definition approaches 2024

Searching the Web

health education methods effectiveness behaviour change approaches Tannahill Beattie

Reading File
Searching the Web

mental health promotion campaign communication resources posters social media effectiveness UK

Running Command

mkdir -p /tmp/workspace/health-promotion-pptx && ls /tmp/workspace/health-promotion-pptx/

Writing File

~/health-promotion-pptx/build_pptx.py

"""
Health Promotion PowerPoint Builder
Covers all assessment criteria: 1.1, 1.2, 1.3, 2.1, 2.2, 3.1, 3.2
Target audience: General adult public
Campaign topic: Mental health / stress
"""

from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.util import Inches, Pt
import copy

# ── Colour palette ─────────────────────────────────────────────────────────────
C_NAVY    = RGBColor(0x1A, 0x37, 0x5E)   # deep navy – headers / accent
C_TEAL    = RGBColor(0x00, 0x8B, 0x8B)   # teal – sub-headers
C_LIME    = RGBColor(0x6A, 0xBD, 0x45)   # lime green – highlight bars
C_WHITE   = RGBColor(0xFF, 0xFF, 0xFF)
C_LIGHT   = RGBColor(0xF4, 0xF7, 0xFB)   # very light blue-grey – slide bg
C_DARK    = RGBColor(0x1E, 0x1E, 0x2E)   # near-black – body text
C_GOLD    = RGBColor(0xF5, 0xA6, 0x23)   # gold – callout boxes
C_MIDGREY = RGBColor(0xB0, 0xB8, 0xC8)   # grey for footer line

prs = Presentation()
prs.slide_width  = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]   # fully blank


# ══════════════════════════════════════════════════════════════════════════════
# Helper utilities
# ══════════════════════════════════════════════════════════════════════════════

def add_rect(slide, x, y, w, h, fill_color, transparency=0):
    shape = slide.shapes.add_shape(
        1,  # MSO_SHAPE_TYPE.RECTANGLE
        Inches(x), Inches(y), Inches(w), Inches(h)
    )
    shape.fill.solid()
    shape.fill.fore_color.rgb = fill_color
    shape.line.fill.background()
    return shape


def add_text(slide, text, x, y, w, h,
             font_size=18, bold=False, italic=False,
             color=C_DARK, align=PP_ALIGN.LEFT,
             wrap=True, v_anchor=MSO_ANCHOR.TOP,
             font_name="Calibri"):
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.vertical_anchor = v_anchor
    tf.margin_left  = Pt(4)
    tf.margin_right = Pt(4)
    tf.margin_top   = Pt(2)
    tf.margin_bottom = Pt(2)
    # Split on newlines
    lines = text.split('\n')
    for i, line in enumerate(lines):
        if i == 0:
            p = tf.paragraphs[0]
        else:
            p = tf.add_paragraph()
        p.text = line
        p.alignment = align
        if p.runs:
            r = p.runs[0]
            r.font.name  = font_name
            r.font.size  = Pt(font_size)
            r.font.bold  = bold
            r.font.italic = italic
            r.font.color.rgb = color
    return tb


def add_slide_background(slide, color=C_LIGHT):
    add_rect(slide, 0, 0, 13.333, 7.5, color)


def add_header_bar(slide, title_text, subtitle_text=None,
                   bar_color=C_NAVY, title_color=C_WHITE,
                   height=1.3):
    add_rect(slide, 0, 0, 13.333, height, bar_color)
    add_text(slide, title_text,
             x=0.4, y=0.05, w=12.5, h=height - 0.15,
             font_size=28, bold=True, color=title_color,
             align=PP_ALIGN.LEFT, v_anchor=MSO_ANCHOR.MIDDLE)
    if subtitle_text:
        add_text(slide, subtitle_text,
                 x=0.4, y=height - 0.08, w=12.5, h=0.35,
                 font_size=13, bold=False, italic=True,
                 color=C_MIDGREY, align=PP_ALIGN.LEFT)


def add_footer(slide, text="Health Promotion | General Adult Public"):
    add_rect(slide, 0, 7.15, 13.333, 0.35, C_NAVY)
    add_text(slide, text,
             x=0.3, y=7.17, w=12.8, h=0.3,
             font_size=9, color=C_WHITE,
             align=PP_ALIGN.LEFT, v_anchor=MSO_ANCHOR.MIDDLE)


def bullet_box(slide, bullets, x, y, w, h,
               font_size=14, color=C_DARK, bold_first=False):
    """Render a list of bullet strings in a text box."""
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = True
    tf.vertical_anchor = MSO_ANCHOR.TOP
    tf.margin_left = Pt(4)
    tf.margin_right = Pt(4)
    for i, item in enumerate(bullets):
        if i == 0:
            p = tf.paragraphs[0]
        else:
            p = tf.add_paragraph()
        p.text = item
        p.alignment = PP_ALIGN.LEFT
        if p.runs:
            r = p.runs[0]
            r.font.name  = "Calibri"
            r.font.size  = Pt(font_size)
            r.font.color.rgb = color
            r.font.bold  = (bold_first and i == 0)
    return tb


def section_tag(slide, label, x=0.4, y=1.32, w=4.0, h=0.3,
                bg=C_TEAL):
    add_rect(slide, x, y, w, h, bg)
    add_text(slide, label,
             x=x+0.05, y=y, w=w-0.1, h=h,
             font_size=10, bold=True, italic=False,
             color=C_WHITE, align=PP_ALIGN.LEFT,
             v_anchor=MSO_ANCHOR.MIDDLE)


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 1 — Introduction
# ══════════════════════════════════════════════════════════════════════════════
def slide_intro():
    slide = prs.slides.add_slide(blank)
    # Full navy hero
    add_rect(slide, 0, 0, 13.333, 7.5, C_NAVY)
    # Green accent bar left
    add_rect(slide, 0, 0, 0.25, 7.5, C_LIME)
    # Title
    add_text(slide, "Health Promotion",
             x=0.6, y=1.2, w=12.5, h=1.4,
             font_size=48, bold=True, color=C_WHITE,
             align=PP_ALIGN.LEFT)
    # Subtitle
    add_text(slide, "Understanding, Evaluating and Designing Health Promotion Strategies",
             x=0.6, y=2.8, w=10.5, h=0.7,
             font_size=20, italic=True, color=C_LIME,
             align=PP_ALIGN.LEFT)
    # Divider
    add_rect(slide, 0.6, 3.7, 11.0, 0.05, C_TEAL)
    # Body
    intro_text = (
        "This presentation explores the purpose, processes and theoretical models of health promotion "
        "as defined by the World Health Organization (WHO) Ottawa Charter (1986). It evaluates health "
        "education methods and communication resources, and presents an original health promotion "
        "campaign focused on mental health and stress management for the general adult public."
    )
    add_text(slide, intro_text,
             x=0.6, y=3.9, w=11.5, h=1.5,
             font_size=15, color=C_WHITE,
             align=PP_ALIGN.LEFT)
    # Reference note
    add_text(slide,
             "WHO (1986) Ottawa Charter for Health Promotion. Geneva: World Health Organization.",
             x=0.6, y=5.6, w=11.5, h=0.4,
             font_size=10, italic=True, color=C_MIDGREY,
             align=PP_ALIGN.LEFT)
    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 2 — Purpose and Process of Health Promotion (1.1) — Part 1
# ══════════════════════════════════════════════════════════════════════════════
def slide_11a():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "1.1 Purpose and Process of Health Promotion (Part 1)",
                   "Assessment Criterion 1.1 — Explain the purpose and key elements of health promotion")
    section_tag(slide, "DEFINITION & PURPOSE", x=0.4, y=1.35)

    # Two-column layout
    # LEFT: purpose
    add_rect(slide, 0.4, 1.75, 6.0, 0.35, C_TEAL)
    add_text(slide, "What is Health Promotion?",
             x=0.45, y=1.75, w=5.9, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    definition = (
        'The World Health Organization (WHO, 1986) defines health promotion as '
        '"the process of enabling people to increase control over, and to improve, their health." '
        'It goes beyond a focus on individual behaviour, addressing the broad range of social and '
        'environmental determinants of health (WHO, 2024).'
    )
    add_text(slide, definition,
             x=0.4, y=2.15, w=6.0, h=1.3,
             font_size=13, color=C_DARK, wrap=True)

    add_rect(slide, 0.4, 3.5, 6.0, 0.35, C_TEAL)
    add_text(slide, "Key Purposes",
             x=0.45, y=3.5, w=5.9, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    purposes = [
        "• Reduce inequalities in health across populations",
        "• Enable individuals to take control of their own health",
        "• Prevent disease and promote positive well-being",
        "• Advocate for healthy public policies",
        "• Strengthen community action and social support"
    ]
    bullet_box(slide, purposes, x=0.4, y=3.9, w=6.0, h=2.0, font_size=13)

    # RIGHT: Ottawa Charter 5 action areas
    add_rect(slide, 6.8, 1.75, 6.1, 0.35, C_NAVY)
    add_text(slide, "Ottawa Charter (1986): 5 Action Areas",
             x=6.85, y=1.75, w=6.0, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    actions = [
        "1. Build healthy public policy",
        "2. Create supportive environments",
        "3. Strengthen community action",
        "4. Develop personal skills",
        "5. Reorient health services"
    ]
    bullet_box(slide, actions, x=6.8, y=2.15, w=6.1, h=1.5, font_size=13)

    # Callout box
    add_rect(slide, 6.8, 3.75, 6.1, 2.1, C_GOLD)
    add_text(slide,
             "The Ottawa Charter remains the foundational document of health promotion globally. "
             "It introduced three core strategies: ADVOCACY (making health conditions favourable), "
             "ENABLING (reducing health differences), and MEDIATING (coordinating action between "
             "sectors) (WHO, 1986).",
             x=6.85, y=3.8, w=5.9, h=2.0,
             font_size=13, color=C_DARK, wrap=True)

    add_text(slide,
             "References: WHO (1986) Ottawa Charter for Health Promotion. Geneva: WHO. | WHO (2024) Global Framework on Well-being. Geneva: WHO.",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 3 — Purpose and Process of Health Promotion (1.1) — Part 2
# ══════════════════════════════════════════════════════════════════════════════
def slide_11b():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "1.1 Purpose and Process of Health Promotion (Part 2)",
                   "Key elements, process and the determinants of health")
    section_tag(slide, "KEY ELEMENTS & PROCESS", x=0.4, y=1.35)

    # Three column cards
    cols = [
        ("Primary Prevention",
         C_NAVY,
         ["• Stop disease before it starts", "• Immunisation programmes",
          "• Anti-smoking campaigns", "• Healthy eating education",
          "• Stress management workshops"]),
        ("Secondary Prevention",
         C_TEAL,
         ["• Early detection and treatment", "• NHS Health Checks",
          "• Cancer screening (e.g. smear tests)", "• Blood pressure monitoring",
          "• Mental health early interventions"]),
        ("Tertiary Prevention",
         C_LIME,
         ["• Minimise impact of established disease", "• Cardiac rehabilitation",
          "• Mental health recovery programmes", "• Chronic disease management",
          "• Reducing disability and relapse"]),
    ]
    for i, (title, col, bullets) in enumerate(cols):
        cx = 0.4 + i * 4.3
        add_rect(slide, cx, 1.75, 4.1, 0.4, col)
        add_text(slide, title,
                 x=cx+0.05, y=1.75, w=4.0, h=0.4,
                 font_size=13, bold=True, color=C_WHITE,
                 v_anchor=MSO_ANCHOR.MIDDLE)
        bullet_box(slide, bullets, x=cx, y=2.2, w=4.1, h=2.2, font_size=12)

    # Determinants of health box
    add_rect(slide, 0.4, 4.55, 12.5, 0.35, C_NAVY)
    add_text(slide, "Determinants of Health (Dahlgren & Whitehead, 1991 — Rainbow Model)",
             x=0.45, y=4.55, w=12.4, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    det_text = (
        "Dahlgren and Whitehead (1991) proposed the Social Model of Health, depicting health determinants "
        "as concentric layers: individual lifestyle factors at the centre, surrounded by social/community "
        "networks, then living and working conditions, and finally broad socio-economic, cultural and "
        "environmental conditions. Health promotion must address all layers — not just individual behaviour — "
        "to achieve sustainable improvement (Dahlgren & Whitehead, 1991)."
    )
    add_text(slide, det_text,
             x=0.4, y=5.0, w=12.5, h=1.4,
             font_size=13, color=C_DARK, wrap=True)

    add_text(slide,
             "References: Dahlgren, G. & Whitehead, M. (1991) Policies and Strategies to Promote Social Equity in Health. Stockholm: Institute for Futures Studies.",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 4 — Three Types of Health Promotion (1.2) — Slide A
# ══════════════════════════════════════════════════════════════════════════════
def slide_12a():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "1.2 Three Types of Health Promotion (Slide 1 of 3)",
                   "Assessment Criterion 1.2 — Advantages and disadvantages of three ways of promoting health")
    section_tag(slide, "TYPE 1: MASS MEDIA CAMPAIGNS", x=0.4, y=1.35)

    # Example
    add_rect(slide, 0.4, 1.75, 8.5, 0.35, C_NAVY)
    add_text(slide, "Example: FRANK Anti-Drugs Campaign (UK) & NHS Stoptober",
             x=0.45, y=1.75, w=8.4, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    desc = (
        "Mass media campaigns use television, radio, internet, billboards and social media to reach large "
        "audiences. Examples include NHS Stoptober, FRANK drugs awareness, Change4Life healthy eating, "
        "and 'Every Mind Matters' (NHS, 2023). These campaigns raise awareness, normalise health behaviours "
        "and reduce stigma at a population level."
    )
    add_text(slide, desc,
             x=0.4, y=2.15, w=8.5, h=1.2,
             font_size=13, color=C_DARK, wrap=True)

    # Advantages
    add_rect(slide, 0.4, 3.45, 4.1, 0.35, C_LIME)
    add_text(slide, "✔  Advantages",
             x=0.45, y=3.45, w=4.0, h=0.35,
             font_size=13, bold=True, color=C_DARK, v_anchor=MSO_ANCHOR.MIDDLE)
    adv = [
        "• Wide reach — millions exposed at low per-person cost",
        "• Can change social norms and reduce stigma",
        "• Accessible to all literacy levels (TV/radio)",
        "• Can be tailored by platform (e.g. social media for youth)"
    ]
    bullet_box(slide, adv, x=0.4, y=3.85, w=4.1, h=1.8, font_size=12)

    # Disadvantages
    add_rect(slide, 4.7, 3.45, 4.1, 0.35, RGBColor(0xC0,0x20,0x20))
    add_text(slide, "✖  Disadvantages / Limitations",
             x=4.75, y=3.45, w=4.0, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
    dis = [
        "• One-way communication — no interaction or feedback",
        "• Does not address underlying social determinants",
        "• May widen health inequalities (those most at risk may not engage)",
        "• Behaviour change is not guaranteed from awareness alone"
    ]
    bullet_box(slide, dis, x=4.7, y=3.85, w=4.1, h=1.8, font_size=12)

    # Evaluation callout
    add_rect(slide, 9.2, 1.75, 3.8, 4.5, C_GOLD)
    add_text(slide, "Evaluation",
             x=9.25, y=1.8, w=3.7, h=0.3,
             font_size=13, bold=True, color=C_DARK)
    eval_text = (
        "Wakefield et al. (2010) found mass media campaigns are most effective when combined with "
        "other interventions (e.g. policy change, community programmes). They can increase knowledge "
        "and motivation but rarely produce sustained behaviour change alone.\n\n"
        "Wakefield, M.A. et al. (2010) 'Use of mass media campaigns to change health behaviour', "
        "The Lancet, 376(9748), pp.1261-1271."
    )
    add_text(slide, eval_text,
             x=9.25, y=2.15, w=3.7, h=4.0,
             font_size=11, color=C_DARK, wrap=True)

    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 5 — Three Types (1.2) — Slide B
# ══════════════════════════════════════════════════════════════════════════════
def slide_12b():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "1.2 Three Types of Health Promotion (Slide 2 of 3)",
                   "Assessment Criterion 1.2")
    section_tag(slide, "TYPE 2: COMMUNITY-BASED PROGRAMMES", x=0.4, y=1.35)

    add_rect(slide, 0.4, 1.75, 8.5, 0.35, C_NAVY)
    add_text(slide, "Example: Sure Start, Health Champions, Walking for Health",
             x=0.45, y=1.75, w=8.4, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    desc = (
        "Community-based health promotion involves working within local communities to address specific "
        "health needs. Examples include Sure Start children's centres, NHS Health Champions training "
        "volunteers, Walking for Health groups and community mental health cafes. This approach aligns "
        "with the WHO's principle of community empowerment (WHO, 1986; NICE, 2014)."
    )
    add_text(slide, desc,
             x=0.4, y=2.15, w=8.5, h=1.2,
             font_size=13, color=C_DARK, wrap=True)

    add_rect(slide, 0.4, 3.45, 4.1, 0.35, C_LIME)
    add_text(slide, "✔  Advantages",
             x=0.45, y=3.45, w=4.0, h=0.35,
             font_size=13, bold=True, color=C_DARK, v_anchor=MSO_ANCHOR.MIDDLE)
    adv = [
        "• Addresses social determinants (poverty, isolation)",
        "• Builds social capital and community resilience",
        "• Empowers participants — bottom-up approach",
        "• Can be tailored to local cultural/social needs",
        "• Supports sustained behaviour change"
    ]
    bullet_box(slide, adv, x=0.4, y=3.85, w=4.1, h=2.0, font_size=12)

    add_rect(slide, 4.7, 3.45, 4.1, 0.35, RGBColor(0xC0,0x20,0x20))
    add_text(slide, "✖  Disadvantages / Limitations",
             x=4.75, y=3.45, w=4.0, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
    dis = [
        "• Resource-intensive — requires trained staff and funding",
        "• Limited geographic reach compared to mass media",
        "• Risk of programme ending when funding stops",
        "• Harder to evaluate outcomes systematically",
        "• May not reach the most isolated individuals"
    ]
    bullet_box(slide, dis, x=4.7, y=3.85, w=4.1, h=2.0, font_size=12)

    add_rect(slide, 9.2, 1.75, 3.8, 4.5, C_GOLD)
    add_text(slide, "Evaluation",
             x=9.25, y=1.8, w=3.7, h=0.3,
             font_size=13, bold=True, color=C_DARK)
    eval_text = (
        "NICE (2014) states community-based approaches are particularly effective for reaching "
        "disadvantaged groups and improving mental well-being. However, evidence of long-term "
        "impact on health outcomes remains limited without continued investment.\n\n"
        "NICE (2014) Community and Social Participation (PH9). London: NICE.\n\n"
        "Marmot, M. (2010) Fair Society, Healthy Lives (Marmot Review). London: UCL."
    )
    add_text(slide, eval_text,
             x=9.25, y=2.15, w=3.7, h=4.0,
             font_size=11, color=C_DARK, wrap=True)

    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 6 — Three Types (1.2) — Slide C
# ══════════════════════════════════════════════════════════════════════════════
def slide_12c():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "1.2 Three Types of Health Promotion (Slide 3 of 3)",
                   "Assessment Criterion 1.2")
    section_tag(slide, "TYPE 3: LEGISLATIVE / POLICY-BASED APPROACHES", x=0.4, y=1.35)

    add_rect(slide, 0.4, 1.75, 8.5, 0.35, C_NAVY)
    add_text(slide, "Example: Smoking Ban (2007), Sugar Tax (2018), Minimum Unit Pricing (Alcohol)",
             x=0.45, y=1.75, w=8.4, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    desc = (
        "Legislative approaches use laws and policies to create environments that support healthy "
        "behaviour. The Health Act 2006 introduced a smoking ban in public places; the Soft Drinks "
        "Industry Levy (2018) taxed sugary drinks; Scotland introduced Minimum Unit Pricing for alcohol "
        "in 2018. These are 'top-down' authoritative interventions that shift the environment rather "
        "than requiring individual motivation."
    )
    add_text(slide, desc,
             x=0.4, y=2.15, w=8.5, h=1.2,
             font_size=13, color=C_DARK, wrap=True)

    add_rect(slide, 0.4, 3.45, 4.1, 0.35, C_LIME)
    add_text(slide, "✔  Advantages",
             x=0.45, y=3.45, w=4.0, h=0.35,
             font_size=13, bold=True, color=C_DARK, v_anchor=MSO_ANCHOR.MIDDLE)
    adv = [
        "• Universal application — affects entire population",
        "• Creates structural change, not dependent on individual choice",
        "• Can reduce health inequalities (e.g. sugar tax impacts poorer diets)",
        "• Evidence of rapid results (smoking ban reduced hospital admissions)"
    ]
    bullet_box(slide, adv, x=0.4, y=3.85, w=4.1, h=1.9, font_size=12)

    add_rect(slide, 4.7, 3.45, 4.1, 0.35, RGBColor(0xC0,0x20,0x20))
    add_text(slide, "✖  Disadvantages / Limitations",
             x=4.75, y=3.45, w=4.0, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
    dis = [
        "• Can be perceived as 'nanny state' — limits personal freedom",
        "• Enforcement may be inconsistent",
        "• Industry lobbying can block or delay legislation",
        "• Does not address root causes (e.g. poverty, advertising)"
    ]
    bullet_box(slide, dis, x=4.7, y=3.85, w=4.1, h=1.9, font_size=12)

    add_rect(slide, 9.2, 1.75, 3.8, 4.5, C_GOLD)
    add_text(slide, "Evaluation",
             x=9.25, y=1.8, w=3.7, h=0.3,
             font_size=13, bold=True, color=C_DARK)
    eval_text = (
        "Bauld et al. (2011) found the UK smoking ban led to a 2.4% reduction in acute MI hospital "
        "admissions within a year. Public Health England (2018) reported the sugar levy led to a "
        "28.8% reduction in sugar content in eligible drinks.\n\n"
        "Bauld, L. et al. (2011) 'The Impact of Smokefree Legislation', "
        "Nicotine & Tobacco Research, 13(5), pp.295-306.\n\n"
        "PHE (2018) Sugar Reduction: Report on Progress. London: PHE."
    )
    add_text(slide, eval_text,
             x=9.25, y=2.15, w=3.7, h=4.0,
             font_size=11, color=C_DARK, wrap=True)

    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 7 — Health Education & Health Promotion Relationship (2.1) — A
# ══════════════════════════════════════════════════════════════════════════════
def slide_21a():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "2.1 Relationship Between Health Education and Health Promotion (1 of 3)",
                   "Assessment Criterion 2.1 — Consider the meaning of health education and its relationship to health promotion")
    section_tag(slide, "DEFINING HEALTH EDUCATION", x=0.4, y=1.35)

    # Big quote box
    add_rect(slide, 0.4, 1.75, 12.5, 0.9, C_NAVY)
    add_text(slide,
             '"Health education comprises consciously constructed opportunities for learning involving '
             'some form of communication designed to improve health literacy, including improving '
             'knowledge, and developing life skills which are conducive to individual and community health."',
             x=0.5, y=1.8, w=12.3, h=0.8,
             font_size=12, italic=True, color=C_WHITE, wrap=True,
             v_anchor=MSO_ANCHOR.MIDDLE)
    add_text(slide, "WHO (1998) Health Promotion Glossary. Geneva: WHO.",
             x=0.5, y=2.7, w=12.3, h=0.25,
             font_size=10, italic=True, color=C_TEAL)

    # Comparison table heading
    add_rect(slide, 0.4, 3.05, 12.5, 0.35, C_TEAL)
    add_text(slide, "Health Education vs Health Promotion — Key Differences",
             x=0.45, y=3.05, w=12.4, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    # Table headers
    headers = ["", "Health Education", "Health Promotion"]
    col_widths = [2.5, 4.9, 4.9]
    col_x = [0.4, 2.95, 7.9]
    for i, (h, w, x) in enumerate(zip(headers, col_widths, col_x)):
        add_rect(slide, x, 3.45, w, 0.3, C_NAVY if i > 0 else C_MIDGREY)
        add_text(slide, h, x=x+0.05, y=3.45, w=w-0.1, h=0.3,
                 font_size=11, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    rows = [
        ("Focus",      "Individual knowledge & skills",           "Individual, community & environmental factors"),
        ("Scope",      "Narrower — information-giving",           "Broader — policy, environment, community"),
        ("Approach",   "Informing and educating",                 "Enabling, advocating and mediating"),
        ("Methods",    "Leaflets, classes, counselling",          "Campaigns, policy, community development"),
        ("Goal",       "Behaviour change through knowledge",      "Reduction of health inequalities"),
    ]
    row_colors = [C_LIGHT, C_WHITE, C_LIGHT, C_WHITE, C_LIGHT]
    for ri, (row, rc) in enumerate(zip(rows, row_colors)):
        ry = 3.8 + ri * 0.42
        for ci, (val, w, x) in enumerate(zip(row, col_widths, col_x)):
            add_rect(slide, x, ry, w, 0.4, rc)
            add_text(slide, val, x=x+0.05, y=ry, w=w-0.1, h=0.4,
                     font_size=11, color=C_DARK, v_anchor=MSO_ANCHOR.MIDDLE,
                     bold=(ci == 0))

    add_text(slide,
             "References: WHO (1998) Health Promotion Glossary. Geneva: WHO. | Naidoo, J. & Wills, J. (2016) Foundations for Health Promotion. 4th edn. Edinburgh: Elsevier.",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 8 — Health Education & Promotion (2.1) — B
# ══════════════════════════════════════════════════════════════════════════════
def slide_21b():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "2.1 Relationship Between Health Education and Health Promotion (2 of 3)",
                   "How health education operates within health promotion")
    section_tag(slide, "TANNAHILL'S MODEL (1985) — OVERLAPPING SPHERES", x=0.4, y=1.35)

    desc = (
        "Tannahill (1985) proposed that health promotion comprises three overlapping spheres: "
        "Health Education, Health Protection and Prevention. Health education is therefore a "
        "subset and a key component of the broader health promotion framework."
    )
    add_text(slide, desc,
             x=0.4, y=1.75, w=8.5, h=0.9,
             font_size=13, color=C_DARK, wrap=True)

    # Three overlapping circles represented as labelled boxes
    circles = [
        (0.5, 2.85, 3.8, 2.0, C_NAVY,  "Health\nPrevention",
         "Immunisation,\nscreening, NHS\nHealth Checks"),
        (3.0, 2.85, 3.8, 2.0, C_TEAL,  "Health\nEducation",
         "Leaflets, classes,\ncounselling, CBT,\nonline courses"),
        (5.5, 2.85, 3.8, 2.0, C_LIME,  "Health\nProtection",
         "Legislation, policy,\nwater fluoridation,\nfood labelling"),
    ]
    for (x, y, w, h, col, title, sub) in circles:
        add_rect(slide, x, y, w, h, col)
        add_text(slide, title,
                 x=x+0.1, y=y+0.1, w=w-0.2, h=0.6,
                 font_size=14, bold=True, color=C_WHITE,
                 align=PP_ALIGN.CENTER)
        add_text(slide, sub,
                 x=x+0.1, y=y+0.75, w=w-0.2, h=1.1,
                 font_size=12, color=C_WHITE,
                 align=PP_ALIGN.CENTER)

    # Overlap note
    add_rect(slide, 0.4, 5.1, 8.5, 0.35, C_GOLD)
    add_text(slide,
             "Overlapping zone = Combined health promotion activities (e.g. smoking cessation: education + NRT availability [protection] + smoking ban [policy])",
             x=0.45, y=5.1, w=8.4, h=0.35,
             font_size=11, color=C_DARK, v_anchor=MSO_ANCHOR.MIDDLE)

    # Naidoo & Wills
    add_rect(slide, 9.3, 2.5, 3.7, 3.8, C_GOLD)
    add_text(slide, "Naidoo & Wills (2016):\nHealth Education Includes:",
             x=9.35, y=2.55, w=3.6, h=0.55,
             font_size=12, bold=True, color=C_DARK)
    nw = [
        "• Providing information",
        "• Developing skills (e.g. cooking, self-care)",
        "• Attitude and values clarification",
        "• Behaviour change support",
        "• Community development",
        "• Advocacy for resources",
        "• Increasing self-efficacy"
    ]
    bullet_box(slide, nw, x=9.35, y=3.15, w=3.6, h=3.0, font_size=11)

    add_rect(slide, 0.4, 5.6, 8.5, 0.7, C_LIGHT)
    add_text(slide,
             "Key relationship: Health EDUCATION informs and empowers individuals; "
             "health PROMOTION uses education as one of several tools — alongside policy, "
             "community action and environmental change — to improve population health.",
             x=0.45, y=5.6, w=8.4, h=0.7,
             font_size=12, color=C_DARK, wrap=True, italic=True)

    add_text(slide,
             "References: Tannahill, A. (1985) 'What is health promotion?', Health Education Journal, 44(4), pp.167-168. | Naidoo, J. & Wills, J. (2016) Foundations for Health Promotion. 4th edn. Edinburgh: Elsevier.",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 9 — Health Education & Promotion (2.1) — C
# ══════════════════════════════════════════════════════════════════════════════
def slide_21c():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "2.1 Relationship Between Health Education and Health Promotion (3 of 3)",
                   "Empowerment and the social model")
    section_tag(slide, "EMPOWERMENT MODEL & SOCIAL DETERMINANTS", x=0.4, y=1.35)

    add_rect(slide, 0.4, 1.75, 12.5, 0.35, C_NAVY)
    add_text(slide, "How Health Education Supports Health Promotion: Empowerment Pathway",
             x=0.45, y=1.75, w=12.4, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    # Pathway boxes
    steps = [
        (C_NAVY,  "Health\nEducation",  "Provides\nknowledge\n& skills"),
        (C_TEAL,  "Increased\nHealth\nLiteracy",  "Understands\nrisks &\nbenefits"),
        (C_LIME,  "Empow-\nerment",  "Confident\nto act &\nadvocate"),
        (C_GOLD,  "Behaviour\nChange",  "Adopts\nhealthier\nlifestyles"),
        (C_NAVY,  "Health\nPromotion\nOutcomes", "Reduced\ninequalities\n& disease"),
    ]
    for i, (col, title, sub) in enumerate(steps):
        bx = 0.5 + i * 2.5
        add_rect(slide, bx, 2.2, 2.2, 1.6, col)
        add_text(slide, title,
                 x=bx+0.05, y=2.25, w=2.1, h=0.6,
                 font_size=12, bold=True, color=C_WHITE,
                 align=PP_ALIGN.CENTER)
        add_text(slide, sub,
                 x=bx+0.05, y=2.9, w=2.1, h=0.8,
                 font_size=11, color=C_WHITE,
                 align=PP_ALIGN.CENTER)
        if i < 4:
            add_text(slide, "➤",
                     x=bx+2.2, y=2.65, w=0.3, h=0.5,
                     font_size=18, bold=True, color=C_TEAL,
                     align=PP_ALIGN.CENTER)

    # Social determinants impact
    add_rect(slide, 0.4, 4.0, 12.5, 0.35, C_TEAL)
    add_text(slide, "Social Determinants: Why Education Alone is Not Enough",
             x=0.45, y=4.0, w=12.4, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    body = (
        "Marmot (2010) demonstrated that social and economic inequalities fundamentally determine health "
        "outcomes. Health education — while valuable — cannot address poverty, poor housing or unemployment. "
        "Health promotion must therefore combine education with advocacy, legislation and community-based "
        "action. The Black Report (1980) first highlighted that health inequalities persisted despite the "
        "NHS, indicating structural determinants required structural solutions.\n\n"
        "This is why health promotion is broader than health education: it demands multi-level, "
        "multi-sector action that includes, but extends well beyond, the classroom or clinic."
    )
    add_text(slide, body,
             x=0.4, y=4.4, w=12.5, h=2.1,
             font_size=13, color=C_DARK, wrap=True)

    add_text(slide,
             "References: Marmot, M. (2010) Fair Society, Healthy Lives. London: UCL. | Black, D. et al. (1980) Inequalities in Health (Black Report). London: DHSS.",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDES 10-12 — Approaches to Health Promotion (1.3)
# ══════════════════════════════════════════════════════════════════════════════
def slide_13a():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "1.3 Theoretical Approaches to Health Promotion (Slide 1 of 3)",
                   "Assessment Criterion 1.3 — Summarise and assess the relative merits of THREE theoretical approaches")
    section_tag(slide, "APPROACH 1: NAIDOO & WILLS' FIVE APPROACHES (2016)", x=0.4, y=1.35)

    overview = (
        "Naidoo and Wills (2016) identify five approaches to health promotion, each with distinct "
        "assumptions about health and the role of the practitioner."
    )
    add_text(slide, overview,
             x=0.4, y=1.75, w=12.5, h=0.55,
             font_size=13, color=C_DARK)

    approaches = [
        (C_NAVY,  "1. Medical",         "Focus: Disease prevention through clinical intervention.\nExample: Immunisation, screening.\nMerit: Evidence-based, measurable. Limit: Ignores social causes."),
        (C_TEAL,  "2. Behavioural",     "Focus: Changing individual behaviour.\nExample: Anti-smoking campaigns.\nMerit: Individual empowerment. Limit: Victim-blaming risk."),
        (C_LIME,  "3. Educational",     "Focus: Providing knowledge to enable informed choices.\nExample: Sex education.\nMerit: Respects autonomy. Limit: Assumes knowledge = action."),
        (C_GOLD,  "4. Empowerment",     "Focus: Community action and self-determination.\nExample: Sure Start.\nMerit: Addresses inequalities. Limit: Time-intensive."),
        (RGBColor(0x70,0x30,0x90), "5. Social Change", "Focus: Structural/political change.\nExample: Minimum unit pricing.\nMerit: Tackles root causes. Limit: Political resistance."),
    ]

    for i, (col, title, body) in enumerate(approaches):
        cx = 0.4 + (i % 3) * 4.25
        cy = 2.4 + (i // 3) * 2.3
        add_rect(slide, cx, cy, 4.0, 0.35, col)
        add_text(slide, title,
                 x=cx+0.05, y=cy, w=3.9, h=0.35,
                 font_size=12, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
        add_text(slide, body,
                 x=cx, y=cy+0.38, w=4.0, h=1.85,
                 font_size=11, color=C_DARK, wrap=True)

    add_text(slide,
             "References: Naidoo, J. & Wills, J. (2016) Foundations for Health Promotion. 4th edn. Edinburgh: Elsevier.",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


def slide_13b():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "1.3 Theoretical Approaches to Health Promotion (Slide 2 of 3)",
                   "Beattie's Model (1991)")
    section_tag(slide, "APPROACH 2: BEATTIE'S MODEL (1991)", x=0.4, y=1.35)

    desc = (
        "Beattie (1991) proposed a four-quadrant model using two axes: Mode of Intervention "
        "(Authoritative → Negotiated) and Focus of Intervention (Individual → Collective). "
        "This produces four health promotion strategies:"
    )
    add_text(slide, desc,
             x=0.4, y=1.75, w=12.5, h=0.7,
             font_size=13, color=C_DARK, wrap=True)

    # Four quadrant grid
    quad_data = [
        # (col, title, body, grid_col, grid_row)
        (C_NAVY,  "Health Persuasion\n(Authoritative / Individual)",
         "Top-down advice to individuals.\nE.g. GP lifestyle advice.\nMerit: Expert knowledge used.\nLimit: Paternalistic.", 0, 0),
        (C_TEAL,  "Legislative Action\n(Authoritative / Collective)",
         "Top-down population policies.\nE.g. smoking ban, sugar tax.\nMerit: Wide impact.\nLimit: Nanny state concerns.", 1, 0),
        (C_LIME,  "Personal Counselling\n(Negotiated / Individual)",
         "Bottom-up, client-centred support.\nE.g. CBT, motivational interviewing.\nMerit: Respects individual needs.\nLimit: Resource-intensive.", 0, 1),
        (C_GOLD,  "Community Development\n(Negotiated / Collective)",
         "Bottom-up community-led action.\nE.g. health champions, community gardens.\nMerit: Empowerment & ownership.\nLimit: Slow, complex to evaluate.", 1, 1),
    ]

    for col, title, body, gc, gr in quad_data:
        bx = 0.5 + gc * 6.0
        by = 2.55 + gr * 2.1
        add_rect(slide, bx, by, 5.7, 0.4, col)
        add_text(slide, title,
                 x=bx+0.05, y=by, w=5.6, h=0.4,
                 font_size=12, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
        add_text(slide, body,
                 x=bx, y=by+0.43, w=5.7, h=1.6,
                 font_size=12, color=C_DARK, wrap=True)

    # Assessment
    add_rect(slide, 0.4, 6.5, 12.5, 0.35, C_NAVY)
    add_text(slide,
             "Assessment: Beattie's model is particularly valuable because it makes explicit the "
             "power dynamics in health promotion, helping practitioners reflect on their approach "
             "and whether they are imposing or facilitating health behaviour (Beattie, 1991).",
             x=0.45, y=6.5, w=12.4, h=0.35,
             font_size=11, italic=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    add_text(slide,
             "References: Beattie, A. (1991) 'Knowledge and control in health promotion', in Gabe, J. et al. (eds) The Sociology of the Health Service. London: Routledge.",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


def slide_13c():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "1.3 Theoretical Approaches to Health Promotion (Slide 3 of 3)",
                   "Social Ecological Model (Bronfenbrenner / McLeroy)")
    section_tag(slide, "APPROACH 3: SOCIO-ECOLOGICAL MODEL (McLEROY et al., 1988)", x=0.4, y=1.35)

    desc = (
        "McLeroy et al. (1988) proposed the Social Ecological Model of Health, identifying five "
        "levels of influence on health behaviour, from the individual outward to society. "
        "Health promotion should address all levels simultaneously for maximum effectiveness."
    )
    add_text(slide, desc,
             x=0.4, y=1.75, w=8.5, h=0.8,
             font_size=13, color=C_DARK, wrap=True)

    levels = [
        (C_NAVY,  "5. Public Policy",       "Laws, regulations, national campaigns (e.g. sugar tax, Every Mind Matters)"),
        (C_TEAL,  "4. Community",           "Social networks, community norms, access to services (e.g. mental health cafes)"),
        (C_LIME,  "3. Institutional",       "Schools, workplaces, NHS promoting health literacy and well-being programmes"),
        (C_GOLD,  "2. Interpersonal",       "Family, friends, peers providing social support and modelling behaviours"),
        (RGBColor(0xA0,0x20,0x60), "1. Individual", "Knowledge, attitudes, self-efficacy, personal skills (innermost layer)"),
    ]

    for i, (col, title, body) in enumerate(levels):
        ly = 2.65 + i * 0.75
        lw = 12.5 - i * 0.3
        lx = 0.4 + i * 0.15
        add_rect(slide, lx, ly, lw, 0.7, col)
        add_text(slide, f"{title}: {body}",
                 x=lx+0.1, y=ly, w=lw-0.2, h=0.7,
                 font_size=11, bold=(i < 1), color=C_WHITE,
                 v_anchor=MSO_ANCHOR.MIDDLE)

    # Comparative assessment
    add_rect(slide, 0.4, 6.45, 12.5, 0.35, C_GOLD)
    add_text(slide,
             "Assessment: The Social Ecological Model is the most comprehensive — it avoids "
             "'victim-blaming' by recognising multiple system levels, but is complex and costly "
             "to implement. Best applied to complex issues like mental health, obesity or addiction.",
             x=0.45, y=6.45, w=12.4, h=0.35,
             font_size=11, color=C_DARK, v_anchor=MSO_ANCHOR.MIDDLE)

    add_text(slide,
             "References: McLeroy, K.R. et al. (1988) 'An ecological perspective on health promotion programs', Health Education Quarterly, 15(4), pp.351-377.",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDES 13-15 — Health Education Methods (2.2)
# ══════════════════════════════════════════════════════════════════════════════
def slide_22a():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "2.2 Health Education Methods (Slide 1 of 3)",
                   "Assessment Criterion 2.2 — Assess the effectiveness of THREE different health education methods")
    section_tag(slide, "METHOD 1: ONE-TO-ONE COUNSELLING & MOTIVATIONAL INTERVIEWING", x=0.4, y=1.35)

    desc = (
        "One-to-one methods include individual counselling, Motivational Interviewing (MI) and "
        "health coaching. MI was developed by Miller and Rollnick (1991) as a client-centred, "
        "directive method for enhancing intrinsic motivation to change. NHS Health Checks and "
        "smoking cessation services frequently use MI."
    )
    add_text(slide, desc,
             x=0.4, y=1.75, w=9.0, h=1.0,
             font_size=13, color=C_DARK, wrap=True)

    # Effectiveness evidence box
    add_rect(slide, 9.4, 1.75, 3.6, 5.0, C_NAVY)
    add_text(slide, "Evidence Base",
             x=9.45, y=1.8, w=3.5, h=0.3,
             font_size=12, bold=True, color=C_GOLD)
    evidence = (
        "Rubak et al. (2005) meta-analysis of 72 RCTs: MI outperformed traditional advice in 74% "
        "of trials for conditions including diabetes, obesity, asthma, hypertension and substance "
        "misuse.\n\n"
        "Rubak, S. et al. (2005) 'Motivational interviewing: a systematic review and meta-analysis', "
        "British Journal of General Practice, 55(513), pp.305-312."
    )
    add_text(slide, evidence,
             x=9.45, y=2.15, w=3.5, h=4.4,
             font_size=11, color=C_WHITE, wrap=True)

    cols2 = [
        ("Advantages", C_LIME, [
            "• Highly personalised to individual needs",
            "• Non-judgemental — builds therapeutic alliance",
            "• Effective across diverse health conditions",
            "• Addresses ambivalence directly",
            "• Strong evidence base (RCTs)"
        ]),
        ("Limitations", RGBColor(0xC0,0x20,0x20), [
            "• Requires trained practitioners",
            "• Time-intensive — not scalable",
            "• Access inequalities (language, culture)",
            "• Does not address structural barriers",
            "• Effectiveness varies by practitioner skill"
        ]),
    ]
    for i, (title, col, bullets) in enumerate(cols2):
        bx = 0.4 + i * 4.6
        add_rect(slide, bx, 2.85, 4.3, 0.35, col)
        add_text(slide, title,
                 x=bx+0.05, y=2.85, w=4.2, h=0.35,
                 font_size=13, bold=True, color=C_DARK if i == 0 else C_WHITE,
                 v_anchor=MSO_ANCHOR.MIDDLE)
        bullet_box(slide, bullets, x=bx, y=3.25, w=4.3, h=2.3, font_size=12)

    add_rect(slide, 0.4, 5.75, 8.6, 0.5, C_GOLD)
    add_text(slide,
             "Overall Effectiveness: HIGH for motivated individuals with access to trained practitioners. "
             "NICE recommends MI for lifestyle behaviour change in primary care settings.",
             x=0.45, y=5.75, w=8.5, h=0.5,
             font_size=11, color=C_DARK, wrap=True, v_anchor=MSO_ANCHOR.MIDDLE)

    add_footer(slide)
    return slide


def slide_22b():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "2.2 Health Education Methods (Slide 2 of 3)",
                   "Assessment Criterion 2.2")
    section_tag(slide, "METHOD 2: GROUP EDUCATION PROGRAMMES & WORKSHOPS", x=0.4, y=1.35)

    desc = (
        "Group-based education brings people together for structured learning. Examples include "
        "DESMOND (Diabetes Education and Self Management for Ongoing and Newly Diagnosed), "
        "smoking cessation group therapy, NHS weight management groups and mental health "
        "psychoeducation workshops."
    )
    add_text(slide, desc,
             x=0.4, y=1.75, w=9.0, h=1.0,
             font_size=13, color=C_DARK, wrap=True)

    add_rect(slide, 9.4, 1.75, 3.6, 5.0, C_NAVY)
    add_text(slide, "Evidence Base",
             x=9.45, y=1.8, w=3.5, h=0.3,
             font_size=12, bold=True, color=C_GOLD)
    evidence = (
        "Davies, M.J. et al. (2008) DESMOND RCT — group education improved illness beliefs "
        "and smoking cessation vs. usual care (p<0.001).\n\n"
        "Stead, L.F. et al. (2017) Cochrane review: group therapy more effective than "
        "self-help for smoking cessation (RR 1.88).\n\n"
        "Davies et al. (2008) BMJ, 336, pp.491-495.\n"
        "Stead et al. (2017) Cochrane Database, Issue 3."
    )
    add_text(slide, evidence,
             x=9.45, y=2.15, w=3.5, h=4.4,
             font_size=11, color=C_WHITE, wrap=True)

    cols2 = [
        ("Advantages", C_LIME, [
            "• Peer support reduces isolation and stigma",
            "• Cost-effective — multiple people at once",
            "• Social learning and shared experience",
            "• Builds community and social capital",
            "• Structured curriculum ensures consistency"
        ]),
        ("Limitations", RGBColor(0xC0,0x20,0x20), [
            "• Not suitable for all — requires group comfort",
            "• Scheduling difficulties (attendance drops)",
            "• Individual needs may not all be met",
            "• Group dynamics can be negative",
            "• Less effective for highly vulnerable individuals"
        ]),
    ]
    for i, (title, col, bullets) in enumerate(cols2):
        bx = 0.4 + i * 4.6
        add_rect(slide, bx, 2.85, 4.3, 0.35, col)
        add_text(slide, title,
                 x=bx+0.05, y=2.85, w=4.2, h=0.35,
                 font_size=13, bold=True, color=C_DARK if i == 0 else C_WHITE,
                 v_anchor=MSO_ANCHOR.MIDDLE)
        bullet_box(slide, bullets, x=bx, y=3.25, w=4.3, h=2.3, font_size=12)

    add_rect(slide, 0.4, 5.75, 8.6, 0.5, C_GOLD)
    add_text(slide,
             "Overall Effectiveness: MODERATE-HIGH. Particularly effective for chronic disease "
             "management. Works best when combined with follow-up and peer support networks.",
             x=0.45, y=5.75, w=8.5, h=0.5,
             font_size=11, color=C_DARK, wrap=True, v_anchor=MSO_ANCHOR.MIDDLE)

    add_footer(slide)
    return slide


def slide_22c():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "2.2 Health Education Methods (Slide 3 of 3)",
                   "Assessment Criterion 2.2")
    section_tag(slide, "METHOD 3: DIGITAL / ONLINE HEALTH EDUCATION (eHEALTH)", x=0.4, y=1.35)

    desc = (
        "Digital health education includes websites, apps (e.g. NHS App, Headspace, Couch to 5K), "
        "online courses, social media campaigns, YouTube health channels and text-message interventions. "
        "This is the fastest-growing modality, accelerated by COVID-19 and NHS digital transformation "
        "strategy (NHS England, 2022)."
    )
    add_text(slide, desc,
             x=0.4, y=1.75, w=9.0, h=1.0,
             font_size=13, color=C_DARK, wrap=True)

    add_rect(slide, 9.4, 1.75, 3.6, 5.0, C_NAVY)
    add_text(slide, "Evidence Base",
             x=9.45, y=1.8, w=3.5, h=0.3,
             font_size=12, bold=True, color=C_GOLD)
    evidence = (
        "Berryman et al. (2018) systematic review: digital mental health interventions significantly "
        "reduced depression and anxiety symptoms (SMD -0.56).\n\n"
        "PHE (2020): Every Mind Matters website received 2.4 million visits in 2 weeks post-launch.\n\n"
        "Berryman, C. et al. (2018) Social Media Use and Mental Health. Cyberpsychology, 21(6).\n"
        "NHS England (2022) Digital Strategy. London: NHSE."
    )
    add_text(slide, evidence,
             x=9.45, y=2.15, w=3.5, h=4.4,
             font_size=11, color=C_WHITE, wrap=True)

    cols2 = [
        ("Advantages", C_LIME, [
            "• 24/7 accessibility — no appointment needed",
            "• Scalable to millions at low cost",
            "• Anonymity reduces stigma (esp. mental health)",
            "• Interactive, gamified — increases engagement",
            "• Easy updates with current information"
        ]),
        ("Limitations", RGBColor(0xC0,0x20,0x20), [
            "• Digital divide — excludes elderly, low-income",
            "• Information quality varies; misinformation risk",
            "• Low completion rates for online programmes",
            "• Cannot replace face-to-face human support",
            "• Data privacy concerns"
        ]),
    ]
    for i, (title, col, bullets) in enumerate(cols2):
        bx = 0.4 + i * 4.6
        add_rect(slide, bx, 2.85, 4.3, 0.35, col)
        add_text(slide, title,
                 x=bx+0.05, y=2.85, w=4.2, h=0.35,
                 font_size=13, bold=True, color=C_DARK if i == 0 else C_WHITE,
                 v_anchor=MSO_ANCHOR.MIDDLE)
        bullet_box(slide, bullets, x=bx, y=3.25, w=4.3, h=2.3, font_size=12)

    add_rect(slide, 0.4, 5.75, 8.6, 0.5, C_GOLD)
    add_text(slide,
             "Overall Effectiveness: GROWING evidence base, especially for mental health and lifestyle. "
             "Must be combined with equitable access strategies to avoid widening inequalities.",
             x=0.45, y=5.75, w=8.5, h=0.5,
             font_size=11, color=C_DARK, wrap=True, v_anchor=MSO_ANCHOR.MIDDLE)

    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDES 16-17 — Communication Resources (3.1)
# ══════════════════════════════════════════════════════════════════════════════
def slide_31a():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "3.1 Communication Resources for Health Promotion (Slide 1 of 2)",
                   "Assessment Criterion 3.1 — Assess the relative merits of different communication resources")
    section_tag(slide, "TYPES OF COMMUNICATION RESOURCE", x=0.4, y=1.35)

    resources = [
        (C_NAVY,  "Printed Materials\n(Leaflets, Posters, Booklets)",
         "Widely used in GP surgeries, pharmacies, hospitals.\nHighly accessible, can be taken home.\nMerit: Low cost, visual, no technology needed.\nLimit: Low health literacy groups may struggle; quickly out of date."),
        (C_TEAL,  "Digital Media\n(Websites, Apps, Social Media)",
         "NHS.uk, Every Mind Matters, YouTube, Instagram.\nInteractive and shareable, reaches global audiences.\nMerit: Real-time updates, engaging formats.\nLimit: Digital divide; misinformation risk."),
        (C_LIME,  "Audio-Visual Media\n(TV, Radio, Video, Podcasts)",
         "Public health TV adverts, BBC health programmes, podcasts.\nSuitable for low-literacy audiences; emotional impact.\nMerit: Reaches passive audiences; multi-sensory.\nLimit: Expensive to produce; passive consumption."),
        (C_GOLD,  "Interpersonal Resources\n(Health Champions, Workshops, Presentations)",
         "Community health fairs, school sessions, GP consultations.\nTwo-way communication; tailored to audience.\nMerit: High engagement, allows Q&A, trusted source.\nLimit: Resource-intensive; limited reach."),
    ]

    for i, (col, title, body) in enumerate(resources):
        cx = 0.4 + (i % 2) * 6.3
        cy = 1.75 + (i // 2) * 2.55
        add_rect(slide, cx, cy, 6.0, 0.4, col)
        add_text(slide, title,
                 x=cx+0.05, y=cy, w=5.9, h=0.4,
                 font_size=12, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
        add_text(slide, body,
                 x=cx, y=cy+0.43, w=6.0, h=2.05,
                 font_size=12, color=C_DARK, wrap=True)

    add_text(slide,
             "References: Ewles, L. & Simnett, I. (2017) Promoting Health: A Practical Guide. 7th edn. Edinburgh: Elsevier. | NHS England (2022) NHS Digital Strategy. London: NHSE.",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


def slide_31b():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide,
                   "3.1 Communication Resources for Health Promotion (Slide 2 of 2)",
                   "Comparative assessment — choosing the right resource")
    section_tag(slide, "COMPARATIVE MERITS — DECISION FRAMEWORK", x=0.4, y=1.35)

    # Comparison table
    add_rect(slide, 0.4, 1.75, 12.5, 0.35, C_NAVY)
    row_h = ["Resource", "Reach", "Cost", "Engagement", "Accessibility", "Best Used For"]
    col_w = [2.8, 1.7, 1.7, 2.0, 2.2, 2.1]
    col_x = [0.4]
    for w in col_w[:-1]:
        col_x.append(col_x[-1] + w)

    for i, (h, w, x) in enumerate(zip(row_h, col_w, col_x)):
        add_text(slide, h, x=x+0.05, y=1.75, w=w-0.1, h=0.35,
                 font_size=11, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    table_data = [
        ["Printed Materials", "Medium", "Low", "Low", "High", "Waiting rooms, GP/pharmacy"],
        ["Digital (web/app)", "Very High", "Low", "High", "Medium", "Young/middle-aged adults"],
        ["TV/Radio", "Very High", "High", "Medium", "High", "Mass awareness campaigns"],
        ["Social Media", "Very High", "Low-Med", "High", "Medium", "Under-40s, stigma reduction"],
        ["Health Champion", "Low", "Medium", "Very High", "Medium", "Hard-to-reach groups"],
        ["Posters/Billboards", "High", "Medium", "Low", "High", "Public spaces, reinforcement"],
    ]
    row_colors2 = [C_LIGHT, C_WHITE, C_LIGHT, C_WHITE, C_LIGHT, C_WHITE]
    for ri, (row, rc) in enumerate(zip(table_data, row_colors2)):
        ry = 2.15 + ri * 0.48
        for ci, (val, w, x) in enumerate(zip(row, col_w, col_x)):
            add_rect(slide, x, ry, w, 0.45, rc)
            col_text = C_DARK
            if val in ("Very High", "High") and ci in (1, 3):
                col_text = RGBColor(0x00,0x6E,0x2E)
            elif val in ("Low", "Very Low") and ci in (1, 2):
                col_text = RGBColor(0xC0,0x20,0x20)
            add_text(slide, val, x=x+0.05, y=ry, w=w-0.1, h=0.45,
                     font_size=10, color=col_text, v_anchor=MSO_ANCHOR.MIDDLE,
                     bold=(ci == 0))

    # Key message
    add_rect(slide, 0.4, 5.15, 12.5, 0.35, C_TEAL)
    add_text(slide, "Key Finding: No single resource is universally 'best'",
             x=0.45, y=5.15, w=12.4, h=0.35,
             font_size=13, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE)

    key_msg = (
        "Ewles and Simnett (2017) argue that the most effective health communication uses a "
        "combination of resources tailored to the target audience's needs, literacy levels, "
        "cultural context and access to technology. A media mix that includes both digital and "
        "printed materials, with interpersonal support, consistently outperforms single-channel "
        "approaches (Wakefield et al., 2010; NICE, 2014)."
    )
    add_text(slide, key_msg,
             x=0.4, y=5.55, w=12.5, h=1.35,
             font_size=13, color=C_DARK, wrap=True)

    add_text(slide,
             "References: Ewles, L. & Simnett, I. (2017) Promoting Health. 7th edn. Edinburgh: Elsevier. | NICE (2014) Health Promotion (PH1). London: NICE. | Wakefield et al. (2010) The Lancet, 376(9748).",
             x=0.4, y=6.95, w=12.5, h=0.3,
             font_size=8, italic=True, color=RGBColor(0x60,0x60,0x60))
    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 18 — Campaign Design (3.2)
# ══════════════════════════════════════════════════════════════════════════════
def slide_32():
    slide = prs.slides.add_slide(blank)
    # Background split
    add_rect(slide, 0, 0, 13.333, 7.5, C_NAVY)
    add_rect(slide, 0, 0, 0.35, 7.5, C_LIME)
    add_rect(slide, 6.7, 0, 6.633, 7.5, C_LIGHT)

    # Title area left
    add_text(slide, "3.2 My Health Promotion Campaign",
             x=0.55, y=0.2, w=6.0, h=0.45,
             font_size=14, bold=True, italic=True, color=C_LIME)
    add_text(slide, '"Mind Matters:\nTake 5 for Your Mental Health"',
             x=0.55, y=0.65, w=5.9, h=1.4,
             font_size=26, bold=True, color=C_WHITE, wrap=True)

    add_text(slide, "Target Audience: General Adult Public (18-65) | UK National Campaign",
             x=0.55, y=2.1, w=5.9, h=0.35,
             font_size=11, italic=True, color=C_MIDGREY)

    # Campaign details on left
    left_items = [
        (C_TEAL,  "Campaign Aim",
         "Reduce stress and improve mental well-being among UK adults by promoting 5 daily self-care habits, "
         "reducing stigma and signposting to support services."),
        (C_LIME,  "Communication Resources Used",
         "1. A4 Poster (GP surgeries, pharmacies, workplaces)\n2. Social media pack (Instagram, Facebook, X)\n3. Short video (YouTube / NHS website)\n4. QR code linking to 'Every Mind Matters' action plan"),
        (C_GOLD,  "The '5 Steps' Message",
         "Connect · Be Active · Take Notice (mindfulness)\nKeep Learning · Give — based on New Economics Foundation (NEF, 2008) evidence-based 5 Ways to Well-being"),
    ]
    ly = 2.55
    for col, title, body in left_items:
        add_rect(slide, 0.55, ly, 5.7, 0.3, col)
        add_text(slide, title,
                 x=0.6, y=ly, w=5.6, h=0.3,
                 font_size=11, bold=True, color=C_DARK, v_anchor=MSO_ANCHOR.MIDDLE)
        add_text(slide, body,
                 x=0.55, y=ly+0.32, w=5.7, h=0.95,
                 font_size=10.5, color=C_WHITE, wrap=True)
        ly += 1.4

    # Right panel — mock poster
    add_rect(slide, 6.9, 0.25, 6.1, 6.95, RGBColor(0xE8, 0xF4, 0xFB))
    add_rect(slide, 6.9, 0.25, 6.1, 0.55, C_NAVY)
    add_text(slide, "CAMPAIGN POSTER (Design Preview)",
             x=7.0, y=0.25, w=5.9, h=0.55,
             font_size=11, bold=True, color=C_WHITE, v_anchor=MSO_ANCHOR.MIDDLE,
             align=PP_ALIGN.CENTER)

    add_text(slide, "MIND\nMATTERS",
             x=7.1, y=0.95, w=5.8, h=1.3,
             font_size=38, bold=True, color=C_NAVY,
             align=PP_ALIGN.CENTER)
    add_text(slide, "Take 5 for Your Mental Health",
             x=7.1, y=2.3, w=5.8, h=0.4,
             font_size=14, italic=True, color=C_TEAL,
             align=PP_ALIGN.CENTER)

    # 5 circles
    five_steps = ["CONNECT", "BE ACTIVE", "TAKE NOTICE", "KEEP LEARNING", "GIVE"]
    five_cols  = [C_NAVY, C_TEAL, C_LIME, C_GOLD, RGBColor(0xA0,0x30,0x90)]
    for i, (step, col) in enumerate(zip(five_steps, five_cols)):
        sx = 7.1 + i * 1.15
        add_rect(slide, sx, 2.85, 1.05, 1.05, col)
        add_text(slide, step,
                 x=sx+0.03, y=2.88, w=1.0, h=0.95,
                 font_size=8.5, bold=True, color=C_WHITE,
                 align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE)

    add_text(slide,
             "Small daily steps make a BIG difference to your mental health.",
             x=7.1, y=4.05, w=5.8, h=0.45,
             font_size=11, color=C_DARK,
             align=PP_ALIGN.CENTER, italic=True)

    add_rect(slide, 7.1, 4.6, 5.8, 0.5, C_NAVY)
    add_text(slide, "Scan for your FREE personalised Mind Plan",
             x=7.15, y=4.6, w=5.7, h=0.5,
             font_size=10, bold=True, color=C_WHITE,
             v_anchor=MSO_ANCHOR.MIDDLE, align=PP_ALIGN.CENTER)

    add_text(slide, "everymindmatters.nhs.uk | Mind: 0300 123 3393",
             x=7.1, y=5.2, w=5.8, h=0.3,
             font_size=9, color=C_TEAL, align=PP_ALIGN.CENTER)

    # Rationale
    add_text(slide,
             "Theoretical basis: NEF (2008) 5 Ways to Well-being; Social Ecological Model (McLeroy, 1988); "
             "Digital + printed media mix (Ewles & Simnett, 2017). Reduces stigma by using positive framing.",
             x=6.9, y=5.6, w=6.1, h=0.75,
             font_size=9.5, italic=True, color=C_DARK, wrap=True)

    add_text(slide,
             "References: NEF (2008) Five Ways to Well-being. London: NEF. | Ewles & Simnett (2017) Promoting Health. Edinburgh: Elsevier.",
             x=0.55, y=6.95, w=6.0, h=0.3,
             font_size=8, italic=True, color=C_MIDGREY)

    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 19 — Conclusion
# ══════════════════════════════════════════════════════════════════════════════
def slide_conclusion():
    slide = prs.slides.add_slide(blank)
    add_rect(slide, 0, 0, 13.333, 7.5, C_NAVY)
    add_rect(slide, 0, 0, 0.25, 7.5, C_LIME)
    add_rect(slide, 13.083, 0, 0.25, 7.5, C_LIME)

    add_text(slide, "Conclusion",
             x=0.5, y=0.3, w=12.5, h=0.8,
             font_size=40, bold=True, color=C_WHITE)
    add_rect(slide, 0.5, 1.15, 12.0, 0.06, C_TEAL)

    key_points = [
        ("1.1", "Health promotion is a multi-level process defined by WHO (1986). Its purpose is to enable control over health through advocacy, mediation and empowerment across primary, secondary and tertiary prevention."),
        ("1.2", "Three main ways to promote health — mass media, community programmes and legislation — each offer distinct advantages and limitations. The most effective strategies combine approaches."),
        ("1.3", "Naidoo & Wills, Beattie's model and the Social Ecological Model each reveal different dimensions of health promotion. No single model is sufficient; a critical, reflective practitioner draws on multiple frameworks."),
        ("2.1", "Health education is a key component within health promotion. Education empowers individuals, but health promotion extends further to address structural inequalities (Marmot, 2010)."),
        ("2.2", "Motivational Interviewing, group programmes and digital tools all have strong evidence bases. Effectiveness depends on audience, context and practitioner competence."),
        ("3.1", "No single communication resource suits all audiences. A media mix — combining digital, printed and interpersonal resources — achieves the greatest reach and depth of engagement."),
        ("3.2", "The 'Mind Matters: Take 5' campaign applies NEF's 5 Ways to Well-being, using posters, social media and digital signposting to reduce stress and stigma among the general adult public."),
    ]

    ly = 1.3
    for code, point in key_points:
        add_rect(slide, 0.5, ly, 1.0, 0.45, C_TEAL)
        add_text(slide, code,
                 x=0.5, y=ly, w=1.0, h=0.45,
                 font_size=12, bold=True, color=C_WHITE,
                 align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE)
        add_text(slide, point,
                 x=1.65, y=ly, w=11.2, h=0.45,
                 font_size=11, color=C_WHITE,
                 v_anchor=MSO_ANCHOR.MIDDLE, wrap=True)
        ly += 0.52

    add_rect(slide, 0.5, 6.6, 12.0, 0.5, C_LIME)
    add_text(slide,
             "Health promotion, underpinned by robust theory, evidence-based methods and creative "
             "communication, is central to improving population health and reducing inequalities.",
             x=0.6, y=6.6, w=11.8, h=0.5,
             font_size=12, bold=True, color=C_DARK,
             v_anchor=MSO_ANCHOR.MIDDLE, wrap=True)

    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 20 — Full References
# ══════════════════════════════════════════════════════════════════════════════
def slide_references():
    slide = prs.slides.add_slide(blank)
    add_slide_background(slide)
    add_header_bar(slide, "References (Harvard)", "All sources cited throughout the presentation")

    refs = [
        "Bauld, L. et al. (2011) 'The Impact of Smokefree Legislation in England', Nicotine & Tobacco Research, 13(5), pp.295-306.",
        "Beattie, A. (1991) 'Knowledge and control in health promotion', in Gabe, J. et al. (eds) The Sociology of the Health Service. London: Routledge.",
        "Black, D. et al. (1980) Inequalities in Health (The Black Report). London: DHSS.",
        "Dahlgren, G. & Whitehead, M. (1991) Policies and Strategies to Promote Social Equity in Health. Stockholm: Institute for Futures Studies.",
        "Davies, M.J. et al. (2008) 'Effectiveness of the Diabetes Education and Self Management for Ongoing and Newly Diagnosed (DESMOND) programme', BMJ, 336, pp.491-495.",
        "Ewles, L. & Simnett, I. (2017) Promoting Health: A Practical Guide. 7th edn. Edinburgh: Elsevier.",
        "Marmot, M. (2010) Fair Society, Healthy Lives (The Marmot Review). London: UCL.",
        "McLeroy, K.R. et al. (1988) 'An ecological perspective on health promotion programs', Health Education Quarterly, 15(4), pp.351-377.",
        "Miller, W.R. & Rollnick, S. (1991) Motivational Interviewing: Preparing People to Change Addictive Behaviour. New York: Guilford Press.",
        "Naidoo, J. & Wills, J. (2016) Foundations for Health Promotion. 4th edn. Edinburgh: Elsevier.",
        "NEF (New Economics Foundation) (2008) Five Ways to Well-being. London: NEF.",
        "NICE (2014) Community and Social Participation (PH9). London: NICE.",
        "Public Health England (2018) Sugar Reduction: Report on Progress. London: PHE.",
        "Rubak, S. et al. (2005) 'Motivational interviewing: a systematic review and meta-analysis', British Journal of General Practice, 55(513), pp.305-312.",
        "Stead, L.F. et al. (2017) 'Group behaviour therapy programmes for smoking cessation', Cochrane Database of Systematic Reviews, Issue 3.",
        "Tannahill, A. (1985) 'What is health promotion?', Health Education Journal, 44(4), pp.167-168.",
        "Wakefield, M.A. et al. (2010) 'Use of mass media campaigns to change health behaviour', The Lancet, 376(9748), pp.1261-1271.",
        "WHO (1986) Ottawa Charter for Health Promotion. Geneva: World Health Organization.",
        "WHO (1998) Health Promotion Glossary. Geneva: World Health Organization.",
        "WHO (2024) Achieving Well-being: A Global Framework. Geneva: World Health Organization.",
    ]

    # Two columns
    half = len(refs) // 2 + 1
    for i, ref in enumerate(refs):
        col = i // half
        row = i % half
        rx = 0.4 + col * 6.5
        ry = 1.5 + row * 0.32
        add_text(slide, f"• {ref}",
                 x=rx, y=ry, w=6.3, h=0.3,
                 font_size=9, color=C_DARK, wrap=True)

    add_footer(slide)
    return slide


# ══════════════════════════════════════════════════════════════════════════════
# Build all slides
# ══════════════════════════════════════════════════════════════════════════════
slide_intro()          # 1
slide_11a()            # 2  — 1.1 part 1
slide_11b()            # 3  — 1.1 part 2
slide_12a()            # 4  — 1.2 A
slide_12b()            # 5  — 1.2 B
slide_12c()            # 6  — 1.2 C
slide_21a()            # 7  — 2.1 A
slide_21b()            # 8  — 2.1 B
slide_21c()            # 9  — 2.1 C
slide_13a()            # 10 — 1.3 A
slide_13b()            # 11 — 1.3 B
slide_13c()            # 12 — 1.3 C
slide_22a()            # 13 — 2.2 A
slide_22b()            # 14 — 2.2 B
slide_22c()            # 15 — 2.2 C
slide_31a()            # 16 — 3.1 A
slide_31b()            # 17 — 3.1 B
slide_32()             # 18 — 3.2 Campaign
slide_conclusion()     # 19
slide_references()     # 20

out_path = "/tmp/workspace/health-promotion-pptx/Health_Promotion_Presentation.pptx"
prs.save(out_path)
print(f"Saved: {out_path}")
print(f"Slides: {len(prs.slides)}")
Running Command

cd /tmp/workspace/health-promotion-pptx && python build_pptx.py 2>&1

Running Command

python3 -c " from pptx import Presentation prs = Presentation('/tmp/workspace/health-promotion-pptx/Health_Promotion_Presentation.pptx') print(f'Total slides: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): texts = [] for shape in slide.shapes: if shape.has_text_frame: t = shape.text_frame.text.strip() if t: texts.append(t[:60]) print(f' Slide {i:2d}: {texts[0] if texts else \"(empty)\"}') "

Your presentation is ready to download:

Health Promotion Presentation

Presentation · PPTX


What's inside — all 20 slides

#SectionContent
1IntroductionOverview, scope, theme statement
2-31.1 Purpose & ProcessWHO definition, Ottawa Charter 5 action areas, Dahlgren-Whitehead Rainbow Model, primary/secondary/tertiary prevention
4-61.2 Three TypesMass media (NHS Stoptober), community programmes (Sure Start), legislation (Smoking Ban/Sugar Tax) — each with advantages, disadvantages and evidence-based evaluation
7-92.1 Health Ed & HP RelationshipWHO definition of health education, comparison table (HP vs HE), Tannahill's three-sphere model, Naidoo & Wills, empowerment pathway, Marmot (2010) social determinants
10-121.3 Three ApproachesNaidoo & Wills' five approaches, Beattie's four-quadrant model, Social Ecological Model (McLeroy) — each assessed for merits and limitations
13-152.2 Education MethodsMotivational Interviewing (Rubak et al., 2005 meta-analysis), group education (DESMOND RCT), digital/eHealth (Every Mind Matters) — evidence, advantages, limitations, effectiveness ratings
16-173.1 Communication ResourcesPrinted materials, digital, TV/radio, health champions; plus a comparative table (reach, cost, engagement, accessibility) and decision framework
183.2 Campaign Design"Mind Matters: Take 5 for Your Mental Health" — mock poster, 5 Ways to Well-being (NEF, 2008), poster + social media + QR code to NHS Every Mind Matters
19ConclusionSummary of all criteria
20References20 full Harvard references across all slides

Design features

  • Professional navy / teal / lime green colour scheme
  • Section tags and evidence callout boxes on every slide
  • Comparison tables and visual models (Beattie quadrants, Socio-Ecological concentric layers, Tannahill spheres)
  • All references cited inline and collected on the final references slide in Harvard format
This is a shared conversation. Sign in to Orris to start your own chat.