/* Import de la font */
@font-face {
   font-family: 'Montserrat';
   src: url('../font/Montserrat-Regular.ttf');
   font-weight: normal;
   font-style: normal;
}

@font-face {
   font-family: 'Montserrat';
   src: url('../font/Montserrat-Medium.ttf');
   font-weight: 500;
   font-style: normal;
}

@font-face {
   font-family: 'Montserrat';
   src: url('../font/Montserrat-SemiBold.ttf');
   font-weight: 600;
   font-style: normal;
}

@font-face {
   font-family: 'Montserrat';
   src: url('../font/Montserrat-Bold.ttf');
   font-weight: 700;
   font-style: normal;
}

@font-face {
   font-family: 'Montserrat';
   src: url('../font/Montserrat-Light.ttf');
   font-weight: 300;
   font-style: normal;
}

@font-face {
   font-family: 'Montserrat';
   src: url('../font/Montserrat-ExtraBold.ttf');
   font-weight: 800;
   font-style: normal;
}

/* Reset de la page */
* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
   text-decoration: none;
   font-family: 'Montserrat';
   list-style: none;
   font-weight: 500;
}

/* Variable */
:root {
   --primary-color: #6829e5;
   --text-color: #000;
}

/* Navbar menu */
.nav-bar {
   position: fixed;
   top: 0;
   width: 100%;
   background-color: #fff;
   display: flex;
   align-items: center;
   justify-content: space-evenly;
   padding-left: 20px;
   padding-right: 50px;
   z-index: 1000;
}

.nav-bar.blur {
   backdrop-filter: blur(10px); /* effet de flou */
   background-color: rgba(255, 255, 255, 0.8); /* fond semi-transparent */
   transition: backdrop-filter 0.3s ease, background-color 0.3s ease;
}


.nav-bar img {
   height: 150px;
   width: 150px;
}

.small-menu {
   width: 30px;
   height: 21px;
   display: none;
   flex-direction: column;
   justify-content: space-between;
   cursor: pointer;
   z-index: 10;
}

.small-menu span {
   display: block;
   height: 3px;
   width: 100%;
   background-color: var(--primary-color);
   margin: 2px 0;
   border-radius: 3px;
   transition:  0.3s ease;
}

.small-menu.active span:nth-child(1) {
   transform: rotate(45deg) translate(5px, 5px);
}

.small-menu.active span:nth-child(2) {
   opacity: 0;
}

.small-menu.active span:nth-child(3) {
   transform: rotate(-45deg) translate(5px, -5px);
}

.nav-links {
   display: flex;
   gap: 1rem;
   transition: all 0.3s ease-in-out;
}

/* La page actuelle apparait en violet */
.link-focus {
   color: var(--primary-color) !important;
}

.nav-links a {
   color: var(--text-color);
}

.nav-links a:hover {
   color: var(--primary-color);
}

/* Header */
.header-content {
   /* background-color: var(--primary-color); */
   display: flex;
   margin-top: 100px;
   padding: 50px;
}

.heading-title {
   display: flex;
   flex-direction: column;
   justify-content: space-evenly;
   padding-left: 100px;
}

.header-content h1 {
   font-size: 54px;
   font-weight: 700;
   letter-spacing: -3px;
   color: var(--primary-color);
}

.header-content p {
   font-size: 15px;
}

.header-content img {
   position: relative;
   bottom: -53.5px;
   right: 100px;
}

.header-content .btn {
   background-color: var(--primary-color);
   color: #fff;
   width: 150px;
   display: flex;
   justify-content: center;
   padding: 10px;
   border-radius: 5px;
   font-weight: 500;
   transition: 0.3s;
}

/* presentation module */
.module-presentation {
   background-color: var(--primary-color);
   display: flex;
   flex-direction: column;
   gap: 10px;
   padding: 20px;
}

.molude-resume {
   display: flex;
   justify-content: space-around;
   color: #fff;
   padding-top: 10px;
}

.module-presentation p {
   align-self: center;
   font-size: 14px;
}

