/* OneTicket — Design System Partagé */
@import url('https://fonts.googleapis.com/css2?family=Dela+Gothic+One&family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --b300:#aaa6f3;--b400:#8680ed;--b500:#4f47e6;--b600:#3f37d4;--b700:#3329b0;
  --bg:#07071a;--bg2:#0d0c28;--bg3:#141245;
  --border:rgba(79,71,230,0.18);--muted:rgba(255,255,255,0.5);
  --ft:'Dela Gothic One',cursive;--fb:'Inter',sans-serif;
  --r:14px;--ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--fb);background:var(--bg);color:#fff;overflow-x:hidden;line-height:1.6;}
h1,h2,h3,h4{font-family:var(--ft);}
a{text-decoration:none;}
img{max-width:100%;display:block;}

/* ── SECURITE DIMENSIONS CANVAS ── */
canvas {
  min-height: 10px;
}

/* ── NAV STRUCTURATION GLOBALE ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:22px 72px;transition:all .4s var(--ease);}
.nav-bg{position:absolute;inset:0;background:rgba(7,7,26,0);backdrop-filter:blur(0px);border-bottom:1px solid transparent;transition:all .5s var(--ease);z-index:-1;}
.nav.scrolled .nav-bg{background:rgba(7,7,26,0.88);backdrop-filter:blur(24px);border-bottom-color:var(--border);}
.nav-logo{height:24px;display:block;}
.nav-links{display:flex;gap:32px;list-style:none;}
.nav-links a{color:rgba(255,255,255,.55);font-size:14px;font-weight:500;transition:color .2s;letter-spacing:.01em;}
.nav-links a:hover,.nav-links a.active{color:#fff;}
.nav-right{display:flex;align-items:center;gap:12px;}

/* ── BOUTON BURGER STYLE PREMIUM ── */
.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-end;
  width: 28px;
  height: 16px;
  cursor: pointer;
  z-index: 1002;
  background: transparent;
}
.menu-toggle span {
  display: block;
  height: 2px;
  background-color: #fff;
  border-radius: 10px;
  transition: transform 0.4s var(--ease), width 0.3s var(--ease), opacity 0.3s var(--ease), background-color 0.3s var(--ease);
  pointer-events: none;
}
.menu-toggle span:nth-child(1) { width: 20px; }
.menu-toggle span:nth-child(2) { width: 28px; }
.menu-toggle span:nth-child(3) { width: 14px; }

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:10px;font-family:var(--fb);font-weight:600;font-size:14px;cursor:pointer;border:none;transition:all .25s var(--ease);white-space:nowrap;letter-spacing:.01em;}
.btn-primary{background:var(--b500);color:#fff;box-shadow:0 0 0 0 rgba(79,71,230,0);}
.btn-primary:hover{background:var(--b600);transform:translateY(-2px);box-shadow:0 16px 48px rgba(79,71,230,.45);}
.btn-ghost{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.1);}
.btn-ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(79,71,230,.5);}
.btn-outline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.2);}
.btn-outline:hover{border-color:var(--b500);color:var(--b300);}
.btn-lg{padding:16px 36px;font-size:16px;border-radius:12px;}

/* ── TAG / BADGE ── */
.tag{display:inline-flex;align-items:center;gap:7px;background:rgba(79,71,230,.12);border:1px solid rgba(79,71,230,.3);color:var(--b300);padding:6px 14px;border-radius:100px;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;}
.dot{width:5px;height:5px;border-radius:50%;background:var(--b400);animation:blink 2s infinite;}
@keyframes blink{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.3;transform:scale(.5);}}

/* ── SECTIONS ── */
.wrap{max-width:1200px;margin:0 auto;padding:0 72px;}
.sec{padding:120px 0;}

/* ── CARDS ── */
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:32px;position:relative;overflow:hidden;transition:all .3s var(--ease);}
.card-glow{position:absolute;inset:0;border-radius:var(--r);background:radial-gradient(circle at var(--cx,50%) var(--cy,50%),rgba(79,71,230,.1),transparent 55%);opacity:0;transition:opacity .4s;pointer-events:none;}
.card:hover{border-color:rgba(79,71,230,.45);transform:translateY(-4px);box-shadow:0 24px 64px rgba(79,71,230,.14);}
.card:hover .card-glow{opacity:1;}

