diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/.github/PULL_REQUEST_TEMPLATE b/.github/PULL_REQUEST_TEMPLATE
deleted file mode 100644
index d186f8242c723d25d549a5ef7c0890ebc6bafcaa..0000000000000000000000000000000000000000
--- a/.github/PULL_REQUEST_TEMPLATE
+++ /dev/null
@@ -1,20 +0,0 @@
-*Please explain what this PR does here.*
-
-#### Checklist
-
-Before merging this PR, the following things must have been done:
-
-- [ ] Faithful integration of the mockups at all screen sizes
-- [ ] Tested on supported browsers, including responsive mode (IE11 and Edge, Chrome >= 42, 2 latest versions of Firefox and Safari)
-- [ ] Localized in english and french
-- [ ] All changes have test coverage
-- [ ] Updated README, if necessary
-- [ ] Make sure commit messages rely on the [Commitizen](http://commitizen.github.io/cz-cli/) format
-
-If this PR relies on changes in one of our internal libraries (cozy-client-js or cozy-ui, for example), please also do the following things:
-
-- [ ] The package.json and yarn.lock files include the correct dependency version, in those versions have been released
-- [ ] [cozy-client-js](https://github.com/cozy/cozy-client-js) documentation and tests are up to date
-- [ ] [cozy-ui](https://github.com/cozy/cozy-ui) documentation and style guides are up to date
-
-*(If not, please remove this last section.)*
diff --git a/.gitignore b/.gitignore
index d9bfdded2998bc86c5e99f494e15d9efcf2283c2..312d3d56204ef8f861923a4913d741dc479af3d4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,6 +17,7 @@ coverage/
 # Locales
 **/locales/*
 !**/locales/en.json
+!**/locales/fr.json
 
 
 # transifex
diff --git a/.gitlab/issue_templates/Bug.md b/.gitlab/issue_templates/Bug.md
new file mode 100644
index 0000000000000000000000000000000000000000..ff4c321c398f30696cfc2b285ce0141b33d63b8e
--- /dev/null
+++ b/.gitlab/issue_templates/Bug.md
@@ -0,0 +1,50 @@
+## Description du problème
+
+(Donnez une description briève du problème)
+
+## L'environnement
+
+* Utilisez vous l'application sur:
+
+  - [ ] Mobile
+  - [ ] Ordinateur
+(Mettez un x dans la case correspondante)
+
+* En cas de mobile: 
+  
+  - Quel type de mobile utilisez-vous?
+
+  - [ ] Android
+  - [ ] iphone / iOS
+  (Mettez un x dans la case correspondante)
+
+  - Quel navigateur utilisez-vous?
+
+  - [ ] Chrome
+  - [ ] Safari
+  - [ ] Autre
+  (Mettez un x dans la case correspondante)
+
+* En cas d'ordinateur: 
+
+  - Quel navigateur utilisez-vous?
+
+  - [ ] Chrome
+  - [ ] Firefox
+  - [ ] Safari
+  - [ ] Autre
+  (Mettez un x dans la case correspondante)
+
+## Le problème
+
+  - Quelles sont les étapes réalisée qui ont menées au problème?
+
+  (Donnez une description des étapes, celle-ci peut être appuyé par des captures d'écran)
+
+  - Quel est le comportement obtenu?
+
+  (Donnez une description du comportement obtenu, celle-ci peut être appuyé par des captures d'écran)
+
+  - Quel est le comportement attendu?
+
+  (Donnez une description du comportement attendu)
diff --git a/config.json b/config.json
index 992e5568969a2d7cf6b281da524f06558277bb49..be2d5bd472ac148867bdcbd45401e3b688cea88e 100644
--- a/config.json
+++ b/config.json
@@ -9,8 +9,7 @@
         "name": "Enedis",
         "type": "ELECTRICITY",
         "oauth": true,
-        "slug": "enedis",
-        "id": "io.cozy.konnectors/enedis"
+        "slug": "enedisgrandlyon"
       },
       "siteLink": "https://mon-compte-client.enedis.fr/"
     },
@@ -23,8 +22,7 @@
         "name": "Eau du Grand Lyon",
         "type": "WATER",
         "oauth": false,
-        "slug": "egl",
-        "id": "io.cozy.konnectors/egl"
+        "slug": "eglgrandlyon"
       },
       "siteLink": "https://agence.eaudugrandlyon.com/inscription.aspx"
     },
@@ -37,8 +35,7 @@
         "name": "GRDF",
         "type": "GAS",
         "oauth": false,
-        "slug": "grdf",
-        "id": "io.cozy.konnectors/grdf"
+        "slug": "grdfgrandlyon"
       },
       "siteLink": "https://monespace.grdf.fr/monespace/connexion"
     }
