/* AI layer */
.ai-fab{position:fixed;right:22px;bottom:24px;z-index:950;display:flex;align-items:center;gap:10px;padding:13px 20px 13px 16px;border-radius:40px;border:1px solid rgba(127,179,255,.5);background:linear-gradient(135deg,#1d4ed8,#7c3aed);color:#fff;font:700 .86rem system-ui,sans-serif;cursor:pointer;box-shadow:0 18px 40px -10px rgba(79,142,247,.7),0 1px 0 rgba(255,255,255,.35) inset;transition:transform .25s}
.ai-fab:hover{transform:translateY(-3px) scale(1.04)}
.ai-fab i{width:9px;height:9px;border-radius:50%;background:#7dffb2;box-shadow:0 0 0 0 #7dffb2;animation:aiP 1.8s infinite}
@keyframes aiP{to{box-shadow:0 0 0 12px transparent}}
.ai-panel{position:fixed;right:22px;bottom:90px;z-index:951;width:min(392px,calc(100vw - 32px));height:min(600px,calc(100vh - 120px));display:flex;flex-direction:column;border-radius:22px;background:rgba(4,9,21,.88);backdrop-filter:blur(18px);border:1px solid rgba(127,179,255,.3);box-shadow:0 40px 90px -20px #000,0 0 60px -12px rgba(79,142,247,.45);color:#e8eeff;font:.88rem/1.5 system-ui,sans-serif;opacity:0;pointer-events:none;transform:perspective(900px) translateY(24px) rotateX(12deg) scale(.96);transform-origin:100% 100%;transition:.4s cubic-bezier(.2,.8,.2,1)}
.ai-panel.on{opacity:1;pointer-events:auto;transform:none}
.ai-h{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(127,179,255,.18);font-weight:700}
.ai-h small{display:block;font-weight:400;color:#8fa4d4;font-size:.72rem}
.ai-h button{background:none;border:0;color:#fff;font-size:1.4rem;cursor:pointer}
.ai-tabs{display:flex;gap:6px;padding:10px 12px 0}
.ai-tabs button{flex:1;padding:8px;border-radius:10px;border:1px solid rgba(127,179,255,.25);background:transparent;color:#b9c8ee;cursor:pointer;font-weight:600}
.ai-tabs button.on{background:linear-gradient(135deg,rgba(79,142,247,.35),rgba(255,184,0,.2));color:#fff;border-color:#ffb800}
.ai-b{flex:1;overflow:auto;padding:12px}
.ai-m{max-width:88%;padding:9px 12px;border-radius:14px;margin:0 0 9px;background:rgba(79,142,247,.16)}
.ai-m.u{margin-left:auto;background:linear-gradient(135deg,#1d4ed8,#7c3aed)}
.ai-m a{color:#ffc233}
.ai-q{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.ai-q button{padding:6px 11px;border-radius:20px;border:1px solid rgba(255,184,0,.4);background:transparent;color:#ffc233;cursor:pointer;font-size:.78rem}
.ai-f{display:flex;gap:8px;padding:10px 12px;border-top:1px solid rgba(127,179,255,.18)}
.ai-f input,.ai-g input,.ai-g select{flex:1;width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(127,179,255,.3);background:rgba(2,6,16,.8);color:#fff;font:inherit}
.ai-f button,.ai-go{padding:10px 16px;border-radius:10px;border:0;background:linear-gradient(135deg,#ffb800,#ffd76a);color:#1a0e00;font-weight:800;cursor:pointer}
.ai-g label{display:block;margin:8px 0 4px;color:#8fa4d4;font-size:.75rem}
.ai-go{width:100%;margin-top:12px}
.ai-res{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.ai-c{border-radius:14px;padding:12px;text-align:center;border:1px solid rgba(127,179,255,.25);background:rgba(255,255,255,.03);transform-style:preserve-3d;transition:transform .15s}
.ai-c svg{width:100%;height:88px;filter:drop-shadow(0 12px 14px rgba(0,0,0,.6))}
.ai-c b{display:block;font-size:.78rem;margin-top:6px}.ai-c span{font-size:.68rem;color:#8fa4d4}
.ai-cta{display:block;text-align:center;margin-top:12px;padding:11px;border-radius:12px;background:linear-gradient(135deg,#4f8ef7,#7c3aed);color:#fff;font-weight:700;text-decoration:none}
@media(max-width:520px){.ai-fab span{display:none}.ai-fab{padding:14px}}

/* chat v2: package cards, typing dots, lists */
.ai-m.pk{max-width:100%;width:100%;padding:0;background:none}
.ai-m a{word-break:break-word}
.ai-ul{margin:6px 0 8px;padding-left:18px}.ai-ul li{margin:2px 0}
.ai-dots{display:inline-flex;gap:4px;align-items:center;height:14px}
.ai-dots i{width:6px;height:6px;border-radius:50%;background:#8fa4d4;animation:aiD 1s infinite}
.ai-dots i:nth-child(2){animation-delay:.15s}.ai-dots i:nth-child(3){animation-delay:.3s}
@keyframes aiD{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.ai-pk{border:1px solid rgba(127,179,255,.28);border-radius:14px;padding:12px 13px;background:rgba(255,255,255,.04)}
.ai-pk.feat{border-color:#ffb800;background:linear-gradient(160deg,rgba(255,184,0,.1),rgba(79,142,247,.08))}
.ai-pk-h{display:flex;justify-content:space-between;gap:8px;align-items:center}
.ai-pk-h em{font-style:normal;font-size:.68rem;font-weight:800;padding:2px 8px;border-radius:99px;background:#ffb800;color:#1a0e00}
.ai-pk-p{font:800 1.35rem/1.2 system-ui,sans-serif;color:#ffc233;margin:4px 0 6px}
.ai-pk-p s{font-size:.8rem;font-weight:500;color:#8fa4d4}.ai-pk-p small{font-size:.72rem;font-weight:700;color:#7dffb2}
.ai-pk ul{list-style:none;margin:0 0 8px;padding:0}
.ai-pk li{position:relative;padding-left:18px;margin:3px 0;font-size:.8rem;color:#d3def8}
.ai-pk li:before{content:"\2713";position:absolute;left:0;color:#7dffb2;font-weight:800}
.ai-pk li.x{display:none}.ai-pk.all li.x{display:block}
.ai-lnk{background:none;border:0;color:#ffc233;cursor:pointer;font-size:.78rem;padding:0 0 8px;text-decoration:underline}
.ai-ord{width:100%;padding:9px;border:0;border-radius:10px;background:linear-gradient(135deg,#ffb800,#ffd76a);color:#1a0e00;font-weight:800;cursor:pointer}

.ai-gate{display:none;flex:1;flex-direction:column;gap:10px;padding:18px 16px;overflow:auto}
.ai-panel.gated .ai-gate{display:flex}
.ai-panel.gated .ai-b,.ai-panel.gated .ai-f{display:none}
.ai-gate h4{margin:0;font:800 1.05rem system-ui,sans-serif;color:#fff}
.ai-gate p{margin:0 0 4px;color:#b9c8ee;font-size:.82rem}
.ai-gate label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.78rem;color:#cfdcff}
.ai-gate input{width:100%;padding:11px 12px;border-radius:10px;border:1px solid rgba(127,179,255,.3);background:rgba(2,6,16,.8);color:#fff;font:inherit;font-size:.9rem}
.ai-gate input:focus{outline:2px solid #ffb800;outline-offset:1px}
.ai-gate button{padding:12px 16px;border-radius:10px;border:0;background:linear-gradient(135deg,#ffb800,#ffd76a);color:#1a0e00;font-weight:800;font-size:.92rem;cursor:pointer;margin-top:4px}
.ai-gate .ai-ge{min-height:18px;color:#ff8a8a;font-size:.8rem;font-weight:600}
.ai-gate small{color:#8fa3d4;font-size:.72rem;line-height:1.4}

/* voice + call buttons */
.ai-h>div{flex:1}
.ai-call{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-right:6px;border-radius:50%;background:rgba(125,255,178,.14);color:#7dffb2;text-decoration:none}
.ai-call:hover{background:rgba(125,255,178,.26)}
.ai-f .ai-att,.ai-f .ai-mic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border-radius:50%;border:1px solid rgba(127,179,255,.35);background:rgba(127,179,255,.12);color:#9ec1ff;cursor:pointer}
.ai-f .ai-att:hover,.ai-f .ai-mic:hover{background:rgba(127,179,255,.22)}
.ai-f .ai-mic.rec{background:#e11d48;border-color:#e11d48;color:#fff;animation:aiRec 1.1s infinite}
@keyframes aiRec{0%{box-shadow:0 0 0 0 rgba(225,29,72,.55)}100%{box-shadow:0 0 0 12px rgba(225,29,72,0)}}

/* lite mode (phones / low-end devices): drop the heaviest effects */
html.lite *,html.lite *::before,html.lite *::after{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.lite #fxAur,html.lite #fxSpot,html.lite #cdot,html.lite #cring,html.lite .beam{display:none!important}
html.lite body{cursor:auto!important}

/* ---------- voice call screen (assets/fx/ai-voice.js) ---------- */
.vc{position:absolute;inset:0;z-index:30;display:flex;flex-direction:column;border-radius:22px;overflow:hidden;color:#e8eeff;background:radial-gradient(120% 80% at 50% 0%,#14307a 0%,#08153a 55%,#040915 100%);animation:vcIn .35s cubic-bezier(.2,.8,.2,1);--lv:0}
@keyframes vcIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.vc-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 0;font-size:.74rem;color:#9fb2dd}
.vc-conn{display:inline-flex;align-items:center;gap:7px;min-width:0}
.vc-ctext{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vc-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:#8fa4d4}
.vc[data-conn=ok] .vc-dot{background:#7dffb2;box-shadow:0 0 8px #7dffb2}
.vc[data-conn=slow] .vc-dot{background:#ffc233;box-shadow:0 0 8px #ffc233}
.vc[data-conn=bad] .vc-dot{background:#ff5d73;box-shadow:0 0 8px #ff5d73}
.vc[data-conn=wait] .vc-dot{animation:aiP 1.4s infinite}
.vc-lang{display:inline-flex;gap:6px;flex:0 0 auto}
.vc-lang button{min-width:40px;padding:5px 10px;border-radius:99px;border:1px solid rgba(127,179,255,.35);background:transparent;color:#cfdcff;font:700 .72rem system-ui,sans-serif;cursor:pointer}
.vc-lang button.on{background:#ffb800;border-color:#ffb800;color:#1a0e00}
.vc-mid{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 18px;text-align:center;overflow:auto}
.vc-orb{position:relative;flex:0 0 auto;width:118px;height:118px;margin:4px 0 8px;border-radius:50%;cursor:pointer;-webkit-tap-highlight-color:transparent;outline-offset:6px}
.vc-orb i{position:absolute;inset:0;border-radius:50%;border:2px solid transparent;pointer-events:none}
.vc-av{position:absolute;inset:10px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#1d4ed8,#7c3aed);box-shadow:0 14px 40px -8px rgba(79,142,247,.8),0 0 0 1px rgba(255,255,255,.18) inset;font-size:2.1rem;color:#fff;transition:filter .3s,box-shadow .3s}
.vc-wave{display:none;gap:4px;align-items:center;height:36px}
.vc-wave b{display:block;width:5px;height:12px;border-radius:3px;background:#fff;animation:vcW 0.9s ease-in-out infinite}
.vc-wave b:nth-child(2){animation-delay:.12s}.vc-wave b:nth-child(3){animation-delay:.24s}.vc-wave b:nth-child(4){animation-delay:.36s}.vc-wave b:nth-child(5){animation-delay:.48s}
@keyframes vcW{0%,100%{height:10px}50%{height:34px}}
@keyframes vcPulse{0%{transform:scale(1);opacity:.65}100%{transform:scale(1.55);opacity:0}}
@keyframes vcSpin{to{transform:rotate(360deg)}}
.vc[data-st=connecting] .r1{border-top-color:#7dffb2;animation:vcSpin 1s linear infinite}
.vc[data-st=listening] .r1,.vc[data-st=listening] .r2{border-color:#7dffb2;animation:vcPulse 2s ease-out infinite}
.vc[data-st=listening] .r2{animation-delay:1s}
.vc.meter[data-st=listening] .r1{animation:none;opacity:.55;transform:scale(calc(1.05 + var(--lv)*.4))}
.vc.meter[data-st=listening] .r2{animation:none;opacity:0}
.vc[data-st=thinking] .r1{border-color:rgba(255,194,51,.8);animation:vcPulse 1.2s ease-out infinite}
.vc[data-st=speaking] .vc-star{display:none}.vc[data-st=speaking] .vc-wave{display:flex}
.vc[data-st=speaking] .vc-av{box-shadow:0 0 0 6px rgba(124,58,237,.28),0 14px 50px -6px rgba(124,58,237,.9)}
.vc[data-st=muted] .vc-av,.vc[data-st=paused] .vc-av{filter:grayscale(.85) brightness(.75)}
.vc[data-st=error] .vc-av{background:linear-gradient(135deg,#9f1239,#e11d48);animation:none}
.vc[data-st=error] .vc-orb{cursor:default}
.vc-name{margin:0;font:800 1.15rem system-ui,sans-serif;color:#fff}
.vc-status{min-height:1.4em;font-weight:600;color:#7dffb2}
.vc[data-st=thinking] .vc-status{color:#ffc233}.vc[data-st=speaking] .vc-status{color:#b9a3ff}
.vc[data-st=muted] .vc-status,.vc[data-st=paused] .vc-status{color:#9fb2dd}.vc[data-st=error] .vc-status{color:#ff8da1}
.vc-time{font:600 .95rem ui-monospace,Menlo,Consolas,monospace;color:#cfdcff;visibility:hidden;letter-spacing:.04em}
.vc-time.on{visibility:visible}
.vc-hint{min-height:1.2em;font-size:.72rem;color:#8fa4d4}
.vc-cap{width:100%;max-width:330px;margin-top:6px}
.vc-cap p{margin:4px 0;font-size:.8rem;line-height:1.45}
.vc-bot{max-height:96px;overflow:auto;color:#dfe8ff}
.vc-you{color:#8fa4d4}.vc-you.mid{font-style:italic;opacity:.8}
.vc-note{width:100%;max-width:330px;margin-top:6px;font-size:.8rem;line-height:1.45;color:#ffc9a3}
.vc[data-st=error] .vc-note{color:#ffd1d8}
.vc-note:empty,.vc-act:empty,.vc-cap p:empty{display:none}
.vc-act{display:flex;flex-direction:column;gap:8px;width:100%;max-width:260px;margin-top:10px}
.vc-a{display:block;box-sizing:border-box;width:100%;padding:11px 14px;border-radius:12px;border:1px solid rgba(127,179,255,.4);background:rgba(255,255,255,.06);color:#fff;font:700 .84rem system-ui,sans-serif;text-align:center;text-decoration:none;cursor:pointer}
.vc-a.pri{background:linear-gradient(135deg,#ffb800,#ffd76a);border-color:transparent;color:#1a0e00}
.vc-bar{flex:0 0 auto;display:flex;justify-content:center;align-items:flex-start;gap:30px;padding:10px 16px 22px}
.vc-b{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:64px;padding:0;background:none;border:0;color:#cfdcff;font:600 .7rem system-ui,sans-serif;cursor:pointer;-webkit-tap-highlight-color:transparent}
.vc-b i{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);transition:background .2s,color .2s}
.vc-b:hover i{background:rgba(255,255,255,.18)}
.vc-b.on i{background:#fff;color:#0b1535}
.vc-b:disabled{opacity:.4;cursor:not-allowed}
.vc-end i{width:64px;height:64px;background:#e11d48;border-color:#e11d48;color:#fff;box-shadow:0 10px 28px -6px rgba(225,29,72,.8)}
.vc-end:hover i{background:#f43f5e}
.vc-end svg{transform:rotate(0deg)}
.vc button:focus-visible,.vc-a:focus-visible,.vc-orb:focus-visible{outline:2px solid #ffb800;outline-offset:3px}
@media(max-height:560px){.vc-orb{width:84px;height:84px}.vc-av{font-size:1.5rem}.vc-bar{padding-bottom:14px}.vc-b i{width:48px;height:48px}.vc-end i{width:54px;height:54px}}
@media(prefers-reduced-motion:reduce){.vc,.vc *{animation:none!important;transition:none!important}}

/* ---------- human voice call (assets/fx/human-call.js): ringing / live / ended ---------- */
.vc-h .vc-orb{cursor:default}
.vc[data-st=ringing] .r1,.vc[data-st=ringing] .r2{border-color:#ffc233;animation:vcPulse 1.6s ease-out infinite}
.vc[data-st=ringing] .r2{animation-delay:.8s}
.vc[data-st=ringing] .vc-status{color:#ffc233}
.vc[data-st=ringing] .vc-av{animation:vcRing 1.1s ease-in-out infinite}
@keyframes vcRing{0%,100%{transform:rotate(0)}15%{transform:rotate(-12deg)}30%{transform:rotate(10deg)}45%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}75%{transform:rotate(0)}}
.vc[data-st=live] .r1,.vc[data-st=live] .r2{border-color:#7dffb2;animation:vcPulse 2.4s ease-out infinite}
.vc[data-st=live] .r2{animation-delay:1.2s}
.vc[data-st=live] .vc-av{background:linear-gradient(135deg,#059669,#10b981)}
.vc[data-st=live] .vc-time{visibility:visible}
.vc[data-st=ended] .vc-av{filter:grayscale(.85) brightness(.75)}
.vc[data-st=ended] .vc-status{color:#cfdcff}
.vc-hold{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:5px 12px;border-radius:99px;background:rgba(255,194,51,.14);border:1px solid rgba(255,194,51,.4);color:#ffd98a;font:700 .72rem system-ui,sans-serif}
.vc-hold[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.vc[data-st=ringing] .vc-av{animation:none}}
.vc-h[data-st=ended] .vc-bar,.vc-h[data-st=error] .vc-bar{visibility:hidden}
/* OUTBOUND call: a team member is calling the visitor (Accept / Decline) */
.vc[data-st=incoming] .r1,.vc[data-st=incoming] .r2{border-color:#7dffb2;animation:vcPulse 1.6s ease-out infinite}
.vc[data-st=incoming] .r2{animation-delay:.8s}
.vc[data-st=incoming] .vc-status{color:#7dffb2}
.vc[data-st=incoming] .vc-av{background:linear-gradient(135deg,#059669,#10b981);animation:vcRing 1.1s ease-in-out infinite}
.vc-h[data-st=incoming] .vc-bar{visibility:hidden}
.vc-a.ok{background:linear-gradient(135deg,#059669,#10b981);border-color:transparent;color:#fff}
.vc-a.no{background:rgba(225,29,72,.92);border-color:transparent;color:#fff}
@media(prefers-reduced-motion:reduce){.vc[data-st=incoming] .vc-av{animation:none}}

/* "this call may be recorded" notice on the human call screens */
.vc-recn{margin:10px auto 0;max-width:88%;font-size:12px;line-height:1.35;font-weight:700;color:#fecdd3;background:rgba(225,29,72,.22);border:1px solid rgba(225,29,72,.55);padding:5px 12px;border-radius:99px;text-align:center}
.vc-recn[hidden]{display:none}
