diff --git a/common_assets/css/styles.css b/common_assets/css/styles.css
index 8ac08ff..b1c8bde 100644
--- a/common_assets/css/styles.css
+++ b/common_assets/css/styles.css
@@ -1,5 +1,3 @@
-html {
-}
 body {
   font-family: 'Lato', sans-serif;
   font-size: 16px;
@@ -10,11 +8,13 @@
 h1,h2,h3,h4,h5,h6 {
   color: #261e58;
   font-weight: bold;
+  margin-bottom: 1rem;
 }
 p {
   line-height: 22px;
   font-size: 16px;
   font-weight: 400;
+  margin-bottom: .5rem;
 }
 ul {
   list-style: square;
@@ -39,21 +39,25 @@
 .text-uppercase {
   letter-spacing: 2px;
 }
-a, .linked_title a:hover{
+a, .popup-gallery a:hover, .linked_title a:hover{
 	color: #FBB800;
 	text-decoration: none;
 }
-a:hover, a:active, a:focus, #top-bar .main-menu li#dwnld > a:hover, .linked_title a,
-#top-bar .main-menu li#dwnld > a:focus {
+a:hover, a:active, a:focus, .linked_title a,
+#top-bar .main-menu li#dwnld > a:focus, .popup-gallery a{
   text-decoration: none;
   color: #261e58;
   outline: 0;
 }
 .row {
-  padding: 20px 0;
+  padding: 40px 0;
 }
 .row img {
-    padding: 20px;}
+    padding: 20px;
+}
+img.shadow {
+  padding: 0 !important;
+}
 .pa1 {
   padding: 10px;
 }
@@ -61,12 +65,12 @@
   padding: 20px;
 }
 .pa3 {
-  padding: 20px;
+  padding: 30px;
 }
 .pa4 {
   padding: 40px;
 }
-.bg_indigo a:hover {color:#fff;}
+.bg_indigo a:hover, #top-bar .main-menu li#dwnld > a:hover {color:#fff;}
 .bg_indigo a:focus {color:#FBB800;}
 .bg_indigo .btn-default:hover {
 background-color: #fff; 
@@ -81,24 +85,35 @@
 }
 .btn-default {
    color: #fff;
-   background-color: #FBBF52;
-   border: 1px solid #FBBF52;
+   background-color: #FBB800;
+   border: 1px solid #FBB800;
    letter-spacing: 2px;
 }
 .btn-primary {
     background-color: #fff;
-    color: #FBBF52;
-    border: 1px solid #FBBF52;
+    color: #FBB800;
+    border: 1px solid #FBB800;
     letter-spacing: 2px;
 }
+.btn-secondary {
+    background-color: #fff;
+    color: #7667A3;
+    border: 1px solid #7667A3;
+    letter-spacing: 2px;
+}
+.btn-secondary:hover, .show>.btn-secondary.dropdown-toggle {
+  color: #fff;
+  background-color: #261e58;
+  border-color: #261e58;
+}
 .btn-default.active, .btn-default.focus, .btn-default:active, .btn-default:focus, .btn-default:hover, .open>.dropdown-toggle.btn-default
 {
-	color: #FBBF52;
+	color: #FBB800;
     background-color: #261e58;
     border: 1px solid #261e58;
 }
 .btn-primary:hover{
-	color: #FBBF52;
+	color: #FBB800;
     background-color: #261e58;
 }
 section {
@@ -128,12 +143,18 @@
   margin-bottom: 18px;
   text-transform: uppercase;
 }
+.bg_indigo h2, .bg_indigo h4 {
+  color: #fff;
+}
 .vcenter {
   display: grid;
   align-items: center;
 }
 .col-md-7 img {
-  width: 100%;
+  width: 85%;
+}
+.popup-gallery img:hover{
+  cursor: zoom-in;
 }
 /* Menu - Navigation*/
 #top-bar {
@@ -141,47 +162,62 @@
   color: #fff;
   -webkit-transition: all 0.2s ease-out 0s;
   transition: all 0.2s ease-out 0s;
-  padding: 15px 0;
+  padding: 13px 0;
   -webkit-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.1);
   box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.1);
   border-bottom: 1px solid #dedede;
 }
-#top-bar .navbar-nav > li > a:hover {
-  background: transparent;
-}
 #top-bar.animated-header {
   padding: 20px 0;
   background: #ffffff;
   box-shadow: none;
 }
-#top-bar .main-menu li > a {
-  display: block;
-  color: #444;
-  padding: 10px 15px;
-}
 #top-bar .main-menu li, footer ul li  {
   position: relative;
   list-style: none;
-  border-radius: 4px;
+}
+#top-bar .main-menu li {
+  padding: 10px 15px 2px 15px;
+}
+#top-bar .main-menu li.active a{
+  font-weight: bold;
+  border-bottom: 4px solid #261e58;
+  padding-bottom: 4px;
+}
+#top-bar .main-menu > li > a:hover {
+  background: transparent;
 }
 #top-bar .main-menu li a {
   font-size: 14px;
   font-weight: 500;
-  border-bottom: 2px solid transparent;
-  -webkit-transition: .3s all;
-  -o-transition: .3s all;
-  transition: .3s all;
+  border-bottom: 4px solid transparent;
+  padding-bottom: 4px;
+  -webkit-transition: .1s all;
+  -o-transition: .1s all;
+  transition: .1s all;
   text-transform: uppercase;
+  display: block;
+  color: #261e58;
 }
-#top-bar .main-menu li a:hover {
+#top-bar .main-menu li a:hover, #top-bar .main-menu li#dwnld > a {
   color: #FBB800;
 }
-#top-bar .main-menu li#dwnld > a {
-  color: #FBB800;
+#top-bar .main-menu li.active a:hover {
+  border-bottom: 4px solid #FBB800;
 }
 #top-bar .main-menu li#dwnld > a:focus {
 background-color: transparent;
 }