diff --git a/docker/cozy-app-dev-with-app.sh b/docker/cozy-app-dev-with-app.sh
index 48d4233a86b7d5ff13449b5b8e277ef45c4ae5cf..411697baf08b253e0e1bcbad2676ab1759768af2 100644
--- a/docker/cozy-app-dev-with-app.sh
+++ b/docker/cozy-app-dev-with-app.sh
@@ -204,21 +204,21 @@ do_install_app() {
         echo "App succesfully installed"
 
         echo "Installing konnectors"
-        if cozy-stack konnectors ls | grep 'enedis'; then
-                echo "Removing konnector enedis..."
-                cozy-stack konnectors uninstall enedis
+        if cozy-stack konnectors ls | grep 'enedisgrandlyon'; then
+                echo "Removing konnector enedisgrandlyon..."
+                cozy-stack konnectors uninstall enedisgrandlyon
         fi
-        if cozy-stack konnectors ls | grep 'grdf'; then
-                echo "Removing konnector grdf..."
-                cozy-stack konnectors uninstall grdf
+        if cozy-stack konnectors ls | grep 'grdfgrandlyon'; then
+                echo "Removing konnector grdfgrandlyon..."
+                cozy-stack konnectors uninstall grdfgrandlyon
         fi
-        if cozy-stack konnectors ls | grep 'egl'; then
-                echo "Removing konnector egl..."
-                cozy-stack konnectors uninstall egl
+        if cozy-stack konnectors ls | grep 'eglgrandlyon'; then
+                echo "Removing konnector eglgrandlyon..."
+                cozy-stack konnectors uninstall eglgrandlyon
         fi
-        cozy-stack konnectors install enedis git://forge.grandlyon.com/web-et-numerique/llle_project/enedis-konnector.git#build
-        cozy-stack konnectors install grdf git://forge.grandlyon.com/web-et-numerique/llle_project/grdf-konnector.git#build
-        cozy-stack konnectors install egl git://forge.grandlyon.com/web-et-numerique/llle_project/egl-konnector.git#build
+        cozy-stack konnectors install enedisgrandlyon git://forge.grandlyon.com/web-et-numerique/llle_project/enedis-konnector.git#build
+        cozy-stack konnectors install grdfgrandlyon git://forge.grandlyon.com/web-et-numerique/llle_project/grdf-konnector.git#build
+        cozy-stack konnectors install eglgrandlyon git://forge.grandlyon.com/web-et-numerique/llle_project/egl-konnector.git#build
 }
 
 wait_for() {
diff --git a/manifest.webapp b/manifest.webapp
index 3dd53b04b3ecbda02bf102dcde656bee4c7c9449..42da9006536ea11fa56462b407064458145f79af 100644
--- a/manifest.webapp
+++ b/manifest.webapp
@@ -3,7 +3,7 @@
   "slug": "ecolyo",
   "icon": "icon.svg",
   "categories": [],
-  "version": "0.1.2",
+  "version": "0.1.3",
   "licence": "AGPL-3.0",
   "editor": "Métropole de Lyon",
   "default_locale": "fr",
diff --git a/package.json b/package.json
index 58a9068f8429cb305238c3bf3804f76e18d6d5f8..0f25d3a4aff0ed8df7a914abc7c36e446c5db17a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "ecolyo",
-  "version": "0.1.2",
+  "version": "0.1.3",
   "scripts": {
     "tx": "tx pull --all || true",
     "lint": "yarn lint:js && yarn lint:styles",
diff --git a/src/assets/icons/ico/legal.svg b/src/assets/icons/ico/legal.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5b13582b87211ed4cf6e0c5732911d6e1a5e25f6
--- /dev/null
+++ b/src/assets/icons/ico/legal.svg
@@ -0,0 +1,5 @@
+<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="18.5" cy="18.5" r="18" stroke="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M19.6007 8.4054C18.9665 7.86487 18.0335 7.86486 17.3993 8.4054L16.459 9.20672C16.1872 9.43835 15.8492 9.57834 15.4932 9.60674L14.2617 9.70502C13.431 9.77131 12.7713 10.431 12.705 11.2617L12.6067 12.4932C12.5783 12.8492 12.4384 13.1872 12.2067 13.459L11.4054 14.3993C10.8649 15.0335 10.8649 15.9665 11.4054 16.6007L12.2067 17.541C12.4384 17.8128 12.5783 18.1508 12.6067 18.5068L12.705 19.7383C12.7713 20.569 13.431 21.2287 14.2617 21.295L15.4932 21.3933C15.8492 21.4217 16.1872 21.5616 16.459 21.7933L17.3993 22.5946C18.0335 23.1351 18.9665 23.1351 19.6007 22.5946L20.541 21.7933C20.8128 21.5617 21.1508 21.4217 21.5068 21.3933L22.7383 21.295C23.569 21.2287 24.2287 20.569 24.295 19.7383L24.3933 18.5068C24.4217 18.1508 24.5616 17.8129 24.7933 17.541L25.5946 16.6007C26.1351 15.9665 26.1351 15.0335 25.5946 14.3993L24.7933 13.459C24.5617 13.1872 24.4217 12.8492 24.3933 12.4932L24.295 11.2617C24.2287 10.431 23.569 9.77131 22.7383 9.70502L21.5068 9.60674C21.1508 9.57834 20.8129 9.43835 20.541 9.20672L19.6007 8.4054ZM18.5 19.5163C20.7182 19.5163 22.5163 17.7182 22.5163 15.5C22.5163 13.2818 20.7182 11.4837 18.5 11.4837C16.2818 11.4837 14.4837 13.2818 14.4837 15.5C14.4837 17.7182 16.2818 19.5163 18.5 19.5163Z" fill="white"/>
+<path d="M15 23L15.1384 23.0113C15.5055 23.0412 15.854 23.1887 16.1343 23.4328L17.4371 24.5673C18.0912 25.1369 19.0532 25.1369 19.7072 24.5673L21.01 23.4328C21.2888 23.19 21.6351 23.0428 22 23.0118V30.5L18.5 28.2647L15 30.5V23Z" fill="white"/>
+</svg>
diff --git a/src/assets/icons/visu/challenge/star.svg b/src/assets/icons/visu/challenge/star.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3db583c01a817e6abc4650978f3fe65ffc604953
--- /dev/null
+++ b/src/assets/icons/visu/challenge/star.svg
@@ -0,0 +1,12 @@
+<svg width="320" height="320" viewBox="0 0 320 320" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g opacity="0.6" filter="url(#filter0_f)">
+<path d="M160 2L160.708 150.547L183.549 3.76472L162.109 150.758L206.571 9.0195L163.463 151.175L228.554 17.6469L164.74 151.79L249.005 29.4543L165.911 152.588L267.467 44.1778L166.949 153.552L283.529 61.4886L167.833 154.66L296.832 81L168.541 155.887L307.078 102.276L169.059 157.206L314.039 124.842L169.374 158.587L317.558 148.193L169.48 160L317.558 171.807L169.374 161.413L314.039 195.158L169.059 162.794L307.078 217.724L168.541 164.113L296.832 239L167.833 165.34L283.529 258.511L166.949 166.448L267.467 275.822L165.911 167.412L249.005 290.546L164.74 168.21L228.554 302.353L163.463 168.825L206.571 310.98L162.109 169.242L183.549 316.235L160.708 169.453L160 318L159.292 169.453L136.451 316.235L157.891 169.242L113.429 310.98L156.537 168.825L91.4464 302.353L155.26 168.21L70.9954 290.546L154.089 167.412L52.5327 275.822L153.051 166.448L36.4706 258.511L152.167 165.34L23.168 239L151.459 164.113L12.922 217.724L150.941 162.794L5.9614 195.158L150.626 161.413L2.4418 171.807L150.52 160L2.4418 148.193L150.626 158.587L5.9614 124.842L150.941 157.206L12.922 102.276L151.459 155.887L23.168 81L152.167 154.66L36.4706 61.4886L153.051 153.552L52.5327 44.1778L154.089 152.588L70.9954 29.4543L155.26 151.79L91.4464 17.6469L156.537 151.175L113.429 9.0195L157.891 150.758L136.451 3.76472L159.292 150.547L160 2Z" fill="#FFD951"/>
+</g>
+<defs>
+<filter id="filter0_f" x="0.441895" y="0" width="319.116" height="320" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
+<feGaussianBlur stdDeviation="1" result="effect1_foregroundBlur"/>
+</filter>
+</defs>
+</svg>
diff --git a/src/assets/icons/visu/ecogesture/0078.svg b/src/assets/icons/visu/ecogesture/0078.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1e0709cd3275073d86bf7269b7e3c7812e261785
--- /dev/null
+++ b/src/assets/icons/visu/ecogesture/0078.svg
@@ -0,0 +1,29 @@
+<svg width="52" height="50" viewBox="0 0 52 50" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path opacity="0.7" d="M29.8424 44.2922L50.2494 45.4882C48.1563 44.8902 43.8358 43.6942 43.2976 43.6942C42.6248 43.6942 44.2693 42.2739 42.7743 42.2739C41.2793 42.2739 38.065 43.6942 37.5417 43.6942C37.0185 43.6942 38.2145 42.7972 36.7942 42.6477C35.374 42.4982 35.075 43.6942 34.2527 43.6942C33.4305 43.6942 34.0285 42.4982 33.1315 42.2739C32.2344 42.0497 31.3374 43.6194 30.8889 43.6942C30.5301 43.754 30.0417 44.1178 29.8424 44.2922Z" fill="white"/>
+<path d="M29.1395 44.5047L49.5465 45.7007C47.4535 45.1027 43.1329 43.9067 42.5947 43.9067C41.9219 43.9067 43.5664 42.4864 42.0714 42.4864C40.5764 42.4864 37.3621 43.9067 36.8389 43.9067C36.3156 43.9067 37.5116 43.0097 36.0914 42.8602C34.6711 42.7107 34.3721 43.9067 33.5498 43.9067C32.7276 43.9067 33.3256 42.7107 32.4286 42.4864C31.5316 42.2622 30.6346 43.832 30.1861 43.9067C29.8272 43.9665 29.3389 44.3303 29.1395 44.5047Z" fill="#4D89AA"/>
+<path d="M5.68302 18.2685C6.0946 16.304 7.58668 14.5463 11.2111 10.9873L13.7433 8.50081C15.4615 7.13871 19.139 4.95796 20.1033 7.13179C21.3087 9.84908 19.807 18.0527 18.267 19.6625C16.7269 21.2723 6.0479 21.4211 5.51162 20.8749C4.97533 20.3288 5.27144 20.233 5.68302 18.2685Z" fill="#797979"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.99425 21.0721C6.06144 20.9515 6.21369 20.9082 6.33431 20.9754L29.0521 33.1889C29.1727 33.2561 29.216 33.4084 29.1489 33.529C29.0817 33.6496 28.9294 33.6929 28.8088 33.6258L6.09101 21.4122C5.97039 21.345 5.92707 21.1928 5.99425 21.0721Z" fill="#CBFCFF"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0634 6.82347L37.4935 31.2651C37.574 31.3773 37.5483 31.5335 37.4362 31.614C37.324 31.6945 37.1678 31.6688 37.0873 31.5566L19.6572 7.11497L20.0634 6.82347Z" fill="#CBFCFF"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.9464 17.4715C16.0372 17.3675 16.1951 17.3569 16.2991 17.4477L32.9181 31.9666C33.0221 32.0574 33.0327 32.2153 32.9419 32.3193C32.851 32.4233 32.6931 32.4339 32.5891 32.3431L15.9702 17.8243C15.8662 17.7334 15.8555 17.5755 15.9464 17.4715Z" fill="#CBFCFF"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M37.1943 31.1813C37.2339 31.3135 37.1588 31.4529 37.0265 31.4925L28.8643 33.9377C28.732 33.9773 28.5927 33.9022 28.5531 33.7699C28.5134 33.6377 28.5885 33.4983 28.7208 33.4587L36.883 31.0135C37.0153 30.9739 37.1546 31.049 37.1943 31.1813Z" fill="#6ACADF"/>
+<path d="M21.986 41.8434C22.2995 41.9163 23.1711 42.3224 27.3229 42.862C31.4747 43.4016 36.9871 43.8573 37.9335 43.8867C38.88 43.9161 38.9235 44.5491 38.83 45.5251C38.7365 46.5012 38.6547 47.0987 38.0563 47.0485C37.4578 46.9983 22.235 46.0197 21.8574 45.9764C21.4799 45.9331 20.544 45.5566 20.5339 43.8509C20.5238 42.1453 21.6724 41.7705 21.986 41.8434Z" fill="#E65B3D"/>
+<path d="M34.8134 43.4718C34.8639 43.0173 35.0659 42.104 35.1607 41.7042L33.6455 41.136C33.7297 41.5779 33.8981 42.588 33.8981 43.093C33.8981 43.7243 33.9612 43.7559 33.8981 44.2609C33.8349 44.7659 33.8664 45.0185 34.4977 45.0185C35.0028 45.0185 34.9186 44.7028 34.8134 44.545C34.7924 44.3766 34.7629 43.9263 34.8134 43.4718Z" fill="#EEAF74"/>
+<path d="M30.1102 40.144C30.691 39.841 32.5618 39.0497 33.4246 38.692C33.6981 38.9866 35.5457 39.4243 37.0861 40.7121C35.4447 42.2588 34.6871 42.0694 32.4776 41.7854C31.5008 41.6598 30.1944 41.7854 29.6683 41.7854C29.4263 42.1115 28.8476 42.8333 28.4689 43.1111C28.0901 43.3888 27.2799 43.9633 26.9222 44.2158C26.7433 44.5525 26.3414 45.2385 26.1646 45.289C25.9436 45.3522 25.7858 44.5315 25.628 44.058C25.4702 43.5845 25.8806 43.332 26.3856 43.1111C26.7896 42.9343 26.9117 43.1847 26.9222 43.332C27.0379 43.1637 27.3451 42.7134 27.6482 42.2588C28.0269 41.6907 29.3842 40.5228 30.1102 40.144Z" fill="#FFDDBD"/>
+<path d="M31.0678 39.7117C31.05 40.0095 31.0785 40.3168 31.1791 40.606C31.3156 40.9984 31.6147 41.4193 31.8964 41.752C32.0969 41.7604 32.2931 41.7751 32.4776 41.7988C32.5855 41.8127 32.6899 41.8264 32.7911 41.8396C34.7632 42.0973 35.5248 42.1968 37.0861 40.7256C36.079 39.8837 34.9407 39.4051 34.1967 39.0923C33.8027 38.9267 33.5193 38.8075 33.4246 38.7055C32.8571 38.9408 31.8536 39.3636 31.0678 39.7117Z" fill="#206777"/>
+<path d="M35.7604 32.4556C36.2907 32.6071 39.1589 33.613 40.5266 34.097L39.0747 34.9808C38.9063 34.9598 38.3865 34.8483 37.6542 34.5705C36.7389 34.2233 35.4763 33.3079 35.1922 32.9922C34.9081 32.6766 34.3399 32.4556 34.0243 32.4556H33.2667C33.172 32.3925 33.0395 32.2157 33.2667 32.0137C33.5508 31.7612 33.8034 32.0137 34.1821 32.0137C34.5609 32.0137 35.0975 32.2662 35.7604 32.4556Z" fill="#EEAF74"/>
+<rect x="31.7015" y="32.5667" width="1.70447" height="1.16232" rx="0.58116" transform="rotate(-32.9021 31.7015 32.5667)" fill="#FFDDBD"/>
+<path d="M35.0344 33.8445C33.898 33.7182 33.3614 32.9922 33.2352 32.645H32.6986C32.6986 32.645 33.5193 34.1601 34.0243 34.823C34.5294 35.4859 35.4448 36.1803 36.4548 36.6853C37.4649 37.1904 38.3803 37.7901 39.1694 37.3798C39.9585 36.9694 40.4951 36.0856 40.8423 35.328C41.1896 34.5705 40.7476 34.1601 40.4951 33.8445C40.2426 33.5288 39.6429 34.0654 39.1694 34.1601C38.6959 34.2548 36.4548 34.0023 35.0344 33.8445Z" fill="#FFDDBD"/>
+<path d="M39.8249 31.116C39.8249 32.9409 38.0143 33.6562 36.8893 33.5153C35.3184 33.5154 35.4614 32.3108 35.6111 31.116C35.7607 29.9213 36.3061 29.0478 37.4311 29.1887C38.5561 29.3296 39.8249 29.6644 39.8249 31.116Z" fill="#FFDDBD"/>
+<path d="M37.0544 34.2548L37.5596 32.9923L38.759 32.3294L39.343 32.4872L38.759 34.9177L37.0544 34.2548Z" fill="#FFDDBD"/>
+<path d="M36.1392 30.3092C36.3412 30.2461 36.9915 30.4618 37.2913 30.5775L37.7647 30.9721L36.6442 31.0826C36.6126 31.2983 36.5337 31.7517 36.4706 31.8401C36.3916 31.9506 35.9813 31.9664 35.6972 31.8401C35.4131 31.7139 35.5868 31.0826 35.6026 30.7669C35.6183 30.4513 35.8866 30.3881 36.1392 30.3092Z" fill="black"/>
+<path d="M39.8476 34.7129C39.8386 34.5005 39.7721 34.3309 39.715 34.1854C39.6831 34.104 39.6541 34.0301 39.6399 33.9605L40.0341 33.8377C40.0512 33.9213 40.0995 34.0137 40.1532 34.1165C40.2386 34.28 40.3377 34.4698 40.3472 34.6917C40.3621 35.0431 40.3445 35.4463 40.2205 35.7407C40.1087 36.0062 39.8744 36.38 39.6399 36.7255C39.6062 36.7752 39.5722 36.8247 39.5382 36.8737L39.6047 36.8662C39.6996 36.8555 39.7767 36.8469 39.8323 36.8432C39.7668 36.9297 39.6609 37.0655 39.5334 37.2287C39.0878 37.7997 38.3796 38.7069 38.2225 39.0211C38.0929 39.2805 38.2046 39.3946 38.4038 39.5981C38.5925 39.7909 38.8598 40.064 39.0748 40.6168C38.3172 40.7115 36.7705 40.6941 35.9499 40.41C35.2933 40.1827 33.9718 39.179 33.3931 38.7055C33.5825 38.3372 34.037 37.4871 34.3401 37.0325C34.6431 36.578 35.0134 36.1067 35.1607 35.9278C35.3166 36.0241 35.5884 36.1719 35.9291 36.3248C36.213 35.8728 36.5373 35.3322 36.6684 35.0371C36.7472 34.8598 36.768 34.6465 36.7547 34.4397C36.7415 34.2339 36.696 34.0553 36.6619 33.9615L37.1253 33.9615C37.1387 33.9983 37.153 34.0292 37.167 34.0596C37.2053 34.1427 37.2418 34.2217 37.2537 34.4077C37.2699 34.6608 37.2485 34.963 37.1253 35.2402C36.9884 35.5482 36.6768 36.0718 36.3974 36.519C36.7372 36.6484 37.1138 36.7666 37.4965 36.8432C37.9859 36.941 38.4753 36.949 38.8857 36.9288C38.9943 36.7793 39.112 36.613 39.2262 36.4447C39.4619 36.0974 39.6695 35.761 39.7597 35.5467C39.8377 35.3613 39.8621 35.0543 39.8476 34.7129Z" fill="#3BB15C"/>
+<path d="M42.4206 31.7928C41.562 31.5655 40.9686 31.6981 40.7792 31.7928L38.2224 31.4771L38.759 33.0554C38.9379 33.2763 39.4409 33.8255 40.0216 34.2548C40.7476 34.7914 41.3158 34.6652 42.2312 34.8546C41.6504 34.6273 41.1475 33.834 40.9686 33.4657C41.1895 33.6025 41.8966 33.9897 42.9572 34.4442C44.0178 34.8987 46.2399 34.5073 47.2184 34.2548C46.4819 34.2443 44.8384 34.1854 44.1566 34.0339C43.4748 33.8824 42.7152 33.0659 42.4206 32.6766C42.7047 32.5924 43.62 32.5503 45.0089 33.0554C44.7564 32.5503 43.4938 32.0768 42.4206 31.7928Z" fill="#B36B16"/>
+<path d="M20.5045 46.6491L48.3018 48.2783C45.4508 47.4637 39.5655 45.8346 38.8324 45.8346C37.916 45.8346 40.1561 43.9 38.1196 43.9C36.0832 43.9 31.7049 45.8346 30.9921 45.8346C30.2794 45.8346 31.9085 44.6127 29.9739 44.4091C28.0393 44.2054 27.632 45.8346 26.512 45.8346C25.392 45.8346 26.2065 44.2054 24.9847 43.9C23.7628 43.5945 22.541 45.7328 21.93 45.8346C21.4413 45.916 20.776 46.4116 20.5045 46.6491Z" fill="white"/>
+<path d="M19.7468 46.8617L47.5441 48.4908C44.6931 47.6762 38.8078 46.0471 38.0747 46.0471C37.1583 46.0471 39.3984 44.1125 37.3619 44.1125C35.3255 44.1125 30.9472 46.0471 30.2344 46.0471C29.5217 46.0471 31.1508 44.8252 29.2162 44.6216C27.2816 44.4179 26.8743 46.0471 25.7543 46.0471C24.6343 46.0471 25.4488 44.4179 24.227 44.1125C23.0051 43.807 21.7833 45.9453 21.1723 46.0471C20.6836 46.1286 20.0184 46.6241 19.7468 46.8617Z" fill="#4ABEFF"/>
+<path d="M37.2438 29.457C36.9661 29.4064 36.3916 29.6253 36.1391 29.7411C35.9918 29.4885 35.7477 28.8951 35.9497 28.5416C36.2022 28.0997 36.7388 28.0997 38.0014 27.8787C39.264 27.6577 39.5796 28.3522 40.5266 28.9835C41.4735 29.6148 42.3889 29.7411 44.8825 30.0251C43.7645 30.5965 41.8012 30.4 40.9165 30.2232C41.8772 30.422 44.1934 31.1161 46.2129 32.398C46.2441 32.4162 46.2741 32.4354 46.3029 32.4556C46.273 32.4363 46.243 32.4171 46.2129 32.398C45.5624 32.0165 44.4246 32.0438 43.4305 32.0137C42.3889 31.9821 41.1579 32.4556 39.5796 32.4556H38.7274H38.4749C38.1592 32.0768 37.4711 31.212 37.2438 30.7827C36.9598 30.2461 36.7388 29.7411 37.2438 29.457Z" fill="#E19030"/>
+<path d="M7.78678 8.79104C2.32528 14.1539 1.85376 18.2562 1.85376 18.2562L6.09584 21.5691L6.44379 21.2274C7.02275 20.7241 8.56373 19.6922 10.0995 19.5881C11.2682 19.5089 12.7968 19.9434 14.003 20.2862C14.2085 20.3446 14.4046 20.4004 14.5879 20.4504C15.9681 21.068 17.5219 20.833 18.7346 19.6422C19.9736 18.4256 20.2638 16.7932 19.6416 15.3586C19.6019 15.2046 19.559 15.0425 19.5145 14.8742C19.1937 13.662 18.7871 12.1258 18.8876 10.9587C19.0197 9.42505 20.0795 7.90312 20.5932 7.33342L17.1561 2.38715C17.1561 2.38715 13.2483 3.42813 7.78678 8.79104Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M10.4458 11.0609C7.19017 14.2578 5.07212 18.4662 4.20878 20.1071L3.34268 19.5192C4.24853 17.7975 6.39378 13.6244 9.73166 10.3467C13.0758 7.06296 16.8936 5.51801 18.6826 4.5858L19.3015 5.49042C17.5638 6.3959 13.6952 7.87018 10.4458 11.0609Z" fill="#E26060"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M9.20793 9.72779C5.87152 13.004 3.78048 17.398 2.8994 19.0834L2.06423 18.4103C2.98868 16.642 5.1207 12.3725 8.54137 9.01362C11.9685 5.6484 15.7979 3.966 17.6351 3.01456L18.2065 3.87157C16.4219 4.79572 12.5379 6.45792 9.20793 9.72779Z" fill="#5A64C2"/>
+<path d="M13.1874 9.30775C14.3345 10.4611 16.2661 11.712 18.8769 11.7541L18.893 10.7543C16.664 10.7183 14.9969 9.671 13.9911 8.69745L13.1874 9.30775Z" fill="#BCBCBC"/>
+<path d="M7.86706 14.459L7.27295 15.2866C8.13913 16.2331 9.07651 17.6954 9.25919 19.4881L10.254 19.3867C10.0348 17.2357 8.88966 15.5264 7.86706 14.459Z" fill="#BCBCBC"/>
+</svg>
diff --git a/src/assets/png/badges/CHA00000003-0.png b/src/assets/png/badges/CHA00000003-0.png
index bad09c3516c15277abd6b9adc44b4653ec40abb2..f71ef47156b5c0a10f247dd9a0dcc08dfe5b515e 100644
Binary files a/src/assets/png/badges/CHA00000003-0.png and b/src/assets/png/badges/CHA00000003-0.png differ
diff --git a/src/assets/png/badges/CHA00000003-1.png b/src/assets/png/badges/CHA00000003-1.png
index e16bba433ca3ece0ba70d5f0435443e57bcba00b..043748e2ba4c3f9ff731d28f8bfe542c0fb6cbdb 100644
Binary files a/src/assets/png/badges/CHA00000003-1.png and b/src/assets/png/badges/CHA00000003-1.png differ
diff --git a/src/components/CommonKit/Card/StyledCard.tsx b/src/components/CommonKit/Card/StyledCard.tsx
index 24b76412ce0a685a053b1eb0f9fb69527fe4961a..b5d825a00429bcd1ebc53c9f09a2775362d72637 100644
--- a/src/components/CommonKit/Card/StyledCard.tsx
+++ b/src/components/CommonKit/Card/StyledCard.tsx
@@ -11,7 +11,7 @@ const CardBase = withStyles({
     background: 'linear-gradient(180deg, #323339 0%, #25262B 100%)',
     border: '1px solid',
     boxSizing: 'border-box',
-    boxShadow: '0px 4px 16px',
+    boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.75)',
     borderRadius: '4px',
     margin: '10px 0px 20px 0px',
     //maxWidth: '155px',
diff --git a/src/components/ContainerComponents/FluidChartContainer/FluidChartContainer.tsx b/src/components/ContainerComponents/FluidChartContainer/FluidChartContainer.tsx
index 679caa1b4021a3b570cd626d5206f16de97060aa..82b1bd43520c12e0f0aa147ec40eb60c81a63acb 100644
--- a/src/components/ContainerComponents/FluidChartContainer/FluidChartContainer.tsx
+++ b/src/components/ContainerComponents/FluidChartContainer/FluidChartContainer.tsx
@@ -112,7 +112,7 @@ const FluidChartContainer: React.FC<FluidChartContainerProps> = ({
 
   return (
     <>
-      {isLoaded ? (
+      {isLoaded && (
         <>
           {isMinuteBlocked && timeStep === TimeStep.HALF_AN_HOUR && (
             <ActivateHalfHourLoad />
@@ -134,7 +134,7 @@ const FluidChartContainer: React.FC<FluidChartContainerProps> = ({
             </div>
           </div>
         </>
-      ) : null}
+      )}
     </>
   )
 }
diff --git a/src/components/ContainerComponents/Header/Header.tsx b/src/components/ContainerComponents/Header/Header.tsx
index e0d487f600c86ebdecc9bf87be06f7f6f2abc11f..ea33eb9f6bfed660a6ecaae59d1f635d05b8c717 100644
--- a/src/components/ContainerComponents/Header/Header.tsx
+++ b/src/components/ContainerComponents/Header/Header.tsx
@@ -54,12 +54,24 @@ const Header: React.FC<HeaderProps> = ({
       <div className="header-top">
         <div className="header-content">
           {textKey && (
-            <div className="header-text text-14-normal-uppercase">
+            <div
+              className={`header-text ${
+                screenType === ScreenType.MOBILE
+                  ? 'text-14-normal-uppercase'
+                  : 'text-22-bold'
+              }`}
+            >
               {t(textKey)}
             </div>
           )}
           {desktopTitleKey && (
-            <div className="header-text-desktop text-22-normal">
+            <div
+              className={`header-text-desktop ${
+                screenType === ScreenType.MOBILE
+                  ? 'text-14-normal-uppercase'
+                  : 'text-22-bold'
+              }`}
+            >
               {displayBackArrow && (
                 <StyledIconButton
                   className="cv-button"
diff --git a/src/components/ContainerComponents/LegalContainer/LegalContainer.tsx b/src/components/ContainerComponents/LegalContainer/LegalContainer.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..8ee630bd2c5ff1663274f23334e3b516757cf031
--- /dev/null
+++ b/src/components/ContainerComponents/LegalContainer/LegalContainer.tsx
@@ -0,0 +1,43 @@
+import React from 'react'
+import { NavLink } from 'react-router-dom'
+import { translate } from 'cozy-ui/react/I18n'
+
+import StyledCard from 'components/CommonKit/Card/StyledCard'
+import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
+import LegalIcon from 'assets/icons/ico/legal.svg'
+
+interface LegalContainerProps {
+  t: Function
+}
+
+const LegalContainer: React.FC<LegalContainerProps> = ({
+  t,
+}: LegalContainerProps) => {
+  return (
+    <div className="legal-root">
+      <div className="legal-content">
+        <div className="legal-header text-14-normal-uppercase">
+          {t('LEGAL.TITLE_LEGAL')}
+        </div>
+        <NavLink className="legal-card-link" to="parameters/Legal">
+          <StyledCard>
+            <div className="legal-card">
+              <div className="legal-card-content">
+                <StyledIcon
+                  className="legal-card-content-icon"
+                  icon={LegalIcon}
+                  size={50}
+                />
+                <div className="legal-card-content-title">
+                  {t('LEGAL.READ_LEGAL')}
+                </div>
+              </div>
+            </div>
+          </StyledCard>
+        </NavLink>
+      </div>
+    </div>
+  )
+}
+
+export default translate()(LegalContainer)
diff --git a/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx
index a2244366c2bb8f76a0cb1c2ae7b7d3016f6e14a1..d9c4c0deaae82aa8034a97e6256581ddef929a50 100644
--- a/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx
@@ -12,7 +12,7 @@ import ChallengeManager from 'services/challengeDataManagerService'
 import { Client, withClient } from 'cozy-client'
 import StyledButtonValid from 'components/CommonKit/Button/StyledButtonValid'
 import { ScreenType } from 'enum/screen.enum'
-import AvailableChallengeIcon from 'assets/png/badges/available.png'
+import AvailableChallengeIcon from 'assets/png/badges/available-big.png'
 
 interface AvailableChallengeDetailsViewProps {
   location: any
diff --git a/src/components/ContainerComponents/ViewContainer/LegalViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/LegalViewContainer.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..4217088a268bfbc1602b90c63b90ed95324c0eea
--- /dev/null
+++ b/src/components/ContainerComponents/ViewContainer/LegalViewContainer.tsx
@@ -0,0 +1,26 @@
+import React, { useState } from 'react'
+import CozyBar from 'components/ContainerComponents/CozyBar/CozyBar'
+import Header from 'components/ContainerComponents/Header/Header'
+import Content from 'components/ContainerComponents/Content/Content'
+
+const LegalViewContainer: React.FC = () => {
+  const [headerHeight, setHeaderHeight] = useState<number>(0)
+  const defineHeaderHeight = (height: number) => {
+    setHeaderHeight(height)
+  }
+  return (
+    <React.Fragment>
+      <CozyBar titleKey={'COMMON.APP_LEGAL_TITLE'} displayBackArrow={true} />
+      <Header
+        setHeaderHeight={defineHeaderHeight}
+        desktopTitleKey={'COMMON.APP_LEGAL_TITLE'}
+        displayBackArrow={true}
+      ></Header>
+      <Content height={headerHeight}>
+        <p>Mentions légales à venir</p>
+      </Content>
+    </React.Fragment>
+  )
+}
+
+export default LegalViewContainer
diff --git a/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx
index a1e1417e3012ff763bc55b35a01fbc90e57544f9..5dccdf94b7fd70d0f3a5c3f31f6b2e86a4436301 100644
--- a/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx
@@ -124,14 +124,18 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView
                       ? null
                       : formatCompareChallengeDate(challenge)}
                   </div>
-                  <div className="cp-valid --ongoing">
-                    <StyledStopButton
-                      color="secondary"
-                      onClick={() => stopChallenge(challenge)}
-                    >
-                      {t('CHALLENGE.STOP')}
-                    </StyledStopButton>
-                  </div>
+                  {challenge.challengeType &&
+                    challenge.challengeType.type !==
+                      TypeChallenge.ACHIEVEMENT && (
+                      <div className="cp-valid --ongoing">
+                        <StyledStopButton
+                          color="secondary"
+                          onClick={() => stopChallenge(challenge)}
+                        >
+                          {t('CHALLENGE.STOP')}
+                        </StyledStopButton>
+                      </div>
+                    )}
                 </div>
                 <div className="cp-bottom">
                   <div className="cp-eg-content">
@@ -152,11 +156,14 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView
                 </div>
               </div>
             </div>
-            <EcogestureModal
-              opened={openEcogestureModal}
-              ecogesture={challenge.selectedEcogestures[challengeEcogesture]}
-              handleCloseClick={handleCloseClick}
-            />
+            {openEcogestureModal && (
+              <EcogestureModal
+                opened={openEcogestureModal}
+                ecogesture={challenge.selectedEcogestures[challengeEcogesture]}
+                handleCloseClick={handleCloseClick}
+                unlockedEcogesture={true}
+              />
+            )}
           </>
         )}
       </Content>
diff --git a/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx
index 39d009bc58f2c7eaa0a53e96f70791241017ebac..b2fe9942ce102237b1129f1c9d70afb935dd83e5 100644
--- a/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx
@@ -4,6 +4,7 @@ import Header from 'components/ContainerComponents/Header/Header'
 import Content from 'components/ContainerComponents/Content/Content'
 import KonnectorViewerContainer from 'components/ContainerComponents/KonnectorViewerContainer/KonnectorViewerContainer'
 import FAQContainer from 'components/ContainerComponents/FAQContainer/FAQContainer'
+import LegalContainer from 'components/ContainerComponents/LegalContainer/LegalContainer'
 
 const ParametersViewContainer: React.FC = () => {
   const [headerHeight, setHeaderHeight] = useState<number>(0)
@@ -20,6 +21,7 @@ const ParametersViewContainer: React.FC = () => {
       <Content height={headerHeight}>
         <FAQContainer />
         <KonnectorViewerContainer isParam={true} />
+        <LegalContainer />
       </Content>
     </React.Fragment>
   )
diff --git a/src/components/ContainerComponents/ViewContainer/SingleFluidViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/SingleFluidViewContainer.tsx
index 27651f09f3a3ccace5266a1a7b04c6e4ade39c7e..eecfe4902630ac584ae8e55ce5b1f81a0155acf8 100644
--- a/src/components/ContainerComponents/ViewContainer/SingleFluidViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/SingleFluidViewContainer.tsx
@@ -1,9 +1,9 @@
-import React, { useState } from 'react'
+import React, { useState, useEffect } from 'react'
 import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner'
 import CozyBar from 'components/ContainerComponents/CozyBar/CozyBar'
 import Header from 'components/ContainerComponents/Header/Header'
 import Content from 'components/ContainerComponents/Content/Content'
-import FluidContainer from 'components/ContainerComponents/FluidChartContainer/FluidChartContainer'
+import FluidChartContainer from 'components/ContainerComponents/FluidChartContainer/FluidChartContainer'
 import { FluidType } from 'enum/fluid.enum'
 import { TimeStep } from 'services/dataConsumptionContracts'
 import ConsumptionNavigator from 'components/ContentComponents/ConsumptionNavigator/ConsumptionNavigator'
@@ -68,19 +68,25 @@ const SingleFluidViewContainer: React.FC<SingleFluidViewContainerProps> = ({
             <StyledSpinner size="5em" fluidTypes={fluidTypes} />
           </div>
         )}
-        <FluidContainer
-          timeStep={timeStep}
-          fluidTypes={fluidTypes}
-          resetReferenceDate={resetRefenceDate}
-          multiFluid={false}
-          handleClickTimeStep={handleClickTimeStepForFluidContainer}
-          setChartLoaded={setChartLoaded}
-        />
-        <SingleFluidIndicatorsContainer
-          timeStep={timeStep}
-          setIndicatorsLoaded={setIndicatorsLoaded}
-          fluidTypes={fluidTypes}
-        />
+        <div
+          className={`${
+            isChartLoading ? 'chart-indicator-none' : 'chart-indicator-display'
+          }`}
+        >
+          <FluidChartContainer
+            timeStep={timeStep}
+            fluidTypes={fluidTypes}
+            resetReferenceDate={resetRefenceDate}
+            multiFluid={false}
+            handleClickTimeStep={handleClickTimeStepForFluidContainer}
+            setChartLoaded={setChartLoaded}
+          />
+          <SingleFluidIndicatorsContainer
+            timeStep={timeStep}
+            setIndicatorsLoaded={setIndicatorsLoaded}
+            fluidTypes={fluidTypes}
+          />
+        </div>
       </Content>
     </>
   )
diff --git a/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx
index 84cc1c60d9d44afdb4f4450a578f5940fbeec313..c700cf5eb79198e2b6a9e274608a11ad628fc47c 100644
--- a/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx
@@ -18,6 +18,7 @@ import OngoingChallengeDetailsViewContainer from './OngoingChallengeDetailsViewC
 import LockedChallengeDetailsViewContainer from './LockedChallengeDetailsViewContainer'
 import AvailableChallengeDetailsViewContainer from './AvailableChallengeDetailsViewContainer'
 import SplashContainer from 'components/ContainerComponents/SplashContainer/SplashContainer'
+import LegalViewContainer from './LegalViewContainer'
 
 export const history = createBrowserHistory()
 
@@ -103,6 +104,10 @@ export const ViewContainer = () => {
                           path={`${url}/FAQ`}
                           component={FAQViewContainer}
                         />
+                        <Route
+                          path={`${url}/legal`}
+                          component={LegalViewContainer}
+                        />
                         <Route
                           path={`${url}/`}
                           component={ParametersViewContainer}
diff --git a/src/components/ContentComponents/Challenge/OngoingChallengePile.tsx b/src/components/ContentComponents/Challenge/OngoingChallengePile.tsx
index 50fec394180785ce3834b7ace49835f901737366..5cf63f5b57ce901e1d2166a20fcc51fc5719f117 100644
--- a/src/components/ContentComponents/Challenge/OngoingChallengePile.tsx
+++ b/src/components/ContentComponents/Challenge/OngoingChallengePile.tsx
@@ -39,7 +39,7 @@ const OngoingChallengePile: React.FC<OngoingChallengePileProps> = ({
 
   return (
     <React.Fragment>
-      <div className="pile-energy-follow">
+      <div className={`pile-energy-follow ${small ? '--home' : null}`}>
         <div className="pile-section">
           <div
             className="filter-pile"
diff --git a/src/components/ContentComponents/ChallengeList/ChallengeListItem.tsx b/src/components/ContentComponents/ChallengeList/ChallengeListItem.tsx
index c533747de344be36a566cd18369ac85e98fc9061..a97b85f604236bad84fda49aceea24b4be3076e3 100644
--- a/src/components/ContentComponents/ChallengeList/ChallengeListItem.tsx
+++ b/src/components/ContentComponents/ChallengeList/ChallengeListItem.tsx
@@ -80,7 +80,6 @@ const ChallengeListItem: React.FC<ChallengeListItemProps> = ({
             <img
               className="cli-content-icon"
               src={defineBadge() ? defineBadge() : DefaultChallengeIcon}
-              width={62}
             ></img>
             <div className={`cli-content-title`}>
               {challengeState === 'available' && (
diff --git a/src/components/ContentComponents/ChallengeModal/ChallengeModal.tsx b/src/components/ContentComponents/ChallengeModal/ChallengeModal.tsx
index b1456acf4026379b6d6a5219d18a65ece2cdee6d..a428aa8ab05a9fbfd502f0f1e49f9aaabee45c87 100644
--- a/src/components/ContentComponents/ChallengeModal/ChallengeModal.tsx
+++ b/src/components/ContentComponents/ChallengeModal/ChallengeModal.tsx
@@ -3,7 +3,7 @@ import { translate } from 'cozy-ui/react/I18n'
 import { UserChallenge } from 'services/dataChallengeContracts'
 import Modal from 'components/CommonKit/Modal/Modal'
 import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner'
-import StarIcon from 'assets/png/challenge/star.png'
+import StarIcon from 'assets/icons/visu/challenge/star.svg'
 import StyledButtonValid from 'components/CommonKit/Button/StyledButtonValid'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import { formatNumberValues } from 'utils/utils'
@@ -80,11 +80,11 @@ const ChallengeModal: React.FC<ChallengeModalProps> = ({
                 src={badgeIcon}
                 width={screenType === ScreenType.MOBILE ? 160 : 180}
               ></img>
-              <img
+              <StyledIcon
                 className="cm-win-star"
-                src={StarIcon}
-                width={screenType === ScreenType.MOBILE ? 300 : 400}
-              ></img>
+                icon={StarIcon}
+                size={ScreenType.MOBILE ? 260 : 320}
+              />
             </div>
             <div className="cm-txt">
               {' '}
diff --git a/src/components/ContentComponents/Charts/Bar.tsx b/src/components/ContentComponents/Charts/Bar.tsx
index 0b2460a3fd8a10da39a14ff0473d16717787846f..8342a11b72b479c58c900b500afe61515df220cd 100644
--- a/src/components/ContentComponents/Charts/Bar.tsx
+++ b/src/components/ContentComponents/Charts/Bar.tsx
@@ -150,6 +150,7 @@ const Bar = (props: BarProps) => {
           )}, -40)`}
         >
           <rect
+            onClick={handleClick}
             x="0"
             y="0"
             width={showCompare ? getBandWidth() * 2 : getBandWidth()}
diff --git a/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx b/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
index 4ade458920055b4268bee1ad6d67ccfa69d6b01e..635e1591259a1bee46c838e8952c4e887d34223a 100644
--- a/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
+++ b/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
@@ -10,6 +10,7 @@ import def from 'assets/icons/visu/ecogesture/default.svg'
 interface EcogestureModalProps {
   opened: boolean
   ecogesture: EcogestureType
+  unlockedEcogesture: boolean
   t: Function
   handleCloseClick: () => void
   handleStartClick: () => void
@@ -18,6 +19,7 @@ interface EcogestureModalProps {
 const EcogestureModal: React.FC<EcogestureModalProps> = ({
   opened,
   ecogesture,
+  unlockedEcogesture,
   t,
   handleCloseClick,
 }: EcogestureModalProps) => {
@@ -47,7 +49,7 @@ const EcogestureModal: React.FC<EcogestureModalProps> = ({
       {ecogesture && (
         <Modal
           open={opened}
-          border={ecogesture.unlocked}
+          border={ecogesture.unlocked || unlockedEcogesture}
           handleCloseClick={handleCloseClick}
         >
           <div className="em-header text-14-normal-uppercase">
@@ -56,7 +58,7 @@ const EcogestureModal: React.FC<EcogestureModalProps> = ({
           <div className="em-content-box">
             <div className="em-content-box-text">
               <div className="em-content-box-text-header">
-                {ecogesture.unlocked && ecogestureIcon && (
+                {(ecogesture.unlocked || unlockedEcogesture) && ecogestureIcon && (
                   <div>
                     <Icon className="icon" icon={ecogestureIcon} size={100} />
                   </div>
diff --git a/src/components/ContentComponents/FluidChart/FluidChartContent.tsx b/src/components/ContentComponents/FluidChart/FluidChartContent.tsx
index 92019ef5881866eeb162e365fc43dfc1cfa2a201..1a6c4d95efeab55bfadb3187a4639b0e50aedaa0 100644
--- a/src/components/ContentComponents/FluidChart/FluidChartContent.tsx
+++ b/src/components/ContentComponents/FluidChart/FluidChartContent.tsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from 'react'
+import React, { useState, useEffect, useContext } from 'react'
 import { translate } from 'cozy-ui/react/I18n'
 import { DateTime } from 'luxon'
 import {
@@ -23,6 +23,8 @@ import ConsumptionVisualizer from 'components/ContentComponents/ConsumptionVisua
 
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import captionIcon from 'assets/icons/visu/challenge-caption-chart.svg'
+import { NavLink } from 'react-router-dom'
+import { AppContext } from 'components/Contexts/AppContextProvider'
 
 interface FluidChartContentProps {
   fluidTypes: FluidType[]
@@ -59,6 +61,12 @@ const FluidChartContent: React.FC<FluidChartContentProps> = ({
   >()
   const [showCompare, setShowCompare] = useState<boolean>(false)
   const [isLoaded, setIsLoaded] = useState<boolean>(true)
+  const { challengeNotification } = useContext(AppContext)
+  const challengesPath = 'challenges'
+  const challengeDetailPath = {
+    pathname: `challenges/ongoing`,
+    state: { challenge: currentChallenge },
+  }
   const challengePeriod: ITimePeriod | null =
     currentChallenge &&
     currentChallenge.startingDate &&
@@ -172,9 +180,21 @@ const FluidChartContent: React.FC<FluidChartContentProps> = ({
       ) : challengePeriod ? (
         <div className="fv-footer">
           <div className="fv-footer-challenge text-15-normal">
-            <StyledIcon icon={captionIcon} size={34} />
+            <NavLink
+              className="fv-link"
+              to={challengeNotification ? challengesPath : challengeDetailPath}
+            >
+              <StyledIcon icon={captionIcon} size={34} />
+            </NavLink>
             <span className="fv-footer-label-padding">
-              {t('CHALLENGE.PERIOD')}
+              <NavLink
+                className="fv-link"
+                to={
+                  challengeNotification ? challengesPath : challengeDetailPath
+                }
+              >
+                {t('CHALLENGE.PERIOD')}
+              </NavLink>
             </span>
           </div>
         </div>
diff --git a/src/components/ContentComponents/Konnector/KonnectorLoginForm.tsx b/src/components/ContentComponents/Konnector/KonnectorLoginForm.tsx
index f7f6f73d88ea9b5572ca1d27ce8027dd09b9d906..2ab8b06a1a959013d564ba866afcf63bf1ed8bdb 100644
--- a/src/components/ContentComponents/Konnector/KonnectorLoginForm.tsx
+++ b/src/components/ContentComponents/Konnector/KonnectorLoginForm.tsx
@@ -196,18 +196,32 @@ const KonnectorLoginForm: React.FC<KonnectorLoginFormProps> = ({
                 {icon && <StyledIcon icon={icon} size={48} />}
               </div>
               <div className="authform-button-text text-18-bold">
-                <div>{t('auth.' + fluidConfig.name + '.connect.label1')}</div>
-                <div>{t('auth.' + fluidConfig.name + '.connect.label2')}</div>
+                <div>
+                  {t(
+                    'auth.' +
+                      fluidConfig.konnectorConfig.slug +
+                      '.connect.label1'
+                  )}
+                </div>
+                <div>
+                  {t(
+                    'auth.' +
+                      fluidConfig.konnectorConfig.slug +
+                      '.connect.label2'
+                  )}
+                </div>
               </div>
             </div>
           </StyledAuthButton>
         </div>
         <div className="kloginauthform-text text-16-bold">
           <div className="text-16-bold">
-            {t('auth.' + fluidConfig.name + '.no_account.title')}
+            {t(
+              'auth.' + fluidConfig.konnectorConfig.slug + '.no_account.title'
+            )}
           </div>
           <div className="text-16-normal">
-            {t('auth.' + fluidConfig.name + '.no_account.text')}
+            {t('auth.' + fluidConfig.konnectorConfig.slug + '.no_account.text')}
           </div>
         </div>
         <StyledButton
@@ -216,7 +230,7 @@ const KonnectorLoginForm: React.FC<KonnectorLoginFormProps> = ({
           disabled={loading}
           onClick={() => window.open(siteLink, '_blank')}
         >
-          {t('auth.' + fluidConfig.name + '.create_account')}
+          {t('auth.' + fluidConfig.konnectorConfig.slug + '.create_account')}
         </StyledButton>
       </div>
     </form>
diff --git a/src/locales/fr.json b/src/locales/fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..22acc19becc7c7207269ac4c7c2ef0fb1dc6162f
--- /dev/null
+++ b/src/locales/fr.json
@@ -0,0 +1,250 @@
+{
+  "Nav": {
+    "home": "Accueil",
+    "consumption": "Conso",
+    "challenges": "Défis",
+    "eco_gestures": "Eco-gestes",
+    "ECOGESTURES": "Ecogestes",
+    "BADGES": "Badges",
+    "parameters": "Options",
+    "connectors": "connecteurs",
+    "graphs": "graphes"
+  },
+  "COMMON": {
+    "APP_TITLE": "Ecolyo",
+    "APP_CHALLENGE_TITLE": "Défis",
+    "APP_ECO_GESTURE_TITLE": "Eco-gestes",
+    "APP_PARAMETERS_TITLE": "Options",
+    "APP_HELLO": "Bonjour",
+    "APP_PRESENTATION": "Votre consommation d'énergie",
+    "CONSO_DETAILS": "détail des consommations",
+    "NODATA": "Pas de données",
+    "LASTDATA": "Dernières données",
+    "LASTVALIDDATA": "Dernières données valides",
+    "DATATOCOME": "à venir",
+    "CHALLENGE_CARD_LABEL": "Defi",
+    "CONSO_CARDS_LABEL": "Consommation",
+    "PERF_INDICATOR_LABEL": "Bilan",
+    "DAILY_FRENQUENCY": "quotidien",
+    "WEEKLY_FRENQUENCY": "hebdo",
+    "MONTHLY_FRENQUENCY": "mensuel",
+    "YEARLY_FRENQUENCY": "annuel",
+    "MINI_CARDS_LABEL": "AUTRES ENERGIES",
+    "APP_FAQ_TITLE": "FAQ",
+    "APP_LEGAL_TITLE": "Mentions légales",
+    "APP_NEW_CHALLENGE_TITLE": "Nouveau défi",
+    "APP_LOCKED_CHALLENGE_TITLE": "Défi à débloquer",
+    "APP_ONGOING_CHALLENGE_TITLE": "Défi en cours",
+    "APP_FINISHED_CHALLENGE_TITLE": "Défi terminé",
+    "WELCOME_MODAL_TITLE": "Félicitations",
+    "WELCOME_MODAL_PERSO": "Votre espace personnel a bien été créé.",
+    "WELCOME_MODAL_CONNECT": "Vous pouvez maintenant connecter vos compteurs d’énergie à Ecolyo en toute sécurité.",
+    "WELCOME_MODAL_OK": "Ok"
+  },
+  "LOADING": {
+    "INDEX": "Vérification des données",
+    "DATA": "Initialisation des données",
+    "FLUIDTYPES": "Récupération de votre configuration",
+    "CHALLENGE": "Mise à jour des challenges",
+    "ERROR_LOADING": "Erreur pendant le chargement des données. Veuillez vérifier votre connexion internet.",
+    "RELOAD": "Recharger"
+  },
+  "FLUID": {
+    "ELECTRICITY": {
+      "NAME": "Electricité",
+      "LABEL": "Électricité",
+      "UNIT": "kWh",
+      "RELEVANT_METRICS": [
+        { "BULB": "Vous avez consommé l'équivalent de 42 ampoules" },
+        {
+          "CONSOLE": "Une console de jeu fonctionnant 2 h par jour consomme 1,75 kWh en 1 semaine"
+        }
+      ]
+    },
+    "WATER": {
+      "NAME": "Eau",
+      "LABEL": "Eau",
+      "UNIT": "L"
+    },
+    "GAS": {
+      "NAME": "Gaz",
+      "LABEL": "Gaz",
+      "UNIT": "kWh"
+    },
+    "MULTIFLUID": {
+      "NAME": "Multi fluide",
+      "LABEL": "Multi fluide",
+      "UNIT": "€"
+    }
+  },
+  "TIMESTEP": {
+    "YEAR": {
+      "STEP": "Par an",
+      "COMPARELABEL": "Comparer à l'année précédente"
+    },
+    "MONTH": {
+      "STEP": "Par mois",
+      "COMPARELABEL": "Comparer à l'année précédente"
+    },
+    "DAY": {
+      "STEP": "Par jour",
+      "COMPARELABEL": "Comparer à la semaine précédente"
+    },
+    "HOUR": {
+      "STEP": "Par heure",
+      "COMPARELABEL": "Comparer à la journée précédente"
+    },
+    "HALF_AN_HOUR": {
+      "STEP": "Par 1/2h",
+      "COMPARELABEL": "Comparer à la journée précédente"
+    }
+  },
+  "CONSUMPTION": {
+    "DISPLAY_DETAIL": "Voir le détail",
+    "DISPLAY_LAST_DATA": "Voir mes dernières consos"
+  },
+  "KONNECTORCONFIG": {
+    "TITLE_CONNECTION": "Connexion aux distributeurs",
+    "TITLE_KONNECTEURS": "connecteurs",
+    "LABEL_STATE": "Etat",
+    "LABEL_LOGIN": "login",
+    "LABEL_PASSWORD": "password",
+    "LABEL_UPDATEDAT": "dernière mise-à-jour le",
+    "LABEL_FREQUENCY": "fréquence",
+    "LABEL_FILLIN": "Renseignez vos identifiants",
+    "LABEL_CONNECTTO_ELECTRICITY": "Se connecter à l'électricité",
+    "LABEL_CONNECTTO_WATER": "Se connecter à l'eau",
+    "LABEL_CONNECTTO_GAS": "Se connecter au gaz",
+    "BTN_CONNECTION": "Je me connecte à mon compte",
+    "BTN_NOACCOUNT": "Créer mes identifiants",
+    "BTN_INSTALL": "Installer",
+    "BTN_CONFIGURE": "Configurer",
+    "BTN_UPDATE": "Mettre à jour",
+    "BTN_DELETE": "Supprimer",
+    "LOADING_DATA": "Vos premières données seront disponibles dans quelques minutes et les prochaines données seront chargées automatiquement.",
+    "PLZ_WAIT": "Veuillez patienter",
+    "NOT_INSTALLED": "Le connecteur n'est pas installé. Veuillez l'installer en cliquant sur le bouton ci-dessous.",
+    "ERROR_NO_LOGIN_PASSWORD": "Identifiant et mot de passe requis",
+    "ERROR_ACCOUNT_CREATION": "Une erreur est survenue, veuillez essayer de nouveau.",
+    "ERROR_LOGIN_FAILED": "Identifiants invalides",
+    "SUCCESS_TXT": "Félicitations !",
+    "SUCCESS_DATA_ELECTRICITY": "Vos données de consommation d'électricité sont maintenant conntectées à Ecolyo.",
+    "SUCCESS_DATA_WATER": "Vos données de consommation d'eau sont maintenant conntectées à Ecolyo.",
+    "SUCCESS_DATA_GAS": "Vos données de consommation de gaz sont maintenant conntectées à Ecolyo.",
+    "ERROR_TXT": "Aïe !",
+    "ERROR_DATA_ELECTRICITY": "Un problème a empêché vos données de consommation d'électricité de se connecter à Ecolyo.",
+    "ERROR_DATA_WATER": "Un problème a empêché vos données de consommation d'eau se connecter à Ecolyo.",
+    "ERROR_DATA_GAS": "Un problème a empêché vos données de consommation de gaz de se connecter à Ecolyo.",
+    "ERROR_DATA_2": "Merci de réessayer plus tard.",
+    "OK": "Ok"
+  },
+  "INDICATOR": {
+    "DISPLAY_OTHER_FLUID": "Voir",
+    "ERROR_NO_COMPARE": "comparaison impossible",
+    "ERROR_NO_COMPARE_REASON": "(manque de données)"
+  },
+  "FAQ": {
+    "TITLE_FAQ": "Foire aux questions",
+    "READ_FAQ": "Lire la FAQ"
+  },
+  "LEGAL": {
+    "TITLE_LEGAL": "Mentions légales",
+    "READ_LEGAL": "Lire les mentions légales"
+  },
+  "CHALLENGE": {
+    "TITLE_CHALLENGE": "Defi",
+    "NO_CHALLENGE": "Veuillez selectionner un defi",
+    "NO_CHALLENGE_DATA": "Pas de données trouvées pour le défi",
+    "NEW_CHALLENGE": "Nouveau Défi",
+    "ONGOING_CHALLENGE": "En cours",
+    "ENDINGDATE_UNDEFINED": "Date non connue",
+    "LOCKED": "Vous devez finir le défi précédent pour accéder à celui-ci",
+    "FULLY_LOCKED": "Ce défi sera disponible dans une prochaine mise à jour",
+    "START": "Allons-y !",
+    "NOT_NOW": "Pas maintenant !",
+    "STOP": "Arrêter le défi",
+    "BACK": "I'll be back",
+    "ECOGESTURE": "Voir l'écogeste",
+    "LINKED_ECOGESTURES": "Écogestes associés",
+    "VIEW_START": "Visualisation à partir du ",
+    "VIEW_RESULT": "Résultats le ",
+    "PERIOD": "Période de defi",
+    "OK": "Ok",
+    "WIN_TEXT": "Vous avez débloqué le badge",
+    "WIN_TEXT_ECOLYO": "En vous connectant à un distributeur, vous avez débloqué le badge Ecolyo Royal !",
+    "WIN_TEXT_ECOLYO_NEW_AVAILABLE": "Le défi “Coques en stock” est maintenant disponible !",
+    "CONGRATULATION": "Félicitations !",
+    "RESULT_POSITIF": "Vous avez économisé",
+    "RESULT_NEGATIF": "Vous avez dépassé de",
+    "RESULT_NOT_AVAILABLE": "Objectif à venir",
+    "DEFEAT": "Presque... ",
+    "DEFEAT_RESULT": "Vous avez dépassé",
+    "DEFEAT_RESULT2": "de ",
+    "CONSOLATION": "Vous êtes proches de votre objectif, gardez le cap avec ce badge ",
+    "CONSOLATION2": " en chocolat."
+  },
+  "ECOGESTURE": {
+    "TITLE_ECOGESTURE": "Ecogeste",
+    "NO_ECOGESTURE": "Pas d'ecogeste"
+  },
+  "NEGAWATT": {
+    "TITLE_NEGAWATT": "NégaWatt",
+    "QUESTION": "Que sont les nWh ? (néga Watt heure)",
+    "ANSWER": {
+      "BASE": "Le néga Watt heure (ou nWh) sert d'unité de mesure de vos économies d'énergie.",
+      "STRONG": "10 nWh : économie importante",
+      "MEDIUM": "3 nWh : économie moyenne",
+      "WEAK": "1 nWh : économie faible"
+    }
+  },
+  "auth": {
+    "enedisgrandlyon": {
+      "connect": {
+        "info": "En cliquant sur ce bouton, vous accéderez à votre compte Enedis. Vous pourrez donner votre accord pour récupérer vos données de consommation électriques dans votre cloud personnel",
+        "label1": "J'accède à mon",
+        "label2": "espace client Enedis"
+      },
+      "no_account": {
+        "title": "Pas de compte Enedis ?",
+        "text": "Vous pouvez le créer en vous munissant d'une facture d'élétricité."
+      },
+      "create_account": "Je crée mon compte personnel Enedis"
+    },
+    "grdfgrandlyon": {
+      "connect": {
+        "label1": "Je me connecte à",
+        "label2": "mon compte GRDF"
+      },
+      "no_account": {
+        "title": "Pas de compte GRDF ?",
+        "text": "Vous pouvez le créer en vous munissant d'une facture de gaz."
+      },
+      "create_account": "Je crée mon compte GRDF"
+    },
+    "eglgrandlyon": {
+      "connect": {
+        "label1": "Je me connecte à",
+        "label2": "mon compte Eau du Grand Lyon"
+      },
+      "no_account": {
+        "title": "Pas de compte Eau du Grand Lyon ?",
+        "text": "Vous pouvez le créer en vous munissant d'une facture d'eau."
+      },
+      "create_account": "Je crée mon compte Eau du GL"
+    }
+  },
+  "oauth": {
+    "window": {
+      "title": "OAuth"
+    }
+  },
+  "timestep": {
+    "activate": {
+      "enedis": {
+        "info": "Pour visualiser vos consommations à la 1/2 heure, il vous faut valider l'activation de l'enregistrement de votre consommation horaire sur votre compte Enedis",
+        "label1": "Activer sur mon compte Enedis",
+        "activateLink": "https://mon-compte-client.enedis.fr/"
+      }
+    }
+  }
+}
diff --git a/src/services/initDataManagerService.ts b/src/services/initDataManagerService.ts
index 5701fb20f30d20408c28dea67de769e6f578f25e..3b30f88b80b03ee277e91d413adbcc9e704a9e08 100644
--- a/src/services/initDataManagerService.ts
+++ b/src/services/initDataManagerService.ts
@@ -379,19 +379,21 @@ export default class InitDataManager {
    */
   public async initIndex(): Promise<boolean | null> {
     try {
-      await this.createIndex(EGL_DAY_DOCTYPE)
-      await this.createIndex(EGL_MONTH_DOCTYPE)
-      await this.createIndex(EGL_YEAR_DOCTYPE)
-      await this.createIndex(ENEDIS_DAY_DOCTYPE)
-      await this.createIndex(ENEDIS_MINUTE_DOCTYPE)
-      await this.createIndex(ENEDIS_MONTH_DOCTYPE)
-      await this.createIndex(ENEDIS_YEAR_DOCTYPE)
-      await this.createIndex(GRDF_DAY_DOCTYPE)
-      await this.createIndex(GRDF_HOUR_DOCTYPE)
-      await this.createIndex(GRDF_MONTH_DOCTYPE)
-      await this.createIndex(GRDF_YEAR_DOCTYPE)
-      await KonnectorService.createIndexKonnector(this._client)
-      await AccountService.createIndexAccount(this._client)
+      await Promise.all([
+        this.createIndex(EGL_DAY_DOCTYPE),
+        this.createIndex(EGL_MONTH_DOCTYPE),
+        this.createIndex(EGL_YEAR_DOCTYPE),
+        this.createIndex(ENEDIS_DAY_DOCTYPE),
+        this.createIndex(ENEDIS_MINUTE_DOCTYPE),
+        this.createIndex(ENEDIS_MONTH_DOCTYPE),
+        this.createIndex(ENEDIS_YEAR_DOCTYPE),
+        this.createIndex(GRDF_DAY_DOCTYPE),
+        this.createIndex(GRDF_HOUR_DOCTYPE),
+        this.createIndex(GRDF_MONTH_DOCTYPE),
+        this.createIndex(GRDF_YEAR_DOCTYPE),
+        KonnectorService.createIndexKonnector(this._client),
+        AccountService.createIndexAccount(this._client),
+      ])
       return true
     } catch (error) {
       console.log('Context error: ', error)
diff --git a/src/styles/components/_barchart.scss b/src/styles/components/_barchart.scss
index 6f575e0fcb188490057b7a218e203db6b671f322..ec868620933fdda66176076c47e21a01cd9ab0ec 100644
--- a/src/styles/components/_barchart.scss
+++ b/src/styles/components/_barchart.scss
@@ -11,10 +11,12 @@
   }
 }
 .background-true {
-  display: inline;
+  // display: inline;
+  opacity: 1;
 }
 .background-false {
-  display: none;
+  // display: none;
+  opacity: 0;
 }
 .bar-ELECTRICITY {
   fill: $elec-off-color;
diff --git a/src/styles/components/_challenges.scss b/src/styles/components/_challenges.scss
index e72710f8ffc0dcb3f0a0d028e2a4bf83efecb1ac..293c7f6d9c5bb6a1d487de9d1bfbc4f6b45d4efc 100644
--- a/src/styles/components/_challenges.scss
+++ b/src/styles/components/_challenges.scss
@@ -97,6 +97,8 @@
       .cli-content-icon {
         margin: 0.5rem 0;
         z-index: 5;
+        width: 62px;
+        height: 100%;
       }
       .cli-content-title {
         color: $text-white;
@@ -242,9 +244,9 @@
     }
     &.--ecolyo-royal {
       @extend .cp-content;
-      top: -38px;
+      top: 0px;
       @media #{$large-phone} {
-        top: 12px;
+        top: 5px;
       }
     }
     .cm-win-badge {
@@ -364,6 +366,10 @@
   align-items: center;
   justify-content: center;
   width: 100%;
+  &.--home {
+    @extend .pile-energy-follow;
+    justify-content: start;
+  }
   .pile-section {
     display: grid;
     .filter-pile {
diff --git a/src/styles/components/_fluid.scss b/src/styles/components/_fluid.scss
index eefc82bf4df61ae03de2099b596aa8fa7a899322..a1c53b76daf79a2a717da446cc17b23e0b03e8f1 100644
--- a/src/styles/components/_fluid.scss
+++ b/src/styles/components/_fluid.scss
@@ -97,6 +97,10 @@
       display: flex;
       flex-direction: row;
       align-items: center;
+      .fv-link {
+        text-decoration: none;
+        color: $text-dark;
+      }
       & .fv-footer-label-padding {
         flex: 1;
         display: flex;
@@ -107,6 +111,13 @@
     }
   }
 }
+.chart-indicator-none {
+  display: none;
+}
+.chart-indicator-block {
+  display: block;
+}
+
 
 //FluidSwipe
 .fs-root {
diff --git a/src/styles/components/_legal.scss b/src/styles/components/_legal.scss
new file mode 100644
index 0000000000000000000000000000000000000000..678e663b11093d9d4f220d10856350981101b4ea
--- /dev/null
+++ b/src/styles/components/_legal.scss
@@ -0,0 +1,76 @@
+@import '../base/color';
+@import '../base/breakpoint';
+
+// FAQContainer
+.legal-root {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  padding: 0 1.5rem 1.5rem;
+  .legal-content {
+    margin-bottom: -1rem;
+    width: 45.75rem;
+    @media #{$large-phone} {
+      width: 100%;
+    }
+    .legal-header {
+      margin-top: 2rem;
+      margin-bottom: 1.25rem;
+      color: $text-bright;
+    }
+  }
+}
+
+.legal-card-link {
+  color: black;
+}
+.legal-card {
+  display: flex;
+  flex-direction: row;
+  margin: -0.75rem 0;
+  width: 100%;
+  @media #{$large-phone} {
+    width: 100%;
+  }
+  .legal-card-content {
+    display: flex;
+    flex-direction: row;
+    .legal-card-content-icon {
+      margin: 0.5rem 0;
+    }
+    .legal-card-content-title {
+      margin: 0 1rem;
+      align-self: center;
+    }
+  }
+}
+
+// FAQ
+.legal-view-root {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  padding: 1rem 0;
+  margin-top: 1.5rem;
+  .legal-view-content {
+    width: 45.75rem;
+    @media #{$large-phone} {
+      width: 100%;
+    }
+    .legal-content-detail {
+      padding-bottom: 0.6rem;
+      .text-bold {
+        font-weight: bold;
+      }
+      .text-underline {
+        text-decoration: underline;
+      }
+      .spaceline {
+        height: 0.6rem;
+        display: block;
+      }
+    }
+  }
+}
diff --git a/src/styles/index.css b/src/styles/index.css
index 28692f77d8ea92a0867203f74e44c79de1217f5d..64441c8f78e7b9f80fa6f256d88eaee850561053 100644
--- a/src/styles/index.css
+++ b/src/styles/index.css
@@ -642,37 +642,40 @@ p {
     color: #e0e0e0;
     padding: 0 5%;
     outline-offset: -1px; }
-  /* line 24, src/styles/components/_form.scss */
+    /* line 23, src/styles/components/_form.scss */
+    .form .form-input.--error {
+      border: 1px solid #D25959; }
+  /* line 27, src/styles/components/_form.scss */
   .form .form-input:focus {
     outline: none;
-    box-shadow: inset 0px 0px 0px 1px #e3b82a; }
-  /* line 28, src/styles/components/_form.scss */
+    border: 1px solid #e3b82a; }
+  /* line 31, src/styles/components/_form.scss */
   .form .form-group {
     display: flex;
     flex-direction: column;
     margin: 1.5rem 0 0 0; }
-    /* line 32, src/styles/components/_form.scss */
+    /* line 35, src/styles/components/_form.scss */
     .form .form-group .form-trailing-icon {
       float: right;
       position: relative;
       margin-top: -48px;
       margin-right: 15px; }
-  /* line 39, src/styles/components/_form.scss */
+  /* line 42, src/styles/components/_form.scss */
   .form .form-control {
     height: 3rem; }
     @media only screen and (max-width: 768px) {
-      /* line 39, src/styles/components/_form.scss */
+      /* line 42, src/styles/components/_form.scss */
       .form .form-control {
         max-width: 100vw; } }
-  /* line 45, src/styles/components/_form.scss */
+  /* line 48, src/styles/components/_form.scss */
   .form .form-message {
     color: #ce3535;
     min-height: 1.25rem;
-    margin-top: 0.125rem; }
-  /* line 50, src/styles/components/_form.scss */
-  .form .form-button {
-    margin-top: 0.125rem; }
+    margin-top: 0.75rem; }
   /* line 53, src/styles/components/_form.scss */
+  .form .form-button {
+    margin-top: 0.75rem; }
+  /* line 56, src/styles/components/_form.scss */
   .form ::placeholder {
     color: #e0e0e0; }
 
@@ -981,15 +984,35 @@ p {
   /* line 163, src/styles/components/_konnector.scss */
   .klaunch-content .klaunch-content-text {
     color: #e0e0e0;
-    margin: 1rem 0; }
-  /* line 167, src/styles/components/_konnector.scss */
+    margin: 1rem;
+    text-align: center; }
+    /* line 167, src/styles/components/_konnector.scss */
+    .klaunch-content .klaunch-content-text .kc-wait {
+      color: #a0a0a0;
+      margin-bottom: 2rem; }
+  /* line 172, src/styles/components/_konnector.scss */
   .klaunch-content .klaunch-content-text-center {
     text-align: center; }
-  /* line 170, src/styles/components/_konnector.scss */
-  .klaunch-content .klaunch-info-txt {
+  /* line 175, src/styles/components/_konnector.scss */
+  .klaunch-content .klaunch-info {
     margin: 1.5rem; }
-
-/* line 175, src/styles/components/_konnector.scss */
+    /* line 177, src/styles/components/_konnector.scss */
+    .klaunch-content .klaunch-info .konnector-config {
+      display: flex;
+      flex-direction: column;
+      justify-content: center;
+      align-items: center;
+      text-align: center; }
+      /* line 183, src/styles/components/_konnector.scss */
+      .klaunch-content .klaunch-info .konnector-config .kce-picto-txt {
+        color: #D25959;
+        margin: 1.25rem; }
+      /* line 187, src/styles/components/_konnector.scss */
+      .klaunch-content .klaunch-info .konnector-config .kcs-picto-txt {
+        color: #e3b82a;
+        margin: 1.25rem; }
+
+/* line 195, src/styles/components/_konnector.scss */
 .state-icon {
   height: 22px;
   width: 22px;
@@ -1105,6 +1128,10 @@ p {
       flex-direction: row;
       align-items: center; }
       /* line 100, src/styles/components/_fluid.scss */
+      .fv-root .fv-footer .fv-footer-challenge .fv-link {
+        text-decoration: none;
+        color: #a0a0a0; }
+      /* line 104, src/styles/components/_fluid.scss */
       .fv-root .fv-footer .fv-footer-challenge .fv-footer-label-padding {
         flex: 1;
         display: flex;
@@ -1112,15 +1139,23 @@ p {
         padding-left: 0.75rem;
         color: #a0a0a0; }
 
-/* line 112, src/styles/components/_fluid.scss */
+/* line 114, src/styles/components/_fluid.scss */
+.chart-indicator-none {
+  display: none; }
+
+/* line 117, src/styles/components/_fluid.scss */
+.chart-indicator-block {
+  display: block; }
+
+/* line 123, src/styles/components/_fluid.scss */
 .fs-root {
   flex: 1;
   height: 22rem; }
   @media only screen and (max-width: 768px) {
-    /* line 112, src/styles/components/_fluid.scss */
+    /* line 123, src/styles/components/_fluid.scss */
     .fs-root {
       height: 14rem; } }
-  /* line 118, src/styles/components/_fluid.scss */
+  /* line 129, src/styles/components/_fluid.scss */
   .fs-root .fs-slide {
     min-height: 22rem;
     overflow-x: hidden;
@@ -1128,11 +1163,11 @@ p {
     justify-content: center;
     align-items: center; }
     @media only screen and (max-width: 768px) {
-      /* line 118, src/styles/components/_fluid.scss */
+      /* line 129, src/styles/components/_fluid.scss */
       .fs-root .fs-slide {
         min-height: 14rem; } }
 
-/* line 131, src/styles/components/_fluid.scss */
+/* line 142, src/styles/components/_fluid.scss */
 .cta-box {
   background-color: rgba(18, 18, 18, 0.8);
   position: absolute;
@@ -1146,15 +1181,15 @@ p {
   flex-direction: column;
   height: 37.5rem; }
   @media only screen and (max-width: 768px) {
-    /* line 131, src/styles/components/_fluid.scss */
+    /* line 142, src/styles/components/_fluid.scss */
     .cta-box {
       height: 29rem;
       width: 100vw; } }
   @media only screen and (max-width: 1023px) {
-    /* line 131, src/styles/components/_fluid.scss */
+    /* line 142, src/styles/components/_fluid.scss */
     .cta-box {
       width: 100vw; } }
-  /* line 151, src/styles/components/_fluid.scss */
+  /* line 162, src/styles/components/_fluid.scss */
   .cta-box .cta-box-header {
     text-align: center;
     font-weight: bold;
@@ -1163,16 +1198,16 @@ p {
     color: #e0e0e0;
     width: 50%; }
     @media only screen and (max-width: 768px) {
-      /* line 151, src/styles/components/_fluid.scss */
+      /* line 162, src/styles/components/_fluid.scss */
       .cta-box .cta-box-header {
         width: 80%; } }
-  /* line 162, src/styles/components/_fluid.scss */
+  /* line 173, src/styles/components/_fluid.scss */
   .cta-box .cta-box-button {
     margin-left: auto;
     margin-right: auto;
     width: 50%; }
     @media only screen and (max-width: 768px) {
-      /* line 162, src/styles/components/_fluid.scss */
+      /* line 173, src/styles/components/_fluid.scss */
       .cta-box .cta-box-button {
         width: 80%; } }
 
@@ -1368,78 +1403,78 @@ p {
 
 /* line 13, src/styles/components/_barchart.scss */
 .background-true {
-  display: inline; }
+  opacity: 1; }
 
-/* line 16, src/styles/components/_barchart.scss */
+/* line 17, src/styles/components/_barchart.scss */
 .background-false {
-  display: none; }
+  opacity: 0; }
 
-/* line 19, src/styles/components/_barchart.scss */
+/* line 21, src/styles/components/_barchart.scss */
 .bar-ELECTRICITY {
   fill: #5d3d2a; }
-  /* line 21, src/styles/components/_barchart.scss */
+  /* line 23, src/styles/components/_barchart.scss */
   .bar-ELECTRICITY.selected {
     fill: #d87b39;
     filter: drop-shadow(0 -0.1rem 0.2rem #d87b39); }
 
-/* line 27, src/styles/components/_barchart.scss */
+/* line 29, src/styles/components/_barchart.scss */
 .bar-compare-ELECTRICITY {
   fill: #795c47; }
-  /* line 29, src/styles/components/_barchart.scss */
+  /* line 31, src/styles/components/_barchart.scss */
   .bar-compare-ELECTRICITY.selected {
     fill: #e2bca1;
     filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1); }
 
-/* line 35, src/styles/components/_barchart.scss */
+/* line 37, src/styles/components/_barchart.scss */
 .bar-WATER {
   fill: #20415e; }
-  /* line 37, src/styles/components/_barchart.scss */
+  /* line 39, src/styles/components/_barchart.scss */
   .bar-WATER.selected {
     fill: #3a98ec;
     filter: drop-shadow(0 -0.1rem 0.2rem #3a98ec); }
 
-/* line 43, src/styles/components/_barchart.scss */
+/* line 45, src/styles/components/_barchart.scss */
 .bar-compare-WATER {
   fill: #4d5c6e; }
-  /* line 45, src/styles/components/_barchart.scss */
+  /* line 47, src/styles/components/_barchart.scss */
   .bar-compare-WATER.selected {
     fill: #abd4fa;
     filter: drop-shadow(0 -0.1rem 0.2rem #abd4fa); }
 
-/* line 51, src/styles/components/_barchart.scss */
+/* line 53, src/styles/components/_barchart.scss */
 .bar-GAS {
   fill: #184940; }
-  /* line 53, src/styles/components/_barchart.scss */
+  /* line 55, src/styles/components/_barchart.scss */
   .bar-GAS.selected {
     fill: #45d1b8;
     filter: drop-shadow(0 -0.1rem 0.2rem #45d1b8); }
 
-/* line 59, src/styles/components/_barchart.scss */
+/* line 61, src/styles/components/_barchart.scss */
 .bar-compare-GAS {
   fill: #597773; }
-  /* line 61, src/styles/components/_barchart.scss */
+  /* line 63, src/styles/components/_barchart.scss */
   .bar-compare-GAS.selected {
     fill: #a8f7e9;
     filter: drop-shadow(0 -0.1rem 0.2rem #a8f7e9); }
 
-/* line 67, src/styles/components/_barchart.scss */
+/* line 69, src/styles/components/_barchart.scss */
 .bar-MULTIFLUID {
   fill: #705d1d; }
-  /* line 69, src/styles/components/_barchart.scss */
+  /* line 71, src/styles/components/_barchart.scss */
   .bar-MULTIFLUID.selected {
     fill: #e3b82a;
     filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a); }
 
-/* line 75, src/styles/components/_barchart.scss */
+/* line 77, src/styles/components/_barchart.scss */
 .bar-compare-MULTIFLUID {
   fill: #7d6a4e; }
-  /* line 77, src/styles/components/_barchart.scss */
+  /* line 79, src/styles/components/_barchart.scss */
   .bar-compare-MULTIFLUID.selected {
     fill: #ffd597;
     filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a); }
 
 /** Animation **/
-/* line 84, src/styles/components/_barchart.scss */
+/* line 86, src/styles/components/_barchart.scss */
 .bounce-1 {
   animation-name: bounce-1;
   animation-timing-function: cubic-bezier(1, 1, 0.42, 1);
@@ -1461,7 +1496,7 @@ p {
   75% {
     transform: scale(1, 1); } }
 
-/* line 112, src/styles/components/_barchart.scss */
+/* line 114, src/styles/components/_barchart.scss */
 .bounce-2 {
   animation-name: bounce-2;
   animation-timing-function: cubic-bezier(1, 1, 0.42, 1);
@@ -1484,59 +1519,59 @@ p {
     transform: scale(1, 1); } }
 
 /** Animatio ndelay **/
-/* line 141, src/styles/components/_barchart.scss */
+/* line 143, src/styles/components/_barchart.scss */
 .delay {
   animation-duration: 0.4s; }
 
-/* line 144, src/styles/components/_barchart.scss */
+/* line 146, src/styles/components/_barchart.scss */
 .delay--0 {
   animation-duration: 0.6s; }
 
-/* line 147, src/styles/components/_barchart.scss */
+/* line 149, src/styles/components/_barchart.scss */
 .delay--1 {
   animation-duration: 0.7s; }
 
-/* line 150, src/styles/components/_barchart.scss */
+/* line 152, src/styles/components/_barchart.scss */
 .delay--2 {
   animation-duration: 0.8s; }
 
-/* line 153, src/styles/components/_barchart.scss */
+/* line 155, src/styles/components/_barchart.scss */
 .delay--3 {
   animation-duration: 0.9s; }
 
-/* line 156, src/styles/components/_barchart.scss */
+/* line 158, src/styles/components/_barchart.scss */
 .delay--4 {
   animation-duration: 1s; }
 
-/* line 159, src/styles/components/_barchart.scss */
+/* line 161, src/styles/components/_barchart.scss */
 .delay--5 {
   animation-duration: 1.1s; }
 
-/* line 162, src/styles/components/_barchart.scss */
+/* line 164, src/styles/components/_barchart.scss */
 .delay--6 {
   animation-duration: 1.2s; }
 
-/* line 165, src/styles/components/_barchart.scss */
+/* line 167, src/styles/components/_barchart.scss */
 .delay--7 {
   animation-duration: 1.3s; }
 
-/* line 168, src/styles/components/_barchart.scss */
+/* line 170, src/styles/components/_barchart.scss */
 .delay--8 {
   animation-duration: 1.4s; }
 
-/* line 171, src/styles/components/_barchart.scss */
+/* line 173, src/styles/components/_barchart.scss */
 .delay--9 {
   animation-duration: 1.5s; }
 
-/* line 174, src/styles/components/_barchart.scss */
+/* line 176, src/styles/components/_barchart.scss */
 .delay--10 {
   animation-duration: 1.6s; }
 
-/* line 177, src/styles/components/_barchart.scss */
+/* line 179, src/styles/components/_barchart.scss */
 .delay--11 {
   animation-duration: 1.8s; }
 
-/* line 180, src/styles/components/_barchart.scss */
+/* line 182, src/styles/components/_barchart.scss */
 .delay--12 {
   animation-duration: 1.9s; }
 
@@ -1877,87 +1912,89 @@ p {
       /* line 97, src/styles/components/_challenges.scss */
       .cli .cli-left .cli-content .cli-content-icon {
         margin: 0.5rem 0;
-        z-index: 5; }
-      /* line 101, src/styles/components/_challenges.scss */
+        z-index: 5;
+        width: 62px;
+        height: 100%; }
+      /* line 103, src/styles/components/_challenges.scss */
       .cli .cli-left .cli-content .cli-content-title {
         color: #ffffff;
         margin: 0 1rem;
         align-self: center; }
-      /* line 106, src/styles/components/_challenges.scss */
+      /* line 108, src/styles/components/_challenges.scss */
       .cli .cli-left .cli-content .subtitle-finished {
         color: #a0a0a0; }
-      /* line 109, src/styles/components/_challenges.scss */
+      /* line 111, src/styles/components/_challenges.scss */
       .cli .cli-left .cli-content .title-finished {
         color: #e0e0e0; }
-      /* line 112, src/styles/components/_challenges.scss */
+      /* line 114, src/styles/components/_challenges.scss */
       .cli .cli-left .cli-content .subtitle-ongoing {
         color: #58FFFF; }
-      /* line 115, src/styles/components/_challenges.scss */
+      /* line 117, src/styles/components/_challenges.scss */
       .cli .cli-left .cli-content .title-ongoing {
         color: #ffffff; }
-      /* line 118, src/styles/components/_challenges.scss */
+      /* line 120, src/styles/components/_challenges.scss */
       .cli .cli-left .cli-content .subtitle-available {
         color: #121212; }
-      /* line 121, src/styles/components/_challenges.scss */
+      /* line 123, src/styles/components/_challenges.scss */
       .cli .cli-left .cli-content .title-available {
         color: #121212; }
-      /* line 124, src/styles/components/_challenges.scss */
+      /* line 126, src/styles/components/_challenges.scss */
       .cli .cli-left .cli-content .title-locked {
         color: #a0a0a0;
         opacity: 0.35; }
-  /* line 130, src/styles/components/_challenges.scss */
+  /* line 132, src/styles/components/_challenges.scss */
   .cli .cli-right {
     align-self: center;
     padding-right: 1.2rem; }
-    /* line 133, src/styles/components/_challenges.scss */
+    /* line 135, src/styles/components/_challenges.scss */
     .cli .cli-right.cli-right-ongoing {
       padding-right: calc(1.2rem + 2px); }
-    /* line 136, src/styles/components/_challenges.scss */
+    /* line 138, src/styles/components/_challenges.scss */
     .cli .cli-right.cli-right-available {
       padding-right: calc(1.2rem + 2px); }
 
-/* line 143, src/styles/components/_challenges.scss */
+/* line 145, src/styles/components/_challenges.scss */
 .cc-link {
   color: black;
   text-decoration: none; }
 
-/* line 147, src/styles/components/_challenges.scss */
+/* line 149, src/styles/components/_challenges.scss */
 .cc {
   cursor: pointer;
   display: flex;
   flex-direction: row;
   margin: 0.25rem 0.25rem;
   width: 100%; }
-  /* line 153, src/styles/components/_challenges.scss */
+  /* line 155, src/styles/components/_challenges.scss */
   .cc .cc-content-left {
     flex: 1;
     display: flex;
     flex-direction: column;
     justify-content: center;
     width: inherit; }
-    /* line 159, src/styles/components/_challenges.scss */
+    /* line 161, src/styles/components/_challenges.scss */
     .cc .cc-content-left .cc-content-title {
       color: #ffffff; }
-      /* line 161, src/styles/components/_challenges.scss */
+      /* line 163, src/styles/components/_challenges.scss */
       .cc .cc-content-left .cc-content-title.cc-content-title-padding {
         padding-top: 1rem; }
-    /* line 165, src/styles/components/_challenges.scss */
+    /* line 167, src/styles/components/_challenges.scss */
     .cc .cc-content-left .cc-content-progress {
       margin-top: 1rem; }
-    /* line 168, src/styles/components/_challenges.scss */
+    /* line 170, src/styles/components/_challenges.scss */
     .cc .cc-content-left .cc-content-timeline {
       padding: 0 0.5rem; }
-    /* line 171, src/styles/components/_challenges.scss */
+    /* line 173, src/styles/components/_challenges.scss */
     .cc .cc-content-left .cc-content-visu {
       padding: 1rem 0; }
-  /* line 175, src/styles/components/_challenges.scss */
+  /* line 177, src/styles/components/_challenges.scss */
   .cc .cc-content-right {
     display: flex;
     flex-direction: row;
     justify-content: center;
     align-items: center;
     align-self: center; }
-    /* line 181, src/styles/components/_challenges.scss */
+    /* line 183, src/styles/components/_challenges.scss */
     .cc .cc-content-right .cc-notification {
       display: flex;
       align-items: center;
@@ -1969,7 +2006,7 @@ p {
       color: black;
       margin-right: 1rem; }
 
-/* line 196, src/styles/components/_challenges.scss */
+/* line 198, src/styles/components/_challenges.scss */
 .cm-content {
   display: flex;
   flex-direction: column;
@@ -1978,25 +2015,25 @@ p {
   padding: 1.5rem 1rem 1.5rem;
   width: 22.125rem; }
   @media only screen and (max-width: 768px) {
-    /* line 196, src/styles/components/_challenges.scss */
+    /* line 198, src/styles/components/_challenges.scss */
     .cm-content {
       width: 90%; } }
-  /* line 206, src/styles/components/_challenges.scss */
+  /* line 208, src/styles/components/_challenges.scss */
   .cm-content .win {
     background: #eed582;
     background: Linear-gradient(90deg, #bf723b 0%, #dd9a2b 26.04%, #f6d74c 45.31%, #d1880d 75%, #a05b11 100%);
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent; }
-  /* line 219, src/styles/components/_challenges.scss */
+  /* line 221, src/styles/components/_challenges.scss */
   .cm-content .defeat {
     background: #eed582;
     background: Linear-gradient(90deg, #a66340 0%, #ae5f38 33.33%, #9e4e24 51.56%, #a4573a 66.67%);
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent; }
-  /* line 231, src/styles/components/_challenges.scss */
+  /* line 233, src/styles/components/_challenges.scss */
   .cm-content .cm-title {
     text-align: center; }
-  /* line 234, src/styles/components/_challenges.scss */
+  /* line 236, src/styles/components/_challenges.scss */
   .cm-content .cm-win-badge-star {
     display: grid;
     align-items: center;
@@ -2004,64 +2041,64 @@ p {
     position: absolute;
     top: 15px; }
     @media only screen and (max-width: 768px) {
-      /* line 234, src/styles/components/_challenges.scss */
+      /* line 236, src/styles/components/_challenges.scss */
       .cm-content .cm-win-badge-star {
         top: 65px; } }
-    /* line 243, src/styles/components/_challenges.scss */
+    /* line 245, src/styles/components/_challenges.scss */
     .cm-content .cm-win-badge-star.--ecolyo-royal {
-      top: -38px; }
+      top: 0px; }
       @media only screen and (max-width: 768px) {
-        /* line 243, src/styles/components/_challenges.scss */
+        /* line 245, src/styles/components/_challenges.scss */
         .cm-content .cm-win-badge-star.--ecolyo-royal {
-          top: 12px; } }
-    /* line 250, src/styles/components/_challenges.scss */
+          top: 5px; } }
+    /* line 252, src/styles/components/_challenges.scss */
     .cm-content .cm-win-badge-star .cm-win-badge {
       -webkit-animation: scale-in-center 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.1s both;
       animation: scale-in-center 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.1s both;
       grid-column: 1;
       grid-row: 1;
       z-index: 1; }
-    /* line 259, src/styles/components/_challenges.scss */
+    /* line 261, src/styles/components/_challenges.scss */
     .cm-content .cm-win-badge-star .cm-win-star {
       grid-column: 1;
       grid-row: 1;
       -webkit-animation: rotating 60s linear infinite;
       animation: rotating 60s linear infinite; }
-  /* line 266, src/styles/components/_challenges.scss */
+  /* line 268, src/styles/components/_challenges.scss */
   .cm-content .cm-result {
     color: #e0e0e0;
     text-align: center;
     margin-top: 1.5rem;
     margin-bottom: 0.5rem;
     margin-bottom: 165px; }
-    /* line 272, src/styles/components/_challenges.scss */
+    /* line 274, src/styles/components/_challenges.scss */
     .cm-content .cm-result .cm-result-positif {
       color: #7fd771; }
-    /* line 275, src/styles/components/_challenges.scss */
+    /* line 277, src/styles/components/_challenges.scss */
     .cm-content .cm-result .cm-result-negatif {
       color: #d24444; }
-  /* line 279, src/styles/components/_challenges.scss */
+  /* line 281, src/styles/components/_challenges.scss */
   .cm-content .cm-badge {
     position: absolute;
     top: 135px; }
     @media only screen and (max-width: 768px) {
-      /* line 279, src/styles/components/_challenges.scss */
+      /* line 281, src/styles/components/_challenges.scss */
       .cm-content .cm-badge {
         top: 142px; } }
-  /* line 286, src/styles/components/_challenges.scss */
+  /* line 288, src/styles/components/_challenges.scss */
   .cm-content .cm-button-valid {
     margin-top: 1rem;
     width: 100%; }
-  /* line 290, src/styles/components/_challenges.scss */
+  /* line 292, src/styles/components/_challenges.scss */
   .cm-content .cm-txt {
     text-align: center;
     margin-bottom: 1rem;
     width: 100%; }
-  /* line 295, src/styles/components/_challenges.scss */
+  /* line 297, src/styles/components/_challenges.scss */
   .cm-content .cm-text-new-available {
     margin-top: 1.25rem; }
 
-/* line 301, src/styles/components/_challenges.scss */
+/* line 303, src/styles/components/_challenges.scss */
 .list-of-days-duration {
   display: flex;
   flex-direction: row;
@@ -2069,68 +2106,71 @@ p {
   margin-top: 3rem;
   width: 100%; }
   @media only screen and (max-width: 768px) {
-    /* line 301, src/styles/components/_challenges.scss */
+    /* line 303, src/styles/components/_challenges.scss */
     .list-of-days-duration {
       margin-top: 1rem; } }
-  /* line 310, src/styles/components/_challenges.scss */
+  /* line 312, src/styles/components/_challenges.scss */
   .list-of-days-duration .day-solo {
     display: flex;
     flex-direction: column;
     width: 100%; }
-    /* line 314, src/styles/components/_challenges.scss */
+    /* line 316, src/styles/components/_challenges.scss */
     .list-of-days-duration .day-solo .day-line-label {
       display: flex;
       flex-direction: row;
       justify-content: center;
       align-items: center;
       width: 100%; }
-      /* line 320, src/styles/components/_challenges.scss */
+      /* line 322, src/styles/components/_challenges.scss */
       .list-of-days-duration .day-solo .day-line-label .date-dash {
         width: 50%;
         height: 2px;
         background-color: #7b7b7b; }
-      /* line 325, src/styles/components/_challenges.scss */
+      /* line 327, src/styles/components/_challenges.scss */
       .list-of-days-duration .day-solo .day-line-label .past {
         background-color: #58FFFF; }
-      /* line 328, src/styles/components/_challenges.scss */
+      /* line 330, src/styles/components/_challenges.scss */
       .list-of-days-duration .day-solo .day-line-label .futur {
         background-color: #7b7b7b; }
-      /* line 331, src/styles/components/_challenges.scss */
+      /* line 333, src/styles/components/_challenges.scss */
       .list-of-days-duration .day-solo .day-line-label .none {
         opacity: 0; }
-      /* line 334, src/styles/components/_challenges.scss */
+      /* line 336, src/styles/components/_challenges.scss */
       .list-of-days-duration .day-solo .day-line-label .date-label {
         width: 0.625rem;
         height: 0.625rem;
         border-radius: 50%;
         position: absolute; }
-    /* line 341, src/styles/components/_challenges.scss */
+    /* line 343, src/styles/components/_challenges.scss */
     .list-of-days-duration .day-solo .day-letter {
       margin-top: 0.8rem;
       text-align: center;
       color: #a0a0a0; }
-    /* line 346, src/styles/components/_challenges.scss */
+    /* line 348, src/styles/components/_challenges.scss */
     .list-of-days-duration .day-solo .day-date {
       margin-top: 0.2rem;
       text-align: center;
       color: #a0a0a0; }
 
-/* line 355, src/styles/components/_challenges.scss */
+/* line 357, src/styles/components/_challenges.scss */
 .view-start-date {
   padding: 0.25rem 0;
   color: #58FFFF; }
 
-/* line 361, src/styles/components/_challenges.scss */
-.pile-energy-follow {
+/* line 363, src/styles/components/_challenges.scss */
+.pile-energy-follow, .pile-energy-follow.--home {
   display: flex;
   flex-direction: row;
   align-items: center;
   justify-content: center;
   width: 100%; }
-  /* line 367, src/styles/components/_challenges.scss */
+  /* line 369, src/styles/components/_challenges.scss */
+  .--home.pile-energy-follow {
+    justify-content: start; }
+  /* line 373, src/styles/components/_challenges.scss */
   .pile-energy-follow .pile-section {
     display: grid; }
-    /* line 369, src/styles/components/_challenges.scss */
+    /* line 375, src/styles/components/_challenges.scss */
     .pile-energy-follow .pile-section .filter-pile {
       grid-column: 1;
       grid-row: 1;
@@ -2142,30 +2182,30 @@ p {
       opacity: 0.8;
       background-color: #121212;
       z-index: 1; }
-    /* line 381, src/styles/components/_challenges.scss */
+    /* line 387, src/styles/components/_challenges.scss */
     .pile-energy-follow .pile-section .pile-icon {
       grid-column: 1;
       grid-row: 1;
       margin: -25px 0; }
-  /* line 387, src/styles/components/_challenges.scss */
+  /* line 393, src/styles/components/_challenges.scss */
   .pile-energy-follow .max-energy {
     color: #7b7b7b; }
-  /* line 390, src/styles/components/_challenges.scss */
+  /* line 396, src/styles/components/_challenges.scss */
   .pile-energy-follow .values-section {
     margin-left: 1rem; }
-  /* line 393, src/styles/components/_challenges.scss */
+  /* line 399, src/styles/components/_challenges.scss */
   .pile-energy-follow .no-values-section {
     color: #ffffff;
     margin-left: 1rem; }
 
-/* line 400, src/styles/components/_challenges.scss */
+/* line 406, src/styles/components/_challenges.scss */
 .ongoing-challenge {
   min-height: 620px; }
 
-/* line 403, src/styles/components/_challenges.scss */
+/* line 409, src/styles/components/_challenges.scss */
 .cp-root {
   width: 100%; }
-  /* line 405, src/styles/components/_challenges.scss */
+  /* line 411, src/styles/components/_challenges.scss */
   .cp-root .cp-content, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal, .cp-root .cp-content.--locked {
     display: flex;
     align-items: center;
@@ -2173,10 +2213,10 @@ p {
     color: #e0e0e0;
     min-height: 84vh;
     justify-content: space-between; }
-    /* line 413, src/styles/components/_challenges.scss */
+    /* line 419, src/styles/components/_challenges.scss */
     .cp-root .cm-content .--locked.cm-win-badge-star.--ecolyo-royal, .cm-content .cp-root .--locked.cm-win-badge-star.--ecolyo-royal, .cp-root .--locked.cp-content {
       justify-content: center; }
-    /* line 418, src/styles/components/_challenges.scss */
+    /* line 424, src/styles/components/_challenges.scss */
     .cp-root .cp-content .cp-info, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info, .cp-root .cp-content .cp-info.--available {
       display: flex;
       flex-direction: column;
@@ -2187,53 +2227,53 @@ p {
       min-height: 55vh;
       padding-top: 1rem;
       padding-bottom: 0.5rem; }
-      /* line 428, src/styles/components/_challenges.scss */
+      /* line 434, src/styles/components/_challenges.scss */
       .cp-root .cp-content .--available.cp-info, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .--available.cp-info, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .--available.cp-info {
         height: 74vh; }
-      /* line 432, src/styles/components/_challenges.scss */
+      /* line 438, src/styles/components/_challenges.scss */
       .cp-root .cp-content .cp-info .cp-icon, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-icon, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-icon {
         margin: 1rem; }
-      /* line 435, src/styles/components/_challenges.scss */
+      /* line 441, src/styles/components/_challenges.scss */
       .cp-root .cp-content .cp-info .cp-icon-available, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-icon-available, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-icon-available {
         margin: 2rem; }
-      /* line 438, src/styles/components/_challenges.scss */
+      /* line 444, src/styles/components/_challenges.scss */
       .cp-root .cp-content .cp-info .cp-win-badge-star, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-win-badge-star, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-win-badge-star {
         display: grid;
         align-items: center;
         justify-items: center;
         margin: -100px; }
-        /* line 443, src/styles/components/_challenges.scss */
+        /* line 449, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-info .cp-win-badge-star .cp-win-badge, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-win-badge-star .cp-win-badge, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-win-badge-star .cp-win-badge {
           grid-column: 1;
           grid-row: 1;
           z-index: 1; }
-        /* line 448, src/styles/components/_challenges.scss */
+        /* line 454, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-info .cp-win-badge-star .cp-win-star, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-win-badge-star .cp-win-star, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-win-badge-star .cp-win-star {
           grid-column: 1;
           grid-row: 1; }
-      /* line 453, src/styles/components/_challenges.scss */
+      /* line 459, src/styles/components/_challenges.scss */
       .cp-root .cp-content .cp-info .cp-date, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-date, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-date {
         color: #a0a0a0;
         text-align: center;
         margin-top: 1rem; }
-      /* line 458, src/styles/components/_challenges.scss */
+      /* line 464, src/styles/components/_challenges.scss */
       .cp-root .cp-content .cp-info .cp-title, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-title, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-title {
         color: #e0e0e0;
         text-align: center;
         margin-top: 0.5rem; }
-      /* line 463, src/styles/components/_challenges.scss */
+      /* line 469, src/styles/components/_challenges.scss */
       .cp-root .cp-content .cp-info .cp-result, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-result, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-result {
         color: #e0e0e0;
         text-align: center;
         margin-top: 1.5rem;
         margin-bottom: 0.5rem; }
-        /* line 468, src/styles/components/_challenges.scss */
+        /* line 474, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-info .cp-result .cp-result-positif, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-result .cp-result-positif, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-result .cp-result-positif {
           color: #7fd771; }
-        /* line 471, src/styles/components/_challenges.scss */
+        /* line 477, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-info .cp-result .cp-result-negatif, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-result .cp-result-negatif, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-result .cp-result-negatif {
           color: #d24444; }
-      /* line 475, src/styles/components/_challenges.scss */
+      /* line 481, src/styles/components/_challenges.scss */
       .cp-root .cp-content .cp-info .cp-description, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-description, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-description {
         text-align: center;
         margin-top: 1rem;
@@ -2241,7 +2281,7 @@ p {
         margin-left: 1.25rem;
         margin-right: 1.25rem;
         max-width: 53rem; }
-      /* line 483, src/styles/components/_challenges.scss */
+      /* line 489, src/styles/components/_challenges.scss */
       .cp-root .cp-content .cp-info .cp-valid, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-valid, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-valid, .cp-root .cp-content .cp-info .cp-valid.--ongoing {
         justify-content: center;
         display: flex;
@@ -2249,24 +2289,24 @@ p {
         width: 90%;
         margin-top: 0.75rem;
         max-width: 53rem; }
-        /* line 490, src/styles/components/_challenges.scss */
+        /* line 496, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-info .--ongoing.cp-valid, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .--ongoing.cp-valid, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .--ongoing.cp-valid {
           width: 25%; }
           @media only screen and (max-width: 768px) {
-            /* line 490, src/styles/components/_challenges.scss */
+            /* line 496, src/styles/components/_challenges.scss */
             .cp-root .cp-content .cp-info .--ongoing.cp-valid, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .--ongoing.cp-valid, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .--ongoing.cp-valid {
               width: 60%; } }
-        /* line 497, src/styles/components/_challenges.scss */
+        /* line 503, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-info .cp-valid .cp-left-button, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-valid .cp-left-button, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-valid .cp-left-button {
           margin-right: 0.25rem;
           margin-left: 0;
           width: 100%; }
-        /* line 502, src/styles/components/_challenges.scss */
+        /* line 508, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-info .cp-valid .cp-right-button, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .cp-valid .cp-right-button, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .cp-valid .cp-right-button {
           margin-left: 0.25rem;
           margin-right: 0;
           width: 100%; }
-    /* line 509, src/styles/components/_challenges.scss */
+    /* line 515, src/styles/components/_challenges.scss */
     .cp-root .cp-content .cp-follow, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-follow, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-follow {
       width: 90%;
       display: flex;
@@ -2274,12 +2314,12 @@ p {
       align-items: center;
       margin-bottom: 1rem;
       max-width: 53rem; }
-    /* line 517, src/styles/components/_challenges.scss */
+    /* line 523, src/styles/components/_challenges.scss */
     .cp-root .cp-content .cp-valid-locked, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-valid-locked, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-valid-locked {
       margin-top: 2rem;
       width: 80%;
       max-width: 53rem; }
-    /* line 522, src/styles/components/_challenges.scss */
+    /* line 528, src/styles/components/_challenges.scss */
     .cp-root .cp-content .cp-bottom, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom {
       padding: 1.25rem 1.25rem;
       width: 90%;
@@ -2289,16 +2329,16 @@ p {
       max-width: 53rem;
       margin-bottom: 2rem; }
       @media only screen and (max-width: 768px) {
-        /* line 522, src/styles/components/_challenges.scss */
+        /* line 528, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-bottom, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom {
           margin-bottom: 0; } }
-      /* line 533, src/styles/components/_challenges.scss */
+      /* line 539, src/styles/components/_challenges.scss */
       .cp-root .cp-content .cp-bottom .cp-eg-content, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content {
         width: 100%; }
-        /* line 535, src/styles/components/_challenges.scss */
+        /* line 541, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-bottom .cp-eg-content .linked-ecogestures, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content .linked-ecogestures, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content .linked-ecogestures {
           text-transform: uppercase; }
-        /* line 538, src/styles/components/_challenges.scss */
+        /* line 544, src/styles/components/_challenges.scss */
         .cp-root .cp-content .cp-bottom .cp-eg-content .cp-ecogestures, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content .cp-ecogestures, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content .cp-ecogestures {
           width: 100%;
           display: flex;
@@ -2520,15 +2560,17 @@ p {
       .em-content-box .em-content-box-text .em-content-box-text-header .icon {
         margin-bottom: 1rem; }
     /* line 165, src/styles/components/_ecogesture.scss */
+    .em-content-box .em-content-box-text .long-name {
+      font-weight: bold;
+      line-height: 150%;
+      margin: 0.5rem 0 1rem; }
+    /* line 170, src/styles/components/_ecogesture.scss */
     .em-content-box .em-content-box-text .em-description {
       padding-bottom: 2.5rem; }
-      /* line 167, src/styles/components/_ecogesture.scss */
-      .em-content-box .em-content-box-text .em-description .long-name {
-        font-weight: bold; }
-    /* line 171, src/styles/components/_ecogesture.scss */
+    /* line 173, src/styles/components/_ecogesture.scss */
     .em-content-box .em-content-box-text .em-description-2 {
       padding-top: 2rem; }
-    /* line 174, src/styles/components/_ecogesture.scss */
+    /* line 176, src/styles/components/_ecogesture.scss */
     .em-content-box .em-content-box-text .em-description-3 {
       padding-bottom: 0.5rem; }
 
@@ -2715,6 +2757,93 @@ p {
         height: 0.6rem;
         display: block; }
 
+/** BLACK **/
+/** TEXT COLOR **/
+/** RED **/
+/** YELLOW **/
+/** ORANGE **/
+/** BLUE **/
+/** GREEN **/
+/** WHITE **/
+/** GREY **/
+/** App colors **/
+/** TABS GRADIENT **/
+/* line 5, src/styles/components/_legal.scss */
+.legal-root {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  padding: 0 1.5rem 1.5rem; }
+  /* line 11, src/styles/components/_legal.scss */
+  .legal-root .legal-content {
+    margin-bottom: -1rem;
+    width: 45.75rem; }
+    @media only screen and (max-width: 768px) {
+      /* line 11, src/styles/components/_legal.scss */
+      .legal-root .legal-content {
+        width: 100%; } }
+    /* line 17, src/styles/components/_legal.scss */
+    .legal-root .legal-content .legal-header {
+      margin-top: 2rem;
+      margin-bottom: 1.25rem;
+      color: #e0e0e0; }
+
+/* line 25, src/styles/components/_legal.scss */
+.legal-card-link {
+  color: black; }
+
+/* line 28, src/styles/components/_legal.scss */
+.legal-card {
+  display: flex;
+  flex-direction: row;
+  margin: -0.75rem 0;
+  width: 100%; }
+  @media only screen and (max-width: 768px) {
+    /* line 28, src/styles/components/_legal.scss */
+    .legal-card {
+      width: 100%; } }
+  /* line 36, src/styles/components/_legal.scss */
+  .legal-card .legal-card-content {
+    display: flex;
+    flex-direction: row; }
+    /* line 39, src/styles/components/_legal.scss */
+    .legal-card .legal-card-content .legal-card-content-icon {
+      margin: 0.5rem 0; }
+    /* line 42, src/styles/components/_legal.scss */
+    .legal-card .legal-card-content .legal-card-content-title {
+      margin: 0 1rem;
+      align-self: center; }
+
+/* line 50, src/styles/components/_legal.scss */
+.legal-view-root {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  padding: 1rem 0;
+  margin-top: 1.5rem; }
+  /* line 57, src/styles/components/_legal.scss */
+  .legal-view-root .legal-view-content {
+    width: 45.75rem; }
+    @media only screen and (max-width: 768px) {
+      /* line 57, src/styles/components/_legal.scss */
+      .legal-view-root .legal-view-content {
+        width: 100%; } }
+    /* line 62, src/styles/components/_legal.scss */
+    .legal-view-root .legal-view-content .legal-content-detail {
+      padding-bottom: 0.6rem; }
+      /* line 64, src/styles/components/_legal.scss */
+      .legal-view-root .legal-view-content .legal-content-detail .text-bold {
+        font-weight: bold; }
+      /* line 67, src/styles/components/_legal.scss */
+      .legal-view-root .legal-view-content .legal-content-detail .text-underline {
+        text-decoration: underline; }
+      /* line 70, src/styles/components/_legal.scss */
+      .legal-view-root .legal-view-content .legal-content-detail .spaceline {
+        height: 0.6rem;
+        display: block; }
+
 /** BLACK **/
 /** TEXT COLOR **/
 /** RED **/
@@ -2802,7 +2931,7 @@ p {
     text-align: left;
     max-width: 10.625rem; }
 
-/* line 27, src/styles/index.scss */
+/* line 28, src/styles/index.scss */
 :root {
   --blue: #58FFFF;
   --blue40: #58FFFF40;
@@ -2836,10 +2965,10 @@ p {
   --gasColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(4, 106, 88, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #45d1b8;
   --waterColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(2, 93, 174, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #3a98ec; }
 
-/* line 61, src/styles/index.scss */
+/* line 62, src/styles/index.scss */
 .application {
   overflow-x: hidden; }
   @media only screen and (max-width: 768px) {
-    /* line 61, src/styles/index.scss */
+    /* line 62, src/styles/index.scss */
     .application {
       min-height: 100vh; } }
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 79e0b9103d483cb5de60521f71f4276d6130e4f0..0545d607d34b96ae573444bcbd8e8eae554f9bfe 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -21,6 +21,7 @@
 @import 'components/ecogesture';
 @import 'components/modal';
 @import 'components/faq';
+@import 'components/legal';
 @import 'components/splash';
 @import 'components/auth';