/* Lincoln Square Law — FAQ chatbot. Prefixed lslcb-.
 *
 * Brand Style Guide v1.1: Square Ink, Giddings Brass (accent, sparing), Foster
 * Slate, Parchment, Limestone, Court Black. Square corners throughout, honest
 * hairlines, the solid square as the only motif. Fraunces for the title, Inter
 * for everything else — both inherited from the theme (nothing is loaded here),
 * with the guide's documented substitutes (Georgia / Arial) as fallbacks.
 *
 * WCAG 2.2 AA: text contrast >= 4.5:1, control boundaries >= 3:1 (form borders
 * use Slate, not Limestone), visible 2px focus ring on every control, 44px
 * minimum hit areas, 16px inputs (no iOS zoom), reduced-motion and
 * forced-colors support.
 */
.lslcb{
  --lslcb-ink:#14273D; --lslcb-brass:#B08442; --lslcb-slate:#3D5A73;
  --lslcb-parch:#F3EEE3; --lslcb-paper:#FBFAF6; --lslcb-line:#C9C3B4;
  --lslcb-court:#1B1B1A; --lslcb-onink:#F4EFE4;
  --lslcb-hair:rgba(20,39,61,.16); --lslcb-error:#8E2F25;
  --lslcb-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --lslcb-ui:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --lslcb-offset:0px; --lslcb-lift:0px;
  position:fixed; bottom:calc(20px + var(--lslcb-offset) + var(--lslcb-lift)); z-index:99990;
  font-family:var(--lslcb-ui); font-size:16px; line-height:1.5; color:var(--lslcb-court);
  -webkit-text-size-adjust:100%;
}
.lslcb *, .lslcb *::before, .lslcb *::after{ box-sizing:border-box; }
.lslcb--right{ right:20px; } .lslcb--left{ left:20px; }
.lslcb--inline{ position:static; }
.lslcb [hidden]{ display:none !important; }

.lslcb-sr{
  position:absolute !important; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0;
}

/* One focus treatment for every control. */
.lslcb button:focus-visible, .lslcb a:focus-visible, .lslcb input:focus-visible,
.lslcb textarea:focus-visible, .lslcb-log:focus-visible{
  outline:2px solid var(--lslcb-ink); outline-offset:2px;
  box-shadow:0 0 0 4px var(--lslcb-paper);
}
.lslcb-head button:focus-visible, .lslcb-fab:focus-visible{
  outline-color:var(--lslcb-brass); box-shadow:0 0 0 4px var(--lslcb-ink);
}

/* Launcher — Ink ground, one brass square. */
.lslcb-fab{
  display:inline-flex; align-items:center; gap:.65rem; cursor:pointer;
  min-height:48px; padding:.7rem 1.1rem;
  background:var(--lslcb-ink); color:var(--lslcb-onink);
  border:1px solid var(--lslcb-ink); border-radius:0;
  font:600 .95rem/1.2 var(--lslcb-ui); letter-spacing:.01em;
  box-shadow:0 10px 24px -14px rgba(20,39,61,.7);
}
.lslcb-fab:hover{ background:#0E1C2D; border-color:var(--lslcb-brass); }
.lslcb-sq{ display:inline-block; width:9px; height:9px; background:var(--lslcb-brass); flex:none; }
.lslcb.is-open .lslcb-fab{ display:none; }

/* Panel */
.lslcb-panel{
  width:380px; max-width:calc(100vw - 32px);
  height:560px; max-height:calc(100vh - 40px - var(--lslcb-offset) - var(--lslcb-lift)); max-height:calc(100dvh - 40px - var(--lslcb-offset) - var(--lslcb-lift));
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--lslcb-paper); border:1px solid var(--lslcb-ink); border-radius:0;
  box-shadow:0 22px 50px -28px rgba(20,39,61,.5);
}
.lslcb--inline .lslcb-panel{ width:100%; max-width:560px; }
.lslcb-head{
  display:flex; align-items:center; justify-content:space-between; gap:.5rem;
  background:var(--lslcb-ink); color:var(--lslcb-onink); padding:.35rem .35rem .35rem 1rem;
  border-bottom:2px solid var(--lslcb-brass);
}
.lslcb-head-t{
  display:flex; align-items:center; gap:.6rem; margin:0; color:var(--lslcb-onink);
  font:400 1.1rem/1.2 var(--lslcb-serif); letter-spacing:-.005em;
}
.lslcb-x{
  width:44px; height:44px; flex:none; display:inline-flex; align-items:center; justify-content:center;
  background:none; border:0; border-radius:0; color:var(--lslcb-onink);
  font:400 1.6rem/1 var(--lslcb-ui); cursor:pointer;
}
.lslcb-x:hover{ color:var(--lslcb-brass); }
.lslcb-disc{
  margin:0; background:var(--lslcb-parch); color:var(--lslcb-court);
  font-size:.8125rem; line-height:1.45; padding:.6rem 1rem; border-bottom:1px solid var(--lslcb-hair);
}

