html, body{
height:100%;
overflow-x:hidden;
}

body{
min-height:100vh;
display:flex;
flex-direction:column;
scroll-behavior:smooth;
}

main{
flex:1;
}
*{margin:0;padding:0;box-sizing:border-box}
:root{
--bg:#0b141a;
--card:#111b21;
--border:rgba(139,92,246,.35);
--violet:#8b5cf6;
--violet-dark:#7c3aed;
--text:#e9edef;
--muted:#8696a0;
}
body{
background:var(--bg);
color:var(--text);
}

header{
position:fixed;
top:0;width:100%;
z-index:1000;
background:rgba(11,20,26,.9);
backdrop-filter:blur(16px);
border-bottom:1px solid var(--border);
}
.navbar{
max-width:1200px;
margin:auto;
padding:16px 24px;
display:flex;
justify-content:space-between;
align-items:center;
}
.logo{color:var(--violet);font-weight:800;text-decoration:none}
.nav-links{display:flex;gap:18px}
.nav-links a{color:var(--muted);text-decoration:none}
.nav-links a:hover{color:var(--violet)}
.burger{display:none;font-size:22px;cursor:pointer}
.nav-links a{
position:relative;
}

.nav-links a::after{
content:"";
position:absolute;
bottom:-6px;
left:0;
width:0;
height:2px;
background:var(--violet);
transition:.3s;
}

.nav-links a:hover::after{
width:100%;
}

.container{max-width:1200px;margin:auto;padding:20px}
.hero{padding-top:160px;text-align:center}
.hero h1{font-size:3rem}
.hero span{color:var(--violet)}
.hero p{margin:20px auto;max-width:780px;color:var(--muted)}
.btn{padding:12px 22px;border-radius:30px;border:none;cursor:pointer;font-weight:600}
.btn-primary{background:linear-gradient(135deg,var(--violet),var(--violet-dark));color:#fff}
.btn-outline{background:none;border:1px solid var(--border);color:#fff}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px;margin-top:40px}
.card{
background:linear-gradient(145deg,#111b21,#0f171c);
border:1px solid rgba(139,92,246,.25);
border-radius:20px;
padding:28px;
transition:all .35s ease;
position:relative;
overflow:hidden;
}

.card::before{
content:"";
position:absolute;
inset:0;
background:linear-gradient(120deg,transparent,rgba(139,92,246,.15),transparent);
opacity:0;
transition:.4s;
}

.card:hover::before{
opacity:1;
}

.card:hover{
transform:translateY(-8px) scale(1.02);
box-shadow:0 20px 40px rgba(0,0,0,.4);
}

.auth-actions{display:flex;gap:10px;align-items:center}
.auth-actions img{width:32px;height:32px;border-radius:50%}

.modal-bg{
position:fixed;inset:0;
background:rgba(0,0,0,.65);
display:none;
align-items:center;
justify-content:center;
z-index:2000
}
.modal{
background:var(--card);
border:1px solid var(--border);
padding:30px;
border-radius:20px;
max-width:420px;width:100%
}
.auth-btn{
width:100%;
padding:14px;
margin-top:12px;
border-radius:12px;
border:none;
cursor:pointer;
font-weight:600;
display:flex;
align-items:center;
justify-content:center;
gap:10px
}
.auth-btn.google{background:#fff;color:#000}
.auth-btn.facebook{background:#1877f2;color:#fff}
.auth-btn.github{background:#0f172a;color:#fff}
.close-btn{margin-top:16px;background:none;border:none;color:#94a3b8;cursor:pointer}

.stars-display{
  margin:6px 0 10px;
  color:#facc15;
}

/* =========================
   ⭐ AVIS & COMMENTAIRES
========================= */

#comments{
max-width:900px;
margin:80px auto;
padding:40px;
background:linear-gradient(180deg,#0f172a,#020617);
border:1px solid var(--border);
border-radius:26px;
box-shadow:0 0 60px rgba(139,92,246,.25);
}

#comments h2{
text-align:center;
font-size:2.2rem;
margin-bottom:25px;
background:linear-gradient(135deg,var(--violet),#a78bfa);
-webkit-background-clip:text;
color:transparent;
}

/* FORM */
#comment-form{
display:flex;
flex-direction:column;
gap:16px;
background:rgba(255,255,255,.02);
padding:30px;
border-radius:20px;
border:1px solid rgba(255,255,255,.06);
}

#comment-form input,
#comment-form textarea{
background:#020617;
border:1px solid rgba(255,255,255,.08);
border-radius:14px;
padding:14px 16px;
color:#fff;
font-size:15px;
outline:none;
}

#comment-form textarea{
min-height:120px;
resize:none;
}

#comment-form input:focus,
#comment-form textarea:focus{
border-color:var(--violet);
box-shadow:0 0 0 2px rgba(139,92,246,.35);
}

/* ⭐ ÉTOILES */
.stars{
display:flex;
justify-content:center;
gap:10px;
font-size:32px;
cursor:pointer;
}

.stars span{
filter:grayscale(1);
opacity:.4;
transition:.25s ease;
}

.stars span:hover,
.stars span.active{
filter:none;
opacity:1;
transform:scale(1.25);
text-shadow:0 0 14px rgba(250,204,21,.7);
}

/* BOUTON */
#comment-form button{
margin-top:10px;
align-self:center;
padding:14px 34px;
border-radius:40px;
border:none;
font-weight:700;
font-size:15px;
cursor:pointer;
color:white;
background:linear-gradient(135deg,var(--violet),var(--violet-dark));
box-shadow:0 0 30px rgba(139,92,246,.45);
transition:.3s;
}

#comment-form button:hover{
transform:translateY(-2px);
box-shadow:0 0 50px rgba(139,92,246,.65);
}

/* 📊 STATS */
#comments > p{
text-align:center;
margin:25px 0 35px;
font-size:1.1rem;
color:#c4b5fd;
}

