瀏覽代碼

vue mobile home

Maha Bouchiba 2 年之前
父節點
當前提交
7172e0c1f2
共有 3 個文件被更改,包括 775 次插入162 次删除
  1. 2 3
      components/Home/Promotion.vue
  2. 412 159
      components/Home/Solution.vue
  3. 361 0
      pages/test.vue

+ 2 - 3
components/Home/Promotion.vue

@@ -191,13 +191,12 @@ const zoomOut = () => {
 }
 
 .subtitle {
+  font-size: 1.5rem;
+  line-height: 1rem;
   margin-top: 1rem;
   color: #c1eff0;
   text-align: center;
-  font-size: 12px;
   font-family: "Barlow";
-  font-weight: 600;
-  line-height: 16px;
   letter-spacing: 2.16px;
   text-transform: uppercase;
 }

+ 412 - 159
components/Home/Solution.vue

@@ -4,28 +4,31 @@
       <v-icon size="8" class="fa-solid fa-circle icon-title"></v-icon>
       <p class="text-center solution-subtitle">3 solutions</p>
     </div>
-    <h3 class="text-center title">
+    <h3
+      class="text-center title"
+      :style="smAndDown ? '' : 'margin-bottom: 3rem'"
+    >
       Trouvez la solution <br />
       faite pour vous
     </h3>
 
-    <v-row>
-      <v-col cols="3" class="col-info">
+    <v-row v-if="!smAndDown">
+      <v-col
+        cols="4"
+        class="col-info"
+        v-for="(solution, index) in solutions"
+        :key="index"
+      >
+      <div class="opentalent-container">
         <small class="opentalent-small">Opentalent</small>
-        <h2 class="logiciel-name">Artist</h2>
+        <h2 class="logiciel-name">{{ solution.name }}</h2>
         <hr class="bar" />
-        <p class="description-logiciel">
-          Orchestre, chorales, compagnies de danse, théâtre et cirque
-        </p>
+        <p class="description-logiciel">{{ solution.description }}</p>
 
-        <nuxt-link to="/logiciels/artist">
+        <nuxt-link :to="solution.link">
           <v-row>
-            <div class="artist-image">
-              <v-img
-                src="/images/OpenTalent_LogoNoir_Jaune_white.png"
-                class="logo"
-              >
-              </v-img>
+            <div :class="solution.class">
+              <v-img :src="solution.image" class="logo"></v-img>
             </div>
           </v-row>
         </nuxt-link>
@@ -33,154 +36,426 @@
         <v-row>
           <v-col cols="6">
             <ul class="list-solutions">
-              <li class="details-solution">Gestion des membres</li>
-              <li class="details-solution">Agenda</li>
-              <li class="details-solution">Matériel & médiathèque</li>
-              <li class="details-solution">Export de données</li>
+              <li
+                class="details-solution"
+                v-for="(sol, i) in solution.solutions.slice(0, 4)"
+                :key="'sol-' + i"
+              >
+                {{ sol }}
+              </li>
             </ul>
           </v-col>
-
           <v-col cols="6">
             <ul class="list-solutions">
-              <li class="details-solution">Communication</li>
-              <li class="details-solution">Statistiques</li>
-              <li class="details-solution">Site internet</li>
-              <li class="details-solution">Partage de données en réseau</li>
+              <li
+                class="details-solution"
+                v-for="(sol, i) in solution.solutions.slice(4)"
+                :key="'sol-' + i"
+              >
+                {{ sol }}
+              </li>
             </ul>
           </v-col>
         </v-row>
+      </div>
       </v-col>
+    </v-row>
 
