1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <link rel="icon" type="image/png" href="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/90fbef68190fa1d6f10f469525480742.png" /> 6 <meta name="generator" content="Hostinger Horizons" /> 7 <link rel="alternate" type="text/markdown" title="About Africa2World Foundation" href="/about.md" /> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 9 10
10<script type="module" crossorigin src="/assets/index-DFku32aa.js"></script>
10 11 <link rel="stylesheet" crossorigin href="/assets/index-Dbtv9dIq.css"> 12
12<script type="module"> 13window.onerror = (message, source, lineno, colno, errorObj) => { 14 const errorDetails = errorObj ? JSON.stringify({ 15 name: errorObj.name, 16 message: errorObj.message, 17 stack: errorObj.stack, 18 source, 19 lineno, 20 colno, 21 }) : null; 22 23 window.parent.postMessage({ 24 type: 'horizons-runtime-error', 25 message, 26 error: errorDetails 27 }, '*'); 28}; 29</script>
29 30
30<script type="module"> 31const observer = new MutationObserver((mutations) => { 32 for (const mutation of mutations) { 33 for (const addedNode of mutation.addedNodes) { 34 if ( 35 addedNode.nodeType === Node.ELEMENT_NODE && 36 ( 37 addedNode.tagName?.toLowerCase() === 'vite-error-overlay' || 38 addedNode.classList?.contains('backdrop') 39 ) 40 ) { 41 handleViteOverlay(addedNode); 42 } 43 } 44 } 45}); 46 47observer.observe(document.documentElement, { 48 childList: true, 49 subtree: true 50}); 51 52function handleViteOverlay(node) { 53 if (!node.shadowRoot) { 54 return; 55 } 56 57 const backdrop = node.shadowRoot.querySelector('.backdrop'); 58 59 if (backdrop) { 60 const overlayHtml = backdrop.outerHTML; 61 const parser = new DOMParser(); 62 const doc = parser.parseFromString(overlayHtml, 'text/html'); 63 const messageBodyElement = doc.querySelector('.message-body'); 64 const fileElement = doc.querySelector('.file'); 65 const messageText = messageBodyElement ? messageBodyElement.textContent.trim() : ''; 66 const fileText = fileElement ? fileElement.textContent.trim() : ''; 67 const error = messageText + (fileText ? ' File:' + fileText : ''); 68 69 window.parent.postMessage({ 70 type: 'horizons-vite-error', 71 error, 72 }, '*'); 73 } 74} 75</script>
75 76
76<script type="module"> 77const originalConsoleError = console.error; 78const MATCH_LINE_COL_REGEX = /:(\d+):(\d+)\)?\s*$/; // regex to match the :lineNum:colNum 79const MATCH_AT_REGEX = /^\s*at\s+(?:async\s+)?(?:.*?\s+)?\(?/; // regex to remove the 'at' keyword and any 'async' or function name 80const MATCH_PATH_REGEX = /^\//; // regex to remove the leading slash 81 82function parseStackFrameLine(line) { 83 const lineColMatch = line.match(MATCH_LINE_COL_REGEX); 84 if (!lineColMatch) return null; 85 const [, lineNum, colNum] = lineColMatch; 86 const suffix = `:${lineNum}:${colNum}`; 87 const idx = line.lastIndexOf(suffix); 88 if (idx === -1) return null; 89 const before = line.substring(0, idx); 90 const path = before.replace(MATCH_AT_REGEX, '').trim(); 91 92 if (!path) return null; 93 94 try { 95 const pathname = new URL(path).pathname; 96 const filePath = pathname.replace(MATCH_PATH_REGEX, '') || pathname; 97 return `${filePath}:${lineNum}:${colNum}`; 98 } catch (e) { 99 const filePath = path.replace(MATCH_PATH_REGEX, '') || path; 100 return `${filePath}:${lineNum}:${colNum}`; 101 } 102} 103 104function getFilePathFromStack(stack, skipFrames = 0) { 105 if (!stack || typeof stack !== 'string') return null; 106 const lines = stack.split('\n').slice(1); 107 108 const frames = lines.map(line => parseStackFrameLine(line.replace(/\r$/, ''))).filter(Boolean); 109 110 return frames[skipFrames] ?? null; 111} 112 113function formatConsoleMessage(args, skipStackFrames = 1) { 114 let messageString = ''; 115 let filePath = null; 116 117 for (let i = 0; i < args.length; i++) { 118 const arg = args[i]; 119 if (arg instanceof Error) { 120 filePath = getFilePathFromStack(arg.stack, 0); 121 messageString = `${arg.name}: ${arg.message}`; 122 if (filePath) { 123 messageString = `${messageString} at ${filePath}`; 124 } 125 break; 126 } 127 } 128 129 if (!messageString) { 130 messageString = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg) : String(arg)).join(' '); 131 const stack = new Error().stack; 132 filePath = getFilePathFromStack(stack, skipStackFrames); 133 if (filePath) { 134 messageString = `${messageString} at ${filePath}`; 135 } 136 } 137 138 return messageString; 139} 140 141console.error = function(...args) { 142 originalConsoleError.apply(console, args); 143 144 window.parent.postMessage({ 145 type: 'horizons-console-error', 146 error: formatConsoleMessage(args, 1) 147 }, '*'); 148}; 149 150const originalConsoleWarn = console.warn; 151 152console.warn = function(...args) { 153 originalConsoleWarn.apply(console, args); 154 155 window.parent.postMessage({ 156 type: 'horizons-console-warn', 157 warning: formatConsoleMessage(args, 1) 158 }, '*'); 159}; 160</script>
160 161
161<script type="module"> 162// Prevents authentication failures (PB returns 400) from crashing the app â use console.info, not console.error/PM2. 163// [urlPattern, bodyPattern] tuples; align with sandboxErrorUtils ERROR_BLACKLIST. 164const BENIGN_FETCH_ERRORS = [ 165 [/hcgi\/platform\/api\/collections\/.*auth-with-password.*/i, /Failed to authenticate/i], 166 [/hcgi\/api\//i, /Insufficient credits/i], 167 // A user-supplied integration secret (Stripe/PayPal/Twilio/...) is not set yet â an expected setup state, not a bug to fix. 168 [/hcgi\/api\//i, /INTEGRATION_NOT_CONFIGURED/i], 169]; 170 171function isBenignFetchError(url, body) { 172 return BENIGN_FETCH_ERRORS.some(([urlPattern, bodyPattern]) => 173 urlPattern.test(url) && (!bodyPattern || bodyPattern.test(body))); 174} 175 176const PLATFORM_URL_PATTERN = /hcgi\/platform\//i; 177const VALIDATION_CODE_TEXT_PATTERN = /validation_/; 178 179function hasValidationCode(value) { 180 if (value == null) { 181 return false; 182 } 183 if (typeof value === 'string') { 184 return value.startsWith('validation_'); 185 } 186 if (Array.isArray(value)) { 187 return value.some(hasValidationCode); 188 } 189 if (typeof value === 'object') { 190 return Object.values(value).some(hasValidationCode); 191 } 192 return false; 193} 194 195function isValidationFetchWarning(url, body) { 196 if (!PLATFORM_URL_PATTERN.test(url)) { 197 return false; 198 } 199 try { 200 return hasValidationCode(JSON.parse(body)); 201 } catch { 202 return VALIDATION_CODE_TEXT_PATTERN.test(body); 203 } 204} 205 206const originalFetch = window.fetch; 207 208window.fetch = function(...args) { 209 const url = args[0] instanceof Request ? args[0].url : args[0]; 210 211 // Skip WebSocket URLs 212 if (url.startsWith('ws:') || url.startsWith('wss:')) { 213 return originalFetch.apply(this, args); 214 } 215 216 return originalFetch.apply(this, args) 217 .then(async response => { 218 const contentType = response.headers.get('Content-Type') || ''; 219 220 // Exclude HTML document responses 221 const isDocumentResponse = 222 contentType.includes('text/html') || 223 contentType.includes('application/xhtml+xml'); 224 225 // no-cors requests (e.g. Google Analytics/Ads beacons) always return an opaque 226 const isOpaqueResponse = response.type === 'opaque'; 227 228 if (!response.ok && !isDocumentResponse && !isOpaqueResponse) { 229 const responseClone = response.clone(); 230 const errorFromRes = await responseClone.text(); 231 const requestUrl = response.url; 232 const errorMessage = `Fetch error from ${requestUrl}: ${errorFromRes}`; 233 234 if (isBenignFetchError(requestUrl, errorFromRes)) { 235 console.info(errorMessage); 236 } else if (isValidationFetchWarning(requestUrl, errorFromRes)) { 237 console.warn(errorMessage); 238 } else { 239 console.error(errorMessage); 240 } 241 } 242 243 return response; 244 }) 245 .catch(error => { 246 if (!url.match(/.html?$/i)) { 247 // Cancelled in-flight fetch (e.g. preview reload) â not a server failure. 248 if (error?.name === 'AbortError') { 249 console.info(error); 250 } else { 251 console.error(error); 252 } 253 } 254 255 throw error; 256 }); 257}; 258</script>
258 259
259<script type="module"> 260if (window.navigation && window.self !== window.top) { 261 window.navigation.addEventListener('navigate', (event) => { 262 const url = event.destination.url; 263 264 try { 265 const destinationUrl = new URL(url); 266 const destinationOrigin = destinationUrl.origin; 267 const currentOrigin = window.location.origin; 268 269 if (destinationOrigin === currentOrigin) { 270 return; 271 } 272 } catch (error) { 273 return; 274 } 275 276 window.parent.postMessage({ 277 type: 'horizons-navigation-error', 278 url, 279 }, '*'); 280 }); 281} 282</script>
282 283 <title data-react-helmet="true">Our Partners | Africa2World Foundation</title><meta data-react-helmet="true" name="robots" content="index, follow, max-image-preview:large"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="Our Partners | Africa2World Foundation"/><meta data-react-helmet="true" property="og:site_name" content="Africa2World Foundation"/><meta data-react-helmet="true" property="og:url" content="https://atowfnd.org/partners"/><meta data-react-helmet="true" property="og:description" content="Meet the organizations partnering with Africa2World Foundation to advance African art, education and community opportunity."/><meta data-react-helmet="true" property="og:image" content="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/af5f0be6e108418ef1880fd0a9340825.jpg"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="Our Partners | Africa2World Foundation"/><meta data-react-helmet="true" name="twitter:description" content="Meet the organizations partnering with Africa2World Foundation to advance African art, education and community opportunity."/><meta data-react-helmet="true" name="description" content="Meet the valued partners of Africa2World Foundation who help us achieve our mission of cultural exchange and community empowerment."/><link data-react-helmet="true" rel="canonical" href="https://atowfnd.org/partners"/></head> 284 <body> 285 <div id="root"><div class="min-h-screen bg-white flex flex-col"><header class="fixed top-0 left-0 right-0 z-50 transition-all duration-300 bg-white/95 backdrop-blur-sm"><div class="container mx-auto px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between h-20"><a href="/#hero" class="flex items-center space-x-3 cursor-pointer"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/90fbef68190fa1d6f10f469525480742.png" alt="Africa2World Foundation Logo" class="h-12 w-auto"/><span class="text-xl font-bold text-[#1e3a8a] hidden">Africa2World Foundation</span></a><nav aria-label="Main navigation" class="hidden xl:flex items-center space-x-6"><a href="/#hero" class="text-gray-700 hover:text-[#ff6b35] font-medium transition-colors duration-200 relative group text-sm">Home<span class="absolute bottom-0 left-0 w-0 h-0.5 bg-[#ff6b35] group-hover:w-full transition-all duration-300"></span></a><a href="/#programs" class="text-gray-700 hover:text-[#ff6b35] font-medium transition-colors duration-200 relative group text-sm">Programs<span class="absolute bottom-0 left-0 w-0 h-0.5 bg-[#ff6b35] group-hover:w-full transition-all duration-300"></span></a><a href="/#collection" class="text-gray-700 hover:text-[#ff6b35] font-medium transition-colors duration-200 relative group text-sm">Collection<span class="absolute bottom-0 left-0 w-0 h-0.5 bg-[#ff6b35] group-hover:w-full transition-all duration-300"></span></a><a href="/#events" class="text-gray-700 hover:text-[#ff6b35] font-medium transition-colors duration-200 relative group text-sm">Events<span class="absolute bottom-0 left-0 w-0 h-0.5 bg-[#ff6b35] group-hover:w-full transition-all duration-300"></span></a><a href="/partners" class="text-gray-700 hover:text-[#ff6b35] font-medium transition-colors duration-200 relative group text-sm">Partners<span class="absolute bottom-0 left-0 w-0 h-0.5 bg-[#ff6b35] group-hover:w-full transition-all duration-300"></span></a><a href="/#signup" class="text-gray-700 hover:text-[#ff6b35] font-medium transition-colors duration-200 relative group text-sm">Sign Up<span class="absolute bottom-0 left-0 w-0 h-0.5 bg-[#ff6b35] group-hover:w-full transition-all duration-300"></span></a><a href="/#membership" class="text-gray-700 hover:text-[#ff6b35] font-medium transition-colors duration-200 relative group text-sm">Membership<span class="absolute bottom-0 left-0 w-0 h-0.5 bg-[#ff6b35] group-hover:w-full transition-all duration-300"></span></a><a href="/#donate" class="text-gray-700 hover:text-[#ff6b35] font-medium transition-colors duration-200 relative group text-sm">Donate<span class="absolute bottom-0 left-0 w-0 h-0.5 bg-[#ff6b35] group-hover:w-full transition-all duration-300"></span></a></nav><button class="inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground h-10 w-10 xl:hidden text-[#1e3a8a]" aria-label="Open menu" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></div></header><main class="flex-grow"><div class="bg-white min-h-screen pt-28 pb-20"><div class="container mx-auto px-4 sm:px-6 lg:px-8"><div class="text-center mb-16"><h1 class="text-4xl md:text-5xl font-bold text-[#1e3a8a] mb-6">Our Partners</h1><p class="text-xl text-gray-600 max-w-3xl mx-auto leading-relaxed">We are proud to collaborate with these esteemed organizations. Their support and partnership are vital in helping us bridge cultures and empower communities through education and art.</p></div><div class="w-full overflow-hidden bg-gray-50 py-16 rounded-xl relative"><div class="absolute left-0 top-0 bottom-0 w-16 md:w-32 z-10 bg-gradient-to-r from-gray-50 to-transparent pointer-events-none"></div><div class="absolute right-0 top-0 bottom-0 w-16 md:w-32 z-10 bg-gradient-to-l from-gray-50 to-transparent pointer-events-none"></div><div class="flex items-center space-x-16 md:space-x-24 w-max"><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/c9ce95c409c64e6547d79e293c08d71e.png" loading="lazy" decoding="async" alt="Yale University Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/026cb9461788898ef33761d6c96abf3c.png" loading="lazy" decoding="async" alt="Connecticut Horizons Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/2b93a51e9cdec9464789c2440ec1c418.png" loading="lazy" decoding="async" alt="Girls of Color Leadership Academy Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/e4724678fe1ccce5f81a260c24344613.png" loading="lazy" decoding="async" alt="Credit Keeper Solutions Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/df37914b6630eec25726272b2fd6a910.png" loading="lazy" decoding="async" alt="Universal Lectures Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/ea9c77c76f1064a8351bcec5517d7187.png" loading="lazy" decoding="async" alt="Kadiwaku Foundation USA Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/c9ce95c409c64e6547d79e293c08d71e.png" loading="lazy" decoding="async" alt="Yale University Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/026cb9461788898ef33761d6c96abf3c.png" loading="lazy" decoding="async" alt="Connecticut Horizons Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/2b93a51e9cdec9464789c2440ec1c418.png" loading="lazy" decoding="async" alt="Girls of Color Leadership Academy Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/e4724678fe1ccce5f81a260c24344613.png" loading="lazy" decoding="async" alt="Credit Keeper Solutions Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/df37914b6630eec25726272b2fd6a910.png" loading="lazy" decoding="async" alt="Universal Lectures Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/ea9c77c76f1064a8351bcec5517d7187.png" loading="lazy" decoding="async" alt="Kadiwaku Foundation USA Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/c9ce95c409c64e6547d79e293c08d71e.png" loading="lazy" decoding="async" alt="Yale University Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/026cb9461788898ef33761d6c96abf3c.png" loading="lazy" decoding="async" alt="Connecticut Horizons Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/2b93a51e9cdec9464789c2440ec1c418.png" loading="lazy" decoding="async" alt="Girls of Color Leadership Academy Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/e4724678fe1ccce5f81a260c24344613.png" loading="lazy" decoding="async" alt="Credit Keeper Solutions Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/df37914b6630eec25726272b2fd6a910.png" loading="lazy" decoding="async" alt="Universal Lectures Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div><div class="flex-shrink-0 w-48 md:w-64 h-32 flex items-center justify-center p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300"><img src="https://horizons-cdn.hostinger.com/e8f463cd-04d9-4716-8470-21dc025c5f24/ea9c77c76f1064a8351bcec5517d7187.png" loading="lazy" decoding="async" alt="Kadiwaku Foundation USA Logo" class="max-w-full max-h-full object-contain filter grayscale hover:grayscale-0 transition-all duration-300 opacity-80 hover:opacity-100"/></div></div></div></div></div></main><footer class="bg-[#1e3a8a] text-white pt-16 pb-8"><div class="container mx-auto px-4 sm:px-6 lg:px-8"><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-12 mb-12"><div class="space-y-4"><h3 class="text-2xl font-bold text-[#ffd60a]">Africa2World</h3><p class="text-gray-300 leading-relaxed">Bridging cultures and empowering communities through education, art, and sustainable development across Africa and the world.</p></div><div><h4 class="text-lg font-semibold mb-6 text-[#ff6b35]">Quick Links</h4><ul class="space-y-3"><li><a class="text-gray-300 hover:text-white transition-colors" href="/">Home</a></li><li><a class="text-gray-300 hover:text-white transition-colors" href="/#programs">Our Programs</a></li><li><a class="text-gray-300 hover:text-white transition-colors" href="/partners">Partners</a></li><li><a class="text-gray-300 hover:text-white transition-colors" href="/#events">Events</a></li><li><a class="text-gray-300 hover:text-white transition-colors" href="/#donate">Donate</a></li></ul></div><div><h4 class="text-lg font-semibold mb-6 text-[#ff6b35]">Contact Us</h4><ul class="space-y-4"><li class="flex items-start space-x-3 text-gray-300"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-map-pin flex-shrink-0 mt-1"><path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"></path><circle cx="12" cy="10" r="3"></circle></svg><span>157 Ch
285urch St, New Haven<br/>CT 06510-2100 United States</span></li><li class="flex items-center space-x-3 text-gray-300"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg><a href="mailto:[email protected]" class="hover:text-white">[email protected]</a></li><li class="flex items-center space-x-3 text-gray-300"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-phone"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path></svg><a href="tel:+12037019869" class="hover:text-white">+1 (203) 701-9869</a></li></ul></div><div><h4 class="text-lg font-semibold mb-6 text-[#ff6b35]">Connect With Us</h4><div class="flex space-x-4 mb-8"><a href="https://www.facebook.com/atowfnd" target="_blank" rel="noopener noreferrer" class="bg-white/10 hover:bg-[#ff6b35] p-2 rounded-full transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-facebook"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg></a><a href="https://x.com/Africa2World1" target="_blank" rel="noopener noreferrer" class="bg-white/10 hover:bg-[#ff6b35] p-2 rounded-full transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-twitter"><path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"></path></svg></a><a href="https://www.instagram.com/africa2world1/" target="_blank" rel="noopener noreferrer" class="bg-white/10 hover:bg-[#ff6b35] p-2 rounded-full transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-instagram"><rect width="20" height="20" x="2" y="2" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" x2="17.51" y1="6.5" y2="6.5"></line></svg></a><a href="https://www.linkedin.com/showcase/103519097/admin/dashboard/" target="_blank" rel="noopener noreferrer" class="bg-white/10 hover:bg-[#ff6b35] p-2 rounded-full transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-linkedin"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect width="4" height="12" x="2" y="9"></rect><circle cx="4" cy="4" r="2"></circle></svg></a></div></div></div><div class="border-t border-white/10 pt-8 mt-8 text-center md:text-left flex flex-col md:flex-row justify-between items-center text-sm text-gray-400"><p>© <!-- -->2026<!-- --> Africa2World Foundation. All rights reserved.</p><div class="flex flex-wrap gap-4 md:gap-6 mt-4 md:mt-0 justify-center md:justify-end"><a class="hover:text-white transition-colors" href="/privacy-policy">Privacy Policy</a><a class="hover:text-white transition-colors" href="/terms-of-use">Terms of Use</a><a class="hover:text-white transition-colors" href="/anti-discrimination-policy">Anti-Discrimination Policy</a><a class="hover:text-white transition-colors" href="/membership-policy">Membership Policy</a></div></div></div></footer></div></div> 286 </body> 287</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.