/* ============================================================
   demos.css — pages de démonstration (/demonstrations/)
   Réutilise les tokens et composants de styles.css + pages.css.
   Ne contient que les maquettes interactives (téléphone, chat,
   appel) et la timeline pédagogique du hub.
   ============================================================ */

/* ---- SHOWCASE : maquette + copie, 2 colonnes ---- */
.demo-showcase{background:var(--cream);overflow:hidden}
.demo-showcase .container{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,80px);align-items:center}
.demo-copy .eyebrow{margin-bottom:18px}
.demo-copy h2{font-size:clamp(32px,4vw,60px);margin-bottom:24px}
.demo-copy h2 em{font-style:italic;color:var(--terra)}
.demo-copy p{color:var(--text-dim);font-size:clamp(16px,1.15vw,18.5px);line-height:1.65;max-width:50ch;margin-bottom:22px}
.demo-copy p strong{color:var(--navy);font-weight:500}
.demo-copy .btn{margin-top:8px}
.demo-stage{position:relative;display:flex;justify-content:center;align-items:center;min-height:600px}
.demo-glow{position:absolute;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(255,92,56,.2),transparent 65%);filter:blur(20px);z-index:0}
@media(max-width:1100px){
  .demo-showcase .container{grid-template-columns:1fr;gap:24px}
  .demo-stage{min-height:560px;margin-top:8px}
}

/* ---- CARTES FLOTTANTES (partagées) ---- */
.float-card{position:absolute;z-index:3;background:var(--white);border-radius:16px;padding:13px 17px;box-shadow:0 24px 50px -18px rgba(12,20,38,.32);border:1px solid var(--line);display:flex;align-items:center;gap:12px;animation:floaty 5s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.float-card .fc-txt b{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--navy);display:block;letter-spacing:-.01em}
.float-card .fc-txt span{font-family:var(--mono);font-size:10px;color:var(--text-dim);letter-spacing:.05em}
.float-card .fc-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-family:var(--serif);font-size:18px;flex-shrink:0}
.float-card .fc-ic.t{background:var(--cream);border:1px solid var(--line);color:var(--terra)}
.float-card .fc-ic.y{background:var(--yellow);color:var(--navy)}
.float-card .fc-ic.g{background:var(--navy);color:var(--yellow);font-style:normal}
.float-card .stars{color:var(--terra);font-size:14px;letter-spacing:2px}

/* ---- TÉLÉPHONE (SMS + appel) ---- */
.phone{position:relative;z-index:2;width:308px;height:626px;border-radius:48px;background:linear-gradient(165deg,var(--navy-soft),var(--navy));padding:13px;box-shadow:0 50px 100px -30px rgba(12,20,38,.55),inset 0 0 0 2px rgba(255,255,255,.05);transform:rotate(-3deg);transition:transform .6s var(--ease)}
.phone:hover{transform:rotate(0) translateY(-6px)}
.phone .notch{position:absolute;top:13px;left:50%;transform:translateX(-50%);width:122px;height:27px;background:var(--navy);border-radius:0 0 18px 18px;z-index:5}
.phone .screen{width:100%;height:100%;border-radius:36px;overflow:hidden;display:flex;flex-direction:column;position:relative}

