/* Asistente virtual — botón hexagonal con pulso + panel de chat */
.kfa{position:fixed;right:22px;bottom:22px;z-index:70;font-family:'Instrument Sans',system-ui,sans-serif;--s:72px}
.kfa *{box-sizing:border-box}
.kfa [hidden]{display:none!important}

/* ----- Efectos del botón ----- */
.kfa-fx{position:relative;width:var(--s);height:calc(var(--s) * .866)}
.kfa-fx>*{position:absolute;pointer-events:none}
.kfa-pulse{inset:0;clip-path:var(--hexclip);background:linear-gradient(135deg,var(--lav),var(--violet-2));opacity:0;animation:kfa-pulse 2.6s var(--ease) infinite;z-index:1}
.kfa-pulse.p2{animation-delay:1.3s}
.kfa-btn{position:absolute!important;pointer-events:auto!important;inset:0;z-index:2;border:0;padding:0;cursor:pointer;color:#fff;display:grid;place-items:center;
  clip-path:var(--hexclip);background:linear-gradient(135deg,var(--violet-2),var(--violet-d));transition:transform .3s var(--ease)}
.kfa-btn:hover{transform:scale(1.08)}
.kfa-btn:active{transform:scale(.96)}
.kfa-btn:focus-visible{outline:3px solid #fff;outline-offset:-6px;border-radius:0}
.kfa-btn svg{width:34px;height:34px}
.kfa-dot{position:absolute!important;pointer-events:none;top:-3px;right:6px;z-index:3;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--violet);animation:kfa-blink 1.8s ease-in-out infinite}
.kfa.seen .kfa-dot{display:none}

@keyframes kfa-pulse{0%{transform:scale(1);opacity:.55}100%{transform:scale(2.3);opacity:0}}
@keyframes kfa-blink{50%{transform:scale(1.25)}}