/* ── IMAGE PLACEHOLDER ── */
.img-ph{background:linear-gradient(135deg,var(--bg2),var(--bg3));border:1px dashed rgba(79,71,230,.35);border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--b400);font-size:13px;font-weight:500;text-align:center;padding:40px;}
.img-ph .icon-ph{width:48px;height:48px;opacity:.4;}

/* ── MARQUEE ── */
.marquee-wrap{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:18px 0;background:rgba(79,71,230,.03);}
.marquee-track{display:flex;width:max-content;animation:mq 32s linear infinite;}
.marquee-track:hover{animation-play-state:paused;}
.mq-item{display:flex;align-items:center;gap:16px;padding:0 36px;white-space:nowrap;font-size:13px;font-weight:600;color:rgba(255,255,255,.4);letter-spacing:.02em;}
.mq-dot{color:var(--b500);font-size:18px;line-height:1;}
@keyframes mq{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ── GRADIENT TEXT ── */
.grad-text{background:linear-gradient(135deg,#fff 0%,var(--b300) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* ── GLOW TEXT ── */
.glow{text-shadow:0 0 80px rgba(79,71,230,.7),0 0 160px rgba(79,71,230,.3);}

/* ── STATS ── */
.stat-num{font-family:var(--ft);font-size:clamp(52px,7vw,88px);color:var(--b400);line-height:1;display:block;margin-bottom:8px;}

/* ── FOOTER ── */
.footer-wrap{border-top:1px solid var(--border);}
.footer-inner{max-width:1200px;margin:0 auto;padding:60px 72px 36px;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;margin-bottom:48px;}
.footer-logo{height:30px;margin-bottom:14px;display:block;}
.footer-desc{color:var(--muted);font-size:14px;line-height:1.65;max-width:230px;}
.footer-col h5{font-family:var(--fb);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,.28);margin-bottom:14px;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer-col a{color:rgba(255,255,255,.45);font-size:14px;transition:color .2s;}
.footer-col a:hover{color:#fff;}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;color:rgba(255,255,255,.22);font-size:12px;padding-top:22px;border-top:1px solid rgba(255,255,255,.05);}

/* ── INITIAL REVEAL STATES (GSAP) ── */
.r-up{will-change:transform,opacity;}
.r-left{will-change:transform,opacity;}
.r-right{will-change:transform,opacity;}
.r-scale{will-change:transform,opacity;}

/* ── 3D TILT CARD ── */
.tilt{transform-style:preserve-3d;transition:transform .05s linear;}

/* ── SECTION 3D CANVASES ── */
.sec-canvas{position:absolute;top:0;right:0;width:55%;height:100%;pointer-events:none;z-index:0;opacity:.85;}

/* ── SECTION IDENTITIES ── */
#section-why{background:linear-gradient(180deg,#07071a 0%,#0a0824 100%);border-top:1px solid rgba(79,71,230,.12);position:relative;}
#section-why::before{content:'WHY';position:absolute;left:vw;top:50%;transform:translateY(-50%);font-family:var(--ft);font-size:clamp(80px,18vw,220px);color:rgba(79,71,230,.04);letter-spacing:-6px;line-height:1;pointer-events:none;user-select:none;z-index:0;}

#section-stats{background:linear-gradient(180deg,#0a0824 0%,#0d0b2e 100%);padding:100px 0;border-top:1px solid rgba(79,71,230,.15);border-bottom:1px solid rgba(79,71,230,.15);position:relative;overflow:hidden;}
#section-stats::before{content:'';position:absolute;top:-120px;left:50%;transform:translateX(-50%);width:600px;height:300px;background:radial-gradient(ellipse,rgba(79,71,230,.14),transparent 70%);pointer-events:none;}

/* ── DASHBOARD (Règles Grands Écrans par défaut) ── */
#dashboard{padding:120px 0;background:linear-gradient(135deg,#06061a 60%,#09082a 100%);position:relative;overflow:hidden;}
#dashboard::after{content:'';position:absolute;top:0;right:0;width:50%;height:100%;background:linear-gradient(180deg,rgba(79,71,230,.06),transparent);pointer-events:none;}

.dash-inner{display:grid;grid-template-columns: 3.5fr 6.5fr; gap:60px; align-items:center;}
.dash-text{z-index: 1;}
.dash-label{color:var(--b400);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:20px;}
.dash-title{font-size:clamp(32px,3.8vw,52px);line-height:1.05;letter-spacing:-1px;margin-bottom:22px;}
.dash-sub{color:var(--muted);font-size:16px;line-height:1.75;margin-bottom:40px;}

.dash-bullets{list-style:none;display:flex;flex-direction:column;gap:14px;margin-bottom:40px;}
.dash-bullets li{display:flex;align-items:center;gap:12px;font-size:15px;color:rgba(255,255,255,.8);}
.dash-bullets li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--b500);flex-shrink:0;}

.dash-mockup-bar{height:36px;background:rgba(79,71,230,.08);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:0 16px;}
.dash-mockup-bar .circle{width:10px;height:10px;border-radius:50%;}

#dashboard .r-right { width: 100%; position: relative; z-index: 1; margin-right: -100px; }
#dashboard .dash-mockup-enormous {
  width: 140%;
  max-width: none !important;
  transform-origin: center right;
  display: block;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow:hidden;
  box-shadow: 0 60px 160px rgba(0,0,0,0.8), 0 0 100px rgba(79,71,230,0.15);
}
#dashboard .r-right img { width: 100%; height: auto; display: block; object-fit: contain; }

/* ── FINAL CTA ── */
#cta-final{padding:160px 0;text-align:center;position:relative;overflow:hidden;}
.cta-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:900px;height:450px;background:radial-gradient(ellipse,rgba(79,71,230,.22),transparent 60%);pointer-events:none;}
.cta-title{font-size:clamp(36px,6vw,80px);line-height:1.0;letter-spacing:-1px;margin-bottom:24px;}
.cta-sub{color:var(--muted);font-size:16px;margin-bottom:52px;}
.cta-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}


