/* minimal styles */
.sea-chat-root { position: relative; z-index: 9999; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; /* Prevent blending with underlying sections */ mix-blend-mode: normal !important; }

/* Reset stacking contexts and transformations to ensure the chat always floats above
   complex hero sections (e.g., Divi sliders with transforms or blend modes). */
.sea-chat-root {
  isolation: isolate;
  transform: none !important;
  filter: none !important;
  /* Avoid blend modes from underlying elements */
  mix-blend-mode: normal !important;
}
.sea-bubble { position: fixed; right: 20px; bottom: 20px; display:inline-flex; align-items:center; gap:10px; border: none; background:#111; color:#fff; border-radius:999px; padding:10px 14px; cursor:pointer; box-shadow:0 8px 24px rgba(0,0,0,.25); }

/* Increase z-index on bubble and panel individually to ensure they overlay
   above any hero elements or sliders in the theme. */
.sea-bubble,
.sea-panel {
  z-index: 2147483647 !important;
  /* Ensure no mix-blend-mode from parent sections affects bubble or panel */
  mix-blend-mode: normal !important;
}
.sea-bubble-dot { width:6px; height:6px; border-radius:999px; background:#fff; opacity:.6; animation: seaPulse 1s infinite alternate; display:inline-block; }
.sea-bubble-dot:nth-child(2){ animation-delay:.15s; } .sea-bubble-dot:nth-child(3){ animation-delay:.3s; }
.sea-bubble-label { font-weight:600; font-size:14px; }
@keyframes seaPulse { from{ transform: translateY(0); opacity:.6 } to{ transform: translateY(-2px); opacity:1 } }
.sea-panel { position: fixed; right:20px; bottom:90px; width:360px; max-width:92vw; background:#fff; color:#111; border-radius:16px; overflow:hidden; box-shadow:0 16px 40px rgba(0,0,0,.2); display:none; border:1px solid rgba(0,0,0,.06); }
.sea-panel.sea-open { display:flex; flex-direction:column; height:560px; }
.sea-header { display:flex; align-items:center; gap:12px; padding:12px 14px; background:#0f172a; color:#fff; }
.sea-avatar { width:32px; height:32px; border-radius:999px; background: rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; font-size:18px; }
.sea-titles .sea-h1 { font-weight:700; font-size:14px; line-height:1.2; }
.sea-titles .sea-h2 { font-weight:400; opacity:.9; font-size:12px; }
.sea-close { margin-left:auto; background:transparent; border:0; color:#fff; font-size:22px; cursor:pointer; }
.sea-messages { flex:1; overflow:auto; padding:14px; background:#f8fafc; }
.sea-msg { display:flex; margin-bottom:10px; }
.sea-msg .sea-bubble-msg { max-width:85%; padding:10px 12px; border-radius:14px; line-height:1.4; font-size:14px; white-space: pre-wrap; }
.sea-user { justify-content:flex-end; } .sea-user .sea-bubble-msg { background:#111827; color:#fff; border-bottom-right-radius:4px; }
.sea-assistant .sea-bubble-msg { background:#fff; border:1px solid #e5e7eb; border-bottom-left-radius:4px; }
.sea-form { display:flex; gap:8px; padding:10px; border-top:1px solid #e5e7eb; background:#fff; }
.sea-form input { flex:1; border-radius:10px; border:1px solid #d1d5db; padding:10px 12px; font-size:14px; outline:none; }
.sea-form input:focus { border-color:#111827; box-shadow:0 0 0 3px rgba(17,24,39,.08); }
.sea-send { background:#111827; color:#fff; border:0; border-radius:10px; padding:10px 14px; font-weight:600; cursor:pointer; }
.sea-privacy { font-size:11px; opacity:.8; padding:6px 10px 10px; }

/* Style for the standalone launch button inserted via the [strategic_expert_button] shortcode.
   By default it matches the look of the floating chat bubble.  Colours can
   be overridden via inline style attributes generated by the shortcode. */
.sea-launch-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: none;
  border-radius: 999px;
  padding: 10px 14px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 8px rgba(0,0,0,.15);
  background: #0f172a;
  color: #fff;
  text-decoration: none;
}

/* Ensure the dots inside the launch button adopt the text colour. We set
   background to currentColor so that when custom colours are applied via
   inline styles the dots match. The opacity is retained from the default
   sea-bubble-dot style. */
.sea-launch-button .sea-bubble-dot {
  background: currentColor;
  opacity: 0.6;
}

/* Bounce animation for global bubble button */
@keyframes seaBubbleJump {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
/* Apply the bounce animation only when chat is global and bubble mode */
.sea-chat-root[data-global="true"][data-ui="bubble"] .sea-bubble {
  animation: seaBubbleJump 2s infinite ease-in-out;
}

/* Typing indicator animation for the assistant (three bouncing dots) */
.sea-typing span {
  width: 6px;
  height: 6px;
  margin-right: 2px;
  border-radius: 50%;
  background: #d1d5db;
  display: inline-block;
  opacity: 0.6;
  animation: seaTyping 1.2s infinite ease-in-out;
}
.sea-typing span:nth-child(2) { animation-delay: 0.2s; }
.sea-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes seaTyping {
  0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }
  40% { opacity: 1; transform: scale(1); }
}