/* SMS */
.sms .screen{background:var(--cream)}
.sms-top{background:var(--cream-deep);padding:44px 16px 13px;text-align:center;border-bottom:1px solid var(--line)}
.sms-avatar{width:48px;height:48px;border-radius:50%;margin:0 auto 8px;background:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:22px;font-style:italic;color:var(--yellow)}
.sms-name{font-family:var(--sans);font-weight:600;font-size:15px;color:var(--navy);letter-spacing:-.01em}
.sms-sub{font-family:var(--mono);font-size:9.5px;color:var(--text-dim);margin-top:3px;letter-spacing:.1em;text-transform:uppercase}
.sms-body{flex:1;padding:20px 14px;display:flex;flex-direction:column;gap:11px;justify-content:flex-end}
.sms-body .ts{text-align:center;font-family:var(--mono);font-size:9.5px;color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.sms-body .ts b{color:var(--text-dim);font-weight:500}
.bubble{max-width:84%;padding:12px 15px;border-radius:20px;font-size:13.5px;line-height:1.45;background:var(--white);color:var(--navy);align-self:flex-start;border:1px solid var(--line);box-shadow:0 3px 10px -4px rgba(12,20,38,.12);opacity:0;transform:translateY(14px) scale(.96);animation:demo-pop .55s var(--ease-out) forwards;border-bottom-left-radius:7px}
.bubble.b2{animation-delay:.45s}
.bubble .link{color:var(--terra);font-weight:500;word-break:break-all}
.bubble .stop{display:block;margin-top:8px;font-family:var(--mono);font-size:10px;color:var(--text-faint);letter-spacing:.04em}
.bubble.reply{align-self:flex-end;background:var(--terra);color:var(--white);border:none;border-bottom-left-radius:20px;border-bottom-right-radius:7px;animation-delay:1.6s;box-shadow:0 5px 14px -5px rgba(255,92,56,.5)}
@keyframes demo-pop{to{opacity:1;transform:translateY(0) scale(1)}}

/* indicateur "en train d'écrire" partagé */
.typing{align-self:flex-start;background:var(--white);border-radius:20px;border-bottom-left-radius:7px;padding:14px 17px;display:flex;gap:4px;border:1px solid var(--line);opacity:0;animation:demo-flash .5s 1.1s forwards}
.typing span{width:7px;height:7px;border-radius:50%;background:var(--text-faint);animation:demo-bob 1.2s infinite}
.typing span:nth-child(2){animation-delay:.18s}
.typing span:nth-child(3){animation-delay:.36s}
@keyframes demo-bob{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}
@keyframes demo-flash{to{opacity:1}}

/* ---- FENÊTRE CHAT ---- */
.chat-win{position:relative;z-index:2;width:380px;max-width:100%;border-radius:24px;overflow:hidden;background:var(--white);box-shadow:0 50px 100px -30px rgba(12,20,38,.45),0 0 0 1px var(--line);transform:rotate(-1.5deg);transition:transform .6s var(--ease)}
.chat-win:hover{transform:rotate(0) translateY(-6px)}
.chat-head{background:var(--navy);padding:20px 22px;display:flex;align-items:center;gap:13px;position:relative}
.chat-head::after{content:"";position:absolute;bottom:-32px;left:-40px;width:160px;height:160px;border-radius:50%;background:var(--terra);opacity:.16;filter:blur(20px)}
.chat-ava{width:42px;height:42px;border-radius:50%;background:var(--terra);display:grid;place-items:center;font-family:var(--serif);font-size:20px;font-style:italic;color:var(--white);flex-shrink:0;position:relative}
.chat-ava .on{position:absolute;bottom:0;right:0;width:11px;height:11px;border-radius:50%;background:var(--yellow);border:2px solid var(--navy)}
.chat-meta b{display:block;font-family:var(--sans);font-weight:600;font-size:15px;color:var(--cream);letter-spacing:-.01em}
.chat-meta span{font-family:var(--mono);font-size:9.5px;color:rgba(245,242,234,.6);letter-spacing:.1em;text-transform:uppercase}
.chat-body{background:var(--cream);padding:22px 18px;display:flex;flex-direction:column;gap:12px;min-height:340px}
.msg{max-width:82%;padding:12px 15px;font-size:13.5px;line-height:1.45;border-radius:18px;opacity:0;transform:translateY(12px) scale(.97);animation:demo-pop .55s var(--ease-out) forwards}
.msg.bot{align-self:flex-start;background:var(--white);color:var(--navy);border:1px solid var(--line);border-bottom-left-radius:6px;box-shadow:0 3px 10px -5px rgba(12,20,38,.12)}
.msg.user{align-self:flex-end;background:var(--terra);color:var(--white);border-bottom-right-radius:6px;box-shadow:0 5px 14px -6px rgba(255,92,56,.5)}
.msg.m1{animation-delay:.3s}.msg.m2{animation-delay:1.1s}.msg.m3{animation-delay:2.1s}.msg.m4{animation-delay:2.9s}
.msg .chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.chip{font-family:var(--mono);font-size:10px;letter-spacing:.04em;background:var(--cream);border:1px solid var(--line-strong);color:var(--navy);padding:6px 11px;border-radius:999px}
.chat-input{background:var(--white);border-top:1px solid var(--line);padding:12px 14px;display:flex;align-items:center;gap:10px}
.chat-input .field{flex:1;font-family:var(--sans);font-size:13px;color:var(--text-faint);padding:11px 16px;background:var(--cream);border-radius:999px}
.chat-send{width:40px;height:40px;border-radius:50%;background:var(--terra);display:grid;place-items:center;color:var(--white);flex-shrink:0;font-size:16px}
.chat-win .typing{margin-top:0}

/* ---- ÉCRAN D'APPEL (agent vocal) ---- */
.call .screen{background:var(--navy)}
.call .screen::before{content:"";position:absolute;top:-40px;left:50%;transform:translateX(-50%);width:240px;height:240px;border-radius:50%;background:var(--terra);opacity:.14;filter:blur(40px)}
.call-top{padding:46px 22px 14px;text-align:center;position:relative;z-index:1}
.call-status{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--yellow);display:inline-flex;align-items:center;gap:8px}
.call-status .live{width:7px;height:7px;border-radius:50%;background:var(--yellow);animation:pulse 1.6s infinite}
.call-name{font-family:var(--serif);font-size:26px;color:var(--cream);margin-top:14px;letter-spacing:-.01em}
.call-sub{font-family:var(--mono);font-size:10px;color:rgba(245,242,234,.5);letter-spacing:.12em;text-transform:uppercase;margin-top:6px}
.call-timer{font-family:var(--mono);font-size:12px;color:rgba(245,242,234,.7);margin-top:10px;letter-spacing:.1em}
.wave{display:flex;align-items:center;justify-content:center;gap:4px;height:64px;margin:18px 0 6px;position:relative;z-index:1}
.wave span{width:4px;border-radius:4px;background:var(--terra);animation:demo-wv 1.1s ease-in-out infinite}
.wave span:nth-child(odd){background:var(--yellow)}
.wave span:nth-child(1){animation-delay:0s}.wave span:nth-child(2){animation-delay:.1s}.wave span:nth-child(3){animation-delay:.2s}.wave span:nth-child(4){animation-delay:.3s}.wave span:nth-child(5){animation-delay:.15s}.wave span:nth-child(6){animation-delay:.25s}.wave span:nth-child(7){animation-delay:.05s}.wave span:nth-child(8){animation-delay:.35s}.wave span:nth-child(9){animation-delay:.2s}.wave span:nth-child(10){animation-delay:.1s}.wave span:nth-child(11){animation-delay:.3s}.wave span:nth-child(12){animation-delay:.18s}.wave span:nth-child(13){animation-delay:.08s}
@keyframes demo-wv{0%,100%{height:10px}50%{height:48px}}
.transcript{flex:1;background:rgba(245,242,234,.04);border-top:1px solid rgba(245,242,234,.1);padding:16px 16px 20px;display:flex;flex-direction:column;gap:10px;justify-content:flex-end;position:relative;z-index:1}
.tline{max-width:88%;padding:10px 13px;border-radius:14px;font-size:12.5px;line-height:1.4;opacity:0;transform:translateY(10px);animation:demo-popline .5s var(--ease-out) forwards}
.tline .who{display:block;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin-bottom:4px}
.tline.t-ag{align-self:flex-start;background:rgba(245,242,234,.1);color:var(--cream);border-bottom-left-radius:5px}
.tline.t-cl{align-self:flex-end;background:var(--terra);color:var(--white);border-bottom-right-radius:5px}
.tline.l1{animation-delay:.4s}.tline.l2{animation-delay:1.3s}.tline.l3{animation-delay:2.3s}.tline.l4{animation-delay:3.2s}
@keyframes demo-popline{to{opacity:1;transform:translateY(0)}}
.call-actions{display:flex;justify-content:center;gap:26px;padding:16px 0 26px;position:relative;z-index:1}
.cbtn{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-size:19px}
.cbtn.mute{background:rgba(245,242,234,.12);color:var(--cream)}
.cbtn.end{background:var(--terra);color:var(--white);box-shadow:0 8px 20px -6px rgba(255,92,56,.6)}
.cbtn.kp{background:rgba(245,242,234,.12);color:var(--cream)}