-      <v-col cols="3" class="col-info">
-        <small class="opentalent-small">Opentalent</small>
-        <h2 class="logiciel-name">Manager</h2>
-        <hr class="bar" />
-        <p class="description-logiciel">
-          Fédérations, confédérations et collectivités
-        </p>
+    <div v-if="smAndDown">
+      <div class="d-flex justify-center align-center">
+        <div class="carousel-button " @click="goPrevious">
+          <i class="fas fa-chevron-left"></i>
+        </div>
+        <div class="carousel-button ml-6" @click="goNext">
+          <i class="fas fa-chevron-right"></i>
+        </div>
+      </div>
+      <Carousel
+        :itemsToShow="1.5"
+        :itemsToScroll="1"
+        v-slot="{ carousel: _carousel }"
+        ref="carousel"
+      >
+        <Slide v-for="(solution, index) in solutions" :key="index">
+          <v-col cols="12" class="col-info-sm">
+            <div class="opentalent-container">
+              <small class="opentalent-small-sm">Opentalent</small>
 
-        <v-row>
-          <nuxt-link to="/logiciels/manager">
-            <v-row>
-              <div class="manager-image">
-                <v-img
-                  src="/images/OpenTalent_LogoNoir_rouge_manager_white.png"
-                  class="logo"
-                >
-                </v-img>
-                <div class="overlay">
-                  <button class="discover-button">Découvrir</button>
-                </div>
-              </div>
-            </v-row>
-          </nuxt-link>
-        </v-row>
+              <h2 class="logiciel-name-sm">{{ solution.name }}</h2>
+              <hr class="bar-sm" />
+              <p class="description-logiciel-sm">
+                {{ solution.description }}
+              </p>
 
-        <v-row>
-          <v-col cols="6">
-            <ul class="list-solutions">
-              <li class="details-solution">Gestion des membres</li>
-              <li class="details-solution">Agenda du réseau</li>
-              <li class="details-solution">Matériel & médiathèque</li>
-              <li class="details-solution">Gestion administrative</li>
-            </ul>
+              <nuxt-link :to="solution.link">
+                <v-row>
+                  <div :class="solution.class">
+                    <v-img :src="solution.image" class="logo-sm"></v-img>
+                  </div>
+                </v-row>
+              </nuxt-link>
+              <v-row>
+                <v-col cols="6">
+                  <ul class="list-solutions-sm">
+                    <li
+                      class="details-solution-sm"
+                      v-for="(sol, i) in solution.solutions.slice(0, 4)"
+                      :key="'sol-' + i"
+                    >
+                      {{ sol }}
+                    </li>
+                  </ul>
+                </v-col>
+                <v-col cols="6" class="solution-column">
+                  <ul class="list-solutions-sm">
+                    <li
+                      class="details-solution-sm"
+                      v-for="(sol, i) in solution.solutions.slice(4)"
+                      :key="'sol-' + i"
+                    >
+                      {{ sol }}
+                    </li>
+                  </ul>
+                </v-col>
+              </v-row>
+            </div>
           </v-col>
+        </Slide>
+      </Carousel>
+    </div>
+  </LayoutContainer>
+</template>
 
-          <v-col cols="6">
-            <ul class="list-solutions">
-              <li class="details-solution">Statistiques réseau</li>
-              <li class="details-solution">Cotisations</li>
-              <li class="details-solution">Site internet</li>
-              <li class="details-solution">Communication</li>
-            </ul>
-          </v-col>
-        </v-row>
-      </v-col>
+<script setup>
+import { Carousel, Slide } from "vue3-carousel";
+import "vue3-carousel/dist/carousel.css";
+import { useDisplay } from "vuetify";
+const { lgAndUp, smAndDown } = useDisplay();
+const carousel = ref(null);
 
-      <v-col cols="3" class="col-info">
-        <small class="opentalent-small">Opentalent</small>
-        <h2 class="logiciel-name">School</h2>
-        <hr class="bar" />
-        <p class="description-logiciel">
-          Petits et grands établissements d'enseignement artistique
-        </p>
+const goPrevious = () => {
+  carousel.value.prev();
+};
 