/* ── CORRECTION STRICTE ET RADICALE POUR LES ECRANS MOYENS / RETINA (MAC 14") ── */
@media (max-width: 1440px) and (min-width: 901px) {
  /* 1. Accueil (index.html) - Passage en 50/50 strict, image bridée à 85% */
  #dashboard .dash-inner {
    grid-template-columns: 1fr 1fr !important;
    gap: 40px !important;
  }
  #dashboard .r-right {
    margin-right: 0 !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
  }
  #dashboard .dash-mockup-enormous {
    width: 85% !important; /* Réduction de la taille pour libérer le texte */
    max-width: 100% !important;
    transform: none !important;
  }

  /* 2. Fonctionnalités (fonctionnalites.html) - Bridage identique */
  .feat-split {
    grid-template-columns: 1fr 1fr !important;
    gap: 40px !important;
  }
  .feat-split.reverse {
    grid-template-columns: 1fr 1fr !important;
  }
  .r-left, .r-right {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: flex !important;
    justify-content: center !important;
  }
  .feat-mockup-wrap {
    width: 85% !important; /* Parfaitement proportionné sur ordinateur portable */
    max-width: 100% !important;
  }
}


/* ── BLOC RESPONSIVE FLOATING GLASSMORPHISM (MOBILE) ── */
@media(max-width:900px){
  .nav{padding:18px 24px; overflow:visible !important;}
  .wrap{padding:0 24px;}
  .sec{padding:72px 0;}
  
  .menu-toggle { display: flex !important; }
  
  /* Morphing néon du bouton en X */
  .menu-toggle.open span:nth-child(1) { width: 28px; transform: translateY(7px) rotate(45deg); background-color: var(--b300); box-shadow: 0 0 12px var(--b500); }
  .menu-toggle.open span:nth-child(2) { opacity: 0; transform: scale(0); }
  .menu-toggle.open span:nth-child(3) { width: 28px; transform: translateY(-7px) rotate(-45deg); background-color: var(--b300); box-shadow: 0 0 12px var(--b500); }

  /* L'Îlot Flottant "Glass & Glow" */
  .nav-links {
    display: flex !important;
    position: fixed;
    top: 84px;
    right: 24px;
    width: 280px;
    height: auto;
    background: radial-gradient(circle at top right, rgba(134, 128, 237, 0.2), rgba(13, 12, 40, 0.95) 80%) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border: 1px solid rgba(134, 128, 237, 0.3) !important;
    border-radius: var(--r) !important;
    flex-direction: column;
    padding: 32px;
    gap: 20px;
    z-index: 1001;
    
    opacity: 0;
    visibility: hidden;
    transform: translateY(-20px) scale(0.95);
    transition: transform 0.4s var(--ease), opacity 0.4s var(--ease), visibility 0.4s var(--ease) !important;
    pointer-events: none;
  }
  
  .nav-links.nav-open {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
    pointer-events: auto !important;
    box-shadow: 0 30px 60px rgba(0,0,0,0.5), 0 0 40px rgba(79, 71, 230, 0.15);
  }
  
  .nav-links li { 
    margin: 0; 
    width: 100%;
    opacity: 0;
    transform: translateX(10px);
    transition: transform 0.35s var(--ease), opacity 0.35s var(--ease);
  }
  
  .nav-links.nav-open li {
    opacity: 1;
    transform: translateX(0);
  }
  .nav-links.nav-open li:nth-child(1) { transition-delay: 0.1s; }
  .nav-links.nav-open li:nth-child(2) { transition-delay: 0.15s; }
  .nav-links.nav-open li:nth-child(3) { transition-delay: 0.2s; }
  .nav-links.nav-open li:nth-child(4) { transition-delay: 0.25s; }
  .nav-links.nav-open li:nth-child(5) { transition-delay: 0.3s; }

  .nav-links a { 
    font-size: 18px; 
    font-weight: 700; 
    color: rgba(255,255,255,0.55);
    display: block; 
    width: 100%; 
    padding: 4px 0; 
    position: relative;
    transition: all 0.3s var(--ease);
  }
  
  .nav-links a::before {
    content: '';
    position: absolute;
    left: -14px;
    top: 50%;
    transform: translateY(-50%) scale(0);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--b300);
    box-shadow: 0 0 10px var(--b400);
    transition: transform 0.25s var(--ease);
  }
  
  .nav-links a:hover::before, 
  .nav-links a.active::before {
    transform: translateY(-50%) scale(1);
  }
  
  .nav-links a:hover, 
  .nav-links a.active { 
    color: #fff !important; 
    transform: translateX(10px);
    text-shadow: 0 0 15px rgba(134, 128, 237, 0.5);
  }
  
  .nav-right{display:none;}
  
  /* Structure Mobile */
  .hero-left{padding:0 24px; z-index: 2;}
  .hero-right{ display: block; position: absolute; inset: 0; opacity: 0.15; z-index: 0; pointer-events: none; }
  .vp-grid{grid-template-columns:1fr;}
  .j-panel{ grid-template-columns:1fr; padding:80px 24px 60px; overflow-y:auto; gap: 40px; }
  .j-visual{ display: block; transform: scale(0.85); transform-origin: top center; margin: 0 auto; perspective: none; }
  .j-mock-wrapper { transform: none !important; }
  .j-bg-num{display:none;}
  
  .stats-row{grid-template-columns:repeat(2,1fr);}
  .stat-cell:nth-child(2){border-right:none;}
  .stat-cell{border-bottom:1px solid var(--border);}
  .stat-cell:nth-child(3),.stat-cell:nth-child(4){border-bottom:none;}
  
  /* Configuration Dashboard Mobile */
  #dashboard { padding: 80px 0; }
  .dash-inner{grid-template-columns:1fr; gap: 40px; padding: 0 24px;}
  .dash-text { text-align: center; display: flex; flex-direction: column; align-items: center; }
  .dash-sub { margin-left: auto; margin-right: auto; }
  .dash-bullets { align-items: flex-start; text-align: left; background: rgba(0,0,0,0.2); padding: 20px; border-radius: 16px; width: 100%;}
  
  /* Suppression totale des captures d'écran sur mobile */
  #dashboard .r-right { display: none !important; }

  .footer-inner{padding:48px 24px 28px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px;}
  .footer-grid>div:first-child{grid-column:1/-1;}
}