/* Log */
.lslcb-log{
  flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain;
  padding:1rem; display:flex; flex-direction:column; gap:.65rem;
}
.lslcb-msg{
  max-width:88%; padding:.65rem .8rem; border-radius:0;
  font-size:.9375rem; line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere;
}
.lslcb-bot{
  align-self:flex-start; background:#fff; color:var(--lslcb-court);
  border:1px solid var(--lslcb-hair); border-left:2px solid var(--lslcb-brass);
}
.lslcb-user{ align-self:flex-end; background:var(--lslcb-ink); color:var(--lslcb-onink); }
.lslcb-msg a{ color:var(--lslcb-ink); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.lslcb-msg a:hover{ text-decoration-thickness:2px; }

/* Read-more links: the solid square is the only approved bullet. */
.lslcb-more{
  display:block; margin:.7rem 0 .35rem; padding-top:.6rem; border-top:1px solid var(--lslcb-hair);
  font:600 .6875rem/1.2 var(--lslcb-ui); letter-spacing:.2em; text-transform:uppercase; color:var(--lslcb-slate);
}
.lslcb-links{ list-style:none; margin:0; padding:0; }
.lslcb-links li{ position:relative; padding:.2rem 0 .2rem 1.1rem; }
.lslcb-links li::before{ content:""; position:absolute; left:0; top:.78em; width:7px; height:7px; background:var(--lslcb-brass); }
.lslcb-links a{ display:inline-block; padding:.15rem 0; }

.lslcb-note{
  align-self:flex-start; margin:.25rem 0 0;
  font:600 .6875rem/1.2 var(--lslcb-ui); letter-spacing:.2em; text-transform:uppercase; color:var(--lslcb-slate);
}

/* Suggested questions */
.lslcb-chips{ display:flex; flex-wrap:wrap; gap:.45rem; align-self:stretch; }
.lslcb-chip{
  cursor:pointer; min-height:44px; padding:.5rem .8rem;
  background:#fff; color:var(--lslcb-ink);
  border:1px solid var(--lslcb-slate); border-radius:0;
  font:600 .875rem/1.3 var(--lslcb-ui); text-align:left;
}
.lslcb-chip:hover{ background:var(--lslcb-parch); border-color:var(--lslcb-ink); }
.lslcb-chip.is-primary{ background:var(--lslcb-ink); color:var(--lslcb-onink); border-color:var(--lslcb-ink); }
.lslcb-chip.is-primary:hover{ background:#0E1C2D; border-color:var(--lslcb-brass); }

/* Question row */
.lslcb-inrow{ display:flex; gap:.5rem; padding:.7rem; border-top:1px solid var(--lslcb-hair); background:#fff; }
.lslcb-in{
  flex:1; min-width:0; min-height:44px; padding:.55rem .7rem;
  border:1px solid var(--lslcb-slate); border-radius:0; background:#fff;
  font:400 1rem/1.4 var(--lslcb-ui); color:var(--lslcb-court);
}
.lslcb-in::placeholder{ color:#5C6670; opacity:1; }
.lslcb-send, .lslcb-submit{
  min-height:44px; padding:.55rem 1rem; cursor:pointer;
  background:var(--lslcb-ink); color:var(--lslcb-onink);
  border:1px solid var(--lslcb-ink); border-radius:0;
  font:600 .9375rem/1.2 var(--lslcb-ui);
}
.lslcb-send:hover, .lslcb-submit:hover:not(:disabled){ background:#0E1C2D; border-color:var(--lslcb-brass); }
.lslcb-submit:disabled{ opacity:.75; cursor:default; }

/* Send-to-the-firm form (inside the log) */
.lslcb-form{
  align-self:stretch; background:#fff; padding:.9rem;
  border:1px solid var(--lslcb-hair); border-top:2px solid var(--lslcb-brass);
}
.lslcb-form-t{ margin:0 0 .7rem; font:400 1.05rem/1.25 var(--lslcb-serif); color:var(--lslcb-ink); }
.lslcb-field{ display:block; margin:0 0 .7rem; }
.lslcb-lab{ display:block; margin-bottom:.25rem; font:600 .8125rem/1.3 var(--lslcb-ui); color:var(--lslcb-ink); }
.lslcb-field input, .lslcb-field textarea{
  display:block; width:100%; min-height:44px; padding:.5rem .6rem;
  border:1px solid var(--lslcb-slate); border-radius:0; background:#fff;
  font:400 1rem/1.4 var(--lslcb-ui); color:var(--lslcb-court);
}
.lslcb-field textarea{ resize:vertical; }
.lslcb-field [aria-invalid="true"]{ border-color:var(--lslcb-error); border-width:2px; }
.lslcb-ferr{ display:block; margin-top:.25rem; font-size:.8125rem; font-weight:600; color:var(--lslcb-error); }
.lslcb-err{ margin:0 0 .6rem; font-size:.875rem; font-weight:600; color:var(--lslcb-error); }
.lslcb-err a{ color:inherit; }
.lslcb-actions{ display:flex; gap:.5rem; }
.lslcb-submit{ flex:1; }
.lslcb-cancel{
  min-height:44px; padding:.55rem .9rem; cursor:pointer;
  background:#fff; color:var(--lslcb-ink); border:1px solid var(--lslcb-slate); border-radius:0;
  font:600 .9375rem/1.2 var(--lslcb-ui);
}
.lslcb-cancel:hover{ background:var(--lslcb-parch); border-color:var(--lslcb-ink); }
.lslcb-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* Phones: the open panel takes the screen; the page behind stops scrolling. */
@media (max-width:600px){
  .lslcb{ bottom:calc(12px + var(--lslcb-offset-m, var(--lslcb-offset)) + var(--lslcb-lift) + env(safe-area-inset-bottom, 0px)); }
  .lslcb--right{ right:16px; } .lslcb--left{ left:16px; }
  .lslcb.is-open:not(.lslcb--inline){ top:0; right:0; bottom:0; left:0; }
  .lslcb:not(.lslcb--inline) .lslcb-panel{
    width:100%; max-width:none; height:100%; max-height:none; border:0; box-shadow:none;
    padding-bottom:env(safe-area-inset-bottom, 0px);
  }
  .lslcb-head{ padding-top:calc(.35rem + env(safe-area-inset-top, 0px)); }
  html.lslcb-lock, html.lslcb-lock body{ overflow:hidden; }
}

@media (prefers-reduced-motion:no-preference){
  .lslcb-panel{ animation:lslcb-in .18s ease-out; }
  @keyframes lslcb-in{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
}

@media (forced-colors:active){
  .lslcb-fab, .lslcb-panel, .lslcb-chip, .lslcb-send, .lslcb-submit, .lslcb-cancel, .lslcb-in,
  .lslcb-field input, .lslcb-field textarea, .lslcb-msg{ border:1px solid CanvasText; }
  .lslcb-sq, .lslcb-links li::before{ background:CanvasText; forced-color-adjust:none; }
  .lslcb button:focus-visible, .lslcb a:focus-visible, .lslcb input:focus-visible, .lslcb textarea:focus-visible{ outline:2px solid Highlight; }
}

@media print{ .lslcb{ display:none !important; } }
