<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>África &#8211; jp.ik</title>
	<atom:link href="https://www.jpik.com/pt/category/casos-de-estudo/africa-pt/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.jpik.com</link>
	<description></description>
	<lastBuildDate>Mon, 27 Jul 2026 08:03:09 +0000</lastBuildDate>
	<language>pt-PT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.3</generator>

<image>
	<url>https://www.jpik.com/wp-content/uploads/2025/01/cropped-africa-infreddnovation-32x32.png</url>
	<title>África &#8211; jp.ik</title>
	<link>https://www.jpik.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Promover a Educação Digital em Grande Escala no Quénia</title>
		<link>https://www.jpik.com/pt/promover-a-educacao-digital-em-grande-escala-no-quenia/</link>
		
		<dc:creator><![CDATA[Maria Ferreira]]></dc:creator>
		<pubDate>Thu, 23 Jul 2026 08:42:19 +0000</pubDate>
				<category><![CDATA[África]]></category>
		<category><![CDATA[Casos de Estudo]]></category>
		<category><![CDATA[africa]]></category>
		<category><![CDATA[caso estudo]]></category>
		<guid isPermaLink="false">https://www.jpik.com/?p=21764</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
		<div id="fws_6a7c8ae73e88e"  data-column-margin="default" data-midnight="dark" data-top-percent="5%" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row top-level  "  style="padding-top: calc(100vw * 0.05); padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element  vc_custom_1784541387719" >
	<div class="wpb_wrapper">
		<h1 style="color: #164074;">Investing in education is the route for the development of a nation.</h1>
	</div>
</div>



<div class="divider-wrap" data-alignment="default"><div style="height: 25px;" class="divider"></div></div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<h4>Kenya Digital Literacy Programme</h4>
	</div>
</div>




			</div> 
		</div>
	</div> 

	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>jp.ik has more than 25 years of experience in the field of ICT, occupying a place of leadership and reference not only in its national market, but also internationally. Since the beginning jp.ik has been devoted to the distribution of high-end technological solutions and since 2008 jp.ik has invested in the field of ICT applied to Education, becoming pioneer in the delivery of a revolutionary educational project based on three dimensions – engineering, technology and training – offering a full, integrated and customized educational solution respecting the traits of each project and ruled by the UN Sustainable Development Goals.</p>
<p>From Europe to Latin America, from Asia to Middle East and North Africa and sub-Saharan Africa jp.ik is present in more than 70 countries, leading a digital revolution in Education as a facilitator for the educational system modernization; empowering  teachers and engaging students.</p>
	</div>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_6a7c8ae73ff82"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row  "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div id="fws_6a7c8ae741145" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
	<div class="wpb_raw_code wpb_content_element wpb_raw_html" >
		<div class="wpb_wrapper">
			<iframe width="560" height="315" src="https://www.youtube.com/embed/qmRRD7kYX7k?si=47cg87BdDg-BxWb7" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
		</div>
	</div>

		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="home"  data-column-margin="90px" data-midnight="dark" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row full-width-section  vc_row-o-equal-height vc_row-flex  vc_row-o-content-middle   reverse_columns_column_tablet reverse_columns_column_phone top_padding_tablet_8pct bottom_padding_tablet_8pct "  style="padding-top: 0px; padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg using-bg-color"  style="background-color: #ffffff; "></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 vc_col-xs-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div id="fws_6a7c8ae742609" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col child_column no-extra-padding el_spacing_5px inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="nectar-highlighted-text" data-style="regular_underline" data-exp="default" data-underline-thickness="1px" data-user-color="true" style="color: #164074;" data-using-custom-color="true" data-animation-delay="400" data-color="#e0e0e0" data-color-gradient="" style="">
<h2><em>Who &amp; where</em></h2>
</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>The lack of qualified teachers in terms of using and interacting with ICT, the lack of equipments, the still high-priced equipments, the lack of Internet connection or a barely existent one are a few of the distinctive features of a country very eager to bring its own educational system into the 21st century and investing in its own economic and social growth through investing in the Education of its children.<br />
Extremely aware of the importance of technology as a catalyst for the academic success, social inclusion and the economic growth, the Kenyan Government decided that it was urgent to redesign the Education model and bring it to the New Millennium.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="nectar-highlighted-text" data-style="regular_underline" data-exp="default" data-underline-thickness="1px" data-user-color="true" style="color: #164074;" data-using-custom-color="true" data-animation-delay="400" data-color="#e0e0e0" data-color-gradient="" style="">
<h2><em>What</em></h2>
</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>In 2013 the Kenyan Government kicked off the Digital Literacy Programme built upon a multi stakeholder approach with the participation of several government organizations, committing to the integration of ICT in every single public Primary Schools of Kenya.<br />
In order to implement this Government initiative, it was launched a public competition and 8 proposals were presented, among them Lenovo, Huawei and HP. jp.ik strongly believes in the importance of the participation of local agents for the development of this type of projects. For this reason, jp.ik presented its proposal in collaboration with Moi University. Once more jp.ik’s expertise and know-how in the field of Education was recognized and jp.ik won 2 from the 3 batches.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="home"  data-column-margin="90px" data-midnight="dark" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row full-width-section  vc_row-o-equal-height vc_row-flex  vc_row-o-content-middle   reverse_columns_column_tablet reverse_columns_column_phone top_padding_tablet_8pct bottom_padding_tablet_8pct "  style="padding-top: 0px; padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg using-bg-color"  style="background-color: #ffffff; "></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 vc_col-xs-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div id="fws_6a7c8ae744088" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div style="" class="vc_col-sm-12 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "  data-using-bg="true" data-bg-cover="true" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" ><div class="column-image-bg-wrap" data-n-parallax-bg="true" data-parallax-speed="fast" data-bg-pos="center center" data-bg-animation="none"><div class="inner-wrap"><div class="column-image-bg parallax-layer" style="background-image: url(https://source.unsplash.com/collection/49597329/weekly); "></div></div></div>
		<div class="wpb_wrapper">
			<div class="nectar-highlighted-text" data-style="regular_underline" data-exp="default" data-underline-thickness="1px" data-user-color="true" style="color: #164074;" data-using-custom-color="true" data-animation-delay="400" data-color="#e0e0e0" data-color-gradient="" style="">
<h2><em>How</em></h2>
</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>jp.ik participation in this educational project includes equipping 13 500 classrooms; capacitating 30 000 teachers and impacting 695 000 students. jp.ik’s role, in partnership with Moi University, highlights its own capacity to delivery full, integrated and  innovative technological solutions which are customized according to the essence of each project. This means that the solution designed by jp.ik regarding the Kenyan educational project settles in its three areas of expertise:</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div><div id="fws_6a7c8ae7449d2" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Engineering</strong>: an assembly plant which accommodates a post sale service and a call center in Moi University.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Technology</strong>: set up of digital classrooms and Classroom Management software and the delivery of equipments to teachers and students.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Training</strong>: capacitating teachers, students and the assembly plant workers in accordance to their skills and their jobs specifications.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_6a7c8ae745c97"  data-column-margin="default" data-midnight="dark" data-top-percent="2%" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row  "  style="padding-top: calc(100vw * 0.02); padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div id="fws_6a7c8ae746252" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="nectar-highlighted-text" data-style="regular_underline" data-exp="default" data-underline-thickness="1px" data-user-color="true" style="color: #164074;" data-using-custom-color="true" data-animation-delay="400" data-color="#e0e0e0" data-color-gradient="" style="">
<h2><em>When</em></h2>
</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>This educational project in collaboration with Moi University which started during the last quarter of 2015 is already in development phased into three stages:</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div><div id="fws_6a7c8ae746b28" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Proof of concept</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>• Setting up of 79 digital classrooms;<br />
• Training 145 teachers;<br />
• Delivering 6197 equipments.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Phase II</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>• Implementation of the project in large scale. In the field there is a team of 300 professionals directly involved in the project.<br />
• 100 classrooms are set up per day, in other words, 500 per week.<br />
• An average delivery of 25.000 equipments per week.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Phase III</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>• Total of 13.500 digital classrooms<br />
• Total of 45.000 teachers trained<br />
• Total of 695.000 students impacted</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="home"  data-column-margin="90px" data-midnight="dark" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row full-width-section  vc_row-o-equal-height vc_row-flex  vc_row-o-content-middle   reverse_columns_column_tablet reverse_columns_column_phone top_padding_tablet_8pct bottom_padding_tablet_8pct "  style="padding-top: 0px; padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg using-bg-color"  style="background-color: #ffffff; "></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 vc_col-xs-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div id="fws_6a7c8ae7486e5" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div style="" class="vc_col-sm-12 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "  data-using-bg="true" data-bg-cover="true" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" ><div class="column-image-bg-wrap" data-n-parallax-bg="true" data-parallax-speed="fast" data-bg-pos="center center" data-bg-animation="none"><div class="inner-wrap"><div class="column-image-bg parallax-layer" style="background-image: url(https://source.unsplash.com/collection/49597329/weekly); "></div></div></div>
		<div class="wpb_wrapper">
			<div class="nectar-highlighted-text" data-style="regular_underline" data-exp="default" data-underline-thickness="1px" data-user-color="true" style="color: #164074;" data-using-custom-color="true" data-animation-delay="400" data-color="#e0e0e0" data-color-gradient="" style="">
