{"id":3968,"date":"2023-10-03T02:44:25","date_gmt":"2023-10-03T06:44:25","guid":{"rendered":"https:\/\/inclusionincanadiansports.ca\/partenaires-communautaires\/"},"modified":"2026-06-19T13:28:21","modified_gmt":"2026-06-19T17:28:21","slug":"partenaires-communautaires","status":"publish","type":"page","link":"https:\/\/inclusionincanadiansports.ca\/fr\/partenaires-communautaires\/","title":{"rendered":"Partenaires communautaires"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3968\" class=\"elementor elementor-3968 elementor-2315\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-726522e e-flex e-con-boxed e-con e-parent\" data-id=\"726522e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[{&quot;jet_parallax_layout_image&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;_id&quot;:&quot;ddc42f2&quot;,&quot;jet_parallax_layout_speed&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;50&quot;,&quot;sizes&quot;:[]},&quot;jet_parallax_layout_bg_x&quot;:&quot;50&quot;,&quot;jet_parallax_layout_bg_y&quot;:&quot;50&quot;,&quot;jet_parallax_layout_image_tablet&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_image_mobile&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_image_laptop&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_type&quot;:&quot;scroll&quot;,&quot;jet_parallax_layout_direction&quot;:&quot;1&quot;,&quot;jet_parallax_layout_fx_direction&quot;:null,&quot;jet_parallax_layout_z_index&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x_laptop&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y_laptop&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size&quot;:&quot;auto&quot;,&quot;jet_parallax_layout_bg_size_laptop&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_animation_prop&quot;:&quot;transform&quot;,&quot;jet_parallax_layout_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;]}],&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5062876 elementor-align-center elementor-widget elementor-widget-raven-heading\" data-id=\"5062876\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"raven-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"raven-widget-wrapper\"><h1 class=\"raven-heading raven-heading-h1\"><span class=\"raven-heading-title \">Building Inclusive Sport\u2014Together<\/span><\/h1><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-833d17a e-flex e-con-boxed e-con e-parent\" data-id=\"833d17a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-80327d3 elementor-widget elementor-widget-text-editor\" data-id=\"80327d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Our Community Partners are at the heart of ICSN\u2019s impact, delivering programs, creating access, and driving change at the grassroots level across Canada.<\/p><p>Through these partnerships, we are increasing participation, breaking down barriers, and creating more equitable sport environments for Black, Indigenous, and racialized communities.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0a068f8 e-flex e-con-boxed e-con e-parent\" data-id=\"0a068f8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9bc0ed7 elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"9bc0ed7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What is a Community Partner?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76e913c elementor-widget__width-initial elementor-widget-laptop__width-inherit elementor-widget-tablet__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"76e913c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tCommunity Partners are organizations who work directly with ICSN to deliver programs, support participants, and expand access to sport within their communities.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-091deba elementor-widget__width-initial elementor-widget-tablet__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"091deba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>They play a key role in:<\/p><ul><li>Delivering programs like Breaking Barriers and Building Bridges<\/li><li>Engaging underserved communities<\/li><li>Supporting participant recruitment and retention<\/li><li>Providing on-the-ground impact<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cffeb12 e-flex e-con-boxed e-con e-parent\" data-id=\"cffeb12\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-92e56b8 elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"92e56b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Become a Community Partner<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cfb7d4f elementor-widget elementor-widget-text-editor\" data-id=\"cfb7d4f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Join a growing network of organizations committed to advancing equity in sport.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1f51c4 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"d1f51c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/forms.gle\/5f8kbfMTBLeK5TRq7\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Apply to be a Partner<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-deb2127 e-flex e-con-boxed e-con e-parent\" data-id=\"deb2127\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c96085f elementor-widget elementor-widget-heading\" data-id=\"c96085f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Nos partenaires communautaires<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7822f3 elementor-widget elementor-widget-text-editor\" data-id=\"c7822f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Discover community partners across Canada: Hover or tap any province.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-94d1ecf elementor-widget elementor-widget-html\" data-id=\"94d1ecf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!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<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=Ubuntu:wght@300;400;500;700&family=Open+Sans:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n<style>\n  \/* =========================================================\n     ICSN Canada Community Partners Map\n     ========================================================= *\/\n  :root {\n    --bg-panel:       #242428;\n    --province:       #C4141B;\n    --province-hover: #000000;\n    --province-sel:   #C9A419;\n    --province-null:  #cfd2d7;\n    --accent-red:     #C4141B;\n    --accent-gold:    #C9A419;\n    --text-dark:      #1C1C1F;\n    --text-soft:      #E7E7E7;\n    --text-muted:     #8F8F8F;\n    --border-light:   #E7E7E7;\n  }\n\n  .icsn-map-wrap * ,\n  .icsn-map-wrap *::before,\n  .icsn-map-wrap *::after { box-sizing: border-box; }\n\n  .icsn-map-wrap {\n    background: #ffffff;\n    font-family: 'Open Sans', system-ui, sans-serif;\n    color: var(--text-dark);\n    padding: 16px 0;\n    position: relative;\n  }\n\n  .icsn-container {\n    position: relative;\n    max-width: 1180px;\n    margin: 0 auto;\n  }\n\n  \/* \u2500\u2500 MAP LAYOUT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .icsn-map-stage {\n    position: relative;\n    width: 100%;\n    max-width: 1100px;\n    margin: 0 auto;\n    min-height: 240px;\n  }\n  #icsn-svg {\n    width: 100%;\n    height: auto;\n    display: block;\n  }\n  @media (max-width: 620px) {\n    .icsn-map-stage {\n      width: 100vw !important;\n      max-width: 100vw !important;\n      margin-left: calc(50% - 50vw) !important;\n      margin-right: calc(50% - 50vw) !important;\n      padding: 0 8px !important;\n    }\n  }\n  path.prov {\n    fill: var(--province);\n    stroke: #ffffff;\n    stroke-width: 1;\n    cursor: pointer;\n    transition: fill .22s, filter .22s;\n  }\n  path.prov:hover {\n    fill: var(--province-hover);\n    filter: drop-shadow(0 0 10px rgba(0,0,0,.4));\n  }\n  path.prov.is-selected {\n    fill: var(--province-sel);\n    filter: drop-shadow(0 0 10px rgba(201,164,25,.55));\n  }\n  path.prov.is-empty {\n    cursor: default;\n  }\n\n  \/* \u2500\u2500 LOADING \/ ERROR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .icsn-state {\n    position: absolute;\n    inset: 0;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    gap: 14px;\n    background: #ffffff;\n    color: var(--text-muted);\n    font-size: .85rem;\n    font-family: 'Open Sans', sans-serif;\n    font-weight: 500;\n    min-height: 240px;\n  }\n  .icsn-spinner {\n    width: 32px; height: 32px;\n    border: 2px solid var(--border-light);\n    border-top-color: var(--accent-red);\n    border-radius: 50%;\n    animation: icsn-spin 0.9s linear infinite;\n  }\n  @keyframes icsn-spin { to { transform: rotate(360deg); } }\n  .icsn-state.error { color: var(--accent-red); }\n\n  \/* \u2500\u2500 TOOLTIP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  #icsn-tooltip {\n    position: absolute;\n    opacity: 0;\n    pointer-events: none;\n    transform: translate(-50%, calc(-100% - 16px));\n    transition: opacity .18s ease, transform .18s ease;\n    background: linear-gradient(150deg, #1f2940, var(--bg-panel));\n    border: 1px solid rgba(201,164,25,.4);\n    border-radius: 12px;\n    padding: 16px 20px 14px;\n    min-width: 180px;\n    max-width: 260px;\n    box-shadow: 0 18px 40px rgba(28,28,31,.28);\n    z-index: 100;\n    text-align: center;\n  }\n  #icsn-tooltip.show {\n    opacity: 1;\n    transform: translate(-50%, calc(-100% - 12px));\n  }\n  #icsn-tooltip.is-touch { pointer-events: auto; }\n  #icsn-tooltip::after {\n    content: \"\";\n    position: absolute;\n    bottom: -6px;\n    left: 50%;\n    transform: translateX(-50%) rotate(45deg);\n    width: 11px; height: 11px;\n    background: var(--bg-panel);\n    border-right: 1px solid rgba(201,164,25,.4);\n    border-bottom: 1px solid rgba(201,164,25,.4);\n  }\n  .tt-close {\n    position: absolute;\n    top: 6px; right: 6px;\n    width: 26px; height: 26px;\n    border-radius: 50%;\n    border: 0;\n    background: rgba(196,20,27,.9);\n    color: #fff;\n    font-size: 14px;\n    font-weight: 700;\n    line-height: 1;\n    cursor: pointer;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    padding: 0;\n    -webkit-tap-highlight-color: transparent;\n    font-family: 'Open Sans', sans-serif;\n  }\n  #icsn-tooltip.is-touch .tt-close { display: flex; }\n  .tt-close:active { transform: scale(.9); }\n  .tt-name {\n    font-family: 'Ubuntu', sans-serif;\n    font-weight: 500;\n    font-size: 1.05rem;\n    letter-spacing: .5px;\n    color: #ffffff;\n    line-height: 1.1;\n    margin-bottom: 10px;\n    padding: 0 22px;\n  }\n  .tt-count {\n    font-family: 'Ubuntu', sans-serif;\n    font-weight: 700;\n    font-size: 2.6rem;\n    color: var(--accent-red);\n    line-height: 1;\n  }\n  .tt-label {\n    font-family: 'Open Sans', sans-serif;\n    font-size: .72rem;\n    font-weight: 600;\n    color: var(--text-soft);\n    opacity: .75;\n    margin-top: 6px;\n  }\n  .tt-cta {\n    font-family: 'Open Sans', sans-serif;\n    font-size: .78rem;\n    font-weight: 700;\n    color: var(--accent-gold);\n    margin-top: 12px;\n    padding-top: 10px;\n    border-top: 1px solid rgba(231,231,231,.12);\n    cursor: pointer;\n  }\n\n  \/* \u2500\u2500 ACTION BUTTONS (NATIONAL + INTERNATIONAL) \u2500 *\/\n  .icsn-actions-row {\n    width: 100%;\n    max-width: 1100px;\n    margin: 28px auto 0;\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 16px;\n  }\n  @media (max-width: 620px) {\n    .icsn-actions-row {\n      flex-direction: column;\n      align-items: stretch;\n      gap: 12px;\n      padding: 0 16px;\n    }\n  }\n  .icsn-action-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 18px;\n    padding: 16px 28px 16px 22px;\n    background: #ffffff;\n    border: 1px solid var(--border-light);\n    border-radius: 14px;\n    cursor: pointer;\n    transition: transform .25s, border-color .25s, box-shadow .25s;\n    font-family: inherit;\n    color: var(--text-dark);\n    flex: 0 1 auto;\n  }\n  @media (max-width: 620px) {\n    .icsn-action-btn { width: 100%; }\n  }\n  .icsn-action-btn:hover {\n    transform: translateY(-2px);\n    border-color: var(--accent-red);\n    box-shadow: 0 12px 28px rgba(196,20,27,.18);\n  }\n  .icsn-action-btn:disabled {\n    cursor: default;\n    opacity: .45;\n  }\n  .icsn-action-btn:disabled:hover {\n    transform: none;\n    border-color: var(--border-light);\n    box-shadow: none;\n  }\n  .action-icon {\n    width: 52px;\n    height: 52px;\n    color: var(--accent-red);\n    flex-shrink: 0;\n  }\n  .action-emoji {\n    font-size: 44px;\n    line-height: 1;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .action-info {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    text-align: left;\n    line-height: 1.1;\n  }\n  .action-name {\n    font-family: 'Ubuntu', sans-serif;\n    font-weight: 500;\n    font-size: 1.15rem;\n    color: var(--text-dark);\n    margin-bottom: 6px;\n  }\n  .action-count-row {\n    display: flex;\n    align-items: baseline;\n    gap: 8px;\n  }\n  .action-count {\n    font-family: 'Ubuntu', sans-serif;\n    font-weight: 700;\n    font-size: 1.9rem;\n    color: var(--accent-red);\n    line-height: 1;\n  }\n  .action-label {\n    font-family: 'Open Sans', sans-serif;\n    font-size: .78rem;\n    font-weight: 600;\n    color: var(--text-muted);\n  }\n\n  \/* \u2500\u2500 POPUP OVERLAY (portaled to body) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  #icsn-overlay {\n    display: none;\n    position: fixed !important;\n    top: 0 !important;\n    right: 0 !important;\n    bottom: 0 !important;\n    left: 0 !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    height: 100dvh !important;\n    background: rgba(28, 28, 31, .85);\n    -webkit-backdrop-filter: blur(6px);\n    backdrop-filter: blur(6px);\n    z-index: 2147483647 !important;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    overscroll-behavior: contain;\n    font-family: 'Open Sans', system-ui, sans-serif;\n  }\n  #icsn-overlay.open { display: flex !important; }\n\n  .popup-card {\n    background: linear-gradient(155deg, #1f2940 0%, var(--bg-panel) 100%);\n    border: 1px solid rgba(201,164,25,.22);\n    border-radius: 18px;\n    padding: 38px 36px 32px;\n    width: 100%;\n    max-width: 780px;\n    max-height: calc(100vh - 40px);\n    max-height: calc(100dvh - 40px);\n    display: flex;\n    flex-direction: column;\n    position: relative;\n    box-shadow: 0 32px 80px rgba(0,0,0,.7), 0 0 0 1px rgba(231,231,231,.04);\n    animation: pop-in .28s cubic-bezier(.34,1.56,.64,1);\n    color: #ffffff;\n    font-family: 'Open Sans', sans-serif;\n    overflow: hidden;\n  }\n  @keyframes pop-in {\n    from { transform: scale(.9) translateY(20px); opacity: 0; }\n    to   { transform: scale(1)   translateY(0);    opacity: 1; }\n  }\n  @media (max-width: 620px) {\n    #icsn-overlay { padding: 20px 10px 10px; }\n    .popup-card {\n      padding: 56px 18px 18px;\n      border-radius: 14px;\n      max-height: calc(100vh - 40px);\n      max-height: calc(100dvh - 40px);\n    }\n    .popup-close {\n      top: 14px !important;\n      right: 14px !important;\n    }\n  }\n\n  .popup-close {\n    position: absolute !important;\n    top: 12px !important;\n    right: 12px !important;\n    width: 44px !important;\n    height: 44px !important;\n    min-width: 44px !important;\n    min-height: 44px !important;\n    padding: 0 !important;\n    margin: 0 !important;\n    border-radius: 50% !important;\n    border: 0 !important;\n    background: #C4141B !important;\n    color: #ffffff !important;\n    font-size: 22px !important;\n    line-height: 1 !important;\n    font-weight: 700 !important;\n    text-align: center !important;\n    cursor: pointer !important;\n    display: flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    z-index: 10 !important;\n    box-shadow: 0 4px 14px rgba(0,0,0,.5) !important;\n    -webkit-tap-highlight-color: transparent;\n    font-family: 'Open Sans', sans-serif !important;\n  }\n  .popup-close:hover {\n    background: #8f0d13 !important;\n    transform: scale(1.08);\n  }\n  .popup-close:active { transform: scale(.95); }\n\n  .popup-head {\n    flex: 0 0 auto;\n    margin-bottom: 18px;\n    padding-right: 40px;\n  }\n  .popup-eyebrow {\n    display: inline-block;\n    font-family: 'Open Sans', sans-serif;\n    font-size: .72rem;\n    font-weight: 700;\n    letter-spacing: 1px;\n    color: var(--accent-gold);\n    border: 1px solid var(--accent-gold);\n    border-radius: 3px;\n    padding: 3px 9px;\n    margin-bottom: 10px;\n  }\n  .popup-title {\n    font-family: 'Ubuntu', sans-serif;\n    font-weight: 500;\n    font-size: clamp(1.6rem, 4vw, 2.4rem);\n    letter-spacing: .5px;\n    color: #ffffff;\n    line-height: 1.05;\n    margin: 0 0 8px;\n  }\n  .popup-counter {\n    font-family: 'Ubuntu', sans-serif;\n    font-weight: 400;\n    font-size: .95rem;\n    color: var(--text-soft);\n    opacity: .75;\n  }\n  .popup-counter strong {\n    font-weight: 700;\n    color: var(--accent-red);\n    font-size: 1.3rem;\n    margin-right: 4px;\n    opacity: 1;\n  }\n  .popup-divider {\n    flex: 0 0 auto;\n    height: 1px;\n    background: linear-gradient(90deg, rgba(201,164,25,.5), transparent);\n    margin: 0 0 18px;\n  }\n  .popup-grid {\n    flex: 1 1 auto;\n    min-height: 0;\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n    gap: 14px;\n    overflow-y: auto;\n    overflow-x: hidden;\n    padding-right: 6px;\n    -webkit-overflow-scrolling: touch;\n    overscroll-behavior: contain;\n  }\n  @media (max-width: 820px) { .popup-grid { grid-template-columns: repeat(3, 1fr); } }\n  @media (max-width: 520px) { .popup-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } }\n  .popup-grid::-webkit-scrollbar { width: 6px; }\n  .popup-grid::-webkit-scrollbar-track { background: transparent; }\n  .popup-grid::-webkit-scrollbar-thumb { background: rgba(231,231,231,.25); border-radius: 3px; }\n\n  .logo-tile {\n    background: #fff;\n    border-radius: 10px;\n    position: relative;\n    display: block;\n    width: 100%;\n    padding-bottom: 100%;\n    text-decoration: none;\n    transition: transform .22s, box-shadow .22s;\n    overflow: hidden;\n  }\n  .logo-tile:hover {\n    transform: translateY(-3px) scale(1.03);\n    box-shadow: 0 12px 28px rgba(201,164,25,.35);\n  }\n  .logo-tile img {\n    position: absolute !important;\n    top: 10% !important;\n    left: 10% !important;\n    width: 80% !important;\n    height: 80% !important;\n    max-width: 80% !important;\n    max-height: 80% !important;\n    object-fit: contain !important;\n    display: block !important;\n  }\n  .logo-tile .logo-name {\n    position: absolute;\n    left: 0; right: 0; bottom: 0;\n    background: linear-gradient(transparent, rgba(0,0,0,.88));\n    color: #fff;\n    font-family: 'Open Sans', sans-serif;\n    font-size: .72rem;\n    font-weight: 600;\n    padding: 14px 8px 6px;\n    text-align: center;\n    opacity: 0;\n    transition: opacity .22s;\n    pointer-events: none;\n    z-index: 2;\n  }\n  .logo-tile:hover .logo-name { opacity: 1; }\n\n  body.icsn-popup-open { overflow: hidden; }\n<\/style>\n<\/head>\n<body>\n\n<div class=\"icsn-map-wrap\">\n  <div class=\"icsn-container\">\n\n    <!-- MAP -->\n    <div class=\"icsn-map-stage\" id=\"icsn-stage\">\n      <div class=\"icsn-state\" id=\"icsn-loading\">\n        <div class=\"icsn-spinner\"><\/div>\n        <div>Loading map\u2026<\/div>\n      <\/div>\n      <svg id=\"icsn-svg\" viewBox=\"90 120 800 440\" style=\"display:none\" preserveAspectRatio=\"xMidYMid meet\"><\/svg>\n     <div id=\"icsn-tooltip\" aria-hidden=\"true\">\n        <button class=\"tt-close\" id=\"tt-close\" aria-label=\"Close\" type=\"button\">\u2715<\/button>\n        <div class=\"tt-name\" id=\"tt-name\"><\/div>\n        <div class=\"tt-count\" id=\"tt-count\">0<\/div>\n        <div class=\"tt-label\" id=\"tt-label\">Community Partners<\/div>\n        <div class=\"tt-cta\" id=\"tt-cta\">Read More \u25b8<\/div>\n      <\/div>\n    <\/div>\n\n    <!-- ACTION BUTTONS (National + International) -->\n    <div class=\"icsn-actions-row\">\n\n      <!-- NATIONAL -->\n      <button class=\"icsn-action-btn\" id=\"icsn-national\" disabled aria-label=\"National partners\">\n        <span class=\"action-icon action-emoji\" aria-hidden=\"true\">\ud83c\udf41<\/span>\n        <div class=\"action-info\">\n          <span class=\"action-name\">National<\/span>\n          <span class=\"action-count-row\">\n            <span class=\"action-count\" id=\"national-count\">0<\/span>\n            <span class=\"action-label\">Community Partners<\/span>\n          <\/span>\n        <\/div>\n      <\/button>\n\n      <!-- INTERNATIONAL -->\n      <button class=\"icsn-action-btn\" id=\"icsn-international\" disabled aria-label=\"International partners\">\n        <svg class=\"action-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n          <circle cx=\"12\" cy=\"12\" r=\"10\"\/>\n          <path d=\"M2 12h20M12 2a15 15 0 010 20M12 2a15 15 0 000 20\"\/>\n        <\/svg>\n        <div class=\"action-info\">\n          <span class=\"action-name\">International<\/span>\n          <span class=\"action-count-row\">\n            <span class=\"action-count\" id=\"international-count\">0<\/span>\n            <span class=\"action-label\">Community Partners<\/span>\n          <\/span>\n        <\/div>\n      <\/button>\n\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<!-- POPUP -->\n<div id=\"icsn-overlay\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"pop-name\">\n  <div class=\"popup-card\">\n    <button class=\"popup-close\" id=\"pop-close\" aria-label=\"Close\" type=\"button\">\u2715<\/button>\n    <div class=\"popup-head\">\n      <div class=\"popup-eyebrow\" id=\"pop-eyebrow\">Province<\/div>\n      <h2 class=\"popup-title\" id=\"pop-name\">\u2014<\/h2>\n      <div class=\"popup-counter\"><strong id=\"pop-count\">0<\/strong> <span id=\"pop-label\">Community Partners<\/span><\/div>\n    <\/div>\n    <div class=\"popup-divider\"><\/div>\n    <div class=\"popup-grid\" id=\"pop-grid\"><\/div>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/d3\/7.8.5\/d3.min.js\"><\/script>\n<script>\n(function () {\n  'use strict';\n\n  const IS_TOUCH = (('ontouchstart' in window) || navigator.maxTouchPoints > 0);\n\n  function portalPopup() {\n    const overlay = document.getElementById('icsn-overlay');\n    if (overlay && overlay.parentNode !== document.body) {\n      document.body.appendChild(overlay);\n    }\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', portalPopup);\n  } else {\n    portalPopup();\n  }\n\n  const CONFIG = {\n    WP_BASE: 'https:\/\/inclusionincanadiansports.ca\/wp-json\/wp\/v2',\n    GEOJSON_URL: 'https:\/\/raw.githubusercontent.com\/codeforamerica\/click_that_hood\/master\/public\/data\/canada.geojson',\n    CACHE_KEY: 'icsn_canada_geojson_v1',\n    PER_PAGE: 100,\n    MAX_PAGES: 10,\n  };\n\n  const PROVINCE_MAP = {\n    'Alberta':                    { slug: 'alberta',                    label: 'Alberta' },\n    'British Columbia':           { slug: 'british-columbia',           label: 'British Columbia' },\n    'Manitoba':                   { slug: 'manitoba',                   label: 'Manitoba' },\n    'New Brunswick':              { slug: 'new-brunswick',              label: 'New Brunswick' },\n    'Newfoundland and Labrador':  { slug: 'newfoundland-and-labrador',  label: 'Newfoundland and Labrador' },\n    'Northwest Territories':      { slug: 'northwest-territories',      label: 'Northwest Territories' },\n    'Nova Scotia':                { slug: 'nova-scotia',                label: 'Nova Scotia' },\n    'Nunavut':                    { slug: 'nunavut',                    label: 'Nunavut' },\n    'Ontario':                    { slug: 'ontario',                    label: 'Ontario' },\n    'Prince Edward Island':       { slug: 'prince-edward-island',       label: 'Prince Edward Island' },\n    'Quebec':                     { slug: 'quebec',                     label: 'Quebec' },\n    'Qu\u00e9bec':                     { slug: 'quebec',                     label: 'Quebec' },\n    'Saskatchewan':               { slug: 'saskatchewan',               label: 'Saskatchewan' },\n    'Yukon':                      { slug: 'yukon',                      label: 'Yukon' },\n    'Yukon Territory':            { slug: 'yukon',                      label: 'Yukon' },\n  };\n  const CANADIAN_SLUGS = Object.values(PROVINCE_MAP).map(v => v.slug).filter((v,i,a)=>a.indexOf(v)===i);\n\n  const $ = (id) => document.getElementById(id);\n  const state = {\n    byProvince: {},\n    national: [],\n    international: [],\n    animatedProvinces: new Set(),\n    currentSelectedSlug: null,\n    savedScrollY: 0,\n    geoFeatures: [],\n  };\n\n  let touchTooltipSlug = null;\n\n  async function loadGeoJSON() {\n    try {\n      const cached = sessionStorage.getItem(CONFIG.CACHE_KEY);\n      if (cached) return JSON.parse(cached);\n    } catch (e) {}\n    const res = await fetch(CONFIG.GEOJSON_URL);\n    if (!res.ok) throw new Error('GeoJSON HTTP ' + res.status);\n    const data = await res.json();\n    try { sessionStorage.setItem(CONFIG.CACHE_KEY, JSON.stringify(data)); } catch(e) {}\n    return data;\n  }\n\n  async function loadProvinces() {\n    const res = await fetch(CONFIG.WP_BASE + '\/province?per_page=20');\n    if (!res.ok) throw new Error('Provinces HTTP ' + res.status);\n    const terms = await res.json();\n    const idToSlug = {};\n    terms.forEach(t => { idToSlug[t.id] = t.slug; });\n    return idToSlug;\n  }\n\n  async function loadAllPartners() {\n    const out = [];\n    for (let page = 1; page <= CONFIG.MAX_PAGES; page++) {\n      const url = `${CONFIG.WP_BASE}\/community-part-logos?per_page=${CONFIG.PER_PAGE}&page=${page}&_fields=id,title,province,acf_fields`;\n      const res = await fetch(url);\n      if (!res.ok) {\n        if (res.status === 400 && page > 1) break;\n        throw new Error('Partners HTTP ' + res.status);\n      }\n      const batch = await res.json();\n      if (!Array.isArray(batch) || batch.length === 0) break;\n      out.push(...batch);\n      if (batch.length < CONFIG.PER_PAGE) break;\n    }\n    return out;\n  }\n\n  function buildGroups(partners, idToSlug) {\n    const byProvince = {};\n    const national = [];\n    const international = [];\n    CANADIAN_SLUGS.forEach(s => { byProvince[s] = []; });\n\n    partners.forEach(p => {\n      const acf = p.acf_fields;\n      if (!acf || typeof acf !== 'object' || Array.isArray(acf)) return;\n\n      const logoObj = acf.logo;\n      if (!logoObj || typeof logoObj !== 'object' || !logoObj.url) return;\n\n      const record = {\n        id:   p.id,\n        name: decodeEntities(p.title && p.title.rendered ? p.title.rendered : ''),\n        logo: logoObj.medium || logoObj.large || logoObj.url,\n        alt:  (logoObj.alt && logoObj.alt.trim()) || decodeEntities(p.title.rendered || 'Partner'),\n        link: acf.permalink || null,\n      };\n      if (!record.name) return;\n\n      const provIds = Array.isArray(p.province) ? p.province : [];\n      const slugs = provIds.map(id => idToSlug[id]).filter(Boolean);\n      if (slugs.length === 0) return;\n\n      if (slugs.includes('national')) {\n        pushUnique(national, record);\n      }\n      if (slugs.includes('international')) {\n        pushUnique(international, record);\n      }\n      slugs.forEach(s => {\n        if (s === 'national' || s === 'international') return;\n        if (byProvince[s]) pushUnique(byProvince[s], record);\n      });\n    });\n\n    return { byProvince, national, international };\n  }\n\n  function pushUnique(arr, rec) {\n    if (!arr.some(x => x.id === rec.id)) arr.push(rec);\n  }\n\n  function decodeEntities(str) {\n    if (!str) return '';\n    const el = document.createElement('textarea');\n    el.innerHTML = str;\n    return el.value.trim();\n  }\n\n  const PROJ_W = 960, PROJ_H = 620;\n  const projection = d3.geoAzimuthalEqualArea()\n    .rotate([96, -62])\n    .center([0, 0])\n    .scale(720)\n    .translate([PROJ_W \/ 2, PROJ_H \/ 2]);\n  const geoPath = d3.geoPath().projection(projection);\n\n  function slugForFeature(f) {\n    const entry = PROVINCE_MAP[f.properties.name];\n    return entry ? entry.slug : null;\n  }\n\n  function labelForFeature(f) {\n    const entry = PROVINCE_MAP[f.properties.name];\n    return entry ? entry.label : f.properties.name;\n  }\n\n  function buildMap(geo) {\n    const svg = d3.select('#icsn-svg');\n    svg.selectAll('path').remove();\n\n    svg.selectAll('path.prov')\n      .data(geo.features)\n      .enter().append('path')\n        .attr('d', geoPath)\n        .attr('class', d => {\n          const slug = slugForFeature(d);\n          const hasData = slug && state.byProvince[slug] && state.byProvince[slug].length > 0;\n          return 'prov' + (hasData ? '' : ' is-empty');\n        })\n        .attr('data-slug', d => slugForFeature(d) || '')\n        .on('mouseenter', onProvMouseEnter)\n        .on('mousemove',  onProvMouseMove)\n        .on('mouseleave', onProvMouseLeave)\n        .on('click',      onProvClick);\n\n    $('icsn-loading').style.display = 'none';\n    $('icsn-svg').style.display = 'block';\n\n    state.geoFeatures = geo.features;\n  }\n\n  \/\/ Helpers to set tooltip mode\n  function setTooltipFull(d, list) {\n    $('tt-name').textContent = labelForFeature(d);\n    $('tt-label').textContent = list.length === 1 ? 'Community Partner' : 'Community Partners';\n    $('tt-cta').textContent = 'Read More \u25b8';\n    $('tt-cta').style.cursor = 'pointer';\n    const slug = slugForFeature(d);\n    const countEl = $('tt-count');\n    if (!state.animatedProvinces.has(slug)) {\n      state.animatedProvinces.add(slug);\n      animateCount(countEl, list.length, 900);\n    } else {\n      countEl.textContent = list.length;\n    }\n  }\n\n  function setTooltipEmpty(d) {\n    $('tt-name').textContent = labelForFeature(d);\n    $('tt-count').textContent = '0';\n    $('tt-label').textContent = 'Community Partners';\n    $('tt-cta').textContent = 'See our National partners';\n    $('tt-cta').style.cursor = 'default';\n  }\n\n  function onProvMouseEnter(event, d) {\n    if (IS_TOUCH) return;\n    const slug = slugForFeature(d);\n    if (!slug) return;\n    const list = state.byProvince[slug] || [];\n\n    if (list.length === 0) {\n      setTooltipEmpty(d);\n    } else {\n      setTooltipFull(d, list);\n    }\n\n    positionTooltip(d);\n    $('icsn-tooltip').classList.add('show');\n  }\n\n  function onProvMouseMove(event, d) {\n    if (IS_TOUCH) return;\n    if (!slugForFeature(d)) return;\n    positionTooltip(d);\n  }\n\n  function onProvMouseLeave() {\n    if (IS_TOUCH) return;\n    $('icsn-tooltip').classList.remove('show');\n  }\n\n  function showTooltipTouch(d) {\n    const slug = slugForFeature(d);\n    if (!slug) return;\n    const list = state.byProvince[slug] || [];\n\n    const tip = $('icsn-tooltip');\n    tip.classList.add('is-touch');\n\n    if (list.length === 0) {\n      setTooltipEmpty(d);\n    } else {\n      setTooltipFull(d, list);\n    }\n\n    positionTooltip(d);\n    tip.classList.add('show');\n    touchTooltipSlug = slug;\n  }\n\n  function hideTooltipTouch() {\n    $('icsn-tooltip').classList.remove('show');\n    touchTooltipSlug = null;\n  }\n\n  function positionTooltip(d) {\n    const svgEl = $('icsn-svg');\n    const stage = $('icsn-stage');\n    const rect = svgEl.getBoundingClientRect();\n    const stageRect = stage.getBoundingClientRect();\n\n    const centroid = geoPath.centroid(d);\n    if (isNaN(centroid[0])) return;\n\n    const VB_X = 90, VB_Y = 120, VB_W = 800, VB_H = 440;\n    const scaleX = rect.width \/ VB_W;\n    const scaleY = rect.height \/ VB_H;\n\n    const x = (centroid[0] - VB_X) * scaleX + (rect.left - stageRect.left);\n    const y = (centroid[1] - VB_Y) * scaleY + (rect.top  - stageRect.top);\n\n    const tip = $('icsn-tooltip');\n    tip.style.left = x + 'px';\n    tip.style.top  = y + 'px';\n  }\n\n  function onProvClick(event, d) {\n    const slug = slugForFeature(d);\n    if (!slug) return;\n    const list = state.byProvince[slug] || [];\n\n    \/\/ Empty province: only show tooltip with message, never open the big popup\n    if (list.length === 0) {\n      if (IS_TOUCH) {\n        if (touchTooltipSlug === slug) {\n          hideTooltipTouch();\n        } else {\n          showTooltipTouch(d);\n        }\n      }\n      \/\/ Desktop: hover already shows the message tooltip; click does nothing extra\n      return;\n    }\n\n    \/\/ Province with partners: normal behaviour\n    if (!IS_TOUCH) {\n      openPopup({ slug, eyebrow: 'Province', name: labelForFeature(d), list });\n      return;\n    }\n    if (touchTooltipSlug === slug) {\n      hideTooltipTouch();\n      openPopup({ slug, eyebrow: 'Province', name: labelForFeature(d), list });\n    } else {\n      showTooltipTouch(d);\n    }\n  }\n\n  function lockBodyScroll() {\n    state.savedScrollY = window.scrollY || window.pageYOffset || 0;\n    document.body.classList.add('icsn-popup-open');\n    document.body.style.position = 'fixed';\n    document.body.style.top = '-' + state.savedScrollY + 'px';\n    document.body.style.left = '0';\n    document.body.style.right = '0';\n    document.body.style.width = '100%';\n  }\n\n  function unlockBodyScroll() {\n    document.body.classList.remove('icsn-popup-open');\n    document.body.style.position = '';\n    document.body.style.top = '';\n    document.body.style.left = '';\n    document.body.style.right = '';\n    document.body.style.width = '';\n    window.scrollTo(0, state.savedScrollY);\n  }\n\n  function openPopup(opts) {\n    hideTooltipTouch();\n    $('icsn-tooltip').classList.remove('show');\n\n    if (state.currentSelectedSlug) {\n      d3.select('[data-slug=\"' + state.currentSelectedSlug + '\"]').classed('is-selected', false);\n    }\n    if (opts.slug && opts.slug !== 'international' && opts.slug !== 'national') {\n      d3.select('[data-slug=\"' + opts.slug + '\"]').classed('is-selected', true);\n      state.currentSelectedSlug = opts.slug;\n    } else {\n      state.currentSelectedSlug = null;\n    }\n\n    $('pop-eyebrow').textContent = opts.eyebrow;\n    $('pop-name').textContent    = opts.name;\n    $('pop-count').textContent   = opts.list.length;\n    $('pop-label').textContent   = opts.list.length === 1 ? 'Community Partner' : 'Community Partners';\n\n    const grid = $('pop-grid');\n    grid.innerHTML = '';\n    grid.scrollTop = 0;\n\n    const sorted = opts.list.slice().sort((a,b) => a.name.localeCompare(b.name));\n    sorted.forEach(p => grid.appendChild(buildLogoTile(p)));\n\n    $('icsn-overlay').classList.add('open');\n    lockBodyScroll();\n  }\n\n  function buildLogoTile(p) {\n    const tile = document.createElement(p.link ? 'a' : 'div');\n    tile.className = 'logo-tile';\n    if (p.link) {\n      tile.href = p.link;\n      tile.target = '_blank';\n      tile.rel = 'noopener noreferrer';\n    }\n    tile.title = p.name;\n\n    const img = document.createElement('img');\n    img.src = p.logo;\n    img.alt = p.alt || p.name;\n    img.loading = 'lazy';\n    img.onerror = function() {\n      console.warn('[ICSN Map] Logo failed to load:', p.name, p.logo);\n    };\n    tile.appendChild(img);\n\n    const label = document.createElement('span');\n    label.className = 'logo-name';\n    label.textContent = p.name;\n    tile.appendChild(label);\n\n    return tile;\n  }\n\n  function closePopup() {\n    $('icsn-overlay').classList.remove('open');\n    unlockBodyScroll();\n    if (state.currentSelectedSlug) {\n      d3.select('[data-slug=\"' + state.currentSelectedSlug + '\"]').classed('is-selected', false);\n      state.currentSelectedSlug = null;\n    }\n  }\n\n  function setupActionButton(btnId, countId, list, popupOpts) {\n    const btn = $(btnId);\n    const countEl = $(countId);\n    const count = list.length;\n\n    if (count === 0) {\n      btn.disabled = true;\n      countEl.textContent = '0';\n      return;\n    }\n    btn.disabled = false;\n    animateCount(countEl, count, 1100);\n\n    btn.addEventListener('click', () => {\n      openPopup(Object.assign({ list }, popupOpts));\n    });\n  }\n\n  function animateCount(el, target, duration) {\n    if (target <= 0) { el.textContent = '0'; return; }\n    const start = performance.now();\n    const tick = now => {\n      const p = Math.min((now - start) \/ duration, 1);\n      const eased = 1 - Math.pow(1 - p, 3);\n      el.textContent = Math.floor(eased * target);\n      if (p < 1) requestAnimationFrame(tick);\n      else el.textContent = target;\n    };\n    requestAnimationFrame(tick);\n  }\n\n  async function init() {\n    try {\n      const [geo, idToSlug, partners] = await Promise.all([\n        loadGeoJSON(),\n        loadProvinces(),\n        loadAllPartners(),\n      ]);\n      const grouped = buildGroups(partners, idToSlug);\n      state.byProvince    = grouped.byProvince;\n      state.national      = grouped.national;\n      state.international = grouped.international;\n\n      buildMap(geo);\n\n      setupActionButton('icsn-national', 'national-count', state.national, {\n        slug: 'national',\n        eyebrow: 'Canada-wide',\n        name: 'National',\n      });\n      setupActionButton('icsn-international', 'international-count', state.international, {\n        slug: 'international',\n        eyebrow: 'Worldwide',\n        name: 'International',\n      });\n    } catch (err) {\n      console.error('[ICSN Map]', err);\n      const loading = $('icsn-loading');\n      loading.innerHTML = '';\n      loading.classList.add('error');\n      const msg = document.createElement('div');\n      msg.textContent = '\u26a0\ufe0f Unable to load map. Please try again shortly.';\n      loading.appendChild(msg);\n    }\n  }\n\n  function bindPopupEvents() {\n    $('pop-close').addEventListener('click', closePopup);\n    $('icsn-overlay').addEventListener('click', e => {\n      if (e.target === $('icsn-overlay')) closePopup();\n    });\n\n    $('tt-close').addEventListener('click', function(e) {\n      e.stopPropagation();\n      hideTooltipTouch();\n    });\n\n    $('tt-cta').addEventListener('click', function(e) {\n      if (!IS_TOUCH) return;\n      e.stopPropagation();\n      if (!touchTooltipSlug) return;\n      const feat = state.geoFeatures.find(f => slugForFeature(f) === touchTooltipSlug);\n      if (feat) {\n        const slug = touchTooltipSlug;\n        const list = state.byProvince[slug] || [];\n        if (list.length === 0) return; \/\/ safety: empty provinces never open popup\n        hideTooltipTouch();\n        openPopup({\n          slug,\n          eyebrow: 'Province',\n          name: labelForFeature(feat),\n          list,\n        });\n      }\n    });\n\n    document.addEventListener('click', function(e) {\n      if (!IS_TOUCH) return;\n      const tip = $('icsn-tooltip');\n      if (!tip.classList.contains('show')) return;\n      if (tip.contains(e.target)) return;\n      if (e.target.closest && e.target.closest('path.prov')) return;\n      hideTooltipTouch();\n    });\n  }\n\n  document.addEventListener('keydown', e => {\n    if (e.key === 'Escape') {\n      if ($('icsn-overlay').classList.contains('open')) {\n        closePopup();\n      } else if ($('icsn-tooltip').classList.contains('show')) {\n        hideTooltipTouch();\n      }\n    }\n  });\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function() {\n      bindPopupEvents();\n      init();\n    });\n  } else {\n    bindPopupEvents();\n    init();\n  }\n})();\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7737f9f elementor-widget elementor-widget-text-editor\" data-id=\"7737f9f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Last updated June 2026<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5582f91 e-flex e-con-boxed e-con e-parent\" data-id=\"5582f91\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-56fe8c5 elementor-widget elementor-widget-heading\" data-id=\"56fe8c5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Le leadership par le sport #plusensemble<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Building Inclusive Sport\u2014Together Our Community Partners are at the heart of ICSN\u2019s impact, delivering programs, creating access, and driving change at the grassroots level across Canada. Through these partnerships, we are increasing participation, breaking down barriers, and creating more equitable sport environments for Black, Indigenous, and racialized communities. What is a Community Partner? Community Partners [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-3968","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/inclusionincanadiansports.ca\/fr\/wp-json\/wp\/v2\/pages\/3968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inclusionincanadiansports.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/inclusionincanadiansports.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/inclusionincanadiansports.ca\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inclusionincanadiansports.ca\/fr\/wp-json\/wp\/v2\/comments?post=3968"}],"version-history":[{"count":19,"href":"https:\/\/inclusionincanadiansports.ca\/fr\/wp-json\/wp\/v2\/pages\/3968\/revisions"}],"predecessor-version":[{"id":12785,"href":"https:\/\/inclusionincanadiansports.ca\/fr\/wp-json\/wp\/v2\/pages\/3968\/revisions\/12785"}],"wp:attachment":[{"href":"https:\/\/inclusionincanadiansports.ca\/fr\/wp-json\/wp\/v2\/media?parent=3968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}