/* Extracted Kira widget styles, self-contained so FloatingKira works on any page. Source: kaplex-studio.css */
/* Kira keeps its own colours and fonts: a host page's --ink, --muted or --fd (a light page sets a dark --ink) must never leak in and make the chat unreadable */
.kira-fab,.kira-panel,.kira-nudge{--ink:#f3f5f1;--muted:#8a908a;--faint:#565a55;--fd:'Archivo',sans-serif;--fm:'JetBrains Mono','Courier New',monospace}
@keyframes kxs-blink{0%,60%,100%{opacity:.25}30%{opacity:1}}
@keyframes kxs-fab-pulse{0%{opacity:0;transform:scale(0.9)}40%{opacity:0.8}100%{opacity:0;transform:scale(1.25)}}
@keyframes kxs-cue-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(2.5px)}}
.kaplex-studio-root .kira-fab,
.kira-fab{position:fixed;bottom:28px;right:28px;z-index:80;
  width:62px;height:62px;border-radius:50%;padding:0;overflow:hidden;
  background:rgba(8,11,9,0.95);
  border:1.5px solid var(--acc,#2EE6A6);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 36px -8px rgba(0,0,0,0.6),0 0 0 1px rgba(46,230,166,0.18),0 0 24px -4px rgba(46,230,166,0.28);
  transition:transform .25s ease,opacity .25s ease,box-shadow .25s ease,visibility .25s}
.kaplex-studio-root .kira-fab:hover,
.kira-fab:hover{transform:translateY(-2px);box-shadow:0 18px 44px -8px rgba(0,0,0,0.7),0 0 0 1px var(--acc,#2EE6A6),0 0 30px -2px rgba(46,230,166,0.50)}
.kaplex-studio-root .kira-fab.open,
.kira-fab.open{background:rgba(8,11,9,0.95)}
.kaplex-studio-root .kira-fab.hidden,
.kira-fab.hidden{opacity:0;visibility:hidden;transform:translateY(20px) scale(0.85);pointer-events:none}
.kaplex-studio-root .kira-fab .kf-avatar,
.kira-fab .kf-avatar{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
.kaplex-studio-root .kira-fab .kf-x,
.kira-fab .kf-x{font-size:28px;line-height:1;color:var(--ink,#f3f5f1)}
.kaplex-studio-root .kira-fab::before,
.kira-fab::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(46,230,166,0.35);opacity:0;animation:kxs-fab-pulse 3.2s ease-in-out infinite;pointer-events:none}
.kaplex-studio-root .kira-fab.open::before,
.kira-fab.open::before{animation:none;opacity:0}
.kaplex-studio-root .kira-panel,
.kira-panel{position:fixed;bottom:100px;right:28px;z-index:79;
  width:360px;max-width:calc(100vw - 56px);max-height:calc(100vh - 160px);min-height:380px;
  background:rgba(8,11,9,0.96);
  border:1px solid rgba(46,230,166,0.22);border-radius:7px;
  box-shadow:0 30px 80px -20px rgba(0,0,0,0.75),0 0 0 1px rgba(46,230,166,0.10);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;flex-direction:column;overflow:hidden;
  font-family:var(--fd,'Archivo',sans-serif);color:var(--ink,#f3f5f1)}
.kaplex-studio-root .kira-panel::before,
.kira-panel::before{content:"";position:absolute;top:-1px;right:-1px;width:11px;height:11px;border-top:1.5px solid var(--acc,#2EE6A6);border-right:1.5px solid var(--acc,#2EE6A6);pointer-events:none}
.kaplex-studio-root .kira-panel::after,
.kira-panel::after{content:"";position:absolute;bottom:-1px;left:-1px;width:11px;height:11px;border-bottom:1.5px solid var(--acc,#2EE6A6);border-left:1.5px solid var(--acc,#2EE6A6);pointer-events:none}
.kaplex-studio-root .kira-panel .kp-head,
.kira-panel .kp-head{display:flex;align-items:center;gap:12px;padding:14px 14px 13px;border-bottom:1px solid rgba(46,230,166,0.14);background:linear-gradient(180deg,rgba(46,230,166,0.04),rgba(46,230,166,0))}
.kaplex-studio-root .kira-panel .kp-av,
.kira-panel .kp-av{width:38px;height:38px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:1.5px solid rgba(46,230,166,0.55);box-shadow:0 0 14px -2px rgba(46,230,166,0.4)}
.kaplex-studio-root .kira-panel .kp-id,
.kira-panel .kp-id{flex:1;display:flex;flex-direction:column;line-height:1.2;gap:2px}
.kaplex-studio-root .kira-panel .kp-id b,
.kira-panel .kp-id b{font-weight:800;font-size:15px;letter-spacing:-0.005em}
.kaplex-studio-root .kira-panel .kp-id span,
.kira-panel .kp-id span{font-family:var(--fm,'JetBrains Mono','Courier New',monospace);font-size:10px;color:var(--muted,#8a908a);letter-spacing:0.08em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}
.kaplex-studio-root .kira-panel .kp-dot,
.kira-panel .kp-dot{width:6px;height:6px;border-radius:50%;background:var(--acc,#2EE6A6);box-shadow:0 0 6px var(--acc,#2EE6A6);animation:kxs-blink 2s ease-in-out infinite;flex:0 0 auto}
.kaplex-studio-root .kira-panel .kp-close,
.kira-panel .kp-close{background:none;border:0;color:var(--muted,#8a908a);font-size:24px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:4px;transition:color .2s,background .2s;flex:0 0 auto}
.kaplex-studio-root .kira-panel .kp-close:hover,
.kira-panel .kp-close:hover{color:var(--ink,#f3f5f1);background:rgba(255,255,255,0.05)}
.kaplex-studio-root .kira-panel .kp-msgs,
.kira-panel .kp-msgs{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:14px;scrollbar-width:thin}
.kaplex-studio-root .kira-panel .kp-msgs::-webkit-scrollbar,
.kira-panel .kp-msgs::-webkit-scrollbar{width:5px}
.kaplex-studio-root .kira-panel .kp-msgs::-webkit-scrollbar-thumb,
.kira-panel .kp-msgs::-webkit-scrollbar-thumb{background:rgba(46,230,166,0.18);border-radius:3px}
.kaplex-studio-root .kira-panel .kp-welcome,
.kira-panel .kp-welcome{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:6px 2px 4px}
.kaplex-studio-root .kira-panel .kp-welcome-av,
.kira-panel .kp-welcome-av{width:76px;height:76px;border-radius:50%;object-fit:cover;align-self:center;margin-top:6px;border:1.5px solid rgba(46,230,166,0.55);box-shadow:0 0 24px -4px rgba(46,230,166,0.55)}
.kaplex-studio-root .kira-panel .kp-welcome-greeting,
.kira-panel .kp-welcome-greeting{margin:0;text-align:center;font-size:13.5px;line-height:1.55;color:var(--ink,#f3f5f1);padding:0 6px}
.kaplex-studio-root .kira-panel .kp-faq,
.kira-panel .kp-faq{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.kaplex-studio-root .kira-panel .kp-faq-label,
.kira-panel .kp-faq-label{font-family:var(--fm,'JetBrains Mono','Courier New',monospace);font-size:10px;color:var(--faint,#565a55);letter-spacing:0.18em;text-transform:uppercase;margin:0 2px 2px}
.kaplex-studio-root .kira-panel .kp-faq-item,
.kira-panel .kp-faq-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(255,255,255,0.025);border:1px solid rgba(46,230,166,0.18);border-radius:7px;padding:11px 13px;font-family:var(--fd,'Archivo',sans-serif);font-size:13px;color:var(--ink,#f3f5f1);text-align:left;cursor:pointer;transition:border-color .2s,background .2s,transform .15s}
.kaplex-studio-root .kira-panel .kp-faq-item:hover:not(:disabled),
.kira-panel .kp-faq-item:hover:not(:disabled){border-color:var(--acc,#2EE6A6);background:rgba(46,230,166,0.08);transform:translateX(2px)}
.kaplex-studio-root .kira-panel .kp-faq-item:disabled,
.kira-panel .kp-faq-item:disabled{opacity:.4;cursor:default}
.kaplex-studio-root .kira-panel .kp-faq-q,
.kira-panel .kp-faq-q{flex:1}
.kaplex-studio-root .kira-panel .kp-faq-arrow,
.kira-panel .kp-faq-arrow{color:var(--acc,#2EE6A6);font-size:14px;flex:0 0 auto;opacity:.7;transition:opacity .2s,transform .2s}
.kaplex-studio-root .kira-panel .kp-faq-item:hover:not(:disabled) .kp-faq-arrow,
.kira-panel .kp-faq-item:hover:not(:disabled) .kp-faq-arrow{opacity:1;transform:translateX(2px)}
.kaplex-studio-root .kira-panel .kp-msg,
.kira-panel .kp-msg{display:flex;align-items:flex-end;gap:7px;max-width:92%}
.kaplex-studio-root .kira-panel .kp-msg.bot,
.kira-panel .kp-msg.bot{align-self:flex-start}
.kaplex-studio-root .kira-panel .kp-msg.me,
.kira-panel .kp-msg.me{align-self:flex-end;justify-content:flex-end}
.kaplex-studio-root .kira-panel .kp-msg-av,
.kira-panel .kp-msg-av{width:24px;height:24px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:1px solid rgba(46,230,166,0.35)}
.kaplex-studio-root .kira-panel .kp-msg-body,
.kira-panel .kp-msg-body{font-size:13.5px;line-height:1.5;padding:9px 12px;border-radius:10px;white-space:pre-wrap;word-wrap:break-word}
.kaplex-studio-root .kira-panel .kp-msg.bot .kp-msg-body,
.kira-panel .kp-msg.bot .kp-msg-body{background:rgba(255,255,255,0.04);border:1px solid rgba(46,230,166,0.12);color:var(--ink,#f3f5f1);border-bottom-left-radius:3px}
.kaplex-studio-root .kira-panel .kp-msg.me .kp-msg-body,
.kira-panel .kp-msg.me .kp-msg-body{background:var(--acc,#2EE6A6);color:#04140d;border-bottom-right-radius:3px;font-weight:500}
.kaplex-studio-root .kira-panel .kp-msg.typing .kp-msg-body,
.kira-panel .kp-msg.typing .kp-msg-body{display:flex;gap:4px;align-items:center;padding:11px 12px}
.kaplex-studio-root .kira-panel .kp-msg.typing i,
.kira-panel .kp-msg.typing i{width:5px;height:5px;border-radius:50%;background:rgba(46,230,166,0.6);display:block;animation:kxs-blink 1.2s infinite}
.kaplex-studio-root .kira-panel .kp-msg.typing i:nth-child(2),
.kira-panel .kp-msg.typing i:nth-child(2){animation-delay:.2s}
.kaplex-studio-root .kira-panel .kp-msg.typing i:nth-child(3),
.kira-panel .kp-msg.typing i:nth-child(3){animation-delay:.4s}
.kaplex-studio-root .kira-panel .kp-form,
.kira-panel .kp-form{display:flex;gap:7px;padding:12px 14px 14px;border-top:1px solid rgba(46,230,166,0.14)}
.kaplex-studio-root .kira-panel .kp-form input,
.kira-panel .kp-form input{flex:1;min-width:0;background:rgba(255,255,255,0.04);border:1px solid rgba(46,230,166,0.20);border-radius:6px;padding:9px 11px;font-family:var(--fd,'Archivo',sans-serif);font-size:13px;color:var(--ink,#f3f5f1)}
.kaplex-studio-root .kira-panel .kp-form input:focus,
.kira-panel .kp-form input:focus{outline:none;border-color:var(--acc,#2EE6A6)}
.kaplex-studio-root .kira-panel .kp-form input::placeholder,
.kira-panel .kp-form input::placeholder{color:var(--faint,#565a55)}
.kaplex-studio-root .kira-panel .kp-form button,
.kira-panel .kp-form button{flex:0 0 auto;border:1px solid var(--acc-dim,#1aaa78);background:var(--acc,#2EE6A6);color:#04140d;border-radius:6px;padding:0 13px;font-family:var(--fm,'JetBrains Mono','Courier New',monospace);font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;transition:background .2s,border-color .2s}
.kaplex-studio-root .kira-panel .kp-form button:hover:not(:disabled),
.kira-panel .kp-form button:hover:not(:disabled){background:#5cf2bc}
.kaplex-studio-root .kira-panel .kp-form button:disabled,
.kira-panel .kp-form button:disabled{opacity:.4;cursor:default}
@media (max-width:520px){
  .kaplex-studio-root .kira-fab,.kira-fab{width:52px;height:52px;font-size:12px;bottom:20px;right:20px}}
@media (max-width:520px){
  .kaplex-studio-root .kira-panel,.kira-panel{width:calc(100vw - 24px);right:12px;bottom:84px;max-height:calc(100vh - 120px)}}
@media (prefers-reduced-motion:reduce){
  .kaplex-studio-root .kira-fab::before,.kira-fab::before{animation:none;opacity:0}}
@media (prefers-reduced-motion:reduce){
  .kaplex-studio-root .kira-fab,.kira-fab{transition:opacity .15s linear}}
.kaplex-studio-root .kira-cue{display:flex;align-items:center;gap:9px;margin:8px 2px -2px;padding:6px 9px 7px;
  font-family:var(--fm);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--paper-mut);border:1px dashed var(--paper-line);border-radius:5px;background:rgba(46,230,166,0.04);
  opacity:0;transform:translateY(2px);transition:opacity .45s ease,transform .45s ease,visibility .45s;
  animation:kxs-cue-bob 2.6s ease-in-out infinite;will-change:transform,opacity;position:relative}
.kaplex-studio-root .st-jarvis .show .kira-cue,
.kaplex-studio-root .station.show .kira-cue,
.kaplex-studio-root .station ~ .proof-cta .kira-cue,
.kaplex-studio-root .station .kira-cue,
.kaplex-studio-root .kira-cue{opacity:1;visibility:visible}
.kaplex-studio-root .kira-cue.out{opacity:0;visibility:hidden;animation:none;pointer-events:none;transform:translateY(0)}
.kaplex-studio-root .kira-cue .kc-bolt{color:#1f7a55;font-size:13px;line-height:1}
.kaplex-studio-root .kira-cue .kc-label{flex:1;color:var(--paper-ink);letter-spacing:0.06em}
.kaplex-studio-root .kira-cue .kc-label b{color:#0a6644;font-weight:700;letter-spacing:0.08em}
.kaplex-studio-root .kira-cue .kc-arrow{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #0a6644;filter:drop-shadow(0 0 3px rgba(46,230,166,0.45));margin-left:auto}
@media (max-width:480px){
  .kira-fab{width:48px;height:48px;right:14px;
    bottom:calc(14px + env(safe-area-inset-bottom, 0px))}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel,
  .kira-panel{width:calc(100vw - 16px);right:8px;bottom:84px;max-height:calc(100dvh - 110px);min-height:auto;border-radius:9px}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel .kp-head,
  .kira-panel .kp-head{padding:13px 13px 12px;gap:10px}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel .kp-av,
  .kira-panel .kp-av{width:34px;height:34px}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel .kp-welcome,
  .kira-panel .kp-welcome{gap:13px;padding:4px 2px 2px}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel .kp-welcome-av,
  .kira-panel .kp-welcome-av{width:64px;height:64px}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel .kp-welcome-greeting,
  .kira-panel .kp-welcome-greeting{font-size:13px;line-height:1.5}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel .kp-faq-item,
  .kira-panel .kp-faq-item{padding:13px 14px;font-size:13.5px;min-height:48px;border-radius:8px}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel .kp-form,
  .kira-panel .kp-form{padding:11px 13px 13px;gap:6px}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel .kp-form input,
  .kira-panel .kp-form input{padding:11px 12px;font-size:14px;min-height:46px}}
@media (max-width:480px){
  .kaplex-studio-root .kira-panel .kp-form button,
  .kira-panel .kp-form button{min-height:46px;padding:0 14px}}

/* ── proactive nudge bubble (shared across every Kira-carrying site) ── */
.kira-nudge{
  position:fixed;right:26px;bottom:96px;z-index:1000;max-width:290px;
  background:rgba(8,12,10,.96);border:1px solid var(--acc,#2EE6A6);
  border-radius:14px 14px 4px 14px;box-shadow:0 18px 50px rgba(0,0,0,.5);
  animation:knin .45s cubic-bezier(.2,1.2,.3,1);
}
@keyframes knin{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
.kira-nudge .kn-body{
  display:block;text-align:left;background:none;border:0;cursor:pointer;
  padding:13px 34px 13px 15px;color:#E6EFE9;font:inherit;
}
.kira-nudge .kn-body b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc,#2EE6A6);margin-bottom:4px}
.kira-nudge .kn-body span{font-size:13px;line-height:1.5;color:rgba(230,239,233,.85)}
.kira-nudge .kn-x{
  position:absolute;top:6px;right:8px;background:none;border:0;cursor:pointer;
  color:rgba(230,239,233,.5);font-size:16px;line-height:1;padding:4px;
}
.kira-nudge .kn-x:hover{color:#E6EFE9}
@media (max-width:600px){.kira-nudge{right:16px;bottom:88px;max-width:75vw}}
@media (prefers-reduced-motion:reduce){.kira-nudge{animation:none}}

/* static product pages: on phones, sit above the sticky "Talk to us" / "Book" bar when it is showing */
@media (max-width:760px){
  .kira-fab{bottom:calc(18px + env(safe-area-inset-bottom,0px));right:16px;width:56px;height:56px}
  .kira-panel{right:12px;left:12px;width:auto;max-width:none;bottom:calc(86px + env(safe-area-inset-bottom,0px))}
  body:has(.kl-sticky.show) .kira-fab{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
  body:has(.kl-sticky.show) .kira-panel{bottom:calc(156px + env(safe-area-inset-bottom,0px))}
}

/* QA pass 2026-09-30: real fonts before the fallbacks, 16px input (no iOS zoom), no nudge card over phone content,
   and the panel always fits on screen, including above a sticky call-to-action bar at any width */
.kira-fab,.kira-panel,.kira-nudge{--fd:'Archivo',Sora,Geist,system-ui,-apple-system,'Segoe UI',sans-serif;--fm:'JetBrains Mono','Geist Mono',ui-monospace,Menlo,Consolas,monospace}
.kira-panel .kp-form input,.kaplex-studio-root .kira-panel .kp-form input{font-size:16px}
@media (max-width:760px){.kira-nudge{display:none!important}.kira-panel,.kaplex-studio-root .kira-panel{max-height:calc(100dvh - 120px);min-height:0}}
body:has(.kl-sticky.show) .kira-fab{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
body:has(.kl-sticky.show) .kira-panel{bottom:calc(156px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 156px - 76px - env(safe-area-inset-bottom,0px));min-height:0}