<h2><em>Why</em></h2>
</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>For a Government investing in the Education means to ensure its Nation’s future; to secure its economic development, and to uphold cultural and intellectual enrichment of its citizens and social inclusion. Thereby investing in the modernization of an educational system, bringing it to the 21st century is not, at all, a closed project. The ramifications that impact society and which are the outcomes of this kind of revolutionary educational projects are present in a variety of sectors of society:</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div><div id="fws_6a7c8ae749004" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="nectar_icon_wrap" data-style="default" data-padding="20px" data-color="extra-color-3" style="" >
		<div class="nectar_icon" ><i style="font-size: 50px; line-height: 50px; height: 50px; width: 50px;" class="fa fa-cogs"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Engineering</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>• <strong>New job creation</strong> (directly and indirectly): All the people involved in the project and the workers of the assembly plant; Fostering industrial and economic developmentof adjacent areas (paper, plastic); Promoting the development of new skills.</p>
<p>• <strong>Boosting business growth</strong>: Setting up a factory locally decreases the distance between demand-supply by lowering costs and the selling price. Diversifying of the portfolio (rising from tablets to smartphones, desktops and portable PCs) increase competitiveness.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="nectar_icon_wrap" data-style="default" data-padding="20px" data-color="extra-color-3" style="" >
		<div class="nectar_icon" ><i style="font-size: 50px; line-height: 50px; height: 50px; width: 50px;" class="fa fa-laptop"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Technology</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Delivering technological devices to the school community which promotes a first approach to educational technologies.<br />
Delivering Classroom Management software essential for teachers in order to prepare and conduct classes.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="nectar_icon_wrap" data-style="default" data-padding="20px" data-color="extra-color-3" style="" >
		<div class="nectar_icon" ><i style="font-size: 50px; line-height: 50px; height: 50px; width: 50px;" class="fa fa-book"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Training</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Delivering technological devices to the school community which promotes a first approach to educational technologies.<br />
Delivering Classroom Management software essential for teachers in order to prepare and conduct classes.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_6a7c8ae74b0be"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row  "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div id="fws_6a7c8ae74b6e9" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="divider-wrap" data-alignment="default"><div style="height: 25px;" class="divider"></div></div><a class="nectar-button large see-through extra-color-2"  style="" target="_blank" href="#" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Download</span></a>
		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Capacitar as Comunidades Locais para a Integração das Tecnologias Educativas em África</title>
		<link>https://www.jpik.com/pt/capacitar-as-comunidades-locais-para-a-integracao-das-tecnologias-educativas-em-africa/</link>
		
		<dc:creator><![CDATA[Maria Ferreira]]></dc:creator>
		<pubDate>Thu, 23 Jul 2026 08:39:00 +0000</pubDate>
				<category><![CDATA[África]]></category>
		<category><![CDATA[Casos de Estudo]]></category>
		<category><![CDATA[africa]]></category>
		<category><![CDATA[caso estudo]]></category>
		<guid isPermaLink="false">https://www.jpik.com/?p=21758</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
		<div id="fws_6a7c8ae74fde3"  data-column-margin="default" data-midnight="dark" data-top-percent="5%" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row  "  style="padding-top: calc(100vw * 0.05); padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-8 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element  vc_custom_1784113274279" >
	<div class="wpb_wrapper">
		<h1 style="color: #164074;">jp.ik reaches about one thousand educational agents in Africa with a meaningful approach to EdTech integration</h1>
	</div>
</div>



<div class="divider-wrap" data-alignment="default"><div style="height: 25px;" class="divider"></div></div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<h4><em>Boosting an educational (r)evolution through an innovative EdTech approach.</em></h4>
	</div>
</div>




			</div> 
		</div>
	</div> 

	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div class="nectar-highlighted-text" data-style="regular_underline" data-exp="default" data-underline-thickness="1px" data-user-color="true" style="color: #164074;" data-using-custom-color="true" data-animation-delay="400" data-color="#e0e0e0" data-color-gradient="" style="">
<h2><em>Executive Summary</em></h2>
</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>For the last eight years jp.ik has been gathering knowledge and expertise regarding an effective and efficient integration of high level pedagogical and technological solutions in the field of education.<br />
In Africa the main purpose of jp.ik training projects has been the improvement of learning and development of conditions through pedagogical innovation. In order to achieve this purpose jp.ik has been working together with local agents all around the world &#8211; from Europe to Latin America, from Asia to Middle East and North Africa to sub-Saharan Africa &#8211; to develop high-end educational projects which offer a mix of innovative and integrative pedagogical solutions based on cutting-edge technologies.</p>
	</div>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="home"  data-column-margin="90px" data-midnight="dark" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row full-width-section  vc_row-o-equal-height vc_row-flex  vc_row-o-content-middle   reverse_columns_column_tablet reverse_columns_column_phone top_padding_tablet_8pct bottom_padding_tablet_8pct "  style="padding-top: 0px; padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg using-bg-color"  style="background-color: #ffffff; "></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 vc_col-xs-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div id="fws_6a7c8ae7519e2" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col child_column no-extra-padding el_spacing_5px inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Context</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>The main purpose of jp.ik training projects in Africa has been the improvement of learning aside the development of economic and social conditions through pedagogical innovation based on the use of high-end technologies.<br />