-        <v-row>
-          <nuxt-link to="/logiciels/school">
-            <v-row>
-              <div class="school-image">
-                <v-img src="/images/logo_school_white.png" class="logo">
-                </v-img>
-              </div>
-            </v-row>
-          </nuxt-link>
-        </v-row>
+const goNext = () => {
+  carousel.value.next();
+};
+const solutions = [
+  {
+    name: "Artist",
+    description: "Orchestre, chorales, compagnies de danse, théâtre et cirque",
+    image: "/images/OpenTalent_LogoNoir_Jaune_white.png",
+    class: "artist-image",
+    solutions: [
+      "Gestion des membres",
+      "Agenda",
+      "Matériel & médiathèque",
+      "Export de données",
+      "Communication",
+      "Statistiques",
+      "Site internet",
+      "Partage de données en réseau",
+    ],
+  },
+  {
+    name: "School",
+    description: "Petits et grands établissements d'enseignement artistique",
+    image: "/images/logo_school_white.png",
+    link: "/logiciels/school",
+    class: "school-image",
+    solutions: [
+      "Gestion des personnes",
+      "Préinscription en ligne*",
+      "Agenda",
+      "Suivi pédagogique",
+      "Règlements",
+      "Communication",
+      "Site internet",
+      "Statistiques",
+    ],
+  },
+  {
+    name: "Manager",
+    description: "Fédérations, confédérations et collectivités",
+    image: "/images/OpenTalent_LogoNoir_rouge_manager_white.png",
+    link: "/logiciels/manager",
+    class: "manager-image",
+    solutions: [
+      "Gestion des personnes",
+      "Agenda",
+      "Suivi pédagogique",
+      "Règlements",
+      "Communication",
+      "Site internet",
+      "Statistiques",
+    ],
+  },
+];
+onMounted(() => {
+  setTimeout(() => goNext(), 0); 
+});
 
-        <v-row>
-          <v-col cols="6">
-            <ul class="list-solutions">
-              <li class="details-solution">Gestion des personnes</li>
-              <li class="details-solution">Préinscription en ligne*</li>
-              <li class="details-solution">Agenda</li>
-              <li class="details-solution">Suivi pédagogique</li>
-            </ul>
-          </v-col>
-
-          <v-col cols="6">
-            <ul class="list-solutions">
-              <li class="details-solution">Règlements</li>
-              <li class="details-solution">Communication</li>
-              <li class="details-solution">Site internet</li>
-              <li class="details-solution">Statistiques</li>
-            </ul>
-          </v-col>
-        </v-row>
-      </v-col>
-    </v-row>
-  </LayoutContainer>
-</template>
+</script>
 
 <style scoped>
