:root{
    --bg:#12181f; --panel:#1a212b; --muted:#9fb3c8; --text:#e6eef7;
    --brand:#43cf21; --brand-2:#8fffa9; --brand-3:#1bd98a;
    --stroke:#243041; --shadow:0 10px 30px rgba(0,0,0,.35);
    --radius:18px; --radius-lg:26px; --max:1200px;
    --transition-fast:300ms ease;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0; font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial;
    color:var(--text); background:var(--bg);
    overflow-x:hidden;
  }
  a{color:var(--brand)}
  /*___________________________________ custom scrollbar ______________________________________________*/
::-webkit-scrollbar {
  width: 20px;
}

::-webkit-scrollbar-track {
  background-color: var(--panel);
}

::-webkit-scrollbar-thumb {
  background-color: var(--brand);
  border-radius: 20px;
  border: 6px solid transparent;
  background-clip: content-box;
}

::-webkit-scrollbar-thumb:hover {
  background-color: var(--brand);
}

.brand {
    color: var(--brand);
  }
  /* Header */
    .top{
      position: sticky;
  top: 0;
  z-index: 50;
      backdrop-filter: blur(12px);
  background:linear-gradient(to bottom, rgba(10,14,18,.9), rgba(10,14,18,.6));
  border-bottom:1px solid #0f1620;

  }
  .top-nav {
  max-width:var(--max); margin:auto;
  
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 1px 22px;

}

  .nav{max-width:var(--max); margin:auto; padding:0px 20px; display:flex; align-items:center; gap:18px}
  .logo{
    display:flex; align-items:center; gap:0px; text-decoration:none; white-space:nowrap;
    color:var(--text);
    font-weight: 600;
    font-size: 24px;
    letter-spacing: 0.1em; 
  }
  .logo-img{
    height: 80px;
  }

  @media (min-width: 640px) {
    .logo-img{
      height: 100px;
    }
  }
  .logo-badge{width:34px; height:34px; border-radius:12px; background:conic-gradient(from 180deg,var(--brand),var(--brand-3));
    box-shadow:0 0 0 3px #0f2414, inset 0 0 15px rgba(0,0,0,.35)}
  .navlinks{margin-left:auto; display:flex; flex-wrap:wrap; gap:6px}
  .navlinks a{
    padding:8px 12px; border-radius:12px; text-decoration:none; color:var(--text);
    border:1px solid #1f2937; background:#0f1620; opacity:.9;
  }
  .navlinks a:hover{border-color:#2b3a50; opacity:1}
  .nav-links {
  display: flex;
  gap: 18px;
  font-size: 15px;
  margin-left: auto;
}

.nav-links a {
  text-decoration: none;
  color: var(--text);
  padding: 4px 0;
  position: relative;
}

.nav-links a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1.5px;
  background-color: var(--brand);
  transition: width var(--transition-fast);
}

.nav-links a:hover::after {
  width: 100%;
}
  /* Hero */
  .hero{
    max-width:var(--max); margin:40px auto 0; padding:22px 20px 10px;
    display:grid; grid-template-columns:1.1fr .9fr; gap:26px; align-items:center;
  }
  .title{font-size:44px; line-height:1.15; margin:6px 0 10px; font-weight:900}
  .subtitle{color:var(--muted); margin:0 0 24px; font-weight: 500 ;}
  .cta{display:flex; gap:12px; flex-wrap:wrap}
  .btn{
    border:none; cursor:pointer; padding:12px 18px; border-radius:14px; font-weight:700;
    background:linear-gradient(135deg,var(--brand) 0%, var(--brand-2) 100%);
    color:#06210f; box-shadow:var(--shadow);
  }
  .btn.secondary{background:#0f1620; color:var(--text); border:1px solid #203045}
  .screen{
    aspect-ratio:16/10; border-radius:var(--radius-lg); border:1px solid var(--stroke);
    background:
      linear-gradient(to bottom right, rgba(52,224,89,.08), transparent 40%),
      radial-gradient(120px 90px at 80% 10%, rgba(52,224,89,.18), transparent 40%),
      #0f1620;
    box-shadow:var(--shadow); position:relative; overflow:hidden;
  }
  /* Decorative mock dashboard inspired by your captures, without names */
  .screen .bar{background:#111924; border-bottom:1px solid var(--stroke); display:flex; flex-wrap: wrap; align-items:center; padding:5px 14px; gap:5px}
  .pill{height:22px; padding:0 10px; border-radius:999px; background:#0b1320; border:1px solid #1e2a3b; color:#a7bacf; display:inline-flex; align-items:center; gap:8px; font-size:12px}
  .dot{width:8px; height:8px; border-radius:50%; background:var(--brand)}
  .grid{
    display:grid; gap:14px; grid-template-columns:repeat(6,1fr);
  }
  .card{
    background:linear-gradient(180deg,#162130,#121a27); border:1px solid var(--stroke); border-radius:16px; padding:14px; min-height:90px; min-width: -webkit-fill-available;
  }
  .card:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 18px rgba(0,255,120,0.15);
    transition: 0.25s ease;
  }
  .card h4{margin:6px 0 8px; font-size:14px}
  .small{font-size:12px; color:#9bb0c7}
  .span-2{grid-column:span 2}
  .span-3{grid-column:span 3}
  .span-6{grid-column:1/-1}
  .chart{height:140px; border-radius:12px; background:
    linear-gradient(0deg, rgba(52,224,89,.07), transparent 60%),
    repeating-linear-gradient(to right, transparent 0 28px, rgba(255,255,255,.04) 28px 29px),
    repeating-linear-gradient(to top, transparent 0 28px, rgba(255,255,255,.04) 28px 29px),
    #0e1520; border:1px solid #203045; position:relative; overflow:hidden}
  .chart svg{position:absolute; inset:0}
  /* Sections */
  section{max-width:var(--max); margin:0 auto; padding:60px 20px}
  .section-title{font-size:32px; margin:0 0 14px}
  .section-sub{color:var(--muted); margin:0 0 26px; font-weight:500}
  .features{display:grid; gap:18px; grid-template-columns:repeat(3,1fr)}
  .feature{
    background:linear-gradient(180deg,#121a26,#0f1620); border:1px solid var(--stroke); border-radius:var(--radius);
    padding:18px; box-shadow:var(--shadow); position:relative; overflow:hidden;
  }
  .feature:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 18px rgba(0,255,120,0.15);
    transition: 0.25s ease;
  }

  .feature-title{
    
    display: inline-flex;
    align-items: center;

  }
  .feature i{
    display:inline-flex; width:20px; height:20px; align-items:center; justify-content:center;
    border-radius:5px; background:var(--brand);
    color:#072015; font-weight:900; margin-bottom:8px; margin-right: 10px;
  }
  .feature h3{margin:6px 0 8px; font-size:18px}
  .feature p{margin:0; color:#c5d5e5; font-size:14px}
  
  .tag{display:inline-block; padding:4px 8px; font-size:12px; border:1px solid #24405a; border-radius:999px; color:#bcd0e4; background:#0c1420; margin-right:6px}
  .grid-2{display:grid; grid-template-columns:1fr 1fr; gap:24px}
  .callout{
    background:linear-gradient(180deg,#101925,#0c141f); border:1px solid #203045; padding:18px; border-radius:var(--radius);
  }
  /* Footer */
  footer{border-top:1px solid #0f1620; color:#9db3c7; background:#0c1218}
  footer .wrap{max-width:var(--max); margin:auto; padding:28px 20px; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap}
  .tiny{font-size:13px; color:#8ea6bf}
  /* Reveal on scroll */
  /* .reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease}
  .reveal.visible{opacity:1; transform:none} */
  .reveal {
  opacity: 0;
  transform: translateY(30px) scale(0.98);
  transition: opacity .8s ease-out, transform .8s cubic-bezier(.22,1,.36,1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.reveal:nth-child(1) { transition-delay: .1s; }
.reveal:nth-child(2) { transition-delay: .2s; }
.reveal:nth-child(3) { transition-delay: .3s; }
  /* Responsive */
  .mobile-only {
    display: none;
  }
  @media (max-width:1000px){
    .hero{grid-template-columns:1fr}
    .features{grid-template-columns:1fr 1fr}
    .grid{grid-template-columns:repeat(4,1fr)}
    .span-3{grid-column:span 2}
  }
  @media (max-width:640px){
    .title{font-size:36px}
    .features{grid-template-columns:1fr}
    .grid{grid-template-columns:repeat(2,1fr)}
    .span-2,.span-3{grid-column:span 2}
    .mobile-only {display: block;}
  }
  /* A11y Reduced motion */
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .reveal{transition:none}
  }
  

/* Bouton burger */
.menu-btn{
  display:none;
  margin-left:auto;
  background:transparent;
  border:0;
  cursor:pointer;
  padding:8px;
  border-radius:10px;
  outline-offset:3px;
  flex-direction:column;            /* ✅ empile les barres verticalement */
  justify-content:center;
  align-items:center;
  gap:5px;                          /* espace entre les barres */
}

.menu-btn:focus-visible{
  outline:2px solid var(--brand);
}

.menu-bar{
  width:26px;
  height:2.5px;
  background:var(--text);
  border-radius:2px;
  transition:transform .25s ease, opacity .25s ease, background .25s;
}

/* Animation du X quand ouvert */
.menu-btn.open .menu-bar:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.menu-btn.open .menu-bar:nth-child(2){
  opacity:0;
}
.menu-btn.open .menu-bar:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}


/* Mobile */
@media (max-width: 820px){
  .top-nav{gap:8px}
  .menu-btn{display:inline-flex}
  /* le menu devient un panneau déroulant */
  .nav-links{
    position:absolute; top:60px; left:0; right:0;
    display:grid; gap:8px; padding:12px 16px;
    background:rgba(10,14,18,.96); border-bottom:1px solid #0f1620;
    transform-origin: top; transform:scaleY(0); opacity:0; pointer-events:none;
    transition:transform .22s ease, opacity .22s ease;
  }
  .nav-links a{padding:12px 14px; border-radius:12px; background:#0f1620; border:1px solid #1f2937}
  /* état ouvert */
  .nav-links.open{transform:scaleY(1); opacity:1; pointer-events:auto}
  /* sur mobile, on laisse la place au bouton (pas besoin de margin-left:auto sur .navlinks) */
}

/* Option accessibilité : quand fermé, on retire les liens du tab-order (via [tabindex]) ; 
   la classe .nav-ready ci-dessous sera posée par JS pour réactiver le tabbing en mode ouvert */
.navlinks:not(.nav-ready) a{pointer-events:none}





/* --- FLASH PROMO --- */
.flash-promo{
  background:linear-gradient(135deg, var(--brand-3), var(--brand));
  color:#ffffff;
  padding:0px 20px 0px 20px;
  text-align:center;
  box-shadow:0 6px 25px rgba(0,0,0,.35);
  position:relative;
  overflow:hidden;
}

.flash-content{
  max-width:var(--max);
  margin:auto;
  animation:flashIn 1s ease forwards;
}

.flash-content h2{
  margin:0 0 14px;
  font-size:26px;
  font-weight:900;
}

.flash-content ul{
  list-style:none;
  padding:0;
  margin:0 0 18px;
}

.flash-content li{
  font-size:18px;
  font-weight:500;
  margin:6px 0;
}

.flash-content strong{
  color:#021407;
  background:rgba(255,255,255,.35);
  padding:2px 6px;
  border-radius:6px;
}

.flash-content em{
  font-style:normal;
  text-decoration:underline dotted #04280f;
}

/* bouton adapté */
.flash-promo .btn{
  background:#0f1620;
  color:var(--brand);
  border:2px solid #0f1620;
}
.flash-promo .btn:hover{
  background:#04230d;
  color:#fff;
}

/* animation subtile */
@keyframes flashIn{
  0%{opacity:0; transform:translateY(15px)}
  100%{opacity:1; transform:none}
}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,0.15)}
  50%{box-shadow:0 0 12px 2px rgba(0,0,0,0.25)}
}
.flash-promo{animation:pulse 3s infinite ease-in-out;}

/* Modal – conditions promos */
.modal{position:fixed; inset:0; display:none; z-index:10000}
.modal[aria-hidden="false"]{display:block}
.modal-backdrop{
  position:absolute; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(2px);
}
.modal-panel{
  position:relative; width:min(720px, 92vw); max-height:85vh; overflow:auto;
  margin:6vh auto 0; padding:20px 18px;
  background:linear-gradient(180deg,#101925,#0c141f);
  border:1px solid #203045; border-radius:16px; box-shadow:0 18px 50px rgba(0,0,0,.45);
  outline:none;
}
.modal-close{
  position:absolute; top:10px; right:12px; border:0; background:#0f1620; color:var(--text);
  width:34px; height:34px; border-radius:10px; cursor:pointer; border:1px solid #223246;
}
.modal-body ol{margin:0; padding-left:18px}
.modal-body li{margin:8px 0}
.modal-body .tiny{color:#9db3c7; font-size:12px}