Therefore jp.ik’ s vision towards education relies on a meaningful integration of Educational Technologies (EdTech) in learning environments which should be strongly linked with local educational stakeholders. This means that the training must be designed and implemented as a comprehensive approach to EdTech integration, considering not only the technological dimension, but also all the elements that are part of the ik-Model – technologies, content, processes, relations and signification.<br />
Technology is changing the way we perceive our surrondings; is changing the way we relate to each other; is changing how we engage withcauses and values; is changing how we access and gather information; is changing how we learn.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="divider-wrap" data-alignment="default"><div style="height: 25px;" class="divider"></div></div><div class="divider-wrap" data-alignment="default"><div style="height: 25px;" class="divider"></div></div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Therefore it is clear that technology plays an important role in Education, mainly in terms of providing access to quality information and, consequently, to quality Education. With 68 training courses held in Angola, Benin, Gabon, Ivory Coast, Kenya, Morocco and South Africa, jp.ik has reached out 1350 educational agents in order to:</p>
<p>• Improve their lifelong learning skills.<br />
• Use EdTech to leverage students academic performance.</p>
<p>All the training courses have been focused on methodologies that consider the local curricula and the Sustainable Development Goals as the core of the assignments that have Educational Technologies as exploration and production resources.</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="home"  data-column-margin="90px" data-midnight="dark" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row full-width-section  vc_row-o-equal-height vc_row-flex  vc_row-o-content-middle   reverse_columns_column_tablet reverse_columns_column_phone top_padding_tablet_8pct bottom_padding_tablet_8pct "  style="padding-top: 0px; padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg using-bg-color"  style="background-color: #ffffff; "></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 vc_col-xs-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div class="nectar-highlighted-text" data-style="regular_underline" data-exp="default" data-underline-thickness="1px" data-user-color="true" style="color: #164074;" data-using-custom-color="true" data-animation-delay="400" data-color="#e0e0e0" data-color-gradient="" style="">
<h2>An overview of jp.ik<br />
educational projects in Africa</h2>
</div><div id="fws_6a7c8ae753799" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div style="" class="vc_col-sm-6 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "  data-using-bg="true" data-bg-cover="true" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" ><div class="column-image-bg-wrap" data-n-parallax-bg="true" data-parallax-speed="fast" data-bg-pos="center center" data-bg-animation="none"><div class="inner-wrap"><div class="column-image-bg parallax-layer" style="background-image: url(https://source.unsplash.com/collection/49597329/weekly); "></div></div></div>
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element  vc_custom_1784123459482" >
	<div class="wpb_wrapper">
		<p>In <strong>Angola</strong> 11 training courses were held involving 138 educational agents, with both teachers and elements from the Ministry of Education in charge of supervising the entire training and implementation process.<br />
For these educational projects the main goals were to:<br />
• Enable professional development of Angola’s faculty through the implementation of technological resources and the contingent need of revising the pedagogical practices.<br />
• Increase literacy in the country, using the new technologies to access meaningful information.</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 69pt;">“</span></strong><br />
<span style="color: #000000;"><em>&#8220;This training is essential to launch and sustain the project, because there are many tools I’ve<br />
never used before.&#8221; </em></span></p>
<p><span style="color: #d3d3d3;">&#8211; Angolan Teacher</span></p>
<p>&nbsp;</p>
<p><span style="color: #000000;"><em>&#8220;Learning is easy. There is a very strong connection between technology and pedagogy.&#8221;</em></span></p>
<p><span style="color: #d3d3d3;">&#8211; Angolan Educational Agent from the ME</span></p>
	</div>
</div>



<div class="divider-wrap" data-alignment="default"><div style="margin-top: 50px; width: 20%px; height: 4px; margin-bottom: 50px;" data-width="20%" data-animate="" data-animation-delay="" data-color="default" class="divider-small-border"></div></div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>In <strong>Kenya</strong> 49 training courses were held for 494 educational agents including Master Trainers (MOI University teachers, training coordinators, ICT technicians and coordinators) and Primary<br />
teachers.<br />
The main goal of these educational projects was to:<br />
• Leverage learning conditions and access, making always the links between global perspectives and local reality through DigiSchool Project.</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 69pt;">“</span></strong><br />
<span style="color: #000000;"><em>&#8220;Am sure the jp training is what made us competent to perform well during the teachers training.&#8221;</em></span></p>
<p><span style="color: #d3d3d3;">&#8211; Kenyan Master Trainer from Moi University</span></p>
	</div>
</div>



<div class="divider-wrap" data-alignment="default"><div style="margin-top: 50px; width: 20%px; height: 4px; margin-bottom: 50px;" data-width="20%" data-animate="" data-animation-delay="" data-color="default" class="divider-small-border"></div></div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>In <strong>Morocco</strong> 1 training course was conducted for a group of 4 educators.<br />
The main goal of this educational project was to:<br />
• Promote opportunities for learning-based interactions amongst hospitalized children.</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 69pt;">“</span></strong><br />
<span style="color: #000000;"><em>&#8220;We are now able to create empowering opportunities for our children, even though they stay here for many months.”</em></span></p>
<p><span style="color: #d3d3d3;">&#8211; Moroccan Educator at the Maison de l’enfant</span></p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>In <strong>Benin</strong> 1 training course was promoted for 6 ICT technicians and coordinators.<br />
The main goal of this educational project was to:<br />
• Build local capacity to autonomously recognize and use the Classroom Management Software basic operations.</p>
<p>In <strong>Gabon</strong> 3 trainings courses were implemented with 62 teachers and ICT managers.<br />
The main goal of these educational project was to:<br />
• Build local capacity to setup, maintain and use the Classroom Management Software basic operations.</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 69pt;">“</span></strong><br />
<span style="color: #000000;"><em>&#8220;It was an excellent opportunity to practice everything with a lot of support from our trainers. I feel we are really well-prepared to start the work now!&#8221;</em></span></p>
<p><span style="color: #d3d3d3;">&#8211; Gabonese Teacher</span></p>
	</div>
</div>



<div class="divider-wrap" data-alignment="default"><div style="margin-top: 50px; width: 20%px; height: 5px; margin-bottom: 50px;" data-width="20%" data-animate="" data-animation-delay="" data-color="default" class="divider-small-border"></div></div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>In <strong>Ivory Coast</strong> 1 training course was implemented with 11 pedagogic coordinators.<br />
For this educational project the main goals were to:<br />
• Enhance the pedagogical practices through the implementation of cutting edge technological resources.<br />
• Develop teachers’ community practices.</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 69pt;">“</span></strong><br />
<span style="color: #000000;"><em>&#8220;It was really interactive and the trainers were always there for us. Work with the students’ computers during training is essential to the success of any ICT integration project in schools.&#8221;</em></span></p>
<p><span style="color: #d3d3d3;">&#8211; Ivorian ICT Coordinator</span></p>
<p>&nbsp;</p>
<p><span style="color: #000000;"><em>&#8220;It was well-structured. Trainers were highly competent. Training had a strong practical<br />
dimension.&#8221;</em></span></p>
<p><span style="color: #d3d3d3;">&#8211; Ivorian Pedagogical Coordinator</span></p>
	</div>
</div>



<div class="divider-wrap" data-alignment="default"><div style="margin-top: 50px; width: 20%px; height: 1px; margin-bottom: 50px;" data-width="20%" data-animate="" data-animation-delay="" data-color="default" class="divider-small-border"></div></div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>In <strong>South Africa</strong> 2 training courses were held for 15 teachers and ICT technicians.<br />
The main goal of these educational projects was to:<br />
• Enhance the quality of education provision and social and economic opportunities for youth through skills development programes and training.<br />
• Drive the professionalism, teaching skills and computer literacy.</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 69pt;">“</span></strong><br />
<span style="color: #000000;"><em>The bar must be lifted especially now that the Education landscape – and subsequently some of the teachers’ roles – have changed</em></span></p>
<p><span style="color: #d3d3d3;">South African School Director</span></p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_6a7c8ae755292"  data-column-margin="default" data-midnight="dark" data-top-percent="2%" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row  "  style="padding-top: calc(100vw * 0.02); padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div class="nectar-highlighted-text" data-style="regular_underline" data-exp="default" data-underline-thickness="1px" data-user-color="true" style="color: #164074;" data-using-custom-color="true" data-animation-delay="400" data-color="#e0e0e0" data-color-gradient="" style="">
<h2>Impact of educational agents training for a meaningful EdTech integration in Africa</h2>
</div><div id="fws_6a7c8ae755a43" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>How jp.ik programmes boost education in Africa</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>A meaningful agregation of EdTech in learning environments is strongly related with training the local educational stakeholders.<br />
This training has to be designed and implemented as a comprehensive approach to EdTech integration, considering not only the<br />
technological dimension, but also all the elements that are part of the ik-Model – Technologies, Content, Processes, Relations and<br />
Signification. All the ik-Learning Courses are well-founded on these premises.</p>
<p>In sub-Saharan African countries the great demand for tertiary education makes distance education increasingly relevant. This strengthens African experience regarding distance education and technology to make educational opportunities grow. By considering cultural, social and ethnographic diferences and demands, ik-Learning training is having impact on:</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div><div id="fws_6a7c8ae7563ee" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col child_column centered-text no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="nectar_icon_wrap" data-style="default" data-padding="20px" data-color="extra-color-3" style="" >
		<div class="nectar_icon" ><i style="font-size: 50px; line-height: 50px; height: 50px; width: 50px;" class="fa fa-graduation-cap"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Academic performance</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Learning through peers</p>
	</div>
</div>



<div class="nectar_icon_wrap" data-draw="true" data-style="default" data-padding="0px" data-color="extra-color-gradient-2" style="" >
		<div class="nectar_icon" style="height: 26px; width: 26px;"><i style="font-size: 20px; line-height: 24px; height: 24px; width: 24px;" class="icon-arrows-down"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Controlling and preventing absenteeism</p>
	</div>
</div>



<div class="nectar_icon_wrap" data-draw="true" data-style="default" data-padding="0px" data-color="extra-color-gradient-2" style="" >
		<div class="nectar_icon" style="height: 26px; width: 26px;"><i style="font-size: 20px; line-height: 24px; height: 24px; width: 24px;" class="icon-arrows-down"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Controlling and preventing retention rates</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col child_column centered-text no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="nectar_icon_wrap" data-style="default" data-padding="20px" data-color="extra-color-3" style="" >
		<div class="nectar_icon" ><i style="font-size: 50px; line-height: 50px; height: 50px; width: 50px;" class="fa fa-user"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Teachers professional development</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Media and digital literacy</p>
	</div>
</div>



<div class="nectar_icon_wrap" data-draw="true" data-style="default" data-padding="0px" data-color="extra-color-gradient-2" style="" >
		<div class="nectar_icon" style="height: 26px; width: 26px;"><i style="font-size: 20px; line-height: 24px; height: 24px; width: 24px;" class="icon-arrows-down"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Lifelong learning</p>
	</div>
</div>



<div class="nectar_icon_wrap" data-draw="true" data-style="default" data-padding="0px" data-color="extra-color-gradient-2" style="" >
		<div class="nectar_icon" style="height: 26px; width: 26px;"><i style="font-size: 20px; line-height: 24px; height: 24px; width: 24px;" class="icon-arrows-down"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Bringing parents to schools</p>
	</div>
</div>




		</div> 
	</div>
	</div> 
</div></div><div id="fws_6a7c8ae7584a8" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-6 wpb_column column_container vc_column_container col child_column centered-text no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="nectar_icon_wrap" data-style="default" data-padding="20px" data-color="extra-color-3" style="" >
		<div class="nectar_icon" ><i style="font-size: 50px; line-height: 50px; height: 50px; width: 50px;" class="fa fa-laptop"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Media and digital literacy</strong></p>
	</div>
</div>



<div class="nectar_icon_wrap" data-draw="true" data-style="default" data-padding="0px" data-color="extra-color-gradient-2" style="" >
		<div class="nectar_icon" style="height: 26px; width: 26px;"><i style="font-size: 20px; line-height: 24px; height: 24px; width: 24px;" class="icon-arrows-down"></i></div>
	</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>More autonomy / Agency in decision making</p>
	</div>
</div>




		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="home"  data-column-margin="90px" data-midnight="dark" data-bottom-percent="2%"  class="wpb_row vc_row-fluid vc_row full-width-section  vc_row-o-equal-height vc_row-flex  vc_row-o-content-middle   reverse_columns_column_tablet reverse_columns_column_phone top_padding_tablet_8pct bottom_padding_tablet_8pct "  style="padding-top: 0px; padding-bottom: calc(100vw * 0.02); "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg using-bg-color"  style="background-color: #ffffff; "></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 vc_col-xs-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div class="divider-wrap" data-alignment="default"><div style="height: 25px;" class="divider"></div></div><div id="fws_6a7c8ae75a536" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div style="" class="vc_col-sm-12 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "  data-using-bg="true" data-bg-cover="true" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" ><div class="column-image-bg-wrap" data-n-parallax-bg="true" data-parallax-speed="fast" data-bg-pos="center center" data-bg-animation="none"><div class="inner-wrap"><div class="column-image-bg parallax-layer" style="background-image: url(https://source.unsplash.com/collection/49597329/weekly); "></div></div></div>
		<div class="wpb_wrapper">
			<div class="nectar-highlighted-text" data-style="regular_underline" data-exp="default" data-underline-thickness="1px" data-user-color="true" style="color: #164074;" data-using-custom-color="true" data-animation-delay="400" data-color="#e0e0e0" data-color-gradient="" style="">
<h2>In summary</h2>
</div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><strong>Inspiring and providing new opportunities in the field of education</strong></p>
	</div>
</div>




<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>In this scenario of boosting education through an innovative approach intertwining pedagogy and technology, jp.ik invests on inspiring and providing new opportunities for present and future generations having Education as the route for a society’s economic and social growth and development.<br />
Up to now Jp.ik action in Africa covered 7 countries; reached out to 1350 educational agents; and promoted 68 training courses.</p>
	</div>
</div>



<div class="divider-wrap" data-alignment="default"><div style="height: 25px;" class="divider"></div></div><div class="divider-wrap" data-alignment="default"><div style="height: 25px;" class="divider"></div></div>
		</div> 
	</div>
	</div> 
</div></div>
	<div class="wpb_raw_code wpb_content_element wpb_raw_html" >
		<div class="wpb_wrapper">
			<!doctype html>
<html lang="en" data-visualize-standalone>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="referrer" content="no-referrer">
<title>Africa Training Chart</title>
<style>:root {
  color-scheme: light dark;
  background-color: transparent !important;

  /* Agent-facing contract; keep in sync with SKILL.md. */
  --background: var(
    --main-surface-primary,
    light-dark(rgb(255 255 255), rgb(24 24 24))
  );
  --foreground: light-dark(rgb(26 28 31), rgb(255 255 255));
  --card: color-mix(in oklab, var(--foreground) 5%, transparent);
  --card-foreground: var(--foreground);
  --popover: light-dark(rgb(255 255 255), rgb(45 45 45));
  --popover-foreground: var(--foreground);
  --primary: light-dark(rgb(51 156 255), rgb(131 195 255));
  --primary-foreground: light-dark(rgb(255 255 255), rgb(13 13 13));
  --secondary: light-dark(rgb(255 255 255 / 96%), rgb(54 54 54 / 96%));
  --secondary-foreground: var(--foreground);
  --muted: color-mix(in srgb, var(--foreground) 10%, transparent);
  --muted-foreground: light-dark(
    rgb(26 28 31 / 49.4%),
    rgb(255 255 255 / 49.8%)
  );
  --accent: light-dark(rgb(229 242 255), rgb(13 39 63));
  --accent-foreground: var(--primary);
  --destructive: light-dark(rgb(226 85 7), rgb(255 133 73));
  --border: light-dark(rgb(26 28 31 / 8%), rgb(255 255 255 / 8.2%));
  --input: light-dark(
    rgb(26 28 31 / 11.8%),
    color-mix(in oklab, rgb(0 0 0) 10%, transparent)
  );
  --ring: light-dark(rgb(51 156 255), rgb(131 195 255 / 76%));
  --font-size-base: 14px;

  /* Internal implementation variables; not part of the agent contract. */
  --font-sans: -apple-system, system-ui, "Segoe UI", sans-serif;
  --font-mono:
    ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
    monospace;
  --font-size-normal: max(11px, var(--font-size-base));
  --font-size-tooltip: calc(var(--font-size-base) - 1px);
  --font-size-small: max(11px, calc(var(--font-size-base) - 2px));
  --font-size-h1: calc(var(--font-size-normal) * 1.7142857143);
  --font-size-h2: calc(var(--font-size-normal) * 1.4285714286);
  --font-size-h3: calc(var(--font-size-normal) * 1.2857142857);
  --font-weight-normal: 430;
  --font-weight-medium: 500;
  --line-height-normal: calc(var(--font-size-normal) * 1.5);
  --line-height-tooltip: calc(var(--font-size-tooltip) * 1.4285714286);
  --line-height-small: calc(var(--font-size-small) + 4px);
  --radius: 10px;
  --radius-sm: calc(var(--radius) * 0.6);
  --radius-md: calc(var(--radius) * 0.8);
  --radius-lg: var(--radius);
  --radius-2xl: calc(var(--radius) * 1.6);
  --radius-full: 9999px;
  --shadow-sm: 0 1px 2px -1px rgb(0 0 0 / 8%);
  --checkmark-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 17'%3E%3Cpath d='M12.8961 3.64101C13.1297 3.41418 13.4984 3.37523 13.7779 3.56581C14.0571 3.75635 14.1554 4.11331 14.0299 4.41347L13.9615 4.53847L7.71151 13.7045C7.59411 13.8767 7.4063 13.9877 7.19881 14.0072C6.99136 14.0267 6.78564 13.9533 6.63826 13.806L2.88826 10.056L2.79842 9.9457C2.6192 9.67407 2.64927 9.30496 2.88826 9.06581C3.12738 8.82669 3.49647 8.79676 3.76815 8.97597L3.8785 9.06581L7.03084 12.2182L12.8053 3.74941L12.8961 3.64101Z'/%3E%3C/svg%3E");

  /* Legacy aliases; not part of the current agent contract. */
  --viz-bg: transparent;
  --viz-panel: var(--card);
  --viz-border: var(--border);
  --viz-text: var(--foreground);
  --viz-muted: var(--muted-foreground);
  --viz-accent: var(--primary);
  --viz-accent-text: var(--primary-foreground);
  --viz-accent-bg: var(--accent);
  --viz-font-size: var(--font-size-base);
  --viz-warning: var(--destructive);
  --color-background-primary: var(--background);
  --color-text-primary: var(--foreground);
  --color-border-secondary: var(--border);
}

:root[data-visualize-standalone] {
  background-color: var(--background) !important;
}

/* Generic mobile code-block hosts provide light/dark mode but no series palette.
   AppBlock hosts set all six variables themselves. */
:root:not([data-app-block-surface]) {
  --viz-series-1: var(--primary);
  --viz-series-2: light-dark(#f3883b, #f59a56);
  --viz-series-3: light-dark(#5dc977, #74d58b);
  --viz-series-4: light-dark(#eb77b1, #f08fc0);
  --viz-series-5: light-dark(#9b79ec, #aa91ef);
  --viz-series-6: light-dark(#3ab9b1, #5acbc2);
}

:root[data-theme="light"] {
  color-scheme: light;
}

:root[data-theme="dark"] {
  color-scheme: dark;
}

* {
  box-sizing: border-box;
}

html > body {
  margin: 0;
  padding: 5px;
  color: var(--foreground);
  background: transparent !important;
  font-family: var(--font-sans);
  font-size: var(--font-size-normal);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-normal);
}

:root:not([data-app-block-surface]) > body {
  padding: 12px;
}

a {
  color: color-mix(in srgb, var(--viz-accent) 80%, var(--viz-text) 20%);
  cursor: pointer;
  font-weight: var(--viz-font-weight-medium);
  text-decoration: none;
  text-underline-offset: 2px;
}

a:is(:hover, :focus-visible) {
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-decoration-thickness: 0.5px;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin-block: 0;
}

h1 {
  font-size: var(--font-size-h1);
  font-weight: var(--font-weight-medium);
  line-height: 1.25;
}

h2 {
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-medium);
  line-height: 1.25;
}

h3,
h4,
h5,
h6 {
  font-size: var(--font-size-h3);
  font-weight: var(--font-weight-medium);
  line-height: 1.3;
}

b,
strong,
th {
  font-weight: var(--font-weight-medium);
}

code:not(pre code) {
  display: inline;
  padding: 1px 6px;
  border-radius: var(--radius-sm);
  background: var(--muted);
  font-family: var(--font-mono);
  font-size: 0.92em;
  overflow-wrap: anywhere;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  word-break: break-word;
}

#widget {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  padding: 0;
  background: transparent !important;
}

.card {
  min-width: 0;
  padding: 12px;
  overflow: hidden;
  overflow-wrap: break-word;
  border-radius: var(--radius-2xl);
  color: var(--card-foreground);
  background: var(--card);
}

#widget > :not(.card) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.tooltip {
  position: fixed;
  z-index: 50;
  top: 0;
  left: 0;
  width: max-content;
  max-width: min(
    20rem,
    var(--tooltip-available-width, calc(100vw - 10px)),
    calc(100vw - 10px)
  );
  max-height: min(
    var(--tooltip-available-height, calc(100vh - 10px)),
    calc(100vh - 10px)
  );
  padding: 4px 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  color: var(--popover-foreground);
  background: var(--popover);
  box-shadow: none;
  font-size: var(--font-size-tooltip);
  line-height: var(--line-height-tooltip);
  overflow-wrap: break-word;
  white-space: normal;
  pointer-events: none;
  user-select: none;
}

.viz-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(max(180px, 24%), 1fr));
  gap: 10px;
}