/* ---- BANDEAU MÉCANISME (qualitatif, navy) ---- */
.demo-band{background:var(--navy);color:var(--cream)}
.demo-band-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,52px)}
.demo-stat .k{font-family:var(--serif);font-size:clamp(30px,3.2vw,46px);color:var(--yellow);line-height:1.04;letter-spacing:-.02em}
.demo-stat .k em{font-style:italic;color:var(--terra)}
.demo-stat p{color:rgba(245,242,234,.74);font-size:15px;line-height:1.55;margin-top:14px;max-width:32ch}
@media(max-width:900px){.demo-band-grid{grid-template-columns:1fr;gap:32px}}

/* ---- CARTES DÉMOS (hub) ---- */
.demo-cards{background:var(--white)}
.demo-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.demo-card{display:flex;flex-direction:column;background:var(--cream);border-radius:20px;padding:34px 30px 30px;border:1.5px solid transparent;transition:all .45s var(--ease);min-height:300px}
.demo-card:hover{background:var(--white);border-color:var(--terra);transform:translateY(-6px);box-shadow:0 30px 60px rgba(255,92,56,.12)}
.demo-card .dic{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:22px;margin-bottom:38px}
.demo-card:nth-child(1) .dic{background:var(--yellow);color:var(--navy)}
.demo-card:nth-child(2) .dic{background:var(--terra);color:var(--white)}
.demo-card:nth-child(3) .dic{background:var(--navy);color:var(--yellow)}
.demo-card h3{font-family:var(--serif);font-size:27px;line-height:1.05;margin-bottom:11px;color:var(--navy)}
.demo-card p{color:var(--text-dim);font-size:14.5px;line-height:1.55;margin-bottom:24px}
.demo-card .link-arrow{margin-top:auto;border-color:var(--line-strong);color:var(--navy);font-size:11px}
.demo-card:hover .link-arrow{color:var(--terra);border-color:var(--terra)}
@media(max-width:1100px){.demo-cards-grid{grid-template-columns:1fr}}

