/* Sona chat widget for ridgelinecapital.ai
   Loaded only on pages that carry the #sona markup. The widget is display:none
   until chat.js adds .sona--ready, so a visitor with JS off never sees a chat
   box that cannot talk back. */

.sona{
  position:fixed;right:clamp(14px,3vw,28px);bottom:clamp(14px,3vw,28px);
  z-index:90;display:none;font-family:var(--font-text);
}
.sona--ready{display:block}

/* ---------- launcher ---------- */
.sona__launch{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--red);color:#fff;border:1px solid var(--red);
  border-radius:999px;padding:14px 22px 14px 18px;cursor:pointer;
  font-family:var(--font-text);font-size:.82rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;
  box-shadow:var(--shadow-lg);transition:background .18s ease,transform .18s ease;
}
.sona__launch:hover{background:var(--red-hi);transform:translateY(-1px)}
.sona__launch svg{width:20px;height:20px;flex:0 0 auto}
.sona.is-open .sona__launch{display:none}
.sona__lbl--short{display:none}

/* ---------- panel ---------- */
.sona__panel{
  width:min(384px,calc(100vw - 28px));
  height:min(580px,calc(100vh - 110px));
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;
}
.sona__panel[hidden]{display:none}

.sona__head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--ink);color:#fff;padding:16px 16px 16px 18px;flex:0 0 auto;
}
.sona__id{display:flex;align-items:center;gap:11px;min-width:0}
.sona__dot{
  width:9px;height:9px;border-radius:50%;background:#4CAF50;flex:0 0 auto;
  box-shadow:0 0 0 3px rgba(76,175,80,.22);
}
.sona__id b{display:block;font-family:var(--font-display);font-size:1rem;line-height:1.2}
.sona__id small{display:block;color:rgba(255,255,255,.6);font-size:.7rem;letter-spacing:.04em}
.sona__x{
  background:none;border:0;color:rgba(255,255,255,.65);cursor:pointer;
  font-size:1.5rem;line-height:1;padding:0 2px;
}
.sona__x:hover{color:#fff}

.sona__log{
  flex:1 1 auto;overflow-y:auto;padding:18px 16px 6px;
  background:var(--paper);display:flex;flex-direction:column;gap:10px;
}
.sona__msg{
  max-width:84%;padding:11px 14px;border-radius:12px;
  font-size:.86rem;line-height:1.5;white-space:pre-wrap;
}
.sona__msg--bot{background:var(--paper-2);color:var(--ink);border-bottom-left-radius:3px;align-self:flex-start}
.sona__msg--you{background:var(--red);color:#fff;border-bottom-right-radius:3px;align-self:flex-end}
.sona__msg a{color:inherit;text-decoration:underline}

.sona__typing{
  align-self:flex-start;display:flex;gap:4px;padding:13px 14px;
  background:var(--paper-2);border-radius:12px;border-bottom-left-radius:3px;
}
.sona__typing i{
  width:6px;height:6px;border-radius:50%;background:var(--gray-2);
  animation:sonaBlink 1.2s infinite ease-in-out;
}
.sona__typing i:nth-child(2){animation-delay:.18s}
.sona__typing i:nth-child(3){animation-delay:.36s}
@keyframes sonaBlink{0%,60%,100%{opacity:.28}30%{opacity:1}}

/* ---------- composer ---------- */
.sona__foot{flex:0 0 auto;padding:12px 16px 0;background:var(--white);border-top:1px solid var(--line)}
.sona__chips{display:flex;flex-wrap:wrap;gap:7px}
.sona__chip{
  background:var(--white);border:1px solid var(--line);border-radius:999px;
  padding:8px 14px;font-family:var(--font-text);font-size:.78rem;color:var(--ink);
  cursor:pointer;transition:border-color .15s ease,background .15s ease;
}
.sona__chip:hover{border-color:var(--red);background:var(--paper-2)}
.sona__chip--soft{color:var(--gray-2)}

.sona__row{display:flex;gap:8px;align-items:center}
.sona__row input{
  flex:1 1 auto;min-width:0;font-family:var(--font-text);font-size:.88rem;color:var(--ink);
  border:1px solid var(--line);border-radius:var(--r);padding:12px 13px;background:var(--white);
}
.sona__row input:focus{outline:none;border-color:var(--red)}
.sona__send{
  flex:0 0 auto;background:var(--red);border:1px solid var(--red);color:#fff;
  border-radius:var(--r);width:42px;height:42px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
}
.sona__send:hover{background:var(--red-hi)}
.sona__send svg{width:17px;height:17px}
.sona__skip{
  display:block;background:none;border:0;padding:8px 0 0;cursor:pointer;
  font-family:var(--font-text);font-size:.75rem;color:var(--gray-2);text-decoration:underline;
}
.sona__skip:hover{color:var(--red)}

.sona__acts{display:flex;flex-direction:column;gap:9px}
.sona__acts .btn{width:100%;justify-content:center;text-align:center}

.sona__fine{
  flex:0 0 auto;margin:0;padding:11px 16px 13px;background:var(--white);
  font-size:.66rem;line-height:1.45;color:var(--gray-2);
}
.sona__fine a{color:var(--gray-2);text-decoration:underline}

/* Phones: a compact launcher in the corner, like the big lenders use, so it
   doesn't cover content or outrank Apply Now. The open panel still goes full width. */
@media (max-width:520px){
  .sona{right:14px;bottom:14px}
  .sona.is-open{left:10px;right:10px;bottom:10px}
  .sona__panel{width:100%;height:min(78vh,560px)}
  .sona__launch{gap:8px;padding:12px 18px 12px 15px;font-size:.76rem}
  .sona__lbl{display:none}
  .sona__lbl--short{display:inline}
}