.viz-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.viz-stat-value {
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-medium);
  line-height: 1.25;
}

.viz-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.viz-badge {
  padding: 3px 8px;
  border-radius: var(--radius-full);
  color: var(--accent-foreground);
  background: var(--accent);
  font-weight: var(--font-weight-medium);
}

small,
.text-small,
.viz-badge {
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

.text-muted {
  color: var(--muted-foreground);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.viz-legend,
.viz-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.viz-controls > .form-label {
  display: grid;
  min-width: min(100%, 260px);
  flex: 1 1 280px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 2px 12px;
  margin-bottom: 0;
}

.viz-controls > .form-label > :is(.form-control, .form-range, .form-select) {
  grid-column: 1 / -1;
}

.btn,
.form-check-input,
.form-control,
.form-range,
.form-select {
  font: inherit;
}

.btn {
  appearance: button;
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 0;
  padding: 0 8px;
  -webkit-app-region: no-drag;
  border: 1px solid var(--input);
  border-radius: var(--radius-lg);
  color: var(--secondary-foreground);
  background: var(--secondary);
  cursor: var(--cursor-interaction, pointer);
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  user-select: none;
  -webkit-font-smoothing: antialiased;
}

a.btn {
  cursor: pointer;
  text-decoration: none;
}

.btn:not(:disabled):hover {
  background: color-mix(in srgb, var(--foreground) 6%, var(--secondary));
}

.btn-primary {
  border-color: transparent;
  color: var(--primary-foreground);
  background: var(--foreground);
  background-clip: padding-box;
}

.btn-primary:not(:disabled):hover {
  background: color-mix(in srgb, var(--foreground) 80%, transparent);
  background-clip: padding-box;
}

.btn-ghost {
  border-color: transparent;
  color: var(--muted-foreground);
  background: transparent;
}

.btn-ghost:not(:disabled):hover {
  color: var(--foreground);
  background: color-mix(in srgb, var(--foreground) 6%, var(--secondary));
}

.btn:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

[data-lucide] {
  stroke-width: 1.6;
}

.form-label {
  display: block;
  margin-bottom: 6px;
  color: var(--foreground);
}

.form-control {
  display: block;
  width: 100%;
  min-height: 28px;
  padding: 0 8px;
  outline: none;
  border: 1px solid var(--input);
  border-radius: var(--radius-lg);
  color: var(--foreground);
  background: var(--secondary);
}

.form-control::placeholder {
  color: var(--muted-foreground);
}

textarea.form-control {
  height: auto;
  min-height: 72px;
  padding: 8px 10px;
  resize: vertical;
}

.form-control:focus-visible {
  border-color: var(--ring);
  box-shadow: inset 0 0 0 1px var(--ring);
}

.form-control:disabled,
.form-select:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

.form-select {
  appearance: none;
  display: block;
  width: 100%;
  min-height: 28px;
  margin: 0;
  padding: 0 32px 0 8px;
  outline: none;
  border: 1px solid var(--input);
  border-radius: var(--radius-lg);
  color: var(--foreground);
  background-color: var(--secondary);
  background-image:
    linear-gradient(45deg, transparent 50%, var(--muted-foreground) 50%),
    linear-gradient(135deg, var(--muted-foreground) 50%, transparent 50%);
  background-position:
    calc(100% - 14px) 50%,
    calc(100% - 10px) 50%;
  background-repeat: no-repeat;
  background-size: 4px 4px;
  cursor: var(--cursor-interaction, default);
}

.form-select:not(:disabled):hover {
  background-color: color-mix(in srgb, var(--foreground) 6%, var(--secondary));
}

.form-select:focus-visible {
  border-color: var(--ring);
  box-shadow: inset 0 0 0 1px var(--ring);
}

.form-check {
  display: flex;
  min-height: 20px;
  align-items: center;
  gap: 6px;
}

.form-check-input {
  appearance: none;
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  margin: 0;
  border: 1px solid var(--input);
  color: var(--primary-foreground);
  background-color: transparent;
  cursor: var(--cursor-interaction, default);
  transition:
    background-color 150ms,
    border-color 150ms,
    box-shadow 150ms;
}

.form-check:not(.form-switch) .form-check-input[type="checkbox"] {
  border-color: var(--input);
  border-radius: var(--radius-sm);
  background-color: var(--secondary);
  box-shadow: var(--shadow-sm);
}

.form-check:not(.form-switch)
  .form-check-input:not(:disabled):not(:checked):hover {
  background-color: var(--card);
}

.form-check:not(.form-switch) .form-check-input[type="checkbox"]:checked {
  border-color: var(--primary);
  background-color: var(--primary);
}

.form-check:not(.form-switch)
  .form-check-input[type="checkbox"]:checked::before {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--primary-foreground);
  content: "";
  mask: var(--checkmark-image) center / 12px 12px no-repeat;
}

.form-check-input[type="radio"] {
  width: 14px;
  height: 14px;
  border-radius: var(--radius-full);
}

.form-check-input[type="radio"]:checked {
  border: 2px solid var(--primary);
  background:
    radial-gradient(circle, var(--primary-foreground) 0 2.5px, transparent 3px),
    var(--primary);
}

.form-check:not(.form-switch) .form-check-input:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

.form-check:not(.form-switch) .form-check-input:disabled {
  cursor: not-allowed;
  pointer-events: none;
}

.form-check:not(.form-switch) .form-check-input:disabled + .form-check-label {
  cursor: not-allowed;
}

.form-switch .form-check-input:disabled,
.form-switch .form-check-input:disabled + .form-check-label {
  cursor: not-allowed;
  opacity: 0.6;
}

.form-check-label {
  color: var(--foreground);
  cursor: var(--cursor-interaction, default);
}

.form-switch .form-check-input {
  position: relative;
  width: 32px;
  height: 20px;
  border: 0;
  border-radius: var(--radius-full);
  background: var(--muted);
  box-shadow: none;
  transition: background-color 200ms cubic-bezier(0, 0, 0.2, 1);
}

.form-switch .form-check-input::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border: 1px solid light-dark(var(--primary-foreground), var(--foreground));
  border-radius: var(--radius-full);
  background: light-dark(var(--primary-foreground), var(--foreground));
  box-shadow: var(--shadow-sm);
  content: "";
  transform: translate(2px, -50%);
  transition: transform 200ms cubic-bezier(0, 0, 0.2, 1);
}