/* service presentationcontainer */
.main-service-presentation-container {
   display: flex;
   align-items: center;
   padding-left: 100px;
   padding-bottom: 100px;
   margin-top: 10%;
}

.main-service-presentation-container h2 span {
   color: var(--primary-color);
   font-weight: 600;
}

.main-service-presentation-container h2 {
   width: 70%;
   font-weight: 600;
}

/* image effect style */
.image-container {
   display: flex;
   padding-top: 100px;
}

.image-container div {
   background-color: var(--primary-color);
   border-radius: 9px;
}

.img-2 {
   height: 400px;
   border-radius: 9px;
}

.img-1,
.img-3 {
   border: 4px solid #fff;
   border-radius: 10px;
}

.img-1 {
   height: 200px;
   position: relative;
   left: 50px;
   bottom: 50px;
}

.img-3 {
   height: 150px;
   width: 250px;
   position: relative;
   right: 100px;
   top: 300px;
}

/*service title container*/
.service-title-container {
   display: flex;
   flex-direction: column;
   padding-top: 90px;
   gap: 20px;
}

.title-items {
   display: flex;
   gap: 10px;
}

.title-items img {
   height: 30px;
}

.title-items h3 {
   font-weight: 600;
   letter-spacing: -1px;
   margin-bottom: 10px;
}

.title-items P {
   width: 70%;
   letter-spacing: -0.2px;
}

/* style de la why section */
.why-section {
   background-color: var(--primary-color);
   margin-top: 10%;
   margin-bottom: 10%;
}

.why-section .bannierre {
   background-image: url(../images/bg.jpg);
   background-size: cover;
   display: flex;
   padding-top: 100px;
}

.bannierre div {
   display: flex;
   flex-direction: column;
   gap: 5rem;
   padding-top: 10px;
   padding-right: 150px;
}

.bannierre div h3 {
   color: #fff;
   font-size: 54px;
   font-weight: 600;
}

.bannierre div p {
   color: #fff;
}

/* parcours pour obtenir nos services */
.map-section {
   margin-bottom: 10%;
}

.map-section h3 {
   font-size: 24px;
   margin-left: 170px;
   margin-bottom: 50px;
}

.map-section h3 span {
   color: var(--primary-color);
}

.vertical-roadmap {
   display: flex;
   margin-top: 20px;
   margin-left: 200px;
   position: relative;
}

.map-item {
   position: relative;
   margin-bottom: 4rem; /* plus d'espace pour que la ligne soit visible */
   padding-left: 2rem;
}

.map-item-1::after {
   content: "";
   position: absolute;
   left: -1.05rem; /* aligné au centre du cercle */
   top: 2.5rem; /* commence à la base du cercle (2.5rem = height du cercle) */
   width: 2px;
   height: calc(100% + 1.5rem); /* va jusqu'au cercle suivant */
   background-color: var(--primary-color);
   z-index: 0;
}

.map-item-2::after {
   content: "";
   position: absolute;
   left: -1.05rem; /* aligné au centre du cercle */
   top: 2.5rem; /* commence à la base du cercle (2.5rem = height du cercle) */
   width: 2px;
   height: calc(100% + 1.5rem); /* va jusqu'au cercle suivant */
   background-color: var(--primary-color);
   z-index: 0;
}

.map-item-3::after {
   content: "";
   position: absolute;
   left: -1.05rem; /* aligné au centre du cercle */
   top: 2.5rem; /* commence à la base du cercle (2.5rem = height du cercle) */
   width: 2px;
   height: calc(100% + 1.5rem); /* va jusqu'au cercle suivant */
   background-color: var(--primary-color);
   z-index: 0;
}

.map-item-4::after {
   content: "";
   position: absolute;
   left: -1.05rem; /* aligné au centre du cercle */
   top: 2.5rem; /* commence à la base du cercle (2.5rem = height du cercle) */
   width: 2px;
   height: calc(100% + 1.5rem); /* va jusqu'au cercle suivant */
   background-color: var(--primary-color);
   z-index: 0;
}

