/*--------------------------------------------------------------
# section de contact
--------------------------------------------------------------*/

:root { 
  --background-color: #ffffff; /* Background color for the entire website, including individual sections */
  --default-color: #14201c; /* Default color used for the majority of the text content across the entire website */
  --heading-color:#007bff;/* Color for headings, subheadings and title throughout the website */
  --accent-color: #007bff; /* Accent color that represents your brand on the website. It's used for buttons, links, and other elements that need to stand out */
  --surface-color: #ffffff; /* The surface color is used as a background of boxed elements within sections, such as cards, icon boxes, or other elements that require a visual separation from the global background. */
  --contrast-color: #ffffff; /* Contrast color for text, ensuring readability against backgrounds of accent, heading, or default colors. */
  
}
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');

body {
  margin: 0;
  font-family: 'Inter', sans-serif;
  background-color: #f7f7f7;
}

/* SECTION PRINCIPALE */
.tracking-section {
  background-color: #f7f7f7;
  padding: 80px 100px;
  display: flex;
  justify-content: center;
}

.content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  width: 100%;
  gap: 40px;
}

/* TEXTE GAUCHE */
.text-block {
  flex: 1;
}

.text-block h1 {
  font-size: 34px;
  font-weight: 700;
  color: var(--heading-color);
  line-height: 1.1;
  margin-bottom: 25px;
}

.text-block .description {
  color: #333333;
  font-size: 18px;
  line-height: 1.6;
  margin-bottom: 30px;
  max-width: 500px;
}

/* BOUTONS */
.buttons {
  display: flex;
  align-items: center;
  gap: 20px;
}

.btn-primary {
  background-color: var(--heading-color);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  padding: 12px 24px;
  border-radius: 6px;
  transition: background 0.3s;
}

.btn-primary:hover {
  background-color: #e7e8ea ;
  color:var(--heading-color) ;
}

.btn-link {
  color: #0057ff;
  text-decoration: none;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
}

.btn-link:hover {
  text-decoration: underline;
}

/* IMAGE DROITE */
.image-block {
  position: relative;
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}

.main-img {
  width: 100%;
  max-width: 520px;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}

/* Petites images flottantes */
.overlay-img {
  position: absolute;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  width: 220px;
  transition: transform 0.3s ease;
}

.overlay-img:hover {
  transform: scale(1.05);
}

.battery {
  top: 30px;
  left: -40px;
}

.corridor {
  top: 60px;
  right: -20px;
}

.trajet {
  bottom: 30px;
  right: -10px;
}

/* 🧱 RESPONSIVE DESIGN */
@media (max-width: 1024px) {
  .tracking-section {
    padding: 60px 60px;
  }
  
  .text-block h1 {
    font-size: 40px;
  }
  
  .overlay-img {
    width: 180px;
  }
}

@media (max-width: 768px) {
  .content {
    flex-direction: column;
    text-align: center;
  }

  .text-block h1 {
    font-size: 36px;
  }

  .text-block .description {
    max-width: 100%;
  }

  .buttons {
    justify-content: center;
  }

  .image-block {
    margin-top: 40px;
  }

  .main-img {
    max-width: 90%;
  }

  .overlay-img {
    width: 160px;
  }

  .battery {
    top: -20px;
    left: 20px;
  }

  .corridor {
    top: 20px;
    right: 20px;
  }

  .trajet {
    bottom: -10px;
    right: 30px;
  }
}

@media (max-width: 480px) {
  .tracking-section {
    padding: 50px 30px;
  }

  .text-block h1 {
    font-size: 30px;
  }

  .buttons {
    flex-direction: column;
    gap: 15px;
  }

  .overlay-img {
    width: 130px;
  }

  .battery {
    top: -10px;
    left: 10px;
  }

  .corridor {
    top: 20px;
    right: 10px;
  }

  .trajet {
    bottom: 0;
    right: 10px;
  }
}



/* SECTION c1 image */
.geoloc-section {
  background-color: #f7f7f7;
  padding: 50px 5% 80px; /* 40px en haut au lieu de 80px */
}

.container {
  max-width: 1300px;
  margin: 0 auto;
}

/* INTRO */
.intro {
  text-align: center;
  margin-bottom: 60px;
}

.intro h2 {
  font-size: 28px;
  font-weight: 700;
  color: var(--heading-color);
  line-height: 1.2;
  margin-bottom: 20px;
}