.form-switch .form-check-input:checked {
  background: var(--primary);
}

.form-switch .form-check-input:checked::before {
  transform: translate(14px, -50%);
}

.form-switch .form-check-input:focus-visible {
  box-shadow: 0 0 0 2px var(--ring);
}

.form-range {
  appearance: none;
  display: block;
  width: 100%;
  height: 28px;
  flex: 1;
  margin: 0;
  padding: 0;
  outline: none;
  border: 0;
  accent-color: var(--primary);
  background: linear-gradient(
      color-mix(in srgb, var(--foreground) 7%, transparent),
      color-mix(in srgb, var(--foreground) 7%, transparent)
    )
    center / 100% 2px no-repeat;
}

.form-range::-webkit-slider-runnable-track {
  height: 28px;
  background: transparent;
}

.form-range::-webkit-slider-thumb {
  appearance: none;
  width: 20px;
  height: 20px;
  margin-top: 4px;
  border: 1px solid var(--border);
  border-radius: var(--radius-full);
  background: light-dark(var(--primary-foreground), var(--foreground));
}

.form-range:focus-visible::-webkit-slider-thumb {
  border-color: var(--ring);
  box-shadow: inset 0 0 0 1px var(--ring);
}

.form-range::-moz-range-track {
  height: 28px;
  background: transparent;
}

