/* ============================================================
   KOREXA — Démo widget chatbot IA
   (tokens, reset et police viennent de style.css)
   ============================================================ */
body{min-height:100vh}

/* ---- Contenu de la page de démo ---- */
.demo-back{position:absolute;top:24px;left:24px;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-2);transition:color .3s}
.demo-back:hover{color:var(--accent)}
.demo-page{padding:80px 24px 60px;max-width:900px;margin:0 auto;text-align:center}
.demo-badge{display:inline-block;padding:8px 18px;border-radius:100px;background:var(--amber-subtle);border:1px solid var(--border-amber);color:var(--secondary);font-size:13px;font-weight:600;letter-spacing:.05em;margin-bottom:24px}
.demo-page h1{font-family:var(--font-head);font-size:clamp(36px,5vw,56px);color:var(--primary);margin-bottom:16px;line-height:1.1}
.demo-page h1 .gold{color:var(--accent);font-style:italic}
.demo-page>p{font-size:18px;color:var(--text-2);max-width:560px;margin:0 auto 40px}
.demo-hint{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md);font-size:15px;color:var(--text-2);font-weight:500}
.demo-hint .arrow{font-size:20px;animation:point 1.5s ease-in-out infinite}
@keyframes point{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
.demo-features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:60px;text-align:left}
.demo-feature{background:var(--surface);border-radius:var(--radius-lg);padding:28px;border:1px solid var(--border-subtle)}
.demo-feature .ico{font-size:28px;margin-bottom:14px;display:block}
.demo-feature h3{font-family:var(--font-head);font-size:20px;color:var(--primary);margin-bottom:8px}
.demo-feature p{font-size:14px;color:var(--text-2)}
@media(max-width:768px){.demo-features{grid-template-columns:1fr}.demo-back{position:static;display:inline-flex;margin:24px 0 0 24px}}

/* ============================================================
   Widget chatbot
   ============================================================ */
.kx-chat-launcher{
  position:fixed;bottom:24px;right:24px;z-index:9998;
  width:64px;height:64px;border-radius:50%;
  background:linear-gradient(135deg,var(--accent),var(--secondary-hover));
  box-shadow:0 8px 30px var(--amber-glow);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .4s var(--transition);border:none;
}
.kx-chat-launcher:hover{transform:scale(1.08) translateY(-2px);box-shadow:0 12px 40px var(--amber-glow)}
.kx-chat-launcher svg{width:28px;height:28px;fill:var(--on-amber);transition:all .3s var(--transition)}
.kx-chat-launcher .icon-close{position:absolute;opacity:0;transform:rotate(-90deg) scale(.5)}
.kx-chat-launcher.open .icon-chat{opacity:0;transform:rotate(90deg) scale(.5)}
.kx-chat-launcher.open .icon-close{opacity:1;transform:rotate(0) scale(1)}
.kx-chat-launcher .pulse{position:absolute;top:-2px;right:-2px;width:18px;height:18px;border-radius:50%;background:var(--accent);border:2.5px solid var(--bg);display:flex;align-items:center;justify-content:center}
.kx-chat-launcher.open .pulse{display:none}
.kx-chat-launcher .pulse::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--accent);animation:pulse 2s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.5);opacity:0}}

.kx-chat-window{
  position:fixed;bottom:104px;right:24px;z-index:9999;
  width:380px;max-width:calc(100vw - 48px);height:560px;max-height:calc(100vh - 140px);
  background:var(--surface);border-radius:20px;
  box-shadow:0 24px 70px rgba(0,0,0,.55);
  display:flex;flex-direction:column;overflow:hidden;
  opacity:0;visibility:hidden;transform:translateY(20px) scale(.96);transform-origin:bottom right;
  transition:all .4s var(--transition);
  border:1px solid var(--border-subtle);
}
.kx-chat-window.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}