/* LISTE COMMENTAIRES */
#comments-list{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:22px;
}

/* CARTE COMMENTAIRE */
.comment-card{
background:rgba(255,255,255,.03);
border:1px solid rgba(255,255,255,.08);
border-radius:20px;
padding:22px;
transition:.3s;
position:relative;
overflow:hidden;
}

.comment-card::before{
content:"";
position:absolute;
inset:0;
background:linear-gradient(120deg,transparent,rgba(139,92,246,.18),transparent);
opacity:0;
transition:.4s;
}

.comment-card:hover::before{
opacity:1;
}

.comment-card:hover{
transform:translateY(-6px);
box-shadow:0 0 40px rgba(139,92,246,.35);
}

.comment-card h4{
margin-bottom:6px;
color:#a78bfa;
}

.comment-card p{
color:#e5e7eb;
font-size:14px;
line-height:1.6;
}

.comment-card .stars-display{
margin:6px 0 10px;
color:#facc15;
}

.comment-date{
display:block;
margin-top:10px;
font-size:12px;
color:#9ca3af;
text-align:right;
}

.delete-comment{
margin-top:10px;
padding:6px 14px;
border:none;
border-radius:10px;
font-size:12px;
cursor:pointer;
background:#dc2626;
color:white;
}
.delete-comment:hover{
background:#b91c1c;
}

@media (max-width: 600px) {

  .hero h1 {
    font-size: 2rem;
  }

  .hero p {
    font-size: 1rem;
    padding: 0 10px;
  }

  .navbar {
    padding: 14px;
  }

  .auth-actions {
    flex-direction: column;
    gap: 6px;
  }

  #comments {
    margin: 40px 12px;
    padding: 24px 16px;
  }

  #comment-form {
    padding: 20px;
  }

  .stars {
    font-size: 26px;
  }

  .comment-card {
    padding: 18px;
  }

  .modal {
    margin: 0 12px;
  }
}