.form-range::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border: 1px solid var(--border);
  border-radius: var(--radius-full);
  background: light-dark(var(--primary-foreground), var(--foreground));
}

.form-range:focus-visible::-moz-range-thumb {
  border-color: var(--ring);
  box-shadow: inset 0 0 0 1px var(--ring);
}

.form-range:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

.btn:not(.btn-primary, .viz-tile):is(
    [aria-pressed="true"],
    [aria-selected="true"],
    .is-selected
  ) {
  border-color: var(--primary);
  color: var(--primary-foreground);
  background: var(--primary);
}

.btn.viz-tile:is([aria-pressed="true"], [aria-selected="true"], .is-selected) {
  border-color: var(--primary);
  box-shadow: inset 0 0 0 1px var(--primary);
}

.btn:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

svg {
  display: block;
  max-width: 100%;
  height: auto;
}

#widget > svg {
  width: 100%;
}

.text-warning,
.text-destructive {
  color: var(--destructive);
}
</style>
</head>
<body>
<section id="africa-training-chart" aria-label="Training activity in Africa">
  <style>
    #africa-training-chart {
      --chart-series: color-mix(in srgb, var(--viz-series-1) 32%, var(--foreground));
      --chart-ink: var(--foreground);
      --chart-muted: var(--muted-foreground);
      --chart-surface: var(--background);
      width: 100%;
      color: var(--chart-ink);
    }

    #africa-training-chart .africa-chart-layout {
      display: grid;
      grid-template-columns: minmax(175px, 0.75fr) minmax(250px, 1.1fr) minmax(250px, 1.1fr);
      grid-template-areas:
        "description-one chart-one chart-two"
        "description-two chart-one chart-two";
      gap: 2rem;
      align-items: stretch;
    }

    #africa-training-chart .metric-description {
      max-width: 24rem;
      align-self: center;
    }

    #africa-training-chart .metric-description:first-child {
      grid-area: description-one;
      align-self: start;
    }

    #africa-training-chart .metric-description:nth-child(2) {
      grid-area: description-two;
    }

    #africa-training-chart .metric-number {
      display: block;
      margin-bottom: 0.35rem;
      color: var(--chart-ink);
      font-weight: 500;
    }

    #africa-training-chart .metric-description h2 {
      margin: 0;
      color: var(--chart-series);
      font-size: var(--font-size-h3);
      font-weight: 400;
      text-transform: none;
    }

    #africa-training-chart .chart-panel {
      min-width: 0;
    }

    #africa-training-chart .chart-panel[data-chart="0"] {
      grid-area: chart-one;
    }

    #africa-training-chart .chart-panel[data-chart="1"] {
      grid-area: chart-two;
    }

    #africa-training-chart .chart-legend {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0.65rem 1rem;
      margin-bottom: 0.6rem;
    }

    #africa-training-chart .legend-item {
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
      min-width: 0;
      padding: 0;
      border: 0;
      color: var(--chart-muted);
      background: transparent;
      font: inherit;
      text-align: left;
      cursor: pointer;
    }

    #africa-training-chart .legend-item:hover,
    #africa-training-chart .legend-item.is-active {
      color: var(--chart-ink);
    }

    #africa-training-chart .legend-swatch {
      flex: 0 0 auto;
      width: 0.75rem;
      height: 0.75rem;
      background-color: color-mix(in srgb, var(--chart-series) var(--swatch-opacity), var(--chart-surface));
      background-image: repeating-linear-gradient(
        -30deg,
        transparent 0,
        transparent 1px,
        color-mix(in srgb, var(--chart-series) 80%, transparent) 1px,
        color-mix(in srgb, var(--chart-series) 80%, transparent) 2px
      );
    }

    #africa-training-chart .chart-figure {
      position: relative;
      margin: 0;
    }

    #africa-training-chart .donut-svg {
      display: block;
      width: 100%;
      height: auto;
      overflow: visible;
    }

    #africa-training-chart .donut-segment {
      stroke: var(--chart-surface);
      stroke-width: 1;
      cursor: pointer;
    }

    #africa-training-chart .donut-segment.is-dimmed {
      opacity: 0.25;
    }

    #africa-training-chart .donut-segment.is-active {
      stroke-width: 2;
    }

    #africa-training-chart .donut-center-label,
    #africa-training-chart .donut-center-value {
      fill: var(--chart-ink);
      text-anchor: middle;
      pointer-events: none;
    }

    #africa-training-chart .donut-center-label {
      font-size: var(--font-size-small);
    }

    #africa-training-chart .donut-center-value {
      font-weight: 500;
    }

    #africa-training-chart .chart-tooltip {
      position: absolute;
      z-index: 2;
      top: 0;
      left: 0;
      width: max-content;
      max-width: min(15rem, calc(100% - 1rem));
      padding: 0.4rem 0.65rem;
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      color: var(--popover-foreground);
      background: var(--popover);
      box-shadow: none;
      pointer-events: none;
      visibility: hidden;
      opacity: 0;
      transform: translate(-50%, calc(-100% - 0.45rem));
    }

    #africa-training-chart .chart-tooltip.is-visible {
      visibility: visible;
      opacity: 1;
    }

    @media (prefers-reduced-motion: no-preference) {
      #africa-training-chart .donut-segment,
      #africa-training-chart .chart-tooltip {
        transition: opacity 160ms ease;
      }
    }

    #africa-training-chart .chart-index-circle {
      fill: var(--chart-ink);
    }

    #africa-training-chart .chart-index-label {
      fill: var(--chart-surface);
      font-weight: 400;
      text-anchor: middle;
      dominant-baseline: middle;
    }

    @media (max-width: 800px) {
      #africa-training-chart .africa-chart-layout {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
          "description-one description-one"
          "chart-one chart-one"
          "description-two description-two"
          "chart-two chart-two";
      }

      #africa-training-chart .metric-description,
      #africa-training-chart .metric-description:first-child,
      #africa-training-chart .metric-description:nth-child(2) {
        align-self: start;
      }
    }

    @media (max-width: 480px) {
      #africa-training-chart .africa-chart-layout {
        display: block;
      }

      #africa-training-chart .chart-panel {
        margin: 1.25rem 0 2.5rem;
      }

      #africa-training-chart .chart-legend {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }
  </style>

  <div class="africa-chart-layout">
    <div class="metric-description">
      <span class="metric-number">1.</span>
      <h2>Total of educational agents who participated in the training courses in Africa</h2>
    </div>

    <div class="metric-description">
      <span class="metric-number">2.</span>
      <h2>Total of training courses conducted in Africa</h2>
    </div>

    <article class="chart-panel" data-chart="0" aria-labelledby="africa-chart-heading-1">
      <h3 id="africa-chart-heading-1" class="sr-only">Educational agents by country</h3>
      <div class="chart-legend text-small" aria-label="Select a country"></div>
      <figure class="chart-figure"></figure>
    </article>

    <article class="chart-panel" data-chart="1" aria-labelledby="africa-chart-heading-2">
      <h3 id="africa-chart-heading-2" class="sr-only">Training courses by country</h3>
      <div class="chart-legend text-small" aria-label="Select a country"></div>
      <figure class="chart-figure"></figure>
    </article>
  </div>

  <script>
    (() => {
      const root = document.getElementById("africa-training-chart");
      if (!root) return;

      /* Replace these estimated values with the approved data when available. */
      const charts = [
        {
          number: "1",
          title: "Educational agents who participated in training courses in Africa",
          values: {
            Angola: 15,
            Benin: 5,
            Gabon: 3,
            "Ivory Coast": 2,
            Kenya: 2,
            Morocco: 71,
            "South Africa": 2
          }
        },
        {
          number: "2",
          title: "Training courses conducted in Africa",
          values: {
            Angola: 9,
            Benin: 10,
            Gabon: 3,
            "Ivory Coast": 3,
            Kenya: 2,
            Morocco: 70,
            "South Africa": 3
          }
        }
      ];

      const legendOrder = ["Angola", "Benin", "Gabon", "Ivory Coast", "Kenya", "Morocco", "South Africa"];
      const ringOrder = ["Morocco", "Angola", "Benin", "Gabon", "Ivory Coast", "Kenya", "South Africa"];
      const tones = {
        Angola: 14,
        Benin: 22,
        Gabon: 34,
        "Ivory Coast": 48,
        Kenya: 58,
        Morocco: 68,
        "South Africa": 78
      };

      const svgNS = "http://www.w3.org/2000/svg";

      function svgElement(name, attributes = {}) {
        const element = document.createElementNS(svgNS, name);
        Object.entries(attributes).forEach(([key, value]) => element.setAttribute(key, value));
        return element;
      }

      function polarPoint(cx, cy, radius, angle) {
        const radians = (angle - 90) * Math.PI / 180;
        return {
          x: cx + radius * Math.cos(radians),
          y: cy + radius * Math.sin(radians)
        };
      }

      function donutPath(cx, cy, outerRadius, innerRadius, startAngle, endAngle) {
        const outerStart = polarPoint(cx, cy, outerRadius, startAngle);
        const outerEnd = polarPoint(cx, cy, outerRadius, endAngle);
        const innerEnd = polarPoint(cx, cy, innerRadius, endAngle);
        const innerStart = polarPoint(cx, cy, innerRadius, startAngle);
        const largeArc = endAngle - startAngle > 180 ? 1 : 0;

        return [
          `M ${outerStart.x} ${outerStart.y}`,
          `A ${outerRadius} ${outerRadius} 0 ${largeArc} 1 ${outerEnd.x} ${outerEnd.y}`,
          `L ${innerEnd.x} ${innerEnd.y}`,
          `A ${innerRadius} ${innerRadius} 0 ${largeArc} 0 ${innerStart.x} ${innerStart.y}`,
          "Z"
        ].join(" ");
      }

      function buildLegend(container, chartIndex) {
        legendOrder.forEach((country) => {
          const item = document.createElement("button");
          item.type = "button";
          item.className = "legend-item";
          item.dataset.country = country;
          item.dataset.chart = String(chartIndex);
          item.setAttribute("aria-pressed", "false");
          item.setAttribute("aria-label", `Show ${country}`);

          const swatch = document.createElement("span");
          swatch.className = "legend-swatch";
          swatch.style.setProperty("--swatch-opacity", `${tones[country]}%`);
          swatch.setAttribute("aria-hidden", "true");

          const label = document.createElement("span");
          label.textContent = country;

          item.append(swatch, label);
          container.append(item);
        });
      }

      function buildChart(container, chart, chartIndex) {
        const figure = container.querySelector(".chart-figure");
        const svg = svgElement("svg", {
          class: "donut-svg",
          viewBox: "0 0 300 285",
          role: "img",
          "aria-labelledby": `donut-title-${chartIndex} donut-desc-${chartIndex}`
        });

        const title = svgElement("title", { id: `donut-title-${chartIndex}` });
        title.textContent = chart.title;
        const desc = svgElement("desc", { id: `donut-desc-${chartIndex}` });
        desc.textContent = legendOrder.map((country) => `${country}: ${chart.values[country]}%`).join(", ");
        svg.append(title, desc);

        const defs = svgElement("defs");
        legendOrder.forEach((country, toneIndex) => {
          const pattern = svgElement("pattern", {
            id: `africa-hatch-${chartIndex}-${toneIndex}`,
            width: "5",
            height: "5",
            patternUnits: "userSpaceOnUse",
            patternTransform: "rotate(-18)"
          });
          const base = svgElement("rect", { width: "5", height: "5" });
          base.style.fill = `color-mix(in srgb, var(--chart-series) ${tones[country]}%, var(--chart-surface))`;
          const line = svgElement("path", { d: "M 0 0 L 0 5" });
          line.style.stroke = "color-mix(in srgb, var(--chart-series) 88%, transparent)";
          line.style.strokeWidth = "1";
          pattern.append(base, line);
          defs.append(pattern);
        });
        svg.append(defs);

        const total = ringOrder.reduce((sum, country) => sum + chart.values[country], 0);
        let currentAngle = 0;
        ringOrder.forEach((country) => {
          const value = chart.values[country];
          const nextAngle = currentAngle + value / total * 360;
          const toneIndex = legendOrder.indexOf(country);
          const segment = svgElement("path", {
            class: "donut-segment",
            d: donutPath(160, 142, 112, 59, currentAngle, nextAngle),
            fill: `url(#africa-hatch-${chartIndex}-${toneIndex})`,
            "data-country": country,
            "aria-label": `${country}: ${value}%`
          });
          svg.append(segment);
          currentAngle = nextAngle;
        });

        const centerLabel = svgElement("text", {
          class: "donut-center-label",
          x: "160",
          y: "137"
        });
        centerLabel.textContent = "";
        const centerValue = svgElement("text", {
          class: "donut-center-value",
          x: "160",
          y: "160"
        });
        centerValue.textContent = "";
        svg.append(centerLabel, centerValue);

        const indexCircle = svgElement("circle", {
          class: "chart-index-circle",
          cx: "48",
          cy: "250",
          r: "22"
        });
        const indexLabel = svgElement("text", {
          class: "chart-index-label",
          x: "48",
          y: "251"
        });
        indexLabel.textContent = chart.number;
        svg.append(indexCircle, indexLabel);

        const tooltip = document.createElement("div");
        tooltip.className = "chart-tooltip text-small";
        tooltip.setAttribute("role", "status");

        const live = document.createElement("figcaption");
        live.className = "sr-only chart-live";
        live.setAttribute("aria-live", "polite");
        live.textContent = chart.title;

        figure.append(svg, tooltip, live);
      }

      function wireInteractions(panel, chart) {
        const figure = panel.querySelector(".chart-figure");
        const svg = panel.querySelector(".donut-svg");
        const segments = Array.from(panel.querySelectorAll(".donut-segment"));
        const legendItems = Array.from(panel.querySelectorAll(".legend-item"));
        const centerLabel = panel.querySelector(".donut-center-label");
        const centerValue = panel.querySelector(".donut-center-value");
        const tooltip = panel.querySelector(".chart-tooltip");
        const live = panel.querySelector(".chart-live");
        let lockedCountry = null;

        function renderSelection(country, announce = false) {
          segments.forEach((segment) => {
            const matches = country === null || segment.dataset.country === country;
            segment.classList.toggle("is-active", country !== null && matches);
            segment.classList.toggle("is-dimmed", country !== null && !matches);
          });

          legendItems.forEach((item) => {
            const matches = country !== null && item.dataset.country === country;
            item.classList.toggle("is-active", matches);
            item.setAttribute("aria-pressed", String(matches && lockedCountry === country));
          });

          centerLabel.textContent = country || "";
          centerValue.textContent = country ? `${chart.values[country]}%` : "";
          if (announce) {
            live.textContent = country
              ? `${country}: ${chart.values[country]}%. Selection fixed.`
              : "Selection cleared.";
          }
        }

        function showTooltip(segment) {
          const country = segment.dataset.country;
          tooltip.textContent = `${country} · ${chart.values[country]}%`;
          tooltip.classList.add("is-visible");

          const figureRect = figure.getBoundingClientRect();
          const segmentRect = segment.getBoundingClientRect();
          const tooltipRect = tooltip.getBoundingClientRect();
          const rawLeft = segmentRect.left - figureRect.left + segmentRect.width / 2;
          const rawTop = segmentRect.top - figureRect.top + segmentRect.height / 2;
          const halfWidth = tooltipRect.width / 2;
          const left = Math.max(halfWidth + 4, Math.min(figureRect.width - halfWidth - 4, rawLeft));
          const top = Math.max(tooltipRect.height + 10, rawTop);
          tooltip.style.left = `${left}px`;
          tooltip.style.top = `${top}px`;
        }

        function hideTooltip() {
          tooltip.classList.remove("is-visible");
        }

        function toggleLock(country) {
          lockedCountry = lockedCountry === country ? null : country;
          renderSelection(lockedCountry, true);
          hideTooltip();
        }

        segments.forEach((segment) => {
          const country = segment.dataset.country;
          segment.addEventListener("pointerenter", () => {
            renderSelection(country);
            showTooltip(segment);
          });
          segment.addEventListener("pointerleave", () => {
            hideTooltip();
            renderSelection(lockedCountry);
          });
          segment.addEventListener("click", () => toggleLock(country));
        });

        legendItems.forEach((item) => {
          const country = item.dataset.country;
          item.addEventListener("pointerenter", () => renderSelection(country));
          item.addEventListener("pointerleave", () => renderSelection(lockedCountry));
          item.addEventListener("focus", () => renderSelection(country));
          item.addEventListener("blur", () => renderSelection(lockedCountry));
          item.addEventListener("click", () => toggleLock(country));
          item.addEventListener("keydown", (event) => {
            if (event.key === "Escape") {
              lockedCountry = null;
              renderSelection(null, true);
              item.blur();
            }
          });
        });

        svg.addEventListener("click", (event) => {
          if (event.target === svg) {
            lockedCountry = null;
            renderSelection(null, true);
          }
        });
      }

      root.querySelectorAll(".chart-panel").forEach((panel, index) => {
        buildLegend(panel.querySelector(".chart-legend"), index);
        buildChart(panel, charts[index], index);
        wireInteractions(panel, charts[index]);
      });
    })();
  </script>
