    :root{
      --deep:#0B1F3B;
      --ink:#1E1E1E;
      --soft:#F5F5F5;
      --line:#E5E7EB;
      --muted:#6B7280;
    }

    body{
      color:var(--ink);
      background:#ffffff;
      line-height:1.65;
    }

    .bg-deep{
      background:var(--deep);
    }

    .text-deep{
      color:var(--deep);
    }

    .section-pad{
      padding:72px 0;
    }

    .hero-pad{
      padding:104px 0 88px;
      background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    }

    .max-w{
      max-width:860px;
    }

    .hero-kicker{
      text-transform:uppercase;
      font-size:.82rem;
      letter-spacing:.08em;
      color:var(--muted);
      margin-bottom:12px;
    }

    .hero-title{
      font-size:clamp(2.2rem, 5vw, 4rem);
      line-height:1.08;
      font-weight:700;
      margin-bottom:20px;
      color:var(--deep);
    }

    .hero-subtitle{
      font-size:1.15rem;
      color:#374151;
      margin-bottom:28px;
    }

    .soft-box{
      background:var(--soft);
      border:1px solid var(--line);
      border-radius:18px;
      padding:28px;
    }

    .principle-card{
      background:#ffffff;
      border:1px solid var(--line);
      border-radius:18px;
      padding:24px;
      height:100%;
      box-shadow:0 8px 24px rgba(0,0,0,.04);
    }

    .section-title{
      color:var(--deep);
      font-weight:700;
      margin-bottom:16px;
    }

    .section-intro{
      color:#4B5563;
      max-width:760px;
    }

    .cta-band{
      border-radius:22px;
      padding:32px;
      background:var(--deep);
      color:#ffffff;
    }

    .footer-quote{
      font-size:.95rem;
      opacity:.85;
    }

    .navbar-brand{
      letter-spacing:.01em;
    }

    .nav-link{
      position:relative;
    }

    .nav-link::after{
      content:"";
      position:absolute;
      left:.5rem;
      right:.5rem;
      bottom:.25rem;
      height:2px;
      background:var(--deep);
      transform:scaleX(0);
      transform-origin:left;
      transition:transform .25s ease;
    }

    .nav-link:hover::after{
      transform:scaleX(1);
    }

    @media (max-width: 767.98px){
      .hero-pad{
        padding:80px 0 64px;
      }

      .soft-box,
      .principle-card,
      .cta-band{
        padding:22px;
      }
    }
    
/* NAVIGATION – soulignement animé */

.nav-link{
  position: relative;
  display: inline-block;
  padding-bottom:4px;
}

/* ligne invisible */
.nav-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:0;
  height:2px;
  background-color:currentColor;
  transition:width .25s ease;
}

/* animation au hover */
.nav-link:hover::after{
  width:100%;
}

/* page active */
.nav-link.active::after{
  width:100%;
}

/* =========================
   TITRES MENU
   ========================= */

.titre-smart{ color:#1d4ed8; font-weight:700; }
.titre-main{ color:#1d4ed8; font-weight:700; }
.titre-stat{ color:#d97706; font-weight:700; }
.titre-scale{ color:#4f46e5; font-weight:700; }
.titre-indus{ color:#4b5563; font-weight:700; }
.titre-resil{ color:#c2410c; font-weight:700; }
.titre-raptor{ color:#dc2626; font-weight:700; }
.titre-eco{ color:#16a34a; font-weight:700; }
.titre-doc{ color:#1f8a8a; font-weight:700; }
.titre-badge{ color:#000000; font-weight: 700;}

/* =========================
   IMAGE BADGE
   ========================= */

.eco-icon-center{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:20px 0;
}

.eco-icon-center img{
  width:90px;
  height:90px;
  object-fit:contain;
  display:block;
  background:#ffffff;
  border-radius:50%;
  padding:10px;
  border:4px solid var(--title-color);
  box-shadow:0 10px 25px rgba(0,0,0,0.18);
}

img.img-fluid{
  display:block;
  max-width:100%;
  height:auto;
}

.logo-menu{
  width:72px;
  height:72px;
  object-fit:contain;
}

/* =========================
   FOOTER
   ========================= */

footer{
  text-align:center;
  padding:24px;
  font-size:14px;
  color:#000000;
  border-top:1px solid #d9d9d9;
  margin-top:40px;
  background:#ffffff;
}

footer a{
  color:var(--main-color) !important;
  text-decoration:none;
  font-weight:500;
}

footer a:hover{
  opacity:.8;
}