/* =========================
   🧠 SECTION DESCRIPTION
========================= */
.about{
  max-width:1200px;
  margin:100px auto;
  padding:40px 20px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
  align-items:center;
}

.about h2{
  font-size:2.4rem;
  margin-bottom:20px;
  background:linear-gradient(135deg,var(--violet),#a78bfa);
  -webkit-background-clip:text;
  color:transparent;
}

.about p{
  color:var(--muted);
  font-size:1.05rem;
  line-height:1.8;
  margin-bottom:16px;
}

.about ul{
  margin-top:20px;
  padding-left:20px;
}

.about li{
  margin-bottom:10px;
  color:#e5e7eb;
}

.about img{
  width:100%;
  border-radius:22px;
  border:1px solid var(--border);
  box-shadow:0 0 60px rgba(139,92,246,.35);
}

@media(max-width:900px){
  .about{
    grid-template-columns:1fr;
    text-align:center;
  }
}

/* =========================
   🧩 CARTES SERVICES
========================= */
.services{
  max-width:1200px;
  margin:80px auto;
  padding:0 20px;
}

.services h2{
  text-align:center;
  font-size:2.4rem;
  margin-bottom:50px;
  background:linear-gradient(135deg,var(--violet),#a78bfa);
  -webkit-background-clip:text;
  color:transparent;
}

.services-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:28px;
}

.service-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:22px;
  padding:30px;
  transition:.35s ease;
  opacity:0;
  transform:translateY(30px);
}

.service-card i{
  font-size:36px;
  color:var(--violet);
  margin-bottom:18px;
}

.service-card h3{
  margin-bottom:12px;
}

.service-card p{
  color:var(--muted);
  line-height:1.6;
}

.service-card.show{
  opacity:1;
  transform:translateY(0);
}

.service-card:hover{
  transform:translateY(-6px);
  box-shadow:0 0 40px rgba(139,92,246,.35);
}

.menu-btn{
  font-size:24px;
  cursor:pointer;
  color:var(--text);
  z-index:3001;
}

.drawer-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(10px);
  opacity:0;
  pointer-events:none;
  transition:.35s ease;
  z-index:1999;
}

.drawer-overlay.show{
  opacity:1;
  pointer-events:auto;
}

.drawer{
  position:fixed;
  top:0;
  right:0;
  transform:translateX(100%);
  opacity:0;
  width:340px;
  max-width:90%;
  height:100%;
  min-height:100dvh;
  background:var(--card);
  border-left:1px solid var(--border);
  padding:28px;
  transition:
    transform .45s cubic-bezier(.4,0,.2,1),
    opacity .3s ease;
  z-index:2000;
  display:flex;
  flex-direction:column;
  }

.drawer.open{
  transform:translateX(0);
  opacity:1;
}

.drawer-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-weight:700;
  margin-bottom:30px;
}

.drawer-header button{
  background:none;
  border:none;
  color:var(--muted);
  font-size:20px;
  cursor:pointer;
}

.drawer-links a{
  display:block;
  padding:14px 12px;
  margin-bottom:6px;
  border-radius:14px;
  color:var(--muted);
  text-decoration:none;
  font-weight:500;
  opacity:0;
  transform:translateX(20px);
  animation:linkFade .4s forwards;
  touch-action:manipulation;
}

.drawer.open .drawer-links a{
  animation-delay:calc(var(--i) * 80ms);
}

.drawer-links a:hover{
  background:rgba(139,92,246,.15);
  color:var(--violet);
  position:relative;
}

.drawer-links{
  flex:1;
  overflow-y:auto;
  padding-right:6px;
  -webkit-overflow-scrolling: touch;
}

.drawer-links::after{
  content:"";
  position:sticky;
  bottom:0;
  left:0;
  width:100%;
  height:24px;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    rgba(15,15,25,0),
    rgba(15,15,25,.85)
  );
  opacity:0;
  transition:.3s;
}