</section>

<script id="codex-visualization-floating-ui-core" src="https://unpkg.com/@floating-ui/core@1.7.3/dist/floating-ui.core.umd.min.js"></script>
<script id="codex-visualization-floating-ui-dom" src="https://unpkg.com/@floating-ui/dom@1.7.4/dist/floating-ui.dom.umd.min.js"></script>
<script id="codex-visualization-lucide" async src="https://unpkg.com/lucide@1.17.0/dist/umd/lucide.js"></script>
<script id="codex-visualization-tooltip">/* oxlint-disable typescript/no-unsafe-argument, typescript/no-unsafe-call, typescript/no-unsafe-return */
// Runs inside the visualization sandbox, not the host webview.
(() => {
  if (window.FloatingUIDOM == null) {
    return;
  }
  const { autoUpdate, computePosition, flip, offset, shift, size } =
    window.FloatingUIDOM;
  const tooltipPlacements = new Set(["top", "right", "bottom", "left"]);
  const tooltipId = `codex-visualization-tooltip-${
    window.crypto?.randomUUID?.() ?? Date.now().toString(36)
  }`;
  const tooltipGap = 5;
  const hoverDelay = 700;
  const skipDelay = 300;
  let activeTrigger = null;
  let pendingTrigger = null;
  let tooltip = null;
  let openTimeout = null;
  let autoUpdateCleanup = null;
  let positionRequest = 0;
  let skipDelayUntil = 0;

  const getTrigger = (target) =>
    target?.nodeType === Node.ELEMENT_NODE
      ? target.closest("[data-tooltip]")
      : null;
  const containsTarget = (trigger, target) =>
    target?.nodeType != null && trigger.contains(target);
  const getContent = (trigger) =>
    trigger.getAttribute("data-tooltip")?.trim() ?? "";
  const getPlacement = (trigger) => {
    const placement = trigger.getAttribute("data-tooltip-placement");
    return tooltipPlacements.has(placement) ? placement : "top";
  };
  const getTooltip = () => {
    if (tooltip == null) {
      tooltip = document.createElement("div");
      tooltip.id = tooltipId;
      tooltip.className = "tooltip";
      tooltip.setAttribute("role", "tooltip");
    }
    return tooltip;
  };
  const setDescribedBy = (trigger, described) => {
    const ids = new Set(
      (trigger.getAttribute("aria-describedby") ?? "")
        .split(/\s+/)
        .filter(Boolean),
    );
    if (described) {
      ids.add(tooltipId);
    } else {
      ids.delete(tooltipId);
    }
    if (ids.size === 0) {
      trigger.removeAttribute("aria-describedby");
    } else {
      trigger.setAttribute("aria-describedby", [...ids].join(" "));
    }
  };
  const clearOpenTimeout = () => {
    if (openTimeout != null) {
      window.clearTimeout(openTimeout);
      openTimeout = null;
    }
    pendingTrigger = null;
  };
  const closeTooltip = (activateSkipDelay = true) => {
    clearOpenTimeout();
    positionRequest += 1;
    autoUpdateCleanup?.();
    autoUpdateCleanup = null;
    if (activeTrigger == null) {
      return;
    }
    setDescribedBy(activeTrigger, false);
    activeTrigger = null;
    tooltip?.remove();
    if (activateSkipDelay) {
      skipDelayUntil = Date.now() + skipDelay;
    }
  };
  const updatePosition = (trigger, floating) => {
    const request = ++positionRequest;
    void computePosition(trigger, floating, {
      middleware: [
        offset(tooltipGap),
        flip({ padding: tooltipGap }),
        shift({ padding: tooltipGap }),
        size({
          padding: tooltipGap,
          apply({ availableHeight, availableWidth, elements }) {
            elements.floating.style.setProperty(
              "--tooltip-available-width",
              `${Math.max(0, availableWidth)}px`,
            );
            elements.floating.style.setProperty(
              "--tooltip-available-height",
              `${Math.max(0, availableHeight)}px`,
            );
          },
        }),
      ],
      placement: getPlacement(trigger),
      strategy: "fixed",
    })
      .then(({ x, y }) => {
        if (activeTrigger !== trigger || request !== positionRequest) {
          return;
        }
        const scale = window.devicePixelRatio || 1;
        floating.style.transform = `translate(${Math.round(x * scale) / scale}px, ${Math.round(y * scale) / scale}px)`;
        floating.style.visibility = "visible";
      })
      .catch(() => {
        if (activeTrigger === trigger && request === positionRequest) {
          closeTooltip(false);
        }
      });
  };
  const openTooltip = (trigger) => {
    const content = getContent(trigger);
    if (!trigger.isConnected || content.length === 0) {
      return;
    }
    clearOpenTimeout();
    if (activeTrigger === trigger) {
      return;
    }
    closeTooltip();
    const floating = getTooltip();
    floating.textContent = content;
    floating.style.visibility = "hidden";
    floating.style.transform = "translate(0, 0)";
    document.body.appendChild(floating);
    activeTrigger = trigger;
    setDescribedBy(trigger, true);
    autoUpdateCleanup = autoUpdate(trigger, floating, () => {
      updatePosition(trigger, floating);
    });
  };
  const requestOpen = (trigger, immediate = false) => {
    if (
      getContent(trigger).length === 0 ||
      activeTrigger === trigger ||
      pendingTrigger === trigger
    ) {
      return;
    }
    clearOpenTimeout();
    pendingTrigger = trigger;
    const delay =
      immediate || activeTrigger != null || Date.now() < skipDelayUntil
        ? 0
        : hoverDelay;
    if (delay === 0) {
      openTooltip(trigger);
      return;
    }
    openTimeout = window.setTimeout(() => {
      openTimeout = null;
      pendingTrigger = null;
      openTooltip(trigger);
    }, delay);
  };
  const handlePointerOpen = (event) => {
    if (event.pointerType === "touch") {
      return;
    }
    const trigger = getTrigger(event.target);
    if (trigger == null || containsTarget(trigger, event.relatedTarget)) {
      return;
    }
    requestOpen(trigger);
  };
  const handleLeave = (event) => {
    const trigger = getTrigger(event.target);
    if (trigger == null || containsTarget(trigger, event.relatedTarget)) {
      return;
    }
    if (activeTrigger === trigger || pendingTrigger === trigger) {
      closeTooltip();
    }
  };
  const handleFocusIn = (event) => {
    const trigger = getTrigger(event.target);
    if (trigger?.matches(":focus-visible")) {
      requestOpen(trigger, true);
    }
  };
  const handleKeyDown = (event) => {
    if (event.key === "Escape") {
      closeTooltip();
    }
  };
  const handleContextMenu = (event) => {
    const trigger = getTrigger(event.target);
    if (activeTrigger === trigger || pendingTrigger === trigger) {
      closeTooltip();
    }
  };
  const destroy = () => {
    closeTooltip(false);
    document.removeEventListener("pointerover", handlePointerOpen);
    document.removeEventListener("pointerout", handleLeave);
    document.removeEventListener("focusin", handleFocusIn);
    document.removeEventListener("focusout", handleLeave);
    document.removeEventListener("keydown", handleKeyDown);
    document.removeEventListener("contextmenu", handleContextMenu);
    tooltip = null;
  };

  document.addEventListener("pointerover", handlePointerOpen);
  document.addEventListener("pointerout", handleLeave);
  document.addEventListener("focusin", handleFocusIn);
  document.addEventListener("focusout", handleLeave);
  document.addEventListener("keydown", handleKeyDown);
  document.addEventListener("contextmenu", handleContextMenu);
  window.addEventListener("pagehide", destroy, { once: true });
})();
</script>
<script id="codex-visualization-lucide-initialization">(() => {
  const initialize = () => {
    globalThis.lucide?.createIcons({ attrs: { width: 16, height: 16 } });
  };
  if (globalThis.lucide != null) {
    initialize();
    return;
  }
  document
    .getElementById("codex-visualization-lucide")
    ?.addEventListener("load", initialize, { once: true });
})();
</script>
</body>
</html>
		</div>
	</div>

			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_6a7c8ae75c1ce"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row  "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div id="fws_6a7c8ae75ca60" data-midnight="" data-column-margin="default" class="wpb_row vc_row-fluid vc_row inner_row  "  style=""><div class="row-bg-wrap"> <div class="row-bg" ></div> </div><div class="row_col_wrap_12_inner col span_12  left">
	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			<div class="divider-wrap" data-alignment="default"><div style="height: 25px;" class="divider"></div></div><a class="nectar-button large see-through extra-color-2"  style="" target="_blank" href="#" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Download</span></a>
		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
		</div> 
	</div>
	</div> 

	<div  class="vc_col-sm-3 wpb_column column_container vc_column_container col child_column no-extra-padding inherit_tablet inherit_phone "   data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0">
		<div class="vc_column-inner" >
		<div class="wpb_wrapper">
			
		</div> 
	</div>
	</div> 
</div></div>
			</div> 
		</div>
	</div> 
</div></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