.intro p {
  color: #333;
  font-size: 16px;
  line-height: 1.7;
  max-width: 850px;
  margin: 0 auto;
}

/* CONTENU PRINCIPAL */
.content-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
}

/* BLOCS GAUCHE */
.features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 60px;
  flex: 1;
}

.feature {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.feature i {
  font-size: 36px;
  color: var(--heading-color);
  margin-bottom: 15px;
}

.feature h3 {
  font-size: 20px;
  font-weight: 700;
  color: #111;
  margin-bottom: 10px;
}

.feature p {
  font-size: 15px;
  color: #333;
  line-height: 1.6;
}

/* IMAGE DROITE */
.image-wrapper {
  flex: 1;
  display: flex;
  justify-content: center;
}

.dashboard-image {
  width: 90%;
  max-width: 700px;
  height: auto; /* garde les proportions naturelles */
  aspect-ratio: 16 / 14; /* 🔹 force un format plus large et moins haut */
  border-radius: 12px;
  object-fit: cover; /* évite la déformation */
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  transition: transform 0.3s ease;
}



.dashboard-image:hover {
  transform: scale(1.02);
}

/* ✨ Animation fade-slide */
.fade-slide {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-slide.visible {
  opacity: 1;
  transform: translateY(0);
}

/* RESPONSIVE DESIGN */
@media (max-width: 1024px) {
  .geoloc-section {
    padding: 60px 60px;
  }

  .intro h2 {
    font-size: 30px;
  }

  .content-wrapper {
    flex-direction: column;
    text-align: center;
  }

  .features {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .image-wrapper {
    margin-top: 40px;
  }

  .dashboard-image {
    max-width: 80%;
  }
}

@media (max-width: 768px) {
  .intro h2 {
    font-size: 30px;
  }

  .intro p {
    font-size: 15px;
  }

  .feature i {
    font-size: 30px;
  }

  .feature h3 {
    font-size: 18px;
  }

  .dashboard-image {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .geoloc-section {
    padding: 40px 20px;
  }

  .intro h2 {
    font-size: 26px;
  }

  .intro p {
    font-size: 14px;
  }

  .feature p {
    font-size: 14px;
  }
}




/* SECTION PRINCIPALE */
.geofencing-section {
  background-color: #f7f7f7;
  padding: 10px 100px;
  display: flex;
  justify-content: center;
  padding: 2px 5% 80px; /* 40px en haut au lieu de 80px */
}

.geofencing-container {
  background-color: #f9fafd;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 25px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
  padding: 60px 70px;
  max-width: 1300px;
  width: 100%;
  gap: 60px;
}

/* TEXTE GAUCHE */
.geofencing-text {
  flex: 1;
}

.geofencing-text h2 {
  font-size: 28px;
  font-weight: 700;
  color: var(--heading-color);
  margin-bottom: 20px;
}

.geofencing-text p {
  color: #333;
  font-size: 16px;
  line-height: 1.7;
  margin-bottom: 30px;
  max-width: 600px;
}

/* LISTE */
.geofencing-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.geofencing-list li {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
  font-size: 15px;
  color: #111;
}

.geofencing-list i {
  color: var(--heading-color);
  font-size: 20px;
  margin-right: 10px;
}

/* IMAGE DROITE */
.geofencing-image {
  flex: 1;
  display: flex;
  justify-content: center;
}

.geofencing-image img {
  width: 100%;
  max-width: 600px;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease;
}

.geofencing-image img:hover {
  transform: scale(1.02);
}

/* ✨ ANIMATIONS */
.fade-left, .fade-right, .fade-slide {
  opacity: 0;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-left {
  transform: translateX(-60px);
}

.fade-right {
  transform: translateX(60px);
}

.fade-slide {
  transform: translateY(40px);
}

.fade-left.visible,
.fade-right.visible,
.fade-slide.visible {
  opacity: 1;
  transform: translate(0, 0);
}

/* RESPONSIVE */
@media (max-width: 1024px) {
  .geofencing-container {
    flex-direction: column;
    text-align: center;
    padding: 50px 40px;
  }

  .geofencing-text {
    order: 1;
  }

  .geofencing-image {
    order: 2;
    margin-top: 40px;
  }

  .geofencing-text h2 {
    font-size: 28px;
  }

  .geofencing-text p {
    max-width: 100%;
  }

  .geofencing-list li {
    justify-content: left;
  }
}

@media (max-width: 600px) {
  .geofencing-section {
    padding: 40px 20px;
  }

  .geofencing-container {
    padding: 40px 25px;
    border-radius: 20px;
  }

  .geofencing-text h2 {
    font-size: 24px;
  }

  .geofencing-text p {
    font-size: 15px;
  }

  .geofencing-list li {
    font-size: 14px;
    align-items: left;
  }

  .geofencing-image img {
    max-width: 100%;
  }
}




/* SECTION PRINCIPALE */
.assignment-section {
  background-color: #f7f7f7;
  padding: 80px 100px;
  display: flex;
  justify-content: center;
  padding: 0px 5% ; /* 40px en haut au lieu de 80px */
}

.assignment-container {
 
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 25px;
 
  padding: 50px 60px;
  max-width: 1300px;
  width: 100%;
  gap: 60px;
}

/* IMAGE GAUCHE */
.assignment-image {
  flex: 1;
  display: flex;
  justify-content: right;
  align-items: right;
}

.assignment-image img {
  width: 100%;
  max-width: 550px;
  aspect-ratio: 16 / 12;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  transition: transform 0.3s ease;
}

.assignment-image img:hover {
  transform: scale(1.02);
}

/* TEXTE DROITE */
.assignment-text {
  flex: 1;
}

.assignment-text h2 {
  font-size: 28px;
  font-weight: 700;
  color:var(--heading-color);
  margin-bottom: 20px;
}

.assignment-text p {
  color: #333;
  font-size: 16px;
  line-height: 1.7;
  margin-bottom: 30px;
  max-width: 600px;
}

/* LISTE DES POINTS */
.assignment-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.assignment-list li {
  display: flex;
  align-items: flex-start;
  margin-bottom: 12px;
  font-size: 15px;
  color: #111;
  line-height: 1.6;
}

.assignment-list i {
  color: var(--heading-color);
  font-size: 20px;
  margin-right: 10px;
  margin-top: 3px;
}

/* RESPONSIVE DESIGN */
@media (max-width: 1024px) {
  .assignment-section {
    padding: 60px 50px;
  }

  .assignment-container {
    flex-direction: column;
    text-align: center;
    padding: 40px 40px;
  }

  .assignment-image {
    order: 1;
  }

  .assignment-text {
    order: 2;
    margin-top: 30px;
  }

  .assignment-text h2 {
    font-size: 28px;
  }

  .assignment-text p {
    max-width: 100%;
  }

  .assignment-list li {
    justify-content: center;
    text-align: left;
  }
}

@media (max-width: 600px) {
  .assignment-section {
    padding: 40px 20px;
  }

  .assignment-container {
    padding: 30px 25px;
    border-radius: 18px;
  }

  .assignment-text h2 {
    font-size: 24px;
  }

  .assignment-text p {
    font-size: 15px;
  }

  .assignment-list li {
    font-size: 14px;
  }

  .assignment-image img {
    max-width: 100%;
    aspect-ratio: 18 / 9;
  }
}



:root{
  --bg:#f6f7fb;
  --title:#0d0d0d;
  --text:#555;
  --muted:#9b9b9b;
  --blue:#007bff;
}

*{box-sizing:border-box}
body{font-family:'Inter',sans-serif;margin:0;color:var(--text);
    background:linear-gradient(135deg, color-mix(in srgb, var(--background-color), transparent 25%) 0%, color-mix(in srgb, var(--background-color), transparent 10%) 500%);
}

/* Section */
.sec-features{background:var(--bg);padding:20px 5%;}
.wrap{max-width:1250px;margin:0 auto}

/* Titre centré au dessus */
.sec-title{
  text-align:center;
  font-size:28px;
  font-weight:700;
  color:var(--heading-color);
  margin:0 0 40px;
  line-height:1.05;
}

/* Row */
.content-row{
  display:flex;
  gap:40px;
  align-items:flex-start;
  justify-content:space-between;
  flex-wrap:wrap;
}

/* Colonnes */
.col{flex:1;min-width:320px}
.left{position:relative;max-width:600px}
.right{display:flex;justify-content:center;align-items:center}

/* Items (descriptions) */
.items{display:flex;flex-direction:column;gap:28px;padding-left:28px}
.item{
  position:relative;
  padding:6px 18px;
  cursor:pointer;
  transition:all .25s ease;
}
.item h3{
  margin:0 0 8px;font-size:18px;font-weight:700;color:#333;
}
.item p{margin:0;color:var(--text);line-height:1.6;font-size:15.5px}

/* Non-actifs grisés */
.item:not(.active){opacity:.45;}

/* "boxed" style pour le dernier bloc (fond gris clair + petite bordure) */
.item.boxed{
  background:#eef0f3;
  padding:18px;
  border-radius:2px;
  box-shadow:none;
  margin-top:8px;
}

/* Barre active (ligne bleue) — élément séparé pour animation fluide */
#activeBar {
  position: absolute;
  left: 0;
  width: 6px;
  background: #0b5ed7;
  border-radius: 2px;
  transition: transform .35s cubic-bezier(.2,.9,.2,1), height .35s;
  transform-origin: top left;
  top: 0;
  height: 0;
  opacity: 1;
  pointer-events: none;
}

/* Image */
.image-wrap{max-width:540px; width:100%; display:flex;justify-content:center}
.image-wrap img{
  width:100%;
  max-width:540px; /* image moins longue pour ressembler à la capture */
  height:auto;
  display:block;
  border-radius:6px;
  box-shadow:0 0 0 8px rgba(0,0,0,0); /* vide mais prêt si tu veux cadre */
  transition:opacity .35s ease;
}

/* Responsive : mobile empile la colonne et réduit le titre */
@media (max-width:1000px){
  .content-row{flex-direction:column;align-items:center}
  .left{max-width:900px}
  .sec-title{font-size:32px}
  .image-wrap{max-width:420px}
}

/* Mobile small */
@media (max-width:520px){
  .sec-title{font-size:24px}
  .items{padding-left:18px}
  #activeBar{left:6px} /* décale si besoin */
}



/* SECTION GLOBALE */
.cta-section {
  background: #f6f7fb;
  display: flex;
  justify-content: center;
  padding: 50px 5% 80px; /* 40px en haut au lieu de 80px */
}

/* CONTENEUR PRINCIPAL BLANC ARRONDI */
.cta-container {
  background: #ffffff;
  border-radius: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1250px;
  width: 100%;
  padding: 60px 70px;
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  gap: 50px;
  position: relative;
  overflow: hidden;

}

/* COLONNE TEXTE */
.cta-text {
  flex: 1;
  min-width: 320px;
}

.cta-text h1 {
  font-size: 28px;
  font-weight: 800;
  color: var(--heading-color);
  line-height: 1.2;
  margin-bottom: 20px;
}

.cta-text p {
  font-size: 16px;
  color: #333333;
  margin-bottom: 35px;
}

/* BOUTONS */
.cta-buttons {
  display: flex;
  gap: 15px;
}

.btn-primary {
  background: var(--heading-color);
  color: #ffffff;
  text-decoration: none;
  font-weight: 600;
  padding: 12px 26px;
  border-radius: 5px;
  transition: background 0.3s ease;
}

.btn-primary:hover {
  background: #e7e8ea;
  color: var(--heading-color);
}

.btn-secondary {
  background: #f2f3f6;
  color: var(--heading-color);
  text-decoration: none;
  font-weight: 600;
  padding: 12px 26px;
  border-radius: 5px;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: background 0.3s ease;
}

.btn-secondary:hover {
  background: #e7e8ea;
}

.arrow {
  font-weight: 700;
  font-size: 18px;
  color: var(--heading-color);
}

/* COLONNE IMAGE */
/* COLONNE IMAGE */
.cta-image {
  flex: 1;
  display: flex;
  justify-content: flex-end; /* pousse l'image complètement à droite */
  align-items: stretch; /* étire verticalement l'image pour remplir le conteneur */
  min-width: 350px;
  height: 100%;
}

.cta-image img {
  width: 100%;
  height: 100%;
  max-width: none; /* enlève la limite de largeur */
  border-radius: 0 30px 30px 0; /* arrondi seulement à droite */
  object-fit: cover; /* ajuste le cadrage */
  display: block;
}


/* ESPACE BAS DROITE pour l'effet "vide" entre ligne et colonne */


/* RESPONSIVE */
@media (max-width: 992px) {
  .cta-container {
    flex-direction: column;
    text-align: center;
    padding: 50px 40px;
  }

  .cta-text h1 {
    font-size: 32px;
  }

  .cta-image img {
    max-width: 400px;
  }

  .cta-buttons {
    justify-content: center;
    flex-wrap: wrap;
  }

  .cta-container::after {
    
  }
}