+#top-bar .main-menu > li#dwnld {
+  background-color: #261e58;
+}
+.nav>li#dwnld {
+  background-color: #261e58;
+  border-radius: 4px;
+}
+#top-bar .main-menu li#dwnld:hover, .nav li#dwnld:hover {
+  background-color: #FBB800;
+}
 .navbar-header .navbar-brand {
   padding: 5px 0;
 }
@@ -190,26 +226,12 @@
   display: inline-block;
   margin-top: -10px;
 }
-.nav>li#dwnld {
-  background-color: #261e58;
-}
-.nav>li#dwnld:hover{
-  background-color: #FBB800;
-}
 .navbar-right .dropdown-menu {
   right: auto;
   left: 0;
 }
-.dropdown-menu > ul {
-  list-style: none;
-  padding: 15px;
-  margin-left: auto;
-  margin-right: auto;
-  margin-bottom: 0;
-  margin-top: -5px;
-  background: #fff;
+.dropdown-menu > ul, .dropdown-menu .show ul {
   background-color: #261e58;
-  box-shadow: 0 2px 0.09px rgba(0, 0, 0, 0.15);
 }
 .nav .open > a,
 .nav .open > a:focus {
@@ -225,19 +247,34 @@
   color: #fff;
   border-bottom: 1px solid rgba(0, 0, 0, 0.1);
 }
+#top-bar .dropdown-item.active {
+  font-weight: 500;
+  color: #212529;
+  background-color: transparent;
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23292b2c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");
+  background-repeat: no-repeat;
+  background-position: .4rem .6rem;
+  background-size: .75rem .75rem;
+}
 /* Colors
 -----------*/
 .bg_indigo {
 	background: #261e58;
 }
+.bg_yellow {
+	background: #FBB800;
+}
+.bg_purple {
+	background: #7667A3;
+}
 .bg_lightest_grey {
 	background: #f9f9f9;
 }
