
 /*Body*/
 html, body {
  height: 100%;
  margin: 0;
  font-family: 'Inter', sans-serif;
  display: flex;
  flex-direction: column;
  scroll-behavior: smooth;
  background: white;
  color: #254962;
  font-size: 16px;
  line-height: 1.6;
}

main {
  flex: 1;
}

 /*End Body*/


  /*Nav Bar*/
 * {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
 }

 body {
   font-family: 'Inter', sans-serif;
   background: linear-gradient(135deg, #f5f7ff 0%, #ffffff 100%);
   min-height: 100vh;
   padding-top: 80px;
 }

 /* Navigation améliorée */
 nav {
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   background: rgba(37, 73, 98, 0.95);
   backdrop-filter: blur(20px);
   -webkit-backdrop-filter: blur(20px);
   border-bottom: 1px solid rgba(255, 255, 255, 0.1);
   padding: 1rem 2rem;
   z-index: 1000;
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
 }

 nav.scrolled {
   background: rgba(37, 73, 98, 0.98);
   box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
   padding: 0.8rem 2rem;
 }

 .nav-container {
   display: flex;
   align-items: center;
   justify-content: space-between;
   max-width: 1400px;
   margin: 0 auto;
   width: 100%;
 }

 .logo {
   height: 45px;
   transition: transform 0.3s ease;
 }

 .logo:hover {
   transform: scale(1.05);
 }

 .logo img {
   height: 100%;
   width: auto;
   filter: brightness(1.1);
 }

 /* Navigation centrale */
 .nav-links {
   display: flex;
   list-style: none;
   gap: 2.5rem;
   margin: 0;
   padding: 0;
 }

 .nav-links li a {
   color: white;
   text-decoration: none;
   font-weight: 500;
   font-size: 0.95rem;
   padding: 0.5rem 0;
   position: relative;
   transition: all 0.3s ease;
   letter-spacing: 0.3px;
 }

 .nav-links li a::before {
   content: '';
   position: absolute;
   bottom: -2px;
   left: 0;
   width: 0;
   height: 2px;
   background: linear-gradient(90deg, white, white);
   transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
 }

 .nav-links li a:hover::before,
 .nav-links li a.active::before {
   width: 100%;
 }

 .nav-links li a:hover {
   color: #e3f2fd;
   transform: translateY(-1px);
 }

 .nav-links li a.active {
   color: #64b5f6;
   font-weight: 600;
 }

 /* Boutons d'action améliorés */
 .nav-actions {
   display: flex;
   align-items: center;
   gap: 1rem;
 }

 .btn {
   padding: 0.6rem 1.4rem;
   font-size: 0.9rem;
   font-weight: 600;
   text-decoration: none;
   border-radius: 8px;
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
   letter-spacing: 0.3px;
   position: relative;
   overflow: hidden;
 }

 .btn::before {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
   transition: left 0.5s;
 }

 .btn:hover::before {
   left: 100%;
 }

 .reverse-login-btn {
   background: linear-gradient(135deg, #ffffff, #f8f9ff);
   color: #254962;
   border: 2px solid transparent;
   box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
 }

 .reverse-login-btn:hover {
   background: linear-gradient(135deg, #f0f4ff, #ffffff);
   transform: translateY(-2px);
   box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
 }

 .login-btn {
   background: transparent;
   color: white;
   border: 2px solid rgba(255, 255, 255, 0.8);
 }

 .login-btn:hover {
   background: rgba(255, 255, 255, 0.1);
   border-color: white;
   transform: translateY(-2px);
   box-shadow: 0 4px 15px rgba(255, 255, 255, 0.2);
 }

 /* Menu mobile amélioré */
 .menu-toggle {
   display: none;
   flex-direction: column;
   cursor: pointer;
   width: 28px;
   height: 20px;
   justify-content: space-between;
   z-index: 1001;
 }

 .menu-toggle span {
   display: block;
   height: 3px;
   background: white;
   border-radius: 2px;
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
   transform-origin: center;
 }

 .menu-toggle.open span:nth-child(1) {
   transform: rotate(45deg) translate(6px, 6px);
 }

 .menu-toggle.open span:nth-child(2) {
   opacity: 0;
   transform: scale(0);
 }

 .menu-toggle.open span:nth-child(3) {
   transform: rotate(-45deg) translate(6px, -6px);
 }

 /* Menu mobile overlay */
 .mobile-menu-overlay {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100vh;
   background: rgba(37, 73, 98, 0.98);
   backdrop-filter: blur(20px);
   -webkit-backdrop-filter: blur(20px);
   display: none;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   z-index: 999;
   opacity: 0;
   transition: opacity 0.3s ease;
 }

 .mobile-menu-overlay.show {
   display: flex;
   opacity: 1;
   animation: slideDown 0.4s cubic-bezier(0.4, 0, 0.2, 1);
 }

 @keyframes slideDown {
   from {
     opacity: 0;
     transform: translateY(-30px);
   }
   to {
     opacity: 1;
     transform: translateY(0);
   }
 }

 .mobile-nav-links {
   display: flex;
   flex-direction: column;
   gap: 2rem;
   text-align: center;
   margin-bottom: 3rem;
 }

 .mobile-nav-links a {
   color: white;
   text-decoration: none;
   font-size: 1.3rem;
   font-weight: 500;
   padding: 1rem;
   transition: all 0.3s ease;
   letter-spacing: 0.5px;
 }

 .mobile-nav-links a:hover {
   color: white;
   transform: scale(1.05);
 }

 .mobile-actions {
   display: flex;
   flex-direction: column;
   gap: 1rem;
   width: 250px;
 }

 .mobile-actions .btn {
   text-align: center;
   padding: 1rem 2rem;
   font-size: 1rem;
 }

 /* Responsive Design */
 @media (max-width: 1024px) {
   .nav-links {
     gap: 2rem;
   }

   .nav-links li a {
     font-size: 0.9rem;
   }
 }

 @media (max-width: 768px) {
   nav {
     padding: 1rem 1.5rem;
   }

   .nav-links,
   .nav-actions {
     display: none;
   }

   .menu-toggle {
     display: flex;
   }

   .logo {
     height: 40px;
   }
 }

 @media (max-width: 480px) {
   nav {
     padding: 1rem;
   }

   .logo {
     height: 35px;
   }

   .menu-toggle {
     width: 25px;
     height: 18px;
   }

   .mobile-actions {
     width: 200px;
   }
 }


 .demo-content p {
   color: #666;
   font-size: 1.1rem;
   line-height: 1.6;
   margin-bottom: 2rem;
 }

 .feature-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 2rem;
   margin-top: 3rem;
 }

 .feature-card {
   background: white;
   padding: 2rem;
   border-radius: 12px;
   box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
   transition: transform 0.3s ease;
 }

 .feature-card:hover {
   transform: translateY(-5px);
 }

 .feature-card i {
   font-size: 2.5rem;
   color: #254962;
   margin-bottom: 1rem;
 }

 .feature-card h3 {
   color: #254962;
   margin-bottom: 1rem;
 }
ul.nav-links {
  list-style: none;
  display: flex;
  gap: 2rem;
  margin: auto;
  padding: 0;
}
ul.nav-links li a {
  color: white;
  text-decoration: none;
  font-weight: 500;
  font-size: 1rem;
  transition: color 0.3s;
}
ul.nav-links li a:hover {
  color:#636e75;
}
ul.nav-links li a.active {
  position: relative;
}
ul.nav-links li a.active::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: white;
  animation: underlineFade 0.4s ease-in-out;
}



@media (max-width: 768px) {
    .nav-container{
    flex: 1;
   }
  .menu-toggle {
    display: flex;
  }
  ul.nav-links {
    flex-direction: column;
    background: #254962;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: none;
    text-align: center;
    padding: 1rem 0;
  }
  ul.nav-links.show {

    display: flex;
    animation: dropdown 0.3s ease-out;
  }
  @keyframes dropdown {
    from {
      transform: translateY(-20px);
      opacity: 0;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }
}


 /*End Nav Bar*/

  /*Footer*/

 /* Footer Styles */
 .site-footer {
     background-color: #254962;
     color: #ffffff;
     padding: 3rem 0 0;
     font-size: 0.95rem;
     line-height: 1.6;
 }

 .footer-container {
     max-width: 1200px;
     margin: 0 auto;
     padding: 0 1.5rem;
 }

 .footer-main {
     display: grid;
     grid-template-columns: 1fr 2fr;
     gap: 3rem;
     padding-bottom: 2rem;
 }

 .footer-brand {
     max-width: 350px;
 }

 .footer-brand .logo img {
     max-width: 120px;
     height: auto;
     margin-bottom: 1rem;
 }

 .footer-description {
     color: rgba(255, 255, 255, 0.8);
     margin-bottom: 1.5rem;
 }

 .footer-links {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 2rem;
 }

 .footer-title {
     color: #ffffff;
     font-size: 1.1rem;
     margin-bottom: 1.5rem;
     position: relative;
     padding-bottom: 0.5rem;
 }

 .footer-title::after {
     content: '';
     position: absolute;
     left: 0;
     bottom: 0;
     width: 40px;
     height: 2px;
     background-color: #8fbcd4;
 }

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

 .footer-menu li {
     margin-bottom: 0.75rem;
 }

 .footer-menu a,
 .contact-info a {
     color: rgba(255, 255, 255, 0.8);
     text-decoration: none;
     transition: color 0.3s ease;
 }

 .footer-menu a:hover,
 .contact-info a:hover {
     color: #8fbcd4;
 }

 .contact-info p {
     margin-bottom: 0.75rem;
     display: flex;
     align-items: center;
     gap: 0.5rem;
 }

 .contact-info i {
     width: 20px;
     text-align: center;
 }

 .social-links {
     display: flex;
     gap: 1rem;
     margin-top: 1.5rem;
 }

 .social-links a {
     display: flex;
     align-items: center;
     justify-content: center;
     width: 36px;
     height: 36px;
     border-radius: 50%;
     background-color: rgba(255, 255, 255, 0.1);
     color: #ffffff;
     transition: all 0.3s ease;
 }

 .social-links a:hover {
     background-color: #8fbcd4;
     transform: translateY(-3px);
 }

 .footer-bottom {
     border-top: 1px solid rgba(255, 255, 255, 0.1);
     padding: 1.5rem 0;
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: space-between;
 }

 .copyright {
     color: rgba(255, 255, 255, 0.7);
     font-size: 0.85rem;
     margin-bottom: 1rem;
 }

 .legal-links {
     display: flex;
     flex-wrap: wrap;
     justify-content: center;
     gap: 1rem;
 }

 .legal-links a {
     color: rgba(255, 255, 255, 0.7);
     font-size: 0.85rem;
     text-decoration: none;
     transition: color 0.3s ease;
 }

 .legal-links a:hover {
     color: #8fbcd4;
     text-decoration: underline;
 }

 /* Responsive Adjustments */
 @media (max-width: 992px) {
     .footer-main {
         grid-template-columns: 1fr 1.5fr;
     }

     .footer-links {
         grid-template-columns: repeat(2, 1fr);
     }
 }

 @media (max-width: 768px) {
     .footer-main {
         grid-template-columns: 1fr;
         gap: 2rem;
     }

     .footer-brand {
         max-width: 100%;
         text-align: center;
     }

     .footer-brand .logo {
         display: flex;
         justify-content: center;
     }

     .footer-links {
         grid-template-columns: 1fr;
         gap: 2rem;
     }

     .footer-column {
         text-align: center;
     }

     .footer-title::after {
         left: 50%;
         transform: translateX(-50%);
     }

     .contact-info p {
         justify-content: center;
     }

     .social-links {
         justify-content: center;
     }

     .footer-bottom {
         flex-direction: column;
         text-align: center;
     }
 }

 @media (max-width: 480px) {
     .footer-container {
         padding: 0 1rem;
     }

     .legal-links {
         flex-direction: column;
         gap: 0.5rem;
     }
 }



@media (max-width: 768px) {
    .footer-split{
        flex-direction: column;
    }
    .footer-description{
    width: 80%;
    margin: auto;
}
}


/* Small devices (phones and small tablets) */
@media (max-width: 576px) {
  .footer-top{
    flex-direction: column;
    align-content: center;
    text-align: center;
    gap: 1rem;
  }

}

 /* End Body*/

  /*Hero*/

  .hero-section {
  text-align: center;
  background: linear-gradient(to right, #B8CFCE, #EAEFEF);
  background-size: cover;
  padding: 7rem 1rem 4rem;
  color: #254962;
}

.hero-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.hero-image img {
  max-width: 100%;
  height: auto;
  margin-bottom: 1rem;
  animation: float 4s ease-in-out infinite;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

.hero-text h1 {
  font-size: 2.6rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.hero-text p {
  font-size: 1.2rem;
  color: #254962;
}


/*End Hero*/

/*About*/

 .about-section {
     padding: 40px 20px;
     background-color: #f9f9f9;
 }

 .about-inner {
     display: flex;
     flex-wrap: wrap;
     gap: 20px;
     align-items: center;
     justify-content: center;
 }

 .about-text {
     flex: 1 1 400px;
     max-width: 600px;
 }

 .about-text h2 {
     font-size: 28px;
     margin-bottom: 20px;
 }

 .about-text div {
     margin-bottom: 20px;
 }

 .about-text h3 {
     font-size: 20px;
     margin-bottom: 8px;
 }

 .about-text p {
     font-size: 16px;
     line-height: 1.5;
 }

 .about-inner video {
     flex: 1 1 300px;
     max-width:50%;
     height: auto;
     border-radius: 10px;
     box-shadow: 0 5px 15px rgba(0,0,0,0.1);
 }
 @media (max-width: 768px) {
     .about-inner {
         flex-direction: column;
     }

     .about-inner video {
         max-width: 100%;
     }

     .about-text {
         max-width: 100%;
         text-align: center;
     }
 }


/*End About*/

/* Blog */

.blog-section {
  background-color: #254962;
  padding: 4rem 1rem;
  text-align: center;
  color: white;

}

.blog-section .blog-cards {
   display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;
  margin: 0 auto;
  width: 80%;
}
.blog-section .blog-card {
  background: white;
  padding: 1.5rem;
  width: 80%;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.blog-section .blog-card h3 {
  color: #254962;
}
.blog-section .blog-card p {
  font-size: 0.95rem;
  color: #254962;
}

.blog-card i {
  color: #254962; /* example color */
  font-size: 2rem;
  margin-bottom: 8px;
  display: block;
}


/*End Blog*/

/*Services*/
 .services-section {
     max-width: 1200px;
     margin: 0 auto;
     text-align: center;
 }



 .services-cards {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
     gap: 2rem;
     justify-items: center;
 }

 .service-card {
     background: white;
     border-radius: 20px;
     padding: 2rem;
     box-shadow: 0 20px 40px rgba(0,0,0,0.1);
     transition: all 0.3s ease;
     position: relative;
     overflow: hidden;
     max-width: 380px;
     width: 100%;
     opacity: 0;
     transform: translateY(30px);
     animation: fadeInUp 0.6s ease forwards;
 }

 .service-card:nth-child(1) { animation-delay: 0.1s; }
 .service-card:nth-child(2) { animation-delay: 0.3s; }
 .service-card:nth-child(3) { animation-delay: 0.5s; }

 @keyframes fadeInUp {
     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 .service-card:hover {
     transform: translateY(-10px);
     box-shadow: 0 30px 60px rgba(0,0,0,0.15);
 }

 .card-image {
     width: 100%;
     height: 200px;
     margin-bottom: 1.5rem;
     border-radius: 15px;
     overflow: hidden;
     position: relative;
     background: #f8f9fa;
     display: flex;
     align-items: center;
     justify-content: center;
 }

 .card-image img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: transform 0.3s ease;
 }

 .service-card:hover .card-image img {
     transform: scale(1.05);
 }

 .service-card h3 {
     font-size: 1.5rem;
     color:  #254962;
     margin-bottom: 1rem;
     font-weight: 600;
 }

 .service-description {
     text-align: left;
 }

 .feature-block {
     display: flex;
     align-items: flex-start;
     margin-bottom: 1rem;
     padding: 0.5rem 0;
 }

 .feature-icon {
     color: #48bb78;
     font-size: 1rem;
     margin-right: 0.75rem;
     margin-top: 0.2rem;
     flex-shrink: 0;
 }

 .feature-block h4 {
     font-size: 1rem;
     color:  #254962;
     margin: 0 0 0.3rem 0;
     font-weight: 600;
 }

 .feature-block p {
     color: #718096;
     font-size: 0.9rem;
     line-height: 1.4;
     margin: 0;
 }

 .card-gradient-bg {
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     height: 4px;
     background: linear-gradient(90deg, #f8f9fa, #254962);
 }



 @media (max-width: 768px) {
     .services-cards {
         grid-template-columns: 1fr;
         gap: 1.5rem;
     }

     .service-card {
         max-width: 100%;
     }

     .services-section h2 {
         font-size: 2rem;
         margin-bottom: 2rem;
     }
 }

 @media (max-width: 480px) {
     body {
         padding: 20px 10px;
     }

     .service-card {
         padding: 1.5rem;
     }

     .card-image {
         height: 150px;
     }

     .card-image img {
         width: 100%;
         height: auto;
         max-height: 100%;
         object-fit: cover;
         display: block;
         transition: transform 0.3s ease;
     }
 }

 @media (max-width: 480px) {
     .card-image {
         height: auto;
     }

     .card-image img {
         width: 100%;
         height: auto;
     }
 }


     @media (max-width: 768px) {
    .services-cards {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}
}





    /*End Services*/
 .feature-tabs-section {
     backdrop-filter: blur(10px);
     border-radius: 20px;
     padding: 4rem 2rem;
     text-align: center;

     box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
     border: 1px solid rgba(255, 255, 255, 0.2);
 }

 h2 {
     font-size: 2.5rem;
     color: #254962;
     margin-bottom: 1rem;
     font-weight: 700;
     text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
 }

 .separator {
     width: 80px;
     height: 4px;
     background: linear-gradient(90deg, #254962, #4e5564);
     border: none;
     margin: 0 auto 3rem auto;
     border-radius: 2px;
     animation: pulse 2s infinite;
 }

 @keyframes pulse {
     0%, 100% { transform: scaleX(1); }
     50% { transform: scaleX(1.2); }
 }

 .feature-icons {
     display: flex;
     flex-wrap: wrap;
     justify-content: center;
     gap: 3rem;
     margin-bottom: 3rem;
 }

 .tab-btn {
     background: linear-gradient(145deg, #ffffff, #f0f0f0);
     border: 2px solid transparent;
     border-radius: 20px;
     padding: 1.5rem 2rem;
     cursor: pointer;
     font-family: inherit;
     color: #254962;
     font-size: 1rem;
     font-weight: 600;
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 0.8rem;
     transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
     position: relative;
     box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
     min-width: 150px;
     transform: translateY(0);
 }

 .tab-btn:hover {
     transform: translateY(-5px) scale(1.05);
     box-shadow: 0 15px 35px rgba(37, 73, 98, 0.2);
     background: linear-gradient(145deg, #f8f9fa, #e9ecef);
 }

 .tab-btn i {
     font-size: 2.5rem;
     color: #254962;
     transition: all 0.4s ease;
     filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.1));
 }

 .tab-btn:hover i {
     color: #4e5564;
     transform: scale(1.2) rotate(5deg);
 }

 .tab-btn.active {
     background: linear-gradient(145deg, #254962, #4e5564);
     color: white;
     border-color: #254962;
     transform: translateY(-3px) scale(1.02);
     box-shadow: 0 12px 30px rgba(37, 73, 98, 0.3);
 }

 .tab-btn.active i {
     color: white;
     transform: scale(1.1);
     animation: iconBounce 0.6s ease;
 }

 .tab-btn.active span {
     color: white;
 }

 @keyframes iconBounce {
     0%, 100% { transform: scale(1.1); }
     50% { transform: scale(1.3); }
 }

 .tab-content {
     width: 85%;
     margin: 0 auto;
     position: relative;
     overflow: hidden;
     border-radius: 15px;
     box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
 }

 .tab-content::before {
     content: '';
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     bottom: 0;
     background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.1) 50%, transparent 70%);
     animation: shimmer 3s infinite;
     z-index: 1;
 }

 @keyframes shimmer {
     0% { transform: translateX(-100%); }
     100% { transform: translateX(100%); }
 }

 .tab-content img {
     width: 100%;
     height: auto;
     display: block;
     transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
     transform: scale(1);
     border-radius: 15px;
 }

 .tab-content img.fade-in {
     animation: fadeInScale 0.8s ease-out;
 }

 @keyframes fadeInScale {
     0% {
         opacity: 0;
         transform: scale(0.9) translateY(20px);
     }
     100% {
         opacity: 1;
         transform: scale(1) translateY(0);
     }
 }

 /* Responsive Design */
 @media (max-width: 768px) {
     .feature-tabs-section {
         padding: 2rem 1rem;
         margin: 1rem;
         border-radius: 15px;
     }

     h2 {
         font-size: 2rem;
     }

     .feature-icons {
         gap: 1.5rem;
         flex-direction: column;
         align-items: center;
     }

     .tab-btn {
         min-width: 200px;
         padding: 1.2rem 1.5rem;
         flex-direction: row;
         gap: 1rem;
     }

     .tab-btn i {
         font-size: 2rem;
     }

     .tab-content {
         width: 95%;
     }
 }

 @media (max-width: 480px) {
     .feature-tabs-section {
         padding: 1.5rem 0.5rem;
     }

     h2 {
         font-size: 1.8rem;
     }

     .tab-btn {
         min-width: 180px;
         padding: 1rem;
     }

     .tab-btn i {
         font-size: 1.8rem;
     }
 }

 /* Floating particles animation */




/*End Features*/

/*Help*/


/*End Help*/

/*Offers*/

.pricing-section{
      padding: 4rem 1rem;
  text-align: center;
  background-color: white;
}

 .pricing-section {
     padding: 3rem 1rem;
     text-align: center;
     background-color: white;
 }

 .plans-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
     gap: 24px;
     align-items: stretch;
     max-width: 1200px;
     margin: 0 auto;
 }

 .plan-card {
     background: #ffffff;
     border-radius: 16px;
     box-shadow: 0 6px 24px rgba(0, 31, 63, 0.08);
     transition: all 0.3s ease;
     position: relative;
     overflow: hidden;
     border: 1.5px solid #eee;
     display: flex;
     flex-direction: column;
     height: 100%;
 }
.plan-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 31, 63, 0.15);
  border-color: #254962;
}
.plan-card.popular {
  border-color: #254962;
  transform: scale(1.02);
}
.plan-card.popular:hover {
  transform: scale(1.02) translateY(-8px);
}

.popular-badge {
  position: absolute;
  border-radius: 0 0 8px 8px;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background:#254962;
  color: #ffffff;
  padding: 8px 24px;
  font-size: 0.45rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  z-index: 2;
}

.free-trial-badge {
  background: #254962;
  border-radius: 8px;
  color: #ffffff;
  padding: 6px 16px;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  display: inline-block;
  margin-bottom: 15px;
}

.plan-header {
  padding: 25px 20px 15px;
  text-align: center;
  flex-shrink: 0;
}
.plan-header .plan-name {
  font-size: 1.3rem;
  font-weight: 700;
  color: #254962;
  margin-bottom: 15px;
}
.plan-header .plan-price {
  margin-bottom: 10px;
}
.plan-header .price-original {
  font-size: 0.9rem;
  color: #999;
  text-decoration: line-through;
  display: block;
  margin-bottom: 5px;
}
.plan-header .price-current {
  font-size: 2.2rem;
  font-weight: 800;
  color: #254962;
  display: block;
  line-height: 1;
}
.plan-header .price-period {
  font-size: 0.9rem;
  color: #6c757d;
  margin-top: 5px;
}
.plan-header .savings {
  border-radius: 8px;
  background: #254962;
  color: #ffffff;
  padding: 4px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  display: inline-block;
  margin-top: 10px;
}

.plan-features {
  padding: 0 20px;
  flex-grow: 1;
}
.features-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.feature-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 10px;
  font-size: 0.9rem;
  line-height: 1.4;
}
.feature-icon {
  background-color: #254962;
  color: white;
  border-radius: 50%;
  width: 15px;
  height: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 10px;
  margin-top: 2px;
  font-size: 0.60rem;
  flex-shrink: 0;
}
.feature-text {
  color: #495057;
}
 .plan-footer {
     padding: 16px 20px 24px;
     margin-top: auto;
 }

 .plan-button {
     width: 100%;
     padding: 10px 14px;
     font-size: 0.9rem;
     font-weight: 600;
     letter-spacing: 0.5px;
     border-radius: 30px;
     cursor: pointer;
     border: none;
     transition: all 0.3s ease;
 }

 .plan-button.btn-primary {
     background-color: #254962;
     color: white;
     box-shadow: 0 4px 12px rgba(0, 31, 63, 0.3);
 }

 .plan-button.btn-primary:hover {
     background-color: #1c3a4d;
     transform: translateY(-2px);
 }

 .plan-button.btn-outline {
     background: transparent;
     color: #254962;
     border: 2px solid #254962;
 }

 .plan-button.btn-outline:hover {
     background: #254962;
     color: white;
     transform: translateY(-2px);
 }

 @media screen and (max-width: 992px) {
     .plan-name {
         font-size: 1.1rem;
     }
     .price-current {
         font-size: 1.5rem;
     }
     .plan-button {
         font-size: 0.85rem;
     }
 }

 @media screen and (max-width: 600px) {
     .plan-header {
         padding: 15px;
     }
     .plan-features {
         padding: 0 15px;
     }
     .plan-footer {
         padding: 12px 15px 20px;
     }
     .plans-grid {
         gap: 20px;
     }
 }

/*end offers*/

/*  CTA */


 /* CTA Section */
 .cta-section {
     background: #254962;
     color: white;
     padding: 4rem 1rem;
     text-align: center;
     position: relative;
     overflow: hidden;
 }

 .cta-inner h2 {
     font-size: 2rem;
     margin-bottom: 1rem;
     font-weight: 700;
     color: #ffffff;
 }


 .cta-inner p {
     font-size: 1.1rem;
     margin-bottom: 2rem;
     opacity: 0.9;
 }

 .cta-section .btn {
     background: white;
     color: #254962;
     font-weight: 700;
     padding: 0.8rem 2rem;
     border-radius: 50px;
     box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
     transition: all 0.3s ease;
     display: inline-block;
     font-size: 1rem;
     text-decoration: none;
 }

 .cta-section .btn:hover {
     transform: translateY(-3px);
     box-shadow: 0 12px 25px rgba(0, 0, 0, 0.2);
 }

 /* Avis défilants */
 .opinion-wrapper {
     overflow: hidden;
     width: 100%;
     margin-top: 3rem;
     padding: 10px 0;
 }

 .opinion-track {
     display: flex;
     width: max-content;
     animation: scroll-left 200s linear infinite;
     gap: 20px;
 }

 @keyframes scroll-left {
     0% { transform: translateX(0); }
     100% { transform: translateX(-50%); }
 }

 .opinion-card {
     background: rgba(255, 255, 255, 0.08);
     backdrop-filter: blur(8px);
     border-radius: 16px;
     padding: 16px 20px;
     min-width: 260px;
     max-width: 320px;
     flex: 0 0 auto;
     box-shadow: 0 8px 16px rgba(0,0,0,0.15);
     display: flex;
     align-items: center;
     transition: transform 0.3s ease;
     border: 1px solid rgba(255, 255, 255, 0.2);
 }

 .opinion-card:hover {
     transform: scale(1.05);
 }

 .opinion-avatar {
     width: 48px;
     height: 48px;
     border-radius: 50%;
     object-fit: cover;
     margin-right: 12px;
     box-shadow: 0 0 0 2px white;
 }

 .opinion-text {
     font-size: 0.95rem;
     color: white;
     font-weight: 500;
     line-height: 1.4;
 }

 /* Responsive */
 @media screen and (max-width: 768px) {
     .cta-inner h2 {
         font-size: 1.5rem;
     }

     .cta-inner p {
         font-size: 1rem;
     }

     .cta-section .btn {
         font-size: 0.95rem;
         padding: 0.7rem 1.5rem;
     }

     .opinion-card {
         min-width: 220px;
         padding: 14px 16px;
     }

     .opinion-text {
         font-size: 0.85rem;
     }

     .opinion-avatar {
         width: 40px;
         height: 40px;
     }
 }





/*End CTA*/
 /* Partners Section */
 .partners-section {
     padding: 4rem 1rem;
     text-align: center;
     background-color: white;
 }

 .partners-container {
     max-width: 1200px;
     margin: 0 auto;
     padding: 0 20px;
 }

 .partners-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
     gap: 30px;
     margin-top: 40px;
 }

 .partner-card {
     perspective: 1000px;
     height: 200px;
 }

 .partner-content {
     position: relative;
     width: 100%;
     height: 100%;
     transition: transform 0.6s;
     transform-style: preserve-3d;
     border-radius: 12px;
     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
     background: white;
     cursor: pointer;
 }

 .partner-card:hover .partner-content {
     transform: rotateY(180deg);
 }

 .partner-logo, .partner-info {
     position: absolute;
     width: 100%;
     height: 100%;
     backface-visibility: hidden;
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 20px;
     box-sizing: border-box;
 }

 .partner-logo img {
     max-width: 180px;
     max-height: 100px;
     object-fit: contain;
     transition: transform 0.3s;
 }

 .partner-card:hover .partner-logo img {
     transform: scale(1.1);
 }

 .partner-info {
     transform: rotateY(180deg);
     background: #f9f9f9;
     text-align: center;
     flex-direction: column;
 }

 .partner-description {
     font-size: 0.95rem;
     color: #555;
     line-height: 1.5;
 }

 /* Responsive Adjustments */
 @media (max-width: 768px) {
     .partners-grid {
         grid-template-columns: 1fr;
     }

     .partner-card {
         height: 150px;
     }

     .partner-description {
         font-size: 0.85rem;
     }
 }

 /* Animation */
 @keyframes fadeIn {
     from { opacity: 0; transform: translateY(20px); }
     to { opacity: 1; transform: translateY(0); }
 }

 .partner-card {
     animation: fadeIn 0.6s ease-out forwards;
 }

 .partner-card:nth-child(1) { animation-delay: 0.1s; }
 .partner-card:nth-child(2) { animation-delay: 0.3s; }
 .partner-card:nth-child(3) { animation-delay: 0.5s; }
    /*Testmonials*/

 .testimonials-section {
  padding: 4rem 1rem;
  text-align: center;
  background-color: white;
}

.testimonial-header h2 {
  font-size: 2rem;
  margin-bottom: 0.5rem;
  color: #254962;
}

.testimonial-header p {
  color: #254962;
  margin-bottom: 3rem;
  font-size: 1rem;
}


     .carousel-wrapper {
      position: relative;
      max-width: 90%;
      margin: 0 auto;
      overflow: hidden;
    }
    .testimonial-cards {
      display: flex;
      gap: 32px;
      flex-wrap: nowrap;
      overflow-x: auto;
      scroll-behavior: auto;
      scrollbar-width: none;
      -ms-overflow-style: none;
      transform: translateZ(0);
      will-change: scroll-position;
    }
    .testimonial-cards::-webkit-scrollbar {
      display: none;
    }
    .testimonial {
      flex: 0 0 auto;
      width: 260px;
      scroll-snap-align: start;
      text-align: left;
      background: #f8f9fa;
      border-radius: 10px;
      padding: 1.5rem;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
    }
    .testimonial .stars {
      color: #254962;
      font-size: 1.2rem;
      margin-bottom: 1rem;
    }
    .testimonial p {
      color: #254962;
      margin-bottom: 1rem;
      font-size: 0.95rem;
    }
    .testimonial .author {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      margin-top: 1rem;
    }
    .testimonial .author img {
      width: 45px;
      height: 45px;
      object-fit: cover;
      border-radius: 50%;
    }
    .testimonial .author span {
      font-weight: 500;
      color: #254962;
    }


    /*End Testmonials*/

/*FAQ*/

    .faq-section {
    background: white;
    padding: 4rem 1rem;
    margin: 0 auto;
  }
  .faq-section h2 {
    font-size: 2rem;
    text-align: center;
    color: #254962;
  }
  .faq-item {
    border-bottom: 1px solid #ddd;
    padding: 1rem 0;
    cursor: pointer;
    max-width: 80%;
    margin: 0 auto;
  }
  .faq-item h3 {
    font-size: 1.1rem;
    margin: 0;
    color: #254962;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .faq-item p {
    margin: 0.75rem 0 0;
    color: #254962;
    display: none;
    transition: all 0.3s ease;
  }
  .faq-item.active p {
    display: block;
  }
  .faq-arrow {
    transition: transform 0.3s ease;
  }
  .faq-item.active .faq-arrow {
    transform: rotate(180deg);
  }


  @media (max-width: 768px) {
    .faq-item{
        width: 80%;
    }
  }




/*End FAQ*/

/*Contact*/
 /* Contact Section */
 /* Contact Section - Version compacte */
 .contact-section {
     background: #ffffff;
     padding: 3rem 1rem;
 }

 .contact-container {
     max-width: 1100px;
     margin: 0 auto;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 2rem;
     align-items: center;
 }

 .section-header {
     margin-bottom: 1.5rem;
 }

 .section-header h2 {
     font-size: 2rem;
     color: #254962;
     margin-bottom: 0.5rem;
 }

 .divider {
     width: 50px;
     height: 3px;
     background: #254962;
     margin-bottom: 1rem;
 }

 .section-subtitle {
     color: #5f6b88;
     font-size: 1rem;
 }

 .contact-details {
     display: grid;
     grid-template-columns: 1fr;
     gap: 1rem;
     margin: 1.5rem 0;
 }

 .contact-item {
     display: flex;
     align-items: center;
     gap: 1rem;
 }

 .contact-icon {
     width: 36px;
     height: 36px;
     background: #254962;
     color: white;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 1rem;
     flex-shrink: 0;
 }

 .contact-text p {
     color: #5f6b88;
     margin: 0;
     font-size: 0.95rem;
 }

 .social-links {
     margin-top: 1.5rem;
 }

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

 .social-icons a {
     width: 36px;
     height: 36px;
     border-radius: 50%;
     background: white;;
     color: #254962;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 1rem;
     transition: all 0.2s ease;
 }

 .social-icons a:hover {
     background: #254962;
     color: #254962;;
     transform: scale(1.1);
 }

 .contact-map {
     height: 350px;
     border-radius: 8px;
     overflow: hidden;
     box-shadow: 0 4px 12px rgba(0,0,0,0.1);
 }

 .google-map {
     width: 100%;
     height: 100%;
     border: none;
     display: block;
 }

 /* Responsive */
 @media (max-width: 992px) {
     .contact-container {
         grid-template-columns: 1fr;
         gap: 1.5rem;
     }

     .contact-map {
         height: 300px;
         order: -1;
     }
 }

 @media (max-width: 576px) {
     .contact-section {
         padding: 2rem 1rem;
     }

     .section-header h2 {
         font-size: 1.7rem;
     }

     .contact-map {
         height: 250px;
     }
 }



/*End Contact*/

/*Bottons*/

.btn {
  background: #254962;
  color: white;
  padding: 0.5rem 1rem;
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  display: inline-block;
  margin: 1rem 0;
  transition: transform 0.3s ease;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);

}
.btn:hover {
  background: white;
  color: #254962;
  transform: scale(1.05) translateY(-2px);
  border: 1px solid #254962;
}
.reverse-login-btn{
    padding: 0.5rem 1rem;
  font-size: 0.9rem;
  background: white;
  color: #254962;
  border: 2px solid white;
  margin-right: 1rem;
  margin-top: auto;
  margin-bottom:auto ;
  text-decoration: none;
  transition: background 0.3s ease, transform 0.2s ease;
  box-shadow: 0 3px 6px rgba(0,0,0,0.1);
}

.reverse-login-btn:hover {
  background: white;
}


.login-btn {
  padding: 0.5rem 1rem;
  font-size: 0.9rem;
  background: none;
  color: white;
  border: 2px solid white;
  margin-right: 1rem;
  margin-top: auto;
  margin-bottom:auto ;
  text-decoration: none;
  transition: background 0.3s ease, transform 0.2s ease;
  box-shadow: 0 3px 6px rgba(0,0,0,0.1);
}

.login-btn:hover {
  background: white;
}


@media (max-width: 480px) {
.login-btn,
  .reverse-login-btn {
    padding: 0.15rem 0.3rem;
    font-size: 0.5rem;
    margin-right: 0.15rem;
    border-width: 1px;
  }
}

@media (max-width: 576px) {
 .login-btn {
    padding: 0.3rem 0.6rem;
    font-size: 0.75rem;
    margin-right: 0.5rem;
    border-width: 1px;
  }

  .reverse-login-btn {
    padding: 0.3rem 0.6rem;
    font-size: 0.75rem;
    margin-right: 0.5rem;
    border-width: 1px;
  }
}

/*End Bottons*/

/*Separator*/

.separator {
  width: 200px;
  height: 4px;
  background-color: #254962;
  margin: 0.5rem auto 2rem;
  border: none;
}


/*End Separator*/

/* Animations */

.animate {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.animate.show {
  opacity: 1;
  transform: translateY(0);
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.fade-in {
  animation: fadeIn 1s forwards;
}

/*End Animations*/

  /* Chatbot */
/* Chat message styling */
.chatbot-messages {
  will-change: transform; /* GPU acceleration */
  overflow-anchor: none; /* Prevent auto-scroll interference */
}

.chat-message {
  contain: content; /* Improves rendering performance */
}
.chat-message {
  max-width: 80%;
  margin-bottom: 1rem;
  padding: 0.8rem 1rem;
  position: relative;
  animation: fadeIn 0.3s ease;
  word-wrap: break-word;
}

/* Bot message styling */
.bot-message {
  background: #254962;
  border: 1px solid var(--glass-border);
  color: white;
  align-self: flex-start;
  border-bottom-left-radius: 5px;
  margin-right: auto;
}

/* User message styling */
.user-message {
  background: #254962;
  color: white;
  align-self: flex-end;
  border-bottom-right-radius: 5px;
  margin-left: auto;
}

/* Typing animation */
@keyframes typing {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Typing indicator */
.typing-indicator {
  display: flex;
  padding: 1rem;
  align-self: flex-start;
}

.typing-indicator span {
  height: 8px;
  width: 8px;
  background: #254962;
  display: inline-block;
  margin: 0 2px;
  animation: bounce 1.5s infinite ease-in-out;
}

.typing-indicator span:nth-child(2) {
  animation-delay: 0.2s;
}

.typing-indicator span:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes bounce {
  0%,
  60%,
  100% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(-5px);
  }
}

/* Quick questions styling */
.quick-questions-container {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.quick-question {
  background: #254962;
  padding: 0.6rem 1rem;
  cursor: pointer;
  transition: var(--transition);
  align-self: flex-start;
  max-width: 80%;
  color: white;
}

.quick-question:hover {
  background: none;
  border: 2px solid #254962;
  color: #254962;
}

/* Chat messages container */
.chatbot-messages {
  display: flex;
  flex-direction: column;
  padding: 1rem;
  overflow-y: auto;
  gap: 0.8rem;
}
.chatbot-btn {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 60px;
  height: 60px;
  background: #254962;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  cursor: pointer;
  z-index: 999;
  border: 1px solid white;
  transition: var(--transition);
}

.chatbot-btn:hover {
  transform: scale(1.1);
}

.chatbot-container {
  display: none; /* This should be set to none initially */
  position: fixed;
  bottom: 8rem;
  right: 2rem;
  width: 350px;
  height: 400px;
  background: white;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  z-index: 999;
  overflow: hidden;
  flex-direction: column;
  border: 2px solid #254962;
}

.chatbot-header {
  padding: 1rem;
  background: none;
  color: #254962;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.chatbot-close {
  background: none;
  border: none;
  color: #254962;
  font-size: 1.2rem;
  cursor: pointer;
}

.chatbot-messages {
  flex: 1;
  padding: 1rem;
  overflow-y: auto;
}

.chatbot-input {
  display: flex;
  padding: 1rem;
}

.chatbot-input input {
  flex: 1;
  padding: 0.8rem;
  border: 2px solid #254962;
  background: none;
  color: #254962;
  outline: none;
}

.chatbot-input button {
  margin-left: 0.5rem;
  padding: 0.8rem;
  background: white;
  color: #254962;
  border: 2px solid #254962;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease;
}

.chatbot-input button:hover{
  background: #254962;
  color: white;
}

/*End ChatBot*/

/* Preloader styles */
#preloader {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.5s ease;
}
#preloader img{
 width: 35%;
  height: 20%;
}

.loader-desktop {
  display: block;
}

.loader-mobile {
  display: none;
}


@media (max-width: 768px) {
#preloader img{
 width: 15%;
  height: 10%;
}

 .loader-desktop {
    display: none;
  }

    .loader-mobile {
    display: block;
  }
}

@media (max-width: 480px) {
  #preloader img{
 width: 18%;
  height: 10%;
}
}


/* End Preloader*/