.kx-chat-header{background:linear-gradient(135deg,#221C12 0%,#1A1814 48%,#141519 100%);padding:20px 22px;display:flex;align-items:center;gap:14px;position:relative;overflow:hidden}
/* Halo via mask radial — pas de filter:blur : layers de flou peints en rectangles noirs sur WebKit iOS. */
.kx-chat-header .orb{position:absolute;width:150px;height:150px;border-radius:50%;background:var(--secondary);opacity:.4;top:-60px;right:-30px;-webkit-mask-image:radial-gradient(circle closest-side,#000 25%,transparent 100%);mask-image:radial-gradient(circle closest-side,#000 25%,transparent 100%)}
.kx-bot-avatar{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--secondary-hover));display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:22px;font-weight:600;color:var(--on-amber);flex-shrink:0;position:relative;z-index:2}
.kx-bot-info{position:relative;z-index:2;flex:1}
.kx-bot-info h3{font-family:var(--font-head);font-size:20px;color:#fff;font-weight:600;line-height:1.1}
.kx-bot-info .status{display:flex;align-items:center;gap:6px;font-size:12px;color:rgba(255,255,255,.7);margin-top:2px}
.kx-bot-info .status .dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 8px var(--success)}

.kx-chat-messages{flex:1;overflow-y:auto;padding:24px 20px;display:flex;flex-direction:column;gap:14px;background:var(--bg)}
.kx-chat-messages::-webkit-scrollbar{width:6px}
.kx-chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.kx-msg{max-width:80%;padding:12px 16px;font-size:14.5px;line-height:1.5;border-radius:16px;animation:msgIn .4s var(--transition)}
@keyframes msgIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.kx-msg-bot{align-self:flex-start;background:var(--surface);color:var(--text);border:1px solid var(--border-subtle);border-bottom-left-radius:4px;box-shadow:var(--shadow-md)}
.kx-msg-user{align-self:flex-end;background:linear-gradient(135deg,var(--secondary),var(--secondary-hover));color:var(--on-amber);border-bottom-right-radius:4px}

.kx-typing{align-self:flex-start;background:var(--surface);border:1px solid var(--border-subtle);border-radius:16px;border-bottom-left-radius:4px;padding:14px 18px;display:flex;gap:5px;box-shadow:var(--shadow-md)}
.kx-typing span{width:8px;height:8px;border-radius:50%;background:var(--muted);animation:typing 1.4s infinite}
.kx-typing span:nth-child(2){animation-delay:.2s}
.kx-typing span:nth-child(3){animation-delay:.4s}
@keyframes typing{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}

.kx-quick-replies{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 12px;background:var(--bg)}
.kx-quick-reply{display:inline-flex;align-items:center;padding:9px 16px;border-radius:100px;background:var(--surface);border:1.5px solid var(--secondary);color:var(--secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .3s var(--transition);font-family:var(--font-body);text-decoration:none}
.kx-quick-reply:hover{background:var(--secondary);color:var(--on-amber);transform:translateY(-2px)}
.kx-quick-call{background:var(--secondary);color:var(--on-amber)}
.kx-quick-call:hover{background:var(--secondary-hover)}

.kx-chat-input{padding:16px 18px;background:var(--surface);border-top:1px solid var(--border-subtle);display:flex;gap:10px;align-items:center}
.kx-chat-input input{flex:1;padding:12px 16px;font-family:var(--font-body);font-size:14.5px;color:var(--text);background:var(--bg);border:1.5px solid var(--border);border-radius:100px;transition:all .3s}
.kx-chat-input input:focus{outline:none;border-color:var(--secondary);background:var(--surface-2)}
.kx-chat-input input::placeholder{color:var(--muted)}
.kx-send-btn{width:44px;height:44px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s var(--transition);flex-shrink:0;border:none}
.kx-send-btn:hover{transform:scale(1.08)}
.kx-send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.kx-send-btn svg{width:20px;height:20px;fill:var(--on-amber)}

.kx-chat-footer{text-align:center;padding:8px;background:var(--surface);font-size:11px;color:var(--muted)}
.kx-chat-footer strong{color:var(--secondary)}

@media(max-width:480px){
  .kx-chat-window{width:100%;max-width:100%;right:0;bottom:0;height:100%;height:100dvh;max-height:100%;border-radius:0}
  .kx-chat-launcher{bottom:20px;right:20px;z-index:10000}
}