-.icon-title {
+.solution-subtitle,
+.title {
+  font-family: "Barlow";
+  font-style: normal;
+}
+
+.solution-subtitle {
+  font-size: 1.5rem;
+  line-height: 1rem;
   margin-top: 1rem;
+  margin-bottom: 2rem;
+  color: #c1eff0;
+  text-align: center;
+  font-family: "Barlow";
+  letter-spacing: 2.16px;
+  text-transform: uppercase;
+}
+.title {
+  font-size: 2rem;
+  line-height: 42px;
+  text-align: center;
   color: #ffffff;
 }
-.discover-button {
+
+.carousel-button {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 40px;
+  height: 40px;
   background-color: transparent;
-  border: none;
-  color: white;
-  font-family: "Barlow";
-  font-size: 1.2rem;
-  font-weight: 600;
-  padding: 1rem 2rem;
-  border-radius: 2rem;
+  border: 2px solid #fff;
   cursor: pointer;
+  margin-right: 1rem;
+  margin-top: 4rem;
 }
-.logo {
-  width: 5rem;
+
+.carousel-button i {
+  color: #000000;
+}
+.solution-column {
+  margin-left: -.5rem;
+}
+.logo-sm {
+  width: 8rem;
   height: 4rem;
   margin-top: 13rem;
-  margin-left: 13rem;
+  margin-left: 0.5rem;
+}
+.logo {
+  width: 8rem;
+  height: 4rem;
+  margin-top: 15rem;
+}
+
+.artist-image-sm {
+  position: relative;
+  background: url(/images/solutions/artist.jpg);
+  background-size: cover;
+  background-position: center;
+  border-radius: 0px 0px 10px 10px;
+  width: 19rem;
+  height: 20rem;
+  margin-top: 4rem;
+  margin-left: 1rem;
+}
+
+.artist-image::before {
+  content: "";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
+  border-radius: 0px 0px 10px 10px;
+  opacity: 0;
+  transition: opacity 0.3s;
+}
+
+.artist-image:hover::before {
+  opacity: 1;
+  cursor: pointer;
+}
+.manager-image-sm {
+  position: relative;
+  background: url(/images/solutions/manager.png);
+  background-size: cover;
+  background-position: center;
+  border-radius: 0px 0px 10px 10px;
+  width: 19rem;
+  height: 20rem;
+  margin-top: 4rem;
+  margin-left: 1rem;
+}
+
+.manager-image::before {
+  content: "";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
+  border-radius: 0px 0px 10px 10px;
+  opacity: 0;
+  transition: opacity 0.3s;
+}
+.carousel-button {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 4rem;
+  height: 4rem;
+  background-color: transparent;
+  border: 2px solid #fff;
+  cursor: pointer;
+  margin-right: 1rem;
+  margin-top: 2rem;
+}
+
+.carousel-button i {
+  color: #fff;
+}
+.manager-image:hover::before {
+  opacity: 1;
+  cursor: pointer;
+}
+
+.school-image-sm {
+  position: relative;
+  background: url(/images/solutions/school.jpg);
+  background-size: cover;
+  background-position: center;
+  border-radius: 0px 0px 10px 10px;
+  width: 19rem;
+  height: 20rem;
+  margin-top: 4rem;
+  margin-left: 1rem;
+}
+
+.school-image::before {
+  content: "";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
+  border-radius: 0px 0px 10px 10px;
+  opacity: 0;
+  transition: opacity 0.3s;
+}
+
+.school-image:hover::before {
+  opacity: 1;
+  cursor: pointer;
+}
+
+
+.solution-img {
+  width: 15rem;
+  height: 15rem;
+  object-fit: cover;
+  margin-top: 2rem;
+}
+
+.description-logiciel {
+  font-family: "Barlow";
+  font-style: normal;
+  font-size: 0.9rem;
+  line-height: 0.9rem;
+  margin-top: 1rem;
+  color: #eff9fb;
+  width: 20rem;
+}
+
+.description-logiciel-sm {
+  font-family: "Barlow";
+  font-style: normal;
+  font-size: 1.2rem;
+  color : #eff9fb;
+  line-height: 1.3rem;
+  margin-top: 1rem;
+  width: 20rem;
+  margin-right: auto;
+  text-align: left;
+}
+
+.logiciel-name-sm {
+  font-family: "Barlow";
+  font-style: normal;
+  font-weight: 400;
+  font-size: 30px;
+  line-height: 2rem;
+  color: #c3e5e7;
+  margin-bottom: 1rem;
+  margin-right: auto;
+  text-align: left;
+}
+
+.opentalent-small-sm {
+  margin-right: auto;
+  text-align: left;
+  color: #fff;
+}
+
+.opentalent-container {
+  text-align: left;
+  margin-left: 1rem;
+}
+.icon-title {
+  margin-top: 1rem;
+  color: #ffffff;
 }
 
 .list-solutions {
   margin-top: 0.9rem;
-  font-size: 0.5rem;
 }
 
 .details-solution {
-  font-size: 0.5rem;
+  font-size: 1.3rem;
+  margin-bottom: .9rem;
   width: 10rem;
   margin-left: 1rem;
   font-family: "Barlow";
   font-style: normal;
-  font-size: 0.7rem;
+  line-height: 18px;
+  color: #091d20;
+}
+.details-solution-sm {
+  margin-top: 0.9rem;
+  width: 9rem;
+  margin-left: 1rem;
+  font-family: "Barlow";
+  font-style: normal;
   line-height: 18px;
   color: #091d20;
 }
 
+.list-solutions {
+  margin-top: 0.9rem;
+  font-size: 0.5rem;
+}
+
+.list-solutions-sm {
+  margin-top: 1rem;
+  font-size: 1.3rem;
+}
 .bar {
   color: #c3e5e7;
+  width: 20rem;
+
+}
+
+.bar-sm {
+  color: #c3e5e7;
+  width: 20rem;
 }
 .artist-image {
   position: relative;
@@ -188,8 +463,8 @@
   background-size: cover;
   background-position: center;
   border-radius: 0px 0px 10px 10px;
-  width: 19rem;
-  height: 17rem;
+  width: 21rem;
+  height: 20rem;
   margin-top: 2rem;
   margin-left: 0.9rem;
 }
@@ -217,10 +492,10 @@
   background-size: cover;
   background-position: center;
   border-radius: 0px 0px 10px 10px;
-  width: 19rem;
-  height: 17rem;
-  margin-top: 4rem;
-  margin-left: 2rem;
+  width: 21rem;
+  height: 20rem;
+  margin-top: 2rem;
+  margin-left: 0.9rem;
 }
 
 .manager-image::before {
@@ -247,10 +522,10 @@
   background-size: cover;
   background-position: center;
   border-radius: 0px 0px 10px 10px;
-  width: 19rem;
-  height: 17rem;
-  margin-top: 4rem;
-  margin-left: 1.5rem;
+  width: 21rem;
+  height: 20rem;
+  margin-top: 2rem;
+  margin-left: 0.9rem;
 }
 
 .school-image::before {
@@ -271,13 +546,10 @@
   cursor: pointer;
 }
 
-.col-info:first-child {
-  margin-left: 9rem;
-}
-
-.col-info {
-  width: 4rem;
-  margin-left: 2rem;
+.col-info-sm {
+  width: 20rem;
+  margin-left: auto;
+  margin-right: auto;
 }
 .solution-img {
   width: 15rem;
@@ -289,8 +561,8 @@
 .description-logiciel {
   font-family: "Barlow";
   font-style: normal;
-  font-size: 0.9rem;
-  line-height: 0.9rem;
+  font-size: 1.3rem;
+  line-height: 1.5rem;
   margin-top: 1rem;
   color: #eff9fb;
 }
@@ -315,30 +587,11 @@
   text-transform: uppercase;
   color: #ffffff;
 }
-.title {
-  font-family: "Barlow";
-  font-style: normal;
-  font-weight: 00;
-  font-size: 2rem;
-  line-height: 42px;
-  text-align: center;
-  color: #ffffff;
-  margin-bottom: 3rem;
-}
 
-.solution-subtitle {
-  font-family: "Barlow";
-  font-style: normal;
-  font-size: 15px;
-  line-height: 1rem;
-  margin-top: 0.5rem;
-  margin-bottom: 1rem;
-  color: #c1eff0;
-}
 .container {
   background: #0e2d32;
-  margin-bottom: 20rem;
-  height: 30rem;
+  margin-bottom: 29rem;
+  height: 35rem;
   position: relative;
 }
 </style>

+ 361 - 0
pages/test.vue

@@ -0,0 +1,361 @@
+<template>
+  <div class="d-flex justify-center align-center flex-column">
+    <v-icon size="8" class="fa-solid fa-circle icon-title"></v-icon>
+    <p class="text-center solution-subtitle">3 solutions</p>
+  </div>
+  <h3 class="text-center title ">
+    Trouvez la solution <br />
+    faite pour vous
+  </h3>
+
+
+
+  <div v-if="smAndDown">
+    <div class="d-flex justify-center align-center mb-6">
+          <div class="carousel-button" @click="goPrevious">
+            <i class="fas fa-chevron-left"></i>
+          </div>
+          <div class="carousel-button" @click="goNext">
+            <i class="fas fa-chevron-right"></i>
+          </div>
+        </div>
+    <Carousel
+      :itemsToShow="1.1"
+      :itemsToScroll="1"
+      v-slot="{ carousel: _carousel }"
+      ref="carousel"
+    >
+      <Slide
+        v-for="(solution, index) in solutions"
+        :key="index"
+      >
+        <v-col cols="12" class="col-info-sm">
+          <div class="opentalent-container">
+            <small class="opentalent-small-sm">Opentalent</small>
+
+            <h2 class="logiciel-name-sm">{{ solution.name }}</h2>
+            <hr class="bar-sm" />
+            <p class="description-logiciel-sm">
+              {{ solution.description }}
+            </p>
+
+            <nuxt-link :to="solution.link">
+              <v-row>
+                <div :class="solution.class">
+                  <v-img :src="solution.image" class="logo-sm"></v-img>
+                </div>
+              </v-row>
+            </nuxt-link>
+            <v-row>
+              <v-col cols="6">
+                <ul class="list-solutions-sm">
+                  <li
+                    class="details-solution-sm"
+                    v-for="(sol, i) in solution.solutions.slice(0, 4)"
+                    :key="'sol-' + i"
+                  >
+                    {{ sol }}
+                  </li>
+                </ul>
+              </v-col>
+              <v-col cols="6" class="solution-column">
+                <ul class="list-solutions-sm" >
+                  <li
+                    class="details-solution-sm"
+                    v-for="(sol, i) in solution.solutions.slice(4)"
+                    :key="'sol-' + i"
+                  >
+                    {{ sol }}
+                  </li>
+                </ul>
+              </v-col>
+            </v-row>
+          </div>
+        </v-col>
+      </Slide>
+    </Carousel>
+  </div>
+</template>
+
+<script setup>
+import { Carousel, Slide } from "vue3-carousel";
+import "vue3-carousel/dist/carousel.css";
+import { useDisplay } from "vuetify";
+const { smAndDown } = useDisplay();
+const carousel = ref(null);
+
+const goPrevious = () => {
+  carousel.value.prev();
+};
+
+const goNext = () => {
+  carousel.value.next();
+};
+
+const solutions = [
+  {
+    name: "Artist",
+    description: "Orchestre, chorales, compagnies de danse, théâtre et cirque",
+    image: "/images/OpenTalent_LogoNoir_Jaune_white.png",
+    class: "artist-image-sm",
+    solutions: [
+      "Gestion des membres",
+      "Agenda",
+      "Matériel & médiathèque",
+      "Export de données",
+      "Communication",
+      "Statistiques",
+      "Site internet",
+      "Partage de données en réseau",
+    ],
+  },
+  {
+    name: "School",
+    description: "Petits et grands établissements d'enseignement artistique",
+    image: "/images/logo_school_white.png",
+    link: "/logiciels/school",
+    class: "school-image-sm",
+    solutions: [
+      "Gestion des personnes",
+      "Préinscription en ligne*",
+      "Agenda",
+      "Suivi pédagogique",
+      "Règlements",
+      "Communication",
+      "Site internet",
+      "Statistiques",
+    ],
+  },
+  {
+    name: "Manager",
+    description: "Fédérations, confédérations et collectivités",
+    image: "/images/OpenTalent_LogoNoir_rouge_manager_white.png",
+    link: "/logiciels/manager",
+    class: "manager-image-sm",
+    solutions: [
+      "Gestion des personnes",
+      "Agenda",
+      "Suivi pédagogique",
+      "Règlements",
+      "Communication",
+      "Site internet",
+      "Statistiques",
+    ],
+  },
+];
+</script>
+
+<style scoped>
+.carousel-button {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 40px;
+  height: 40px;
+  background-color: transparent;
+  border: 2px solid #000000;
+  cursor: pointer;
+  margin-right: 1rem;
+  margin-top: 4rem;
+}
+
+.carousel-button i {
+  color: #000000;
+}
+.solution-column {
+  margin-left: -3rem;
+}
+.logo-sm {
+  width: 8rem;
+  height: 4rem;
+  margin-top: 15rem;
+  margin-left: .5rem;
+}
+
+.list-solutions {
+  margin-top: 0.9rem;
+  font-size: 0.5rem;
+}
+
+.list-solutions-sm {
+  margin-top: 1rem;
+  font-size: 1rem;
+  
+}
+
+.details-solution-sm {
+  font-size: .9rem;
+  margin-top: .2rem;
+  width: 9rem;
+  margin-left: 1rem;
+  font-family: "Barlow";
+  font-style: normal;
+  line-height: 18px;
+  color: #091d20;
+}
+
+.bar-sm {
+  color: #c3e5e7;
+  width: 20rem;
+}
+.artist-image-sm {
+  position: relative;
+  background: url(/images/solutions/artist.jpg);
+  background-size: cover;
+  background-position: center;
+  border-radius: 0px 0px 10px 10px;
+  width: 19rem;
+  height: 20rem;
+  margin-top: 4rem;
+  margin-left: 1rem;
+}
+
+.artist-image::before {
+  content: "";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
+  border-radius: 0px 0px 10px 10px;
+  opacity: 0;
+  transition: opacity 0.3s;
+}
+
+.artist-image:hover::before {
+  opacity: 1;
+  cursor: pointer;
+}
+.manager-image-sm {
+  position: relative;
+  background: url(/images/solutions/manager.png);
+  background-size: cover;
+  background-position: center;
+  border-radius: 0px 0px 10px 10px;
+  width: 19rem;
+  height: 20rem;
+  margin-top: 4rem;
+  margin-left: 1rem;
+}
+
+.manager-image::before {
+  content: "";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
+  border-radius: 0px 0px 10px 10px;
+  opacity: 0;
+  transition: opacity 0.3s;
+}
+.carousel-button {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 40px;
+  height: 40px;
+  background-color: transparent;
+  border: 2px solid #000000;
+  cursor: pointer;
+  margin-right: 1rem;
+  margin-top: 4rem;
+}
+
+.carousel-button i {
+  color: #000000;
+}
+.manager-image:hover::before {
+  opacity: 1;
+  cursor: pointer;
+}
+
+.school-image-sm {
+  position: relative;
+  background: url(/images/solutions/school.jpg);
+  background-size: cover;
+  background-position: center;
+  border-radius: 0px 0px 10px 10px;
+  width: 19rem;
+  height: 20rem;
+  margin-top: 4rem;
+  margin-left: 1rem;
+}
+
+.school-image::before {
+  content: "";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
+  border-radius: 0px 0px 10px 10px;
+  opacity: 0;
+  transition: opacity 0.3s;
+}
+
+.school-image:hover::before {
+  opacity: 1;
+  cursor: pointer;
+}
+
+.col-info:first-child {
+  margin-left: 9rem;
+}
+
+.col-info {
+  width: 4rem;
+  margin-left: 2rem;
+}
+
+.solution-img {
+  width: 15rem;
+  height: 15rem;
+  object-fit: cover;
+  margin-top: 2rem;
+}
+
+.description-logiciel {
+  font-family: "Barlow";
+  font-style: normal;
+  font-size: 0.9rem;
+  line-height: 0.9rem;
+  margin-top: 1rem;
+  color: #eff9fb;
+}
+
+.description-logiciel-sm {
+  font-family: "Barlow";
+  font-style: normal;
+  font-size: 0.9rem;
+  line-height: 0.9rem;
+  margin-top: 1rem;
+  width: 13rem;
+  margin-right: auto;
+  text-align: left;
+}
+
+.logiciel-name-sm {
+  font-family: "Barlow";
+  font-style: normal;
+  font-weight: 400;
+  font-size: 30px;
+  line-height: 2rem;
+  color: #c3e5e7;
+  margin-bottom: 1rem;
+  margin-right: auto;
+  text-align: left;
+}
+
+.opentalent-small-sm {
+  margin-right: auto;
+  text-align: left;
+}
+
+.opentalent-container {
+  text-align: left;
+}
+</style>