.circle {
   position: absolute;
   left: -2.3rem;
   top: 0;
   width: 2.5rem;
   height: 2.5rem;
   background: var(--primary-color);
   color: white;
   border-radius: 50%;
   text-align: center;
   line-height: 2.5rem;
   font-weight: bold;
   font-size: 1.2rem;
   box-shadow: 0 0 0 4px white;
   z-index: 1;
}

.content {
   padding: 1rem;
}

.content h4 {
   margin-top: 0;
   margin-bottom: 5px;
   color: #2c3e50;
   font-weight: 600;
}

.content ul {
   padding-left: 1.2rem;
}

.content a {
   color: var(--primary-color);
   text-decoration: underline;
}

.map-image img {
   height: 825px;
}

.btn-map-container {
   display: flex;
   justify-content: space-between;
   margin-top: 50px;
}

.btn-map {
   width: 250px;
   display: flex;
   justify-content: center;
   padding: 10px;
   border-radius: 5px;
}

.btn-start-map {
   background-color: var(--primary-color);
   color: #fff;
}

.btn-conatct-map {
   border: 2px solid var(--primary-color);
   color: var(--primary-color);
}

.btn-conatct-map:hover {
   background-color: rgba(104, 41, 229, 0.186);
}

/* footer style */
.site-footer {
   background-color: #0d0b1d;
   color: #cfcde7;
   padding: 3rem 1rem;
   padding-top: 150px;
   font-family: 'Segoe UI', sans-serif;
}

.footer-container {
   display: flex;
   flex-wrap: wrap;
   justify-content: space-between;
   gap: 2rem;
   max-width: 1200px;
   margin: auto;
}

.social {
   display: flex;
   gap: 20px;
}

.social div ul {
   display: flex;
   flex-direction: column;
   gap: 10px;
}

.site-footer dl dt {
   font-weight: bold;
   margin-bottom: 2rem;
}

.site-footer ul {
   list-style: none;
   padding: 0;
   margin: 0;
}

.site-footer a {
   color: #cfcde7;
   text-decoration: none;
}

.site-footer a:hover {
   text-decoration: underline;
}

.social-links ul {
   display: flex;
   gap: 1rem;
}

.newsletter {
   flex: 1;
}

.newsletter p {
   font-size: 0.9rem;
   margin-bottom: 1rem;
}

.newsletter form {
   display: flex;
   max-width: 300px;
}

.newsletter input[type="email"] {
   flex: 1;
   padding: 10px;
   width: 200px;
   border: none;
   border-radius: 4px 0 0 4px;
}

.newsletter button {
   padding: 0.5rem 1rem;
   border: none;
   background-color: #5c4dff;
   color: white;
   border-radius: 0 4px 4px 0;
   cursor: pointer;
}

.newsletter button:hover {
   background-color: #483bd4;
}

.footer-bottom {
   border-top: 1px solid #2e2b46;
   margin-top: 3rem;
   padding-top: 2rem;
   text-align: center;
}

.footer-bottom div {
   display: flex;
   gap: 20px;
   margin-left: 200px;
}

.footer-bottom h2 {
   font-size: 250px;
}

/* Responsive*/
@media (max-width: 1364px) {
   /* Header */
   .header-content {
      padding: 25px;
   }
   
   .heading-title {
      gap: 20px;
      padding-left: 25px;
   }
   
   .header-content h1 {
      font-size: 46px;
      letter-spacing: -2px;
   }

   .header-content img {
      bottom: -30px;
      left: 10px;
      z-index: 1;
   }

   /* parcours pour obtenir nos services */
   .btn-map {
      width: 200px;
      display: flex;
      justify-content: center;
      gap: 10px;
      padding: 10px;
      border-radius: 5px;
   }
}

@media (max-width: 1230px) {
      /* Header */
   .header-content {
      margin-top: 150px;
      padding: 25px;
   }
}