/* ---- TIMELINE PÉDAGOGIQUE (hub) ---- */
.timeline{background:var(--cream)}
.timeline-wrap{max-width:820px;margin:32px auto 0;position:relative}
.timeline-wrap::before{content:"";position:absolute;left:27px;top:14px;bottom:60px;width:2px;background:linear-gradient(var(--terra),var(--yellow));opacity:.35}
.tl-step{position:relative;display:grid;grid-template-columns:56px 1fr;gap:26px;padding-bottom:40px}
.tl-step:last-child{padding-bottom:0}
.tl-dot{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-family:var(--mono);font-size:15px;color:var(--navy);background:var(--yellow);position:relative;z-index:1}
.tl-step:nth-child(2) .tl-dot{background:var(--terra);color:var(--white)}
.tl-step:nth-child(3) .tl-dot{background:var(--navy);color:var(--yellow)}
.tl-step:nth-child(4) .tl-dot{background:var(--gold);color:var(--white)}
.tl-step:nth-child(5) .tl-dot{background:var(--navy);color:var(--yellow)}
.tl-step:nth-child(6) .tl-dot{background:var(--terra);color:var(--white)}
.tl-body h3{font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);line-height:1.02;margin-bottom:8px;color:var(--navy)}
.tl-body h3 em{font-style:italic;color:var(--terra)}
.tl-body p{color:var(--text-dim);font-size:15.5px;line-height:1.6;max-width:52ch}
.tl-body p strong{color:var(--navy);font-weight:500}
@media(max-width:560px){
  .timeline-wrap::before{left:21px}
  .tl-step{grid-template-columns:44px 1fr;gap:18px}
  .tl-dot{width:44px;height:44px;border-radius:13px;font-size:13px}
}
