/* =====================================================================
   Break the Locks Coaching: theme for the chat assistant widget.

   The assistant ships in its own purple. This repaints it in the site's
   black, white and orange-red with Montserrat headings, so the chat reads
   as part of the page. Every rule is scoped to .cc-widget so it wins on
   specificity even though the widget's own stylesheet arrives later.
   The two brand variables use !important because the widget sets them
   inline from its admin settings.
   ===================================================================== */

.cc-widget {
  --cc-brand:      #ff4f1a !important;
  --cc-brand-dark: #e03e0b !important;
  --cc-ink:        #0a0a0a;
  --cc-muted:      #6b6b6b;
  --cc-line:       rgba(10,10,10,.10);
  --cc-bg:         #ffffff;
  --cc-bot-bubble: #f4f2ee;
  --cc-radius:     20px;
  --cc-shadow:     0 30px 70px -30px rgba(0,0,0,.55);
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
}

/* launcher */
.cc-widget .cc-launcher {
  background: #ff4f1a;
  color: #fff;
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;
  font-weight: 700;
  letter-spacing: .01em;
  box-shadow: 0 16px 38px -14px rgba(255,79,26,.65);
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.cc-widget .cc-launcher:hover { background: #e03e0b; box-shadow: 0 22px 46px -14px rgba(255,79,26,.75); }
.cc-widget .cc-launcher-badge { background: #0a0a0a; border-color: #fff; }

/* panel */
.cc-widget .cc-panel { border: 1px solid #1f1f1f; background: var(--cc-bg); }
.cc-widget .cc-header {
  background: #0a0a0a;
  color: #fff;
  border-bottom: 3px solid #ff4f1a;
}
.cc-widget .cc-title {
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -.01em;
}
.cc-widget .cc-subtitle { opacity: .75; font-size: .78rem; }
.cc-widget .cc-avatar {
  background: #ff4f1a;
  color: #fff;
  border: 0;
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;
  font-weight: 800;
}
.cc-widget .cc-close { color: #fff; opacity: .75; }
.cc-widget .cc-close:hover { opacity: 1; }

/* messages */
.cc-widget .cc-body { background: var(--cc-bg); }
.cc-widget .cc-msg-bot .cc-bubble { background: var(--cc-bot-bubble); color: #1d1d1d; border: 0; }
.cc-widget .cc-msg-user .cc-bubble { background: #0a0a0a; color: #fff; }
.cc-widget .cc-bubble a { color: var(--cc-brand-dark); text-underline-offset: 2px; }
.cc-widget .cc-msg-user .cc-bubble a { color: #ffb08f; }

/* chips and starters */
.cc-widget .cc-chip {
  background: #fff;
  border: 1.5px solid #e4e1db;
  color: #0a0a0a;
  font-weight: 600;
  border-radius: 100px;
  transition: border-color .2s ease, transform .2s ease;
}
.cc-widget .cc-chip:hover { border-color: #ff4f1a; transform: translateY(-1px); }

/* time slots */
.cc-widget .cc-slot { background: #fff; border: 1.5px solid #e4e1db; color: #0a0a0a; transition: border-color .2s ease, transform .2s ease; }
.cc-widget .cc-slot:hover { border-color: #ff4f1a; color: #e03e0b; transform: translateY(-1px); }
.cc-widget .cc-slot.cc-selected { background: #fff1eb; border-color: #ff4f1a; color: #c2380b; }
.cc-widget .cc-slots-more { color: var(--cc-brand-dark); font-weight: 600; }
.cc-widget .cc-slot-day-label { font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif; font-weight: 700; font-size: .95rem; color: #0a0a0a; }

/* booking form */
.cc-widget .cc-form { background: #fff; border: 1.5px solid #e4e1db; border-radius: 16px; }
.cc-widget .cc-form input,
.cc-widget .cc-form textarea,
.cc-widget .cc-form select { background: #fff; border: 1.5px solid #e4e1db; border-radius: 10px; color: #0a0a0a; font-family: inherit; }
.cc-widget .cc-form input:focus,
.cc-widget .cc-form textarea:focus,
.cc-widget .cc-form select:focus { outline: 0; border-color: #0a0a0a; box-shadow: 0 0 0 4px rgba(10,10,10,.07); }
.cc-widget .cc-btn { background: #ff4f1a; color: #fff; font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif; font-weight: 700; border-radius: 100px; transition: background .2s ease; }
.cc-widget .cc-btn:hover:not(:disabled) { background: #e03e0b; }
.cc-widget .cc-btn-ghost { background: none; color: var(--cc-muted); border-radius: 100px; }
.cc-widget .cc-btn-ghost:hover { background: #f4f2ee; color: #0a0a0a; }
.cc-widget .cc-field label { color: #3a3a3a; font-weight: 600; }
.cc-widget .cc-form-when { color: var(--cc-brand-dark); font-weight: 700; }
.cc-widget .cc-consent { color: var(--cc-muted); }
.cc-widget .cc-form-error { background: #fff0eb; color: #9b2a07; }

/* confirmation */
.cc-widget .cc-confirm { background: #0a0a0a; color: #fff; border: 0; border-radius: 16px; }
.cc-widget .cc-confirm-head strong { font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif; font-size: 1.08rem; font-weight: 700; }
.cc-widget .cc-confirm-check { background: #ff4f1a; color: #fff; }
.cc-widget .cc-confirm-ref { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: #ffb08f; }

/* composer */
.cc-widget .cc-composer { background: #fff; border-top: 1px solid var(--cc-line); }
.cc-widget .cc-input { background: #fff; border: 1.5px solid #e4e1db; border-radius: 14px; color: #0a0a0a; font-family: inherit; }
.cc-widget .cc-input:focus { outline: 0; border-color: #0a0a0a; box-shadow: 0 0 0 3px rgba(10,10,10,.06); }
.cc-widget .cc-send { background: #ff4f1a; color: #fff; }
.cc-widget .cc-send:hover { background: #e03e0b; }
.cc-widget .cc-credit { color: var(--cc-muted); letter-spacing: .12em; }
.cc-widget .cc-typing span { background: rgba(255,79,26,.55); }

@media (prefers-reduced-motion: reduce) {
  .cc-widget .cc-launcher, .cc-widget .cc-chip, .cc-widget .cc-slot { transition: none; }
}