@media (max-width: 1180px) {
   /* Header */
   .header-content img {
      bottom: -50px;
      left: 10px;
      z-index: 1;
   }

   /* parcours pour obtenir nos services */
   .btn-map {
      width: 150px;
      display: flex;
      gap: 20px;
      padding: 10px;
      border-radius: 5px;
   }
}

@media (max-width: 1200px) {
   /* parcours pour obtenir nos services */
   .map-image img {
      display: none;
   }
}

@media (max-width: 1080px) {
   /* Header */
   .header-content img {
      bottom: -70px;
      left: 10px;
      z-index: 1;
   }

   /* service presentationcontainer */
   .main-service-presentation-container {
      flex-wrap: wrap;
      padding-left: 150px;
   }

   .footer-bottom h2 {
      font-size: 150px;
   }
}

@media (max-width: 1020px) {
   /* Header */
   .header-content {
      flex-wrap: wrap;
      margin-top: 150px;
      padding: 150px;
   }
   
   .heading-title {
      gap: 20px;
      padding-left: 25px;
   }
   
   .header-content h1 {
      font-size: 34px;
      letter-spacing: -2px;
   }
   
   .header-content img {
      bottom: -155px;
   }

   /* style de la why section */
   .bannierre img {
      display: none;
   }

   .bannierre div {
      padding-left: 50px;
      padding-right: 50px;
   }

   /* footer style */
   .footer-container {
      flex-wrap: wrap;
   }

   .social {
      flex-wrap: wrap;
   }
}

@media (max-width: 768px) {

   /* Navbar */
   .nav-bar {
      justify-content: space-between;
   }

   .small-menu {
      display: flex;
   }

   .nav-links {
      display: none;
      flex-direction: column;
      background-color: var(--primary-color);
      position: absolute;
      font-size: 34px;
      padding: 50px;
      top: 100px;
      left: 0;
      height: 1000px;
      width: 100%;
      z-index: 3;
   }

   .nav-links.show {
      display: flex;
   }

   .link-focus {
      color: #fff !important;
   }

   .nav-links a:hover {
      color: #fff;
   }

   /* Header */
   .header-content {
      flex-wrap: wrap;
      margin-top: 150px;
      padding: 25px;
   }
   
   .heading-title {
      gap: 20px;
      padding-left: 25px;
   }
   
   .header-content h1 {
      font-size: 34px;
      letter-spacing: -2px;
   }
   
   .header-content img {
      height: 200px;
      bottom: -30px;
      left: 10px;
      z-index: 1;
   }

   /* presentation module */
   .module-presentation {
      gap: 2px;
      padding: 5px;
   }

   .molude-resume h3 {
      font-size: 12px;
   }

   .module-presentation p {
      font-size: 10px;
   }

   /* service presentationcontainer */
   .main-service-presentation-container {
      flex-wrap: wrap;
      padding-left: 20px;
   }

   /* image effect style */
   .image-container {
      display: flex;
      padding-top: 100px;
      width: 100%;
   }

   .img-2 {
      height: 300px;
   }

   .img-1 {
      height: 150px;
      left: 50px;
      bottom: 50px;
   }

   .img-3 {
      height: 100px;
      width: 150px;
      right: 80px;
      top: 250px;
   }

   /* style de la why section */
   .why-section {
      background-color: var(--primary-color);
      margin-top: 10%;
      margin-bottom: 10%;
   }

   .bannierre img {
      display: none;
   }

   .bannierre div {
      padding-left: 50px;
      padding-right: 50px;
   }

   .bannierre div h3 {
      font-size: 24px;
   }

   /* parcours pour obtenir nos services */
   .map-section h3 {
      font-size: 24px;
      margin-left: 25px;
      margin-bottom: 50px;
   }

   .vertical-roadmap {
      display: flex;
      margin-top: 20px;
      margin-left: 50px;
      position: relative;
   }

   .map-image img {
      display: none;
   }

   .btn-map-container {
      margin-right: 25px;
   }

   .btn-map {
      width: 150px;
      display: flex;
      justify-content: center;
      gap: 10px;
      padding: 10px;
      border-radius: 5px;
   }

   /* footer style */
   .footer-container {
      flex-wrap: wrap;
   }

   .social {
      flex-wrap: wrap;
   }

   .newsletter p {
      font-size: 0.9rem;
      margin-bottom: 1rem;
   }

   .newsletter form {
      display: flex;
      max-width: 300px;
   }

   .footer-bottom {
      border-top: 1px solid #2e2b46;
      margin-top: 3rem;
      padding-top: 2rem;
   }

   .footer-bottom div {
      display: flex;
      gap: 20px;
      margin-left: 0px;
   }

   .footer-bottom h2 {
      font-size: 80px;
   }
}