.drawer-links.can-scroll::after{
  opacity:1;
}

.drawer-links::-webkit-scrollbar{
  width:6px;
}
.drawer-links::-webkit-scrollbar-thumb{
  background:rgba(139,92,246,.4);
  border-radius:10px;
}
.drawer-links::-webkit-scrollbar-track{
  background:transparent;
}

.drawer-cta{
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:#fff !important;
  text-align:center;
  font-weight:700;
}

.drawer-search{
  margin-bottom:16px;
}

.drawer-search input{
  width:100%;
  padding:12px 14px;
  border-radius:10px;
  background:var(--bg);
  border:1px solid var(--border);
  color:var(--text);
  outline:none;
}

.drawer-search input::placeholder{
  color:var(--muted);
}

@keyframes linkFade{
  to{
    opacity:1;
    transform:translateX(0);
  }
}

.drawer-links mark{
  background:rgba(139,92,246,.3);
  color:inherit;
  padding:2px 4px;
  border-radius:4px;
}

/* ================= DASHBOARD ================= */

.dashboard{
  margin:100px auto;
}

.dashboard-title{
  text-align:center;
  font-size:2.4rem;
  margin-bottom:50px;
  background:linear-gradient(135deg,var(--violet),#a78bfa);
  -webkit-background-clip:text;
  color:transparent;
}

/* KPI */
.kpi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:28px;
  margin-bottom:50px;
}

.kpi-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:22px;
  padding:30px;
  text-align:center;
  transition:.35s;
}

.kpi-card h4{
  color:var(--muted);
  margin-bottom:15px;
}

.kpi-card p{
  font-size:2rem;
  font-weight:800;
  color:var(--violet);
}

.kpi-card:hover{
  transform:translateY(-6px);
  box-shadow:0 0 40px rgba(139,92,246,.4);
}

/* TABLE */
.stats-table-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:22px;
  padding:30px;
  margin-bottom:60px;
  overflow:auto;
}

.stats-table{
  width:100%;
  border-collapse:collapse;
}

.stats-table th,
.stats-table td{
  padding:16px;
  text-align:left;
}

.stats-table th{
  color:var(--muted);
  border-bottom:1px solid rgba(255,255,255,.1);
}

.stats-table tr:hover{
  background:rgba(139,92,246,.05);
}

/* CHARTS */
.charts-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}

canvas{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:22px;
  padding:20px;
}

@media(max-width:900px){
  .charts-grid{
    grid-template-columns:1fr;
  }
}

/* ================= HEATMAP ================= */

.heatmap-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:22px;
  padding:30px;
  margin-top:60px;
}

.heatmap-card h3{
  margin-bottom:25px;
}

.heatmap-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(22px,1fr));
  gap:6px;
}

.heatmap-day{
  width:22px;
  height:22px;
  border-radius:6px;
  background:#1f2937;
  transition:.3s;
}

.heatmap-day:hover{
  transform:scale(1.2);
}

.kpi-card{
  position:relative;
}

.badge-float{
  position:absolute;
  top:15px;
  right:15px;
  padding:6px 12px;
  border-radius:30px;
  font-size:12px;
  font-weight:700;
  display:flex;
  align-items:center;
  gap:6px;
  transition:.3s;
}

.badge-float svg{
  width:14px;
  height:14px;
}

.badge-float.up{
  background:#dcfce7;
  color:#16a34a;
}

.badge-float.down{
  background:#fee2e2;
  color:#dc2626;
}

.badge-float.neutral{
  background:#e5e7eb;
  color:#6b7280;
}

/* =========================
   🟢 BADGE VISITEURS EN LIGNE
========================= */

.online-badge{
  position:fixed;
  bottom:20px;
  left:20px;
  background:#16a34a;
  color:white;
  padding:10px 18px;
  border-radius:30px;
  font-weight:600;
  font-size:14px;
  display:flex;
  align-items:center;
  gap:8px;
  box-shadow:0 0 25px rgba(22,163,74,.6);
  z-index:3000;
  animation:fadeIn .6s ease;
  cursor:grab;

}

