/* 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 (2 BARRES → X) ── */
.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 7px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  z-index: 1002;
  background: transparent;
  border: none;
  padding: 0;
}
.menu-toggle span {
  display: block;
  height: 2px;
  width: 26px;
  background-color: #fff;
  border-radius: 2px;
  transition: transform 0.35s var(--ease), opacity 0.25s var(--ease), background-color 0.3s var(--ease);
  pointer-events: none;
  transform-origin: center;
}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:16px;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:16px;}

/* ── 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;
  }
}


/* ── MENU MOBILE FULL-SCREEN DARK ── */
@media(max-width:900px){
  .nav{padding:18px 24px; overflow:visible !important;}
  .wrap{padding:0 24px;}
  .sec{padding:72px 0;}

  .menu-toggle { display: flex !important; }

  /* 2 barres → croix */
  .menu-toggle.open span:nth-child(1) {
    transform: translateY(4.5px) rotate(45deg);
    background-color: #fff;
  }
  .menu-toggle.open span:nth-child(2) {
    transform: translateY(-4.5px) rotate(-45deg);
    background-color: #fff;
  }

  /* Verrouille le scroll quand le menu est ouvert */
  body.menu-open { overflow: hidden; }

  /* Drawer plein écran */
  .nav-links {
    display: flex !important;
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    background: var(--bg);
    border: none !important;
    border-radius: 0 !important;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 110px 32px 220px;
    gap: 0;
    z-index: 1000;

    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: transform 0.4s var(--ease), opacity 0.35s var(--ease), visibility 0.4s var(--ease) !important;
    pointer-events: none;
    overflow-y: auto;
  }

  .nav-links.nav-open {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
  }

  .nav-links li {
    margin: 0;
    width: 100%;
    padding: 18px 0;
    opacity: 0;
    transform: translateY(8px);
    transition: transform 0.35s var(--ease), opacity 0.35s var(--ease);
  }

  .nav-links.nav-open li {
    opacity: 1;
    transform: translateY(0);
  }
  .nav-links.nav-open li:nth-child(1) { transition-delay: 0.10s; }
  .nav-links.nav-open li:nth-child(2) { transition-delay: 0.15s; }
  .nav-links.nav-open li:nth-child(3) { transition-delay: 0.20s; }
  .nav-links.nav-open li:nth-child(4) { transition-delay: 0.25s; }
  .nav-links.nav-open li:nth-child(5) { transition-delay: 0.30s; }

  .nav-links a {
    font-family: var(--ft);
    font-size: clamp(32px, 8vw, 44px);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.5px;
    color: #fff;
    display: block;
    width: 100%;
    transition: color 0.25s var(--ease), transform 0.25s var(--ease);
  }
  .nav-links a:hover,
  .nav-links a.active {
    color: var(--b400) !important;
  }

  /* CTAs en bas du drawer */
  .nav-right {
    position: fixed;
    left: 24px;
    right: 24px;
    bottom: 32px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 24px);
    display: flex !important;
    flex-direction: column;
    gap: 12px;
    z-index: 1001;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: transform 0.4s var(--ease) 0.15s, opacity 0.35s var(--ease) 0.15s, visibility 0.4s var(--ease) 0.15s;
    pointer-events: none;
  }
  .nav-right.nav-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
  .nav-right .btn {
    width: 100%;
    justify-content: center;
    padding: 18px 24px !important;
    font-size: 15px !important;
    border-radius: 16px !important;
  }
  
  /* 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;}
}