@media (max-width:360px) {
   /* service presentationcontainer */
   .main-service-presentation-container {
      flex-wrap: wrap;
      padding-left: 10px;
   }

   .img-3 {
      height: 100px;
      width: 150px;
      right: 90px;
      top: 250px;
   }

   .vertical-roadmap {
      display: flex;
      width: 360px;
      margin-top: 20px;
      margin-left: 20px;
      position: relative;
   }

   .vertical-roadmap .c-all {
      width: 100%;
   }

   .map-item-1::after {
      content: "";
      position: absolute;
      left: -.05rem; /* aligné au centre du cercle */
      top: 2.5rem; /* commence à la base du cercle (2.5rem = height du cercle) */
      width: 2px;
      height: calc(100% + 1.5rem); /* va jusqu'au cercle suivant */
      background-color: var(--primary-color);
      z-index: 0;
   }
   
   .map-item-2::after {
      content: "";
      position: absolute;
      left: -.05rem; /* aligné au centre du cercle */
      top: 2.5rem; /* commence à la base du cercle (2.5rem = height du cercle) */
      width: 2px;
      height: calc(100% + 1.5rem); /* va jusqu'au cercle suivant */
      background-color: var(--primary-color);
      z-index: 0;
   }
   
   .map-item-3::after {
      content: "";
      position: absolute;
      left: -.05rem; /* aligné au centre du cercle */
      top: 2.5rem; /* commence à la base du cercle (2.5rem = height du cercle) */
      width: 2px;
      height: calc(100% + 1.5rem); /* va jusqu'au cercle suivant */
      background-color: var(--primary-color);
      z-index: 0;
   }
   
   .map-item-4::after {
      content: "";
      position: absolute;
      left: -.05rem; /* aligné au centre du cercle */
      top: 2.5rem; /* commence à la base du cercle (2.5rem = height du cercle) */
      width: 2px;
      height: calc(100% + 1.5rem); /* va jusqu'au cercle suivant */
      background-color: var(--primary-color);
      z-index: 0;
   }
   
   .circle {
      position: absolute;
      left: -1.3rem;
      top: 0;
      width: 2.5rem;
      height: 2.5rem;
      background: var(--primary-color);
      color: white;
      border-radius: 50%;
      text-align: center;
      line-height: 2.5rem;
      font-weight: bold;
      font-size: 1.2rem;
      box-shadow: 0 0 0 4px white;
      z-index: 1;
   }
   
   .content {
      padding: 1rem;
   }
   
   .content h4 {
      margin-top: 0;
      margin-bottom: 5px;
      color: #2c3e50;
      font-weight: 600;
   }
   
   .content ul {
      padding-left: 0.5rem;
   }
   
   .content a {
      color: var(--primary-color);
      text-decoration: underline;
   }
   
   .btn-map-container {
      display: flex;
      justify-content: space-between;
      margin-top: 50px;
   }
   
   .btn-map {
      display: flex;
      justify-content: center;
      padding: 10px;
      border-radius: 5px;
   }

   .context dt {
      text-wrap: wrap;
   }

   .content dd ul li {
      text-wrap: wrap;
   }

   .map-item {
      padding-left: 5px;
   }

   .footer-bottom h2 {
      font-size: 60px;
   }
}