.online-badge .dot{
  width:10px;
  height:10px;
  background:#bbf7d0;
  border-radius:50%;
  animation:pulse 1.5s infinite;
}

@keyframes pulse{
  0%{transform:scale(1);opacity:1}
  50%{transform:scale(1.6);opacity:.6}
  100%{transform:scale(1);opacity:1}
}

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

/* =========================
   ⏳ COMPTE À REBOURS 24H
========================= */

.day-countdown{
  position:relative;
  margin:120px auto 5px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  width:max-content;

  background:rgba(10,15,25,.85);
  backdrop-filter:blur(15px);
  padding:16px 28px;
  border-radius:20px;
  border:1px solid rgba(139,92,246,.4);
  box-shadow:0 0 40px rgba(139,92,246,.6);
}

.countdown-box{
  text-align:center;
  min-width:70px;
}

.countdown-box span{
  font-size:2rem;
  font-weight:900;
  background:linear-gradient(135deg,#ff00cc,#8b5cf6,#22d3ee);
  -webkit-background-clip:text;
  color:transparent;
  text-shadow:0 0 25px rgba(139,92,246,.9);
}

.countdown-box small{
  font-size:.7rem;
  color:#a78bfa;
  letter-spacing:1px;
}

.countdown-separator{
  font-size:1.8rem;
  font-weight:800;
  color:#22d3ee;
  animation:blink 1s infinite;
}

@keyframes blink{
  50%{opacity:.3}
}

/* =========================
   ✅ TOAST CONNEXION PRO
========================= */

.toast-success{
  position:fixed;
  bottom:40px;
  left:50%;
  transform:translate(-50%,40px);

  display:flex;
  align-items:center;
  gap:10px;

  background:linear-gradient(135deg,#16a34a,#22c55e);
  color:white;
  padding:14px 26px;
  border-radius:14px;
  font-weight:600;

  box-shadow:
    0 0 25px rgba(34,197,94,.6),
    0 0 60px rgba(34,197,94,.3);

  opacity:0;
  transition:.4s ease;
  z-index:4000;

  overflow:hidden;
}

/* apparition */

.toast-success.show{
  opacity:1;
  transform:translate(-50%,0);
}

/* icône */

.toast-success .icon{
  font-size:18px;
  animation:pop .4s ease;
}

/* barre de durée */

.toast-success::after{
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  height:3px;
  width:100%;
  background:rgba(255,255,255,.7);
  animation:toastBar 3s linear forwards;
}

/* animation icône */

@keyframes pop{
  0%{transform:scale(.4);opacity:0}
  100%{transform:scale(1);opacity:1}
}

/* barre de progression */

@keyframes toastBar{
  from{width:100%}
  to{width:0}
}

/* =========================
   🛒 MARKETPLACE BUTTON
========================= */

.market-btn{
  display:block;
  margin:80px auto 40px;
  padding:16px 38px;
  font-size:16px;
  font-weight:700;
  border-radius:50px;
  border:none;
  cursor:pointer;
  position:relative;
  overflow:hidden;

  background:linear-gradient(135deg,#8b5cf6,#7c3aed,#22d3ee);
  background-size:200% 200%;
  color:white;

  box-shadow:
    0 0 25px rgba(139,92,246,.6),
    0 0 60px rgba(34,211,238,.4);

  transition:.4s ease;
  animation:gradientMove 4s ease infinite;
}

.market-btn:hover{
  transform:translateY(-4px) scale(1.05);
  box-shadow:
    0 0 35px rgba(139,92,246,.9),
    0 0 80px rgba(34,211,238,.7);
}

.market-btn:active{
  transform:scale(.96);
}

/* effet lumière qui traverse */
.market-btn::after{
  content:"";
  position:absolute;
  top:0;
  left:-100%;
  width:100%;
  height:100%;
  background:linear-gradient(
    120deg,
    transparent,
    rgba(255,255,255,.4),
    transparent
  );
  transition:.6s;
}

.market-btn:hover::after{
  left:100%;
}

/* animation gradient */
@keyframes gradientMove{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

/* =========================
   🔔 NOTIFICATIONS SYSTEM
========================= */

#toastContainer{
  position:fixed;
  bottom:30px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  gap:12px;
  z-index:5000;
}

.toast{
  min-width:260px;
  max-width:420px;

  display:flex;
  align-items:center;
  gap:12px;

  padding:14px 22px;
  border-radius:14px;

  font-weight:600;
  color:white;

  transform:translateY(40px);
  opacity:0;

  box-shadow:0 0 25px rgba(0,0,0,.4);

  animation:toastIn .4s forwards;
  position:relative;
  overflow:hidden;
}

/* couleurs */

.toast.success{
  background:linear-gradient(135deg,#16a34a,#22c55e);
}

.toast.error{
  background:linear-gradient(135deg,#dc2626,#ef4444);
}

.toast.info{
  background:linear-gradient(135deg,#2563eb,#3b82f6);
}

.toast.warning{
  background:linear-gradient(135deg,#d97706,#f59e0b);
}

/* barre progression */

.toast::after{
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  height:3px;
  width:100%;
  background:rgba(255,255,255,.6);
  animation:toastBar linear forwards;
}

/* animations */

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

@keyframes toastOut{
  to{
    opacity:0;
    transform:translateY(40px);
  }
}

@keyframes toastBar{
  from{width:100%}
  to{width:0}
}

#notifBell{
cursor:pointer;
font-size:20px;
margin-left:15px;
position:relative;
}

#notifCount{
background:#ef4444;
color:white;
font-size:12px;
padding:2px 6px;
border-radius:50%;
margin-left:4px;
}

#notifPanel{

position:fixed;
top:80px;
right:20px;

width:320px;
max-height:420px;

background:#111b21;
border:1px solid rgba(139,92,246,.35);

border-radius:16px;

padding:15px;

display:none;

overflow-y:auto;

z-index:5000;

box-shadow:0 0 30px rgba(0,0,0,.6);

}

.notificationItem{

padding:10px;
border-bottom:1px solid rgba(255,255,255,.08);

font-size:14px;

}

.notificationItem:last-child{
border:none;
}

.fade-up{
opacity:0;
transform:translateY(40px);
transition:all .8s ease;
}

.fade-up.visible{
opacity:1;
transform:translateY(0);
}

@media (max-width:768px){

.hero h1{
font-size:2rem;
}

.nav-links{
display:none;
flex-direction:column;
position:absolute;
top:70px;
left:0;
width:100%;
background:#0b141a;
padding:20px;
}

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

.burger{
display:block;
}

.grid{
grid-template-columns:1fr;
}

.container{
padding:16px;
}

}

/* --- Styles du Footer --- */
.footer {
  margin-top: 80px;
  padding: 60px 20px 20px; /* Padding ajusté pour équilibrer le bas */
  background: #0a1217;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: #888; /* Couleur de texte par défaut pour le footer */
  font-family: system-ui, -apple-system, sans-serif;
}

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

/* Grille responsive : s'adapte automatiquement sur mobile et PC */
.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 40px;
  text-align: left;
}

/* Styles des titres et textes */
.footer h3, 
.footer h4 {
  color: #ffffff;
  margin-top: 0;
  margin-bottom: 20px;
  font-weight: 600;
}

.footer p {
  line-height: 1.6;
  margin-bottom: 20px;
}

/* Styles des listes et des liens */
.footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer ul li {
  margin-bottom: 12px;
}

.footer ul a {
  color: #888;
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer ul a:hover {
  color: var(--violet, #8b5cf6); /* Fallback si --violet n'est pas défini globalement */
}

/* Réseaux sociaux */
.footer-social {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
  margin-top: 20px;
}

.footer-social a {
  color: var(--muted, #666);
  font-size: 22px;
  transition: color 0.3s ease, transform 0.3s ease;
}

.footer-social a:hover {
  color: var(--violet, #8b5cf6);
  transform: translateY(-3px);
}
  
/* Bas du footer (Copyright) */
.footer-bottom {
  margin-top: 60px;
  padding-top: 20px;
  text-align: center;
  color: #666;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Le conteneur principal du menu */
.drawer {
  position: fixed;
  top: 0;
  right: 0;
  transform: translateX(100%);
  width: 320px;
  height: 100%; /* Toute la hauteur de l'écran */
  background: var(--surface);
  border-left: 1px solid var(--border);
  padding: 20px;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 2000;
  
  /* C'EST ICI QUE CA SE PASSE : */
  display: flex;
  flex-direction: column; /* Aligne les éléments verticalement */
}

/* La partie qui contient les liens doit être la seule à scroller */
.drawer-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  
  /* Gestion du scroll */
  overflow-y: auto; /* Active le scroll vertical si nécessaire */
  flex: 1;          /* Prend tout l'espace restant dans le menu */
  padding-right: 5px; /* Petit espace pour ne pas coller à la barre de scroll */
  
  /* Masquer la barre de scroll sur certains navigateurs (optionnel) */
  scrollbar-width: thin;
  scrollbar-color: var(--violet) transparent;
}

/* Design de la barre de scroll pour Chrome/Safari */
.drawer-links::-webkit-scrollbar {
  width: 5px;
}
.drawer-links::-webkit-scrollbar-thumb {
  background: var(--violet);
  border-radius: 10px;
}

.platform{
padding:80px 20px;
text-align:center;
}

.section-title{
font-size:32px;
margin-bottom:10px;
display:flex;
align-items:center;
justify-content:center;
gap:10px;
}

.section-title i{
color:#8b5cf6;
}

.section-sub{
max-width:700px;
margin:auto;
color:#94a3b8;
margin-bottom:50px;
}

.platform-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:25px;
}

.platform-card{
background:linear-gradient(145deg,#111b21,#0b141a);
border-radius:18px;
padding:30px;
border:1px solid rgba(139,92,246,.2);
transition:.4s;
position:relative;
overflow:hidden;
}

.platform-card:hover{
transform:translateY(-8px);
box-shadow:0 20px 40px rgba(0,0,0,.6);
border-color:#8b5cf6;
}

.icon{
font-size:34px;
margin-bottom:15px;
color:#8b5cf6;
}

.platform-card h3{
margin-bottom:10px;
}

.platform-card p{
font-size:14px;
color:#94a3b8;
margin-bottom:20px;
}

.platform-btn{
padding:10px 18px;
border:none;
border-radius:8px;
cursor:pointer;
background:linear-gradient(135deg,#8b5cf6,#6366f1);
color:white;
font-weight:600;
transition:.3s;
}

.platform-btn:hover{
transform:scale(1.05);
box-shadow:0 10px 25px rgba(139,92,246,.4);
}

.platform-card::before{
content:"";
position:absolute;
top:0;
left:-100%;
width:100%;
height:100%;
background:linear-gradient(
120deg,
transparent,
rgba(139,92,246,.2),
transparent
);
transition:.6s;
}

.platform-card:hover::before{
left:100%;
}

.icon i{
font-size:38px;
color:var(--violet);
transition:.4s;
}

.platform-card:hover .icon i{
transform:scale(1.2) rotate(5deg);
color:#a78bfa;
}

.platform-btn{
display:inline-block;
margin-top:18px;
padding:10px 20px;
border-radius:12px;
background:linear-gradient(135deg,var(--violet),#a78bfa);
color:white;
text-decoration:none;
font-weight:600;
transition:.3s;
}

.platform-btn:hover{
transform:translateY(-3px);
box-shadow:0 10px 25px rgba(139,92,246,.5);
}
