/* LASER BLISS — AI assistant widget styles. Brand tokens inline so it's drop-in. */
:root{ --lbb-teal:#0ABAB5; --lbb-lagoon:#08807C; --lbb-cream:#FAF6F0; --lbb-ink:#1A2625;
  --lbb-slate:#5C6B6A; --lbb-aqua:#BFE8E6; --lbb-line:rgba(8,128,124,.16); }

.lbb-launcher{position:fixed;right:20px;bottom:20px;z-index:90;width:60px;height:60px;border:none;border-radius:50%;padding:0;
  background:transparent;box-shadow:0 14px 34px -12px rgba(10,186,181,.8);cursor:pointer;display:flex;
  align-items:center;justify-content:center;transition:transform .25s,box-shadow .25s}
.lbb-launcher:hover{transform:translateY(-3px) scale(1.04)}
.lbb-launcher:focus-visible{outline:2px solid var(--lbb-teal);outline-offset:3px}
.lbb-launcher img{width:60px;height:60px;display:block} /* launcher.svg is a full-colour teal disc */
/* nudge launcher up on mobile when the configurator plan bar is showing */
body.has-items .lbb-launcher{bottom:84px}

.lbb-panel{position:fixed;right:20px;bottom:92px;z-index:91;width:380px;max-width:calc(100vw - 32px);
  height:560px;max-height:calc(100vh - 120px);background:var(--lbb-cream);border:1px solid var(--lbb-line);
  border-radius:20px;box-shadow:0 30px 80px -30px rgba(8,40,38,.55);display:flex;flex-direction:column;overflow:hidden;
  font-family:"Hanken Grotesk",system-ui,sans-serif;color:var(--lbb-ink);
  transform-origin:bottom right;animation:lbb-in .28s cubic-bezier(.2,.8,.3,1)}
@keyframes lbb-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.lbb-panel[hidden]{display:none}

.lbb-head{display:flex;align-items:center;gap:10px;padding:14px 14px;background:linear-gradient(120deg,var(--lbb-teal),var(--lbb-lagoon));color:#fff}
.lbb-head-txt{flex:1;line-height:1.15}
.lbb-head-txt strong{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.2rem;display:block}
.lbb-head-txt span{font-size:.72rem;opacity:.9}
.lbb-book{background:rgba(255,255,255,.9);color:var(--lbb-lagoon);font-weight:700;font-size:.78rem;
  padding:.4em .8em;border-radius:999px;text-decoration:none}
.lbb-close{background:none;border:none;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;padding:2px 6px}

.lbb-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.lbb-msg{max-width:84%;padding:10px 13px;border-radius:14px;font-size:.92rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.lbb-msg.bot{background:#fff;border:1px solid var(--lbb-line);align-self:flex-start;border-bottom-left-radius:5px}
.lbb-msg.user{background:var(--lbb-teal);color:#fff;align-self:flex-end;border-bottom-right-radius:5px}
.lbb-msg a{color:var(--lbb-lagoon);font-weight:600}
.lbb-typing{align-self:flex-start;display:inline-flex;gap:4px;padding:12px 14px;background:#fff;border:1px solid var(--lbb-line);border-radius:14px}
.lbb-typing i{width:6px;height:6px;border-radius:50%;background:var(--lbb-slate);animation:lbb-blink 1.2s infinite both}
.lbb-typing i:nth-child(2){animation-delay:.2s}.lbb-typing i:nth-child(3){animation-delay:.4s}
@keyframes lbb-blink{0%,80%,100%{opacity:.25}40%{opacity:1}}

.lbb-chips{display:flex;flex-wrap:wrap;gap:7px;padding:0 14px 8px}
.lbb-chips button{font-family:inherit;font-size:.8rem;background:#fff;border:1px solid var(--lbb-line);color:var(--lbb-ink);
  border-radius:999px;padding:.45em .8em;cursor:pointer;transition:.2s}
.lbb-chips button:hover{border-color:var(--lbb-teal);background:rgba(10,186,181,.06)}

.lbb-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--lbb-line);background:var(--lbb-cream)}
.lbb-input input{flex:1;border:1px solid var(--lbb-line);border-radius:999px;padding:.7em 1em;font:inherit;font-size:.92rem;background:#fff}
.lbb-input input:focus{outline:2px solid var(--lbb-teal);outline-offset:1px}
.lbb-input button{flex:none;width:42px;height:42px;border:none;border-radius:50%;background:var(--lbb-teal);color:#fff;font-size:1.2rem;cursor:pointer}
.lbb-privacy{font-size:.68rem;color:var(--lbb-slate);padding:0 14px 12px;margin:0;text-align:center}

/* Callback / lead-capture (human handoff) */
.lbb-callback-toggle{background:none;border:none;font:inherit;font-size:.78rem;color:var(--lbb-lagoon);font-weight:600;cursor:pointer;padding:2px 14px 4px;text-align:left}
.lbb-callback-toggle:hover{text-decoration:underline}
.lbb-lead{padding:2px 14px 8px}
.lbb-lead[hidden]{display:none}
.lbb-lead-form{display:flex;flex-wrap:wrap;gap:7px}
.lbb-lead-form input{flex:1 1 120px;min-width:0;border:1px solid var(--lbb-line);border-radius:999px;padding:.55em .9em;font:inherit;font-size:.86rem;background:#fff}
.lbb-lead-form input:focus{outline:2px solid var(--lbb-teal);outline-offset:1px}
.lbb-lead-form button{flex:1 1 100%;border:none;border-radius:999px;background:var(--lbb-lagoon);color:#fff;font:inherit;font-weight:600;font-size:.86rem;padding:.6em;cursor:pointer;transition:background .2s}
.lbb-lead-form button:hover{background:var(--lbb-teal)}
.lbb-lead-note{font-size:.72rem;color:var(--lbb-slate);margin:7px 0 0}
.lbb-lead-note a{color:var(--lbb-lagoon);font-weight:600}

@media(max-width:480px){
  .lbb-panel{right:8px;left:8px;bottom:80px;width:auto;height:calc(100vh - 100px)}
}
@media(prefers-reduced-motion:reduce){ .lbb-panel,.lbb-launcher{animation:none;transition:none} }