-.txt_indigo {
+.txt_indigo, .dropdown-item {
 	color: #261e58;
 }
 .txt_purple {
-	color: #7667A3;
+	color: #7667A3 !important;
 }
 .txt_yellow {
 	color: #FBB800;
@@ -336,6 +373,19 @@
 #update_site input {
   width: 50%;
 }
+<<<<<<< HEAD
+=======
+/* Badges */
+.badge {
+  text-transform: uppercase;
+  letter-spacing: 1px;
+  font-size: 12px;
+  vertical-align: middle;
+}
+#sirius_versions .badge {
+  margin-top: -3px;
+}
+>>>>>>> 51330b3 (New version of the Acceleo website)
 /* Footer */
 footer {
   background: #261e58;
@@ -359,10 +409,13 @@
 footer ul {padding-left: 0;}
 footer a {
     font-size: 12px;
-    font-weight: 100;
     color:#fff;
 }
+<<<<<<< HEAD
 footer a:hover {color:#ccc;}
+=======
+footer a:hover, footer a:focus, footer a:active {color:#ccc;}
+>>>>>>> 51330b3 (New version of the Acceleo website)
 /* Fancybox
 -----------*/
 .fancybox-close {
@@ -439,6 +492,9 @@
 .gallery figure .buttons {
   left: 40%;
 }
+div.popup-gallery {
+  display: unset;
+}
 #videos .video_thumbnail p a {
     position: relative;
     display: block;
@@ -509,8 +565,11 @@
   color: #FBB800;
   background-color: #261e58;
 }
+<<<<<<< HEAD
 
 
+=======
+>>>>>>> 51330b3 (New version of the Acceleo website)
 /* Accordion Style
 --------------- */
 .dropdown_content {
@@ -556,7 +615,10 @@
 .row.usecase img.shadow {
   box-shadow: 0 2px 6px #999 !important;
 }
+<<<<<<< HEAD
 
+=======
+>>>>>>> 51330b3 (New version of the Acceleo website)
 /* Cookies consent
 -------------------------- */
 .cc-color-override-1434350510.cc-window, .cc-color-override-1434350510.cc-revoke, .cc-color-override-1434350510 .cc-btn {
@@ -566,16 +628,28 @@
   background-color: #261e58 !important;
 }
 .cc-color-override-1434350510.cc-revoke {
+<<<<<<< HEAD
   background-color: #FBBF52 !important;
 }
 .cc-color-override-1434350510.cc-revoke:hover {
   text-decoration: none !important;
   color: #FBBF52 !important;
+=======
+  background-color: #FBB800 !important;
+}
+.cc-color-override-1434350510.cc-revoke:hover {
+  text-decoration: none !important;
+  color: #FBB800 !important;
+>>>>>>> 51330b3 (New version of the Acceleo website)
   background-color: #261e58 !important;
 
 }
 .cc-color-override-1434350510 .cc-btn:last-child, .cc-highlight .cc-btn:first-child:focus, .cc-highlight .cc-btn:first-child:hover  {
+<<<<<<< HEAD
   background-color: #FBBF52 !important;
+=======
+  background-color: #FBB800 !important;
+>>>>>>> 51330b3 (New version of the Acceleo website)
   color: #261e58 !important;
 
 }
@@ -592,18 +666,34 @@
 }
 /* Responsive
 ------------- */
-@media only screen and (max-width: 767px) {
-.row img.responsive {    
+@media only screen and (min-width: 1200px) {
+  #top-bar .main-menu li:first-child {
+    padding-left: 0px;
+  }
+}
+@media only screen and (max-width: 1199px) {
+  body {
+    padding-top: 142px !important;
+  }
+}
+@media only screen and (max-width: 991px) {
+  .col-md-7 iframe {
     width: 100%;
-    height: 100%;
+    height: 95%;
+  }
 }
-.row img {    
-  padding: 20px 0;
-}
-.navbar-brand {padding-left: .75rem;}
-h1 {font-size: 31px;}
-h4 {font-size: 20px;}
-.title {font-size: 28px;}
-.btn {padding: 8px 18px;}
-.span-right {margin-right: 4px;}
+@media only screen and (max-width: 767px) {
+  .row img.responsive {    
+      width: 100%;
+      height: 100%;
+  }
+  .row img {    
+    padding: 20px 0;
+  }
+  .navbar-brand {padding-left: .75rem;}
+  h1 {font-size: 31px;}
+  h4 {font-size: 20px;}
+  .title {font-size: 28px;}
+  .btn {padding: 8px 18px;}
+  .span-right {margin-right: 4px;}
 }
\ No newline at end of file
diff --git a/common_assets/images/logos/favicon_emfcompare.ico b/common_assets/images/logos/favicon_emfcompare.ico
new file mode 100644
index 0000000..c981ddc
--- /dev/null
+++ b/common_assets/images/logos/favicon_emfcompare.ico
Binary files differ
diff --git a/common_assets/images/logos/logo_ecoretools.png b/common_assets/images/logos/logo_ecoretools.png
new file mode 100644
index 0000000..bf7835a
--- /dev/null
+++ b/common_assets/images/logos/logo_ecoretools.png
Binary files differ
diff --git a/common_assets/images/logos/logo_emfcompare.png b/common_assets/images/logos/logo_emfcompare.png
new file mode 100644
index 0000000..07d9380
--- /dev/null
+++ b/common_assets/images/logos/logo_emfcompare.png
Binary files differ
diff --git a/common_assets/images/logos/logo_sirius.png b/common_assets/images/logos/logo_sirius.png
index 003ec55..d1fd889 100644
--- a/common_assets/images/logos/logo_sirius.png
+++ b/common_assets/images/logos/logo_sirius.png
Binary files differ
diff --git a/common_assets/images/logos/logo_sirius_.png b/common_assets/images/logos/logo_sirius_.png
new file mode 100644
index 0000000..003ec55
--- /dev/null
+++ b/common_assets/images/logos/logo_sirius_.png
Binary files differ
diff --git a/common_assets/images/logos/logo_siriuscon_2021_white.png b/common_assets/images/logos/logo_siriuscon_2021_white.png
new file mode 100644
index 0000000..1a1a36f
--- /dev/null
+++ b/common_assets/images/logos/logo_siriuscon_2021_white.png
Binary files differ
diff --git a/common_assets/images/logos/logo_thales.png b/common_assets/images/logos/logo_thales.png
new file mode 100644
index 0000000..36eec0a
--- /dev/null
+++ b/common_assets/images/logos/logo_thales.png
Binary files differ
diff --git a/common_assets/js/main.js b/common_assets/js/main.js
new file mode 100644
index 0000000..59e8247
--- /dev/null
+++ b/common_assets/js/main.js
@@ -0,0 +1,40 @@
+(function($){
+    $.fn.scrollingTo = function( opts ) {
+        var defaults = {
+            animationTime : 1000,
+            easing : '',
+            callbackBeforeTransition : function(){},
+            callbackAfterTransition : function(){}
+        };
+
+        var config = $.extend( {}, defaults, opts );
+
+        $(this).click(function(e){
+            var eventVal = e;
+            e.preventDefault();
+
+            var $section = $(document).find( $(this).data('row') );
+            if ( $section.length < 1 ) {
+                return false;
+            };
+
+            if ( $('html, body').is(':animated') ) {
+                $('html, body').stop( true, true );
+            };
+
+            var scrollPos = $section.offset().top;
+
+            if ( $(window).scrollTop() == scrollPos ) {
+                return false;
+            };
+
+            config.callbackBeforeTransition(eventVal, $section);
+
+            $('html, body').animate({
+                'scrollTop' : ((scrollPos-100)+'px' )
+            }, config.animationTime, config.easing, function(){
+                config.callbackAfterTransition(eventVal, $section);
+            });
+        });
+    };
+}(jQuery));
diff --git a/download.html b/download.html
index b3b4b3b..0561385 100644
--- a/download.html
+++ b/download.html
@@ -7,19 +7,20 @@
   
     <title>Acceleo | Download</title>
   
-    <meta name="description" content="">
-    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico" />
+    <meta name="description" content="The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects, including runtimes, tools and frameworks">
+    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico"/>
 
-  
     <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
 
     <!-- Bootstrap CSS -->
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
     <link rel="stylesheet" href="/acceleo/common_assets/css/styles.css">
     <link rel="stylesheet" href="/acceleo/common_assets/css/animate.css">
+    <link rel="stylesheet" href="/acceleo/common_assets/css/media.css"/>
 
     <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.video.js"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.min.js"></script>
 
     <!-- Eclipse Foundation Google Tag Manager -->
 	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
@@ -35,8 +36,8 @@
         
         <script src="/acceleo/assets/js/ga.js"></script>
 
-    <!-- Old version of font awesome for some icons -->
-    <script src="https://use.fontawesome.com/b51f77a16a.js"></script>    
+    <!-- FontAwesome Latest version Kit (automatically updated) -->
+    <script src="https://kit.fontawesome.com/16cf99803e.js" crossorigin="anonymous"></script>
     <!-- Bootstrap JS -->
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
     
@@ -94,7 +95,7 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Marketplace</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -111,7 +112,7 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Releases</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s">Releases</h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -127,7 +128,7 @@
         </ul>
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s"></h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s">Update sites</h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -182,7 +183,7 @@
         
 <div class="col-md-3">
     <p><a href="http://www.eclipse.org/"  target="_blank"><img src="/acceleo/common_assets/images/logos/logo-eclipse-foundation.png" alt="Eclipse Foundation logo"></a></p>
-    <p id="copyright">Copyright © 2020 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
+    <p id="copyright">Copyright © 2021 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
 </div>
 
 <div class="col-md-3">
@@ -215,14 +216,30 @@
     
 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous" defer></script>
 
-<script src="/acceleo//common_assets/js/wow.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.video.js" defer></script>
+<script src="/acceleo/common_assets/js/wow.min.js" defer></script>
+<script src="/acceleo/common_assets/js/main.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.min.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.video.js" defer></script>
 <!-- Call wow function -->
 <script>
         jQuery(document).ready(function(){
             "use strict";
             new WOW().init();
+            jQuery('.smooth-scroll').scrollingTo();
+
+            var url = window.location;
+            // Will only work if string in href matches with location
+            jQuery('ul.nav a[href="'+ url +'"]').parent().addClass('active');
+
+            // Will also work for relative and absolute hrefs
+            jQuery('ul.nav a').filter(function() {
+                return this.href == url;
+            }).parent().addClass('active');
+
+            jQuery(".nav a").on("click", function(){
+                jQuery(".nav").find(".active").removeClass("active");
+                jQuery(this).parent().addClass("active");
+            });
         });
 </script>
   
diff --git a/features.html b/features.html
index 42d20b8..4f6185a 100644
--- a/features.html
+++ b/features.html
@@ -7,19 +7,20 @@
   
     <title>Acceleo | Features</title>
   
-    <meta name="description" content="">
-    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico" />
+    <meta name="description" content="The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects, including runtimes, tools and frameworks">
+    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico"/>
 
-  
     <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
 
     <!-- Bootstrap CSS -->
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
     <link rel="stylesheet" href="/acceleo/common_assets/css/styles.css">
     <link rel="stylesheet" href="/acceleo/common_assets/css/animate.css">
+    <link rel="stylesheet" href="/acceleo/common_assets/css/media.css"/>
 
     <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.video.js"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.min.js"></script>
 
     <!-- Eclipse Foundation Google Tag Manager -->
 	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
@@ -35,8 +36,8 @@
         
         <script src="/acceleo/assets/js/ga.js"></script>
 
-    <!-- Old version of font awesome for some icons -->
-    <script src="https://use.fontawesome.com/b51f77a16a.js"></script>    
+    <!-- FontAwesome Latest version Kit (automatically updated) -->
+    <script src="https://kit.fontawesome.com/16cf99803e.js" crossorigin="anonymous"></script>
     <!-- Bootstrap JS -->
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
     
@@ -94,7 +95,7 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">The Acceleo Language</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -112,7 +113,7 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">The Acceleo Tooling</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -131,7 +132,7 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">The Acceleo Runtime</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -150,7 +151,7 @@
         
 <div class="col-md-3">
     <p><a href="http://www.eclipse.org/"  target="_blank"><img src="/acceleo/common_assets/images/logos/logo-eclipse-foundation.png" alt="Eclipse Foundation logo"></a></p>
-    <p id="copyright">Copyright © 2020 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
+    <p id="copyright">Copyright © 2021 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
 </div>
 
 <div class="col-md-3">
@@ -183,14 +184,30 @@
     
 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous" defer></script>
 
-<script src="/acceleo//common_assets/js/wow.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.video.js" defer></script>
+<script src="/acceleo/common_assets/js/wow.min.js" defer></script>
+<script src="/acceleo/common_assets/js/main.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.min.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.video.js" defer></script>
 <!-- Call wow function -->
 <script>
         jQuery(document).ready(function(){
             "use strict";
             new WOW().init();
+            jQuery('.smooth-scroll').scrollingTo();
+
+            var url = window.location;
+            // Will only work if string in href matches with location
+            jQuery('ul.nav a[href="'+ url +'"]').parent().addClass('active');
+
+            // Will also work for relative and absolute hrefs
+            jQuery('ul.nav a').filter(function() {
+                return this.href == url;
+            }).parent().addClass('active');
+
+            jQuery(".nav a").on("click", function(){
+                jQuery(".nav").find(".active").removeClass("active");
+                jQuery(this).parent().addClass("active");
+            });
         });
 </script>
   
diff --git a/index.html b/index.html
index e331176..90971b2 100644
--- a/index.html
+++ b/index.html
@@ -7,19 +7,20 @@
   
     <title>Acceleo | Home</title>
   
-    <meta name="description" content="">
-    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico" />
+    <meta name="description" content="The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects, including runtimes, tools and frameworks">
+    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico"/>
 
-  
     <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
 
     <!-- Bootstrap CSS -->
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
     <link rel="stylesheet" href="/acceleo/common_assets/css/styles.css">
     <link rel="stylesheet" href="/acceleo/common_assets/css/animate.css">
+    <link rel="stylesheet" href="/acceleo/common_assets/css/media.css"/>
 
     <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.video.js"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.min.js"></script>
 
     <!-- Eclipse Foundation Google Tag Manager -->
 	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
@@ -35,8 +36,8 @@
         
         <script src="/acceleo/assets/js/ga.js"></script>
 
-    <!-- Old version of font awesome for some icons -->
-    <script src="https://use.fontawesome.com/b51f77a16a.js"></script>    
+    <!-- FontAwesome Latest version Kit (automatically updated) -->
+    <script src="https://kit.fontawesome.com/16cf99803e.js" crossorigin="anonymous"></script>
     <!-- Bootstrap JS -->
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
     
@@ -73,7 +74,7 @@
                     </li>
                     <li>
                         <a href="/acceleo/features.html">Features</a>
-                    </li>
+                    </li>fl
                     <li>
                         <a href="/acceleo/resources.html">Resources</a>
                     </li>
@@ -100,9 +101,12 @@
         <a href="download.html" class="btn btn-default span-right wow fadeInUp" data-wow-delay=".6s" target="_self">
             Download
         </a>
+        
+        
         <a href="overview.html" class="btn btn-primary wow fadeInUp" data-wow-delay=".6s" target="_self">
             Overview
         </a>
+        
     </p>                                
 </div>
     
@@ -122,7 +126,7 @@
     <div class="container">
             <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Easily create custom code generators</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -215,7 +219,7 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Need Support?</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -223,12 +227,12 @@
     <div class="row">
         <div class="col-md-4 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
     <div>
-        <i class="fas fa-file-alt fa-3x pa2 txt_indigo" aria-hidden="true"></i>
+        <i class="far fa-file-alt fa-3x pa2 txt_indigo" aria-hidden="true"></i>
     </div>                                
     <div>
         <h4>Documentation</h4>
         <p>Learn how to use Acceleo, thanks to online complete user guides and reference manuals</p>
-        <p><a class="" href="resources" target="">Learn more <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i>
+        <p><a class="" href="resources.html" target="">Learn more <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i>
         </a></p>                                
     </div>
 </div>
@@ -238,7 +242,7 @@
 
         <div class="col-md-4 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
     <div>
-        <i class="fas fa-comment fa-3x pa2 txt_indigo" aria-hidden="true"></i>
+        <i class="far fa-comment fa-3x pa2 txt_indigo" aria-hidden="true"></i>
     </div>                                
     <div>
         <h4>Forum</h4>
@@ -253,12 +257,12 @@
 
         <div class="col-md-4 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
     <div>
-        <i class="fas fa-life-ring fa-3x pa2 txt_indigo" aria-hidden="true"></i>
+        <i class="far fa-life-ring fa-3x pa2 txt_indigo" aria-hidden="true"></i>
     </div>                                
     <div>
         <h4>Professional support</h4>
         <p>Obeo, leader of Acceleo’s development, provides training, expertise, custom development and support plans</p>
-        <p><a class="" href="https://www.obeo.fr/en/services" target="_blank">Learn more <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i>
+        <p><a class="" href="https://www.obeosoft.com/en/services" target="_blank">Learn more <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i>
         </a></p>                                
     </div>
 </div>
@@ -273,13 +277,13 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Project Lead</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
         <div class="row">
             <div class="col-md-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">            
-                <p><a href="http://www.obeo.fr" title="Logo Obeo" target="_blank"><img src="/acceleo/common_assets/images/logos/logo_obeo.png"></a></p>
+                <p><a href="https://www.obeosoft.com" title="Logo Obeo" target="_blank"><img src="/acceleo/common_assets/images/logos/logo_obeo.png"></a></p>
             </div>
         </div>
     </div>       
@@ -292,7 +296,7 @@
         
 <div class="col-md-3">
     <p><a href="http://www.eclipse.org/"  target="_blank"><img src="/acceleo/common_assets/images/logos/logo-eclipse-foundation.png" alt="Eclipse Foundation logo"></a></p>
-    <p id="copyright">Copyright © 2020 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
+    <p id="copyright">Copyright © 2021 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
 </div>
 
 <div class="col-md-3">
@@ -325,14 +329,30 @@
     
 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous" defer></script>
 
-<script src="/acceleo//common_assets/js/wow.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.video.js" defer></script>
+<script src="/acceleo/common_assets/js/wow.min.js" defer></script>
+<script src="/acceleo/common_assets/js/main.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.min.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.video.js" defer></script>
 <!-- Call wow function -->
 <script>
         jQuery(document).ready(function(){
             "use strict";
             new WOW().init();
+            jQuery('.smooth-scroll').scrollingTo();
+
+            var url = window.location;
+            // Will only work if string in href matches with location
+            jQuery('ul.nav a[href="'+ url +'"]').parent().addClass('active');
+
+            // Will also work for relative and absolute hrefs
+            jQuery('ul.nav a').filter(function() {
+                return this.href == url;
+            }).parent().addClass('active');
+
+            jQuery(".nav a").on("click", function(){
+                jQuery(".nav").find(".active").removeClass("active");
+                jQuery(this).parent().addClass("active");
+            });
         });
 </script>
   
diff --git a/overview.html b/overview.html
index c3dab37..8dcf7a5 100644
--- a/overview.html
+++ b/overview.html
@@ -7,19 +7,25 @@
   
     <title>Acceleo | Overview</title>
   
-    <meta name="description" content="">
-    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico" />
+    <meta name="description" content="The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects, including runtimes, tools and frameworks">
+    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico"/>
 
-  
     <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
 
     <!-- Bootstrap CSS -->
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
     <link rel="stylesheet" href="/acceleo/common_assets/css/styles.css">
     <link rel="stylesheet" href="/acceleo/common_assets/css/animate.css">
+<<<<<<< HEAD
 
     <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+=======
+    <link rel="stylesheet" href="/acceleo/common_assets/css/media.css"/>
+
+    <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.video.js"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.min.js"></script>
+>>>>>>> 51330b3 (New version of the Acceleo website)
 
     <!-- Eclipse Foundation Google Tag Manager -->
 	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
@@ -35,8 +41,13 @@
         
         <script src="/acceleo/assets/js/ga.js"></script>
 
+<<<<<<< HEAD
     <!-- Old version of font awesome for some icons -->
     <script src="https://use.fontawesome.com/b51f77a16a.js"></script>    
+=======
+    <!-- FontAwesome Latest version Kit (automatically updated) -->
+    <script src="https://kit.fontawesome.com/16cf99803e.js" crossorigin="anonymous"></script>
+>>>>>>> 51330b3 (New version of the Acceleo website)
     <!-- Bootstrap JS -->
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
     
@@ -107,12 +118,21 @@
                 <li>easy kick off</li>
             </ul>
             <p>A pragmatic implementation of the Object Management Group (OMG) MOF Model to Text Language (MTL) standard, Acceleo is
+<<<<<<< HEAD
                 the result of several man-years of R&D started in the <a href="https://www.obeo.fr" target="_blank">Obeo</a> company.</p>
             
         <p><a href="https://projects.eclipse.org/projects/modeling.acceleo" target="_blank">Project page  <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i></a></p>
     </div>
     <div class="popup-gallery col-md-7 order-2 wow fadeInUp" data-wow-delay=".2s">
         <a href="images/screenshots/overview.png" target="_blank" title="Acceleo - Overview"><img src="images/screenshots/overview.png" alt="Acceleo - Overview"></a>
+=======
+                the result of several man-years of R&D started in the <a href="https://www.obeosoft.com" target="_blank">Obeo</a> company.</p>
+            
+        <p><a href="https://projects.eclipse.org/projects/modeling.acceleo" target="_blank">Project page  <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i></a></p>
+    </div>
+    <div class="col-md-7 popup-gallery text-center order-2 wow fadeInUp" data-wow-delay=".2s">
+        <a href="images/screenshots/overview.png" target="_blank" title="Acceleo - Overview"><img src="images/screenshots/overview.png" class="" alt="Acceleo - Overview"></a>
+>>>>>>> 51330b3 (New version of the Acceleo website)
     </div>
 </div>
     </div>
@@ -139,8 +159,13 @@
             
         <p><a href="features.html" target="_self">Learn more  <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i></a></p>
     </div>
+<<<<<<< HEAD
     <div class="popup-gallery col-md-7 order-1 wow fadeInUp" data-wow-delay=".2s">
         <a href="images/screenshots/user_experience.png" target="_self" title="Acceleo - User Experience"><img src="images/screenshots/user_experience.png" alt="Acceleo - User Experience"></a>
+=======
+    <div class="col-md-7 popup-gallery text-center order-1 wow fadeInUp" data-wow-delay=".2s">
+        <a href="images/screenshots/user_experience.png" target="_self" title="Acceleo - User Experience"><img src="images/screenshots/user_experience.png" class="" alt="Acceleo - User Experience"></a>
+>>>>>>> 51330b3 (New version of the Acceleo website)
     </div>
 </div>           
     </div>
@@ -150,7 +175,11 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Related Projects</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
+<<<<<<< HEAD
 <p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+=======
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
+>>>>>>> 51330b3 (New version of the Acceleo website)
 
 
 
@@ -169,7 +198,11 @@
         
 <div class="col-md-3">
     <p><a href="http://www.eclipse.org/"  target="_blank"><img src="/acceleo/common_assets/images/logos/logo-eclipse-foundation.png" alt="Eclipse Foundation logo"></a></p>
+<<<<<<< HEAD
     <p id="copyright">Copyright © 2020 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
+=======
+    <p id="copyright">Copyright © 2021 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
+>>>>>>> 51330b3 (New version of the Acceleo website)
 </div>
 
 <div class="col-md-3">
@@ -202,14 +235,30 @@
     
 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous" defer></script>
 
-<script src="/acceleo//common_assets/js/wow.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.video.js" defer></script>
+<script src="/acceleo/common_assets/js/wow.min.js" defer></script>
+<script src="/acceleo/common_assets/js/main.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.min.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.video.js" defer></script>
 <!-- Call wow function -->
 <script>
         jQuery(document).ready(function(){
             "use strict";
             new WOW().init();
+            jQuery('.smooth-scroll').scrollingTo();
+
+            var url = window.location;
+            // Will only work if string in href matches with location
+            jQuery('ul.nav a[href="'+ url +'"]').parent().addClass('active');
+
+            // Will also work for relative and absolute hrefs
+            jQuery('ul.nav a').filter(function() {
+                return this.href == url;
+            }).parent().addClass('active');
+
+            jQuery(".nav a").on("click", function(){
+                jQuery(".nav").find(".active").removeClass("active");
+                jQuery(this).parent().addClass("active");
+            });
         });
 </script>
   
diff --git a/resources.html b/resources.html
index c61cdb4..ded754a 100644
--- a/resources.html
+++ b/resources.html
@@ -7,19 +7,25 @@
   
     <title>Acceleo | Home</title>
   
-    <meta name="description" content="">
-    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico" />
+    <meta name="description" content="The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects, including runtimes, tools and frameworks">
+    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico"/>
 
-  
     <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
 
     <!-- Bootstrap CSS -->
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
     <link rel="stylesheet" href="/acceleo/common_assets/css/styles.css">
     <link rel="stylesheet" href="/acceleo/common_assets/css/animate.css">
+<<<<<<< HEAD
 
     <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+=======
+    <link rel="stylesheet" href="/acceleo/common_assets/css/media.css"/>
+
+    <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.video.js"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.min.js"></script>
+>>>>>>> 51330b3 (New version of the Acceleo website)
 
     <!-- Eclipse Foundation Google Tag Manager -->
 	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
@@ -35,8 +41,13 @@
         
         <script src="/acceleo/assets/js/ga.js"></script>
 
+<<<<<<< HEAD
     <!-- Old version of font awesome for some icons -->
     <script src="https://use.fontawesome.com/b51f77a16a.js"></script>    
+=======
+    <!-- FontAwesome Latest version Kit (automatically updated) -->
+    <script src="https://kit.fontawesome.com/16cf99803e.js" crossorigin="anonymous"></script>
+>>>>>>> 51330b3 (New version of the Acceleo website)
     <!-- Bootstrap JS -->
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
     
@@ -95,25 +106,37 @@
       
         <div class="row">
             <div class="col-sm-4 col-xs-12 wow fadeInLeft" data-wow-duration="300ms" data-wow-delay="0ms">
+<<<<<<< HEAD
                 <div><i class="fas fa-play-circle fa-3x pa2 txt_indigo" aria-hidden="true"></i></div>
+=======
+                <div><i class="far fa-play-circle fa-3x pa2 txt_indigo" aria-hidden="true"></i></div>
+>>>>>>> 51330b3 (New version of the Acceleo website)
                 <h4>Tutorials</h4>
                 <p><a data-wow-delay=".1s" href="https://wiki.eclipse.org/Acceleo/Getting_Started" target="_blank">Create your First Acceleo Generator <i class="fa fa-external-link" aria-hidden="true"></i></a></p>
                 <p><a data-wow-delay=".2s" href="https://wiki.eclipse.org/Acceleo/Videos/TopcasedDays2011" target="_blank">Android code generation <i class="fa fa-external-link" aria-hidden="true"></i></a></p>
             </div>
             <div class="col-sm-4 col-xs-12 wow fadeInLeft" data-wow-duration="300ms" data-wow-delay="0ms">
+<<<<<<< HEAD
                 <div><i class="fas fa-file-alt fa-3x pa2 txt_indigo" aria-hidden="true"></i></div>
+=======
+                <div><i class="far fa-file-alt fa-3x pa2 txt_indigo" aria-hidden="true"></i></div>
+>>>>>>> 51330b3 (New version of the Acceleo website)
                 <h4>Documentation</h4>
                 <p><a href="http://help.eclipse.org/photon/index.jsp?topic=/org.eclipse.acceleo.doc/pages/index.html" target="_blank">
                     Reference documentation <i class="fa fa-external-link" aria-hidden="true"></i></a> <i class="fa fa-info-circle hasTooltip txt_lightest_grey" title="This documentation is included in the Help Content of Eclipse. Within your Eclipse, go to Help / Help Contents and navigate to the Acceleo Model To Text section" data-toggle="tooltip" data-placement="bottom" data-original-title="This documentation is included in the Help Content of Eclipse. Within your Eclipse, go to Help / Help Contents and navigate to the Acceleo Model To Text section"></i></p>
                 <p><a href="https://wiki.eclipse.org/Acceleo/Acceleo_Operations_Reference" target="_blank">Acceleo Operations Reference <i class="fa fa-external-link" aria-hidden="true"></i></a></p>
                 <p><a href="https://wiki.eclipse.org/Acceleo/OCL_Operations_Reference" target="_blank">OCL Operations Reference <i class="fa fa-external-link" aria-hidden="true"></i></a></p>
                 <p><a href="https://wiki.eclipse.org/Acceleo/User_Guide" target="_blank">User Guide <i class="fa fa-external-link" aria-hidden="true"></i></a></p>
-                <p><a href="https://www.obeo.fr/en/acceleo-best-practices" target="_blank">Best Practices <i class="fa fa-external-link" aria-hidden="true"></i></a></p>
+                <p><a href="https://www.obeosoft.com/en/acceleo-best-practices" target="_blank">Best Practices <i class="fa fa-external-link" aria-hidden="true"></i></a></p>
                 <p><a href="https://wiki.eclipse.org/Acceleo" target="_blank">Acceleo Wiki <i class="fa fa-external-link" aria-hidden="true"></i></a></p>
             </div>
             
             <div class="col-sm-4 col-xs-12 wow fadeInLeft" data-wow-duration="300ms" data-wow-delay="100ms">
+<<<<<<< HEAD
                 <div><i class="fas fa-folder-open fa-3x pa2 txt_indigo" aria-hidden="true"></i></div>
+=======
+                <div><i class="far fa-folder-open fa-3x pa2 txt_indigo" aria-hidden="true"></i></div>
+>>>>>>> 51330b3 (New version of the Acceleo website)
                 <h4>Developers Resources</h4>
                 <p><a href="https://projects.eclipse.org/projects/modeling.acceleo" target="_blank">About this project <i class="fa fa-external-link" aria-hidden="true"></i></a></p>
                 <p><a href="http://git.eclipse.org/c/acceleo/org.eclipse.acceleo.git/" target="_blank">
@@ -134,7 +157,11 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Contribute</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
+<<<<<<< HEAD
 <p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s">Acceleo is actively looking for project contributors. <br><br>There are many official and unofficial ways
+=======
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s">Acceleo is actively looking for project contributors. <br><br>There are many official and unofficial ways
+>>>>>>> 51330b3 (New version of the Acceleo website)
                     to get involved. <br>Please see <a href='http://wiki.eclipse.org/Acceleo/Wishlist' target='_blank'>this wiki page</a> for some
                     ideas, and <a href='http://wiki.eclipse.org/Setting_up_a_development_environment_for_Acceleo' target='_blank'>
                     this one</a> for information on how to set up your development environment.
@@ -151,7 +178,11 @@
         
 <div class="col-md-3">
     <p><a href="http://www.eclipse.org/"  target="_blank"><img src="/acceleo/common_assets/images/logos/logo-eclipse-foundation.png" alt="Eclipse Foundation logo"></a></p>
+<<<<<<< HEAD
     <p id="copyright">Copyright © 2020 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
+=======
+    <p id="copyright">Copyright © 2021 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
+>>>>>>> 51330b3 (New version of the Acceleo website)
 </div>
 
 <div class="col-md-3">
@@ -184,14 +215,30 @@
     
 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous" defer></script>
 
-<script src="/acceleo//common_assets/js/wow.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.video.js" defer></script>
+<script src="/acceleo/common_assets/js/wow.min.js" defer></script>
+<script src="/acceleo/common_assets/js/main.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.min.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.video.js" defer></script>
 <!-- Call wow function -->
 <script>
         jQuery(document).ready(function(){
             "use strict";
             new WOW().init();
+            jQuery('.smooth-scroll').scrollingTo();
+
+            var url = window.location;
+            // Will only work if string in href matches with location
+            jQuery('ul.nav a[href="'+ url +'"]').parent().addClass('active');
+
+            // Will also work for relative and absolute hrefs
+            jQuery('ul.nav a').filter(function() {
+                return this.href == url;
+            }).parent().addClass('active');
+
+            jQuery(".nav a").on("click", function(){
+                jQuery(".nav").find(".active").removeClass("active");
+                jQuery(this).parent().addClass("active");
+            });
         });
 </script>
   
diff --git a/support.html b/support.html
index 6f9a7e5..9625577 100644
--- a/support.html
+++ b/support.html
@@ -7,19 +7,20 @@
   
     <title>Acceleo | Support</title>
   
-    <meta name="description" content="">
-    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico" />
+    <meta name="description" content="The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects, including runtimes, tools and frameworks">
+    <link rel="shortcut icon" type="image/png" href="/acceleo/common_assets/images/logos/favicon_acceleo.ico"/>
 
-  
     <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
 
     <!-- Bootstrap CSS -->
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
     <link rel="stylesheet" href="/acceleo/common_assets/css/styles.css">
     <link rel="stylesheet" href="/acceleo/common_assets/css/animate.css">
+    <link rel="stylesheet" href="/acceleo/common_assets/css/media.css"/>
 
     <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.video.js"></script>
+    <script src="/acceleo/common_assets/js/magnific-popup.min.js"></script>
 
     <!-- Eclipse Foundation Google Tag Manager -->
 	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
@@ -35,8 +36,8 @@
         
         <script src="/acceleo/assets/js/ga.js"></script>
 
-    <!-- Old version of font awesome for some icons -->
-    <script src="https://use.fontawesome.com/b51f77a16a.js"></script>    
+    <!-- FontAwesome Latest version Kit (automatically updated) -->
+    <script src="https://kit.fontawesome.com/16cf99803e.js" crossorigin="anonymous"></script>
     <!-- Bootstrap JS -->
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
     
@@ -94,7 +95,7 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Community Support</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -114,7 +115,7 @@
     <div class="container">
         <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Professional Services</h2> 
 <h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
-<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>
+<p class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".4s"></p>
 
 
 
@@ -122,10 +123,10 @@
             <div class="col-md-12">
                 <p class="wow fadeInDown" data-wow-delay=".1s">Obeo, creator of Acceleo, provides professional services to help you produce and maintain generators of industrial grade:</p>
                 <ul>
-                    <li class="wow fadeInLeft" data-wow-delay=".1s"><a  href="http://www.obeo.fr/en/services/support-maintenance" target="_blank">Support & maintenance</a></li>
-                    <li class="wow fadeInLeft" data-wow-delay=".2s"><a href="http://www.obeo.fr/en/services/training" target="_blank">Training</a></li>
-                    <li class="wow fadeInLeft" data-wow-delay=".3s"><a href="http://www.obeo.fr/en/services/coaching" target="_blank">Consulting & coaching</a></li>
-                    <li class="wow fadeInLeft" data-wow-delay=".4s"><a href="http://www.obeo.fr/en/services/custom-development" target="_blank">Custom development</a></li>
+                    <li class="wow fadeInLeft" data-wow-delay=".1s"><a href="https://www.obeosoft.com/en/services/support-maintenance" target="_blank">Support & maintenance</a></li>
+                    <li class="wow fadeInLeft" data-wow-delay=".2s"><a href="https://www.obeosoft.com/en/services/training" target="_blank">Training</a></li>
+                    <li class="wow fadeInLeft" data-wow-delay=".3s"><a href="https://www.obeosoft.com/en/services/coaching" target="_blank">Consulting & coaching</a></li>
+                    <li class="wow fadeInLeft" data-wow-delay=".4s"><a href="https://www.obeosoft.com/en/services/custom-development" target="_blank">Custom development</a></li>
                 </ul>
             </div>
         </div>
@@ -138,7 +139,7 @@
         
 <div class="col-md-3">
     <p><a href="http://www.eclipse.org/"  target="_blank"><img src="/acceleo/common_assets/images/logos/logo-eclipse-foundation.png" alt="Eclipse Foundation logo"></a></p>
-    <p id="copyright">Copyright © 2020 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
+    <p id="copyright">Copyright © 2021 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
 </div>
 
 <div class="col-md-3">
@@ -171,14 +172,30 @@
     
 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous" defer></script>
 
-<script src="/acceleo//common_assets/js/wow.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.min.js" defer></script>
-<script src="/acceleo//common_assets/js/magnific-popup.video.js" defer></script>
+<script src="/acceleo/common_assets/js/wow.min.js" defer></script>
+<script src="/acceleo/common_assets/js/main.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.min.js" defer></script>
+<script src="/acceleo/common_assets/js/magnific-popup.video.js" defer></script>
 <!-- Call wow function -->
 <script>
         jQuery(document).ready(function(){
             "use strict";
             new WOW().init();
+            jQuery('.smooth-scroll').scrollingTo();
+
+            var url = window.location;
+            // Will only work if string in href matches with location
+            jQuery('ul.nav a[href="'+ url +'"]').parent().addClass('active');
+
+            // Will also work for relative and absolute hrefs
+            jQuery('ul.nav a').filter(function() {
+                return this.href == url;
+            }).parent().addClass('active');
+
+            jQuery(".nav a").on("click", function(){
+                jQuery(".nav").find(".active").removeClass("active");
+                jQuery(this).parent().addClass("active");
+            });
         });
 </script>
   