/* ----- Mensaje de invitación ----- */
.kfa-tease{position:absolute;right:calc(var(--s) + 18px);bottom:10px;width:max-content;max-width:min(260px,calc(100vw - var(--s) - 60px));background:#fff;color:var(--ink);border-radius:16px 16px 4px 16px;padding:12px 38px 12px 16px;font-size:.95rem;line-height:1.4;box-shadow:0 18px 40px -14px rgba(21,16,46,.55),0 0 0 1px rgba(91,71,214,.15);animation:kfa-in .5s var(--ease) both;cursor:pointer;text-align:left;border:0;font-family:inherit;pointer-events:auto!important}
.kfa-tease b{color:var(--violet);display:block;font-family:'Jost',sans-serif;letter-spacing:.02em}
.kfa-tease .x{position:absolute;top:6px;right:8px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:var(--mute);font-size:1.1rem;line-height:1}
.kfa-tease .x:hover{background:rgba(91,71,214,.1)}
@keyframes kfa-in{from{opacity:0;transform:translateY(10px) scale(.96)}}

/* ----- Panel ----- */
.kfa-panel{position:fixed;right:22px;bottom:22px;width:390px;max-width:calc(100vw - 24px);height:min(620px,calc(100dvh - 44px));display:flex;flex-direction:column;background:#fff;color:var(--ink);border-radius:22px;overflow:hidden;box-shadow:0 30px 80px -20px rgba(21,16,46,.7),0 0 0 1px rgba(91,71,214,.2);animation:kfa-open .4s var(--ease) both;transform-origin:100% 100%}
@keyframes kfa-open{from{opacity:0;transform:translateY(18px) scale(.94)}}
.kfa-head{display:flex;align-items:center;gap:12px;padding:14px 16px;color:#fff;background:radial-gradient(120% 140% at 0% 0%,var(--night-3),var(--night));position:relative;overflow:hidden}
.kfa-head::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='41.6' viewBox='0 0 144 83.14'%3E%3Cpath d='M24 41.57 48 0H96L120 41.57 96 83.14H48ZM0 41.57H24M120 41.57H144' fill='none' stroke='%23A497FF' stroke-opacity='.28' stroke-width='2'/%3E%3C/svg%3E");opacity:.7;pointer-events:none}
.kfa-av{position:relative;z-index:1;width:44px;aspect-ratio:1.1547;clip-path:var(--hexclip);background:linear-gradient(135deg,var(--violet-2),var(--violet));display:grid;place-items:center;flex:none}
.kfa-av svg{width:22px;height:22px}
.kfa-ti{position:relative;z-index:1;flex:1;min-width:0;line-height:1.25}
.kfa-ti strong{display:block;font-family:'Jost',sans-serif;font-weight:600;font-size:1.05rem;letter-spacing:.02em}
.kfa-ti span{display:flex;align-items:center;gap:6px;font-size:.78rem;opacity:.85}
.kfa-ti span::before{content:"";width:8px;height:8px;border-radius:50%;background:#7CF2B0;box-shadow:0 0 0 3px rgba(124,242,176,.25)}
.kfa-x{position:relative;z-index:1;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.kfa-x:hover{background:rgba(255,255,255,.22)}
.kfa-log{flex:1;overflow-y:auto;padding:16px;background:var(--paper);display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth;overscroll-behavior:contain}
.kfa-msg{max-width:88%;padding:10px 14px;border-radius:16px;font-size:.96rem;line-height:1.5;overflow-wrap:anywhere;animation:kfa-msg .35s var(--ease) both}
@keyframes kfa-msg{from{opacity:0;transform:translateY(8px)}}
.kfa-msg.bot{align-self:flex-start;background:#fff;border:1px solid #e6e3ec;border-bottom-left-radius:4px}
.kfa-msg.me{align-self:flex-end;background:var(--violet);color:#fff;border-bottom-right-radius:4px}
.kfa-msg.typing{display:flex;gap:4px;padding:14px 16px}
.kfa-msg.typing i{width:7px;height:7px;border-radius:50%;background:var(--lav);animation:kfa-dots 1s ease-in-out infinite}
.kfa-msg.typing i:nth-child(2){animation-delay:.15s}.kfa-msg.typing i:nth-child(3){animation-delay:.3s}
@keyframes kfa-dots{50%{transform:translateY(-5px);background:var(--violet)}}
.kfa-act{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;padding:11px 16px;border-radius:12px;background:#1faa59;color:#fff!important;text-decoration:none;font-weight:600;font-size:.92rem;min-height:44px}
.kfa-act.alt{background:var(--violet)}
.kfa-act:hover{filter:brightness(1.08)}
.kfa-chips{display:flex;flex-wrap:wrap;gap:8px;padding:2px 16px 12px;background:var(--paper)}
.kfa-chip{border:1.5px solid var(--violet);background:#fff;color:var(--violet-d);border-radius:99px;padding:9px 14px;cursor:pointer;font:inherit;font-size:.88rem;font-weight:500;min-height:40px;transition:background .2s,color .2s,transform .2s}
.kfa-chip:hover{background:var(--violet);color:#fff}
.kfa-chip:active{transform:scale(.97)}
.kfa-form{display:flex;gap:8px;padding:10px;border-top:1px solid #ebe8f2;background:#fff}
.kfa-in{flex:1;border:1px solid #e0dcea;border-radius:12px;padding:11px 12px;font:inherit;font-size:16px;min-height:46px;background:#fff;color:var(--ink)}
.kfa-in:focus{outline:2px solid var(--lav);border-color:transparent}
.kfa-send{border:0;border-radius:12px;background:var(--violet);color:#fff;padding:0 16px;cursor:pointer;font:inherit;font-weight:600;min-width:48px;min-height:46px}
.kfa-send:hover{background:var(--violet-2)}
.kfa-note{padding:0 14px 10px;font-size:.72rem;color:var(--mute);background:#fff;line-height:1.35}

/* Con el panel abierto, el chat queda por encima del aviso de cookies */
.kfa.open{z-index:95}

/* ----- Celular (vertical) ----- */
@media (max-width:520px){
  .kfa{right:14px;bottom:14px;--s:66px}
  .kfa-panel{inset:auto 8px 8px 8px;width:auto;max-width:none;height:calc(100dvh - 16px);border-radius:18px}
  .kfa-head{padding:12px 14px}
  .kfa-x{width:44px;height:44px}
  .kfa-log{padding:14px 12px}
  .kfa-msg{max-width:92%}
  .kfa-act{display:flex;width:100%}
  .kfa-form{padding:10px 10px max(10px,env(safe-area-inset-bottom))}
  .kfa-note{font-size:.68rem;padding-bottom:max(10px,env(safe-area-inset-bottom))}
  html.kfa-lock,html.kfa-lock body{overflow:hidden}
}
/* Respuestas sugeridas en una sola fila deslizable (celular vertical y horizontal) */
@media (max-width:520px),(max-height:520px){
  .kfa-chips{flex-wrap:nowrap;overflow-x:auto;gap:8px;padding:2px 12px 12px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .kfa-chips::-webkit-scrollbar{display:none}
  .kfa-chip{flex:none;white-space:nowrap;scroll-snap-align:start}
}
/* ----- Celular horizontal / pantallas bajas ----- */
@media (max-height:520px){
  .kfa-panel{inset:auto 8px 8px auto;width:min(420px,calc(100vw - 16px));max-width:none;height:calc(100dvh - 16px)}
  .kfa-head{padding:8px 12px}
  .kfa-av{width:36px}
  .kfa-ti strong{font-size:.95rem}
  .kfa-x{width:40px;height:40px}
  .kfa-note{display:none}
  .kfa-log{padding:10px 12px}
}
@media (prefers-reduced-motion:reduce){
  .kfa-pulse{display:none}
  .kfa-log{scroll-behavior:auto}
}
