/* LeadCapture ST widget styles.
   Everything is scoped under .lcst-widget. Per-instance brand colors come
   from CSS custom properties set inline on the container (--lcst-*). */

/* Theme reset - neutralize common theme overrides scoped to our widget only */
.lcst-widget *, .lcst-widget *::before, .lcst-widget *::after { box-sizing: border-box; margin: 0; padding: 0; }
.lcst-widget input, .lcst-widget button, .lcst-widget select, .lcst-widget textarea { font-family: inherit; font-size: 16px; line-height: normal; letter-spacing: normal; text-transform: none; border-radius: 0; -webkit-appearance: none; appearance: none; }
.lcst-widget button { cursor: pointer; background: none; border: none; }
.lcst-widget a { text-decoration: none; }
.lcst-widget p, .lcst-widget h1, .lcst-widget h2, .lcst-widget h3, .lcst-widget h4, .lcst-widget h5 { font-weight: inherit; font-size: inherit; line-height: inherit; color: inherit; border: none; background: none; }
.lcst-widget ul, .lcst-widget ol, .lcst-widget li { list-style: none; }
.lcst-widget img { max-width: 100%; height: auto; }
/* End theme reset */

.lcst-widget {
  --lcst-bg: #fff;
  --lcst-surface: #f7f7f7;
  --lcst-border: #e5e7eb;
  --lcst-text: #000;
  --lcst-muted: #6b7280;
  --lcst-success-bg: #ECFDF5;
  --lcst-success-border: #6EE7B7;
  --lcst-success-text: #065F46;
  --lcst-error-bg: #FEF2F2;
  --lcst-error-border: #FECACA;
  --lcst-error-text: #B91C1C;
  --lcst-shadow: 0 4px 32px rgba(0,0,0,.10), 0 1px 4px rgba(0,0,0,.06);
  font-family: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  color: var(--lcst-text);
  max-width: 100%;
  width: 100%;
  min-width: 0;
  margin: 0;
}

/* Fallback in case the theme doesn't define .screen-reader-text */
.lcst-widget .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Honeypot - visually removed, still in the accessibility-hidden DOM */
.lcst-widget .lcst-hp { position: absolute !important; left: -9999px !important; top: -9999px !important; height: 1px; width: 1px; overflow: hidden; }

.lcst-widget .lcst-card { background: var(--lcst-bg); border-radius: 18px; box-shadow: var(--lcst-shadow); border: 1px solid var(--lcst-border); overflow: hidden; width: 100%; }

.lcst-widget .lcst-head { background: var(--lcst-head-bg); padding: .9rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-radius: 17px 17px 0 0; overflow: hidden; flex-wrap: nowrap; min-width: 0; }
.lcst-widget .lcst-head-title { font-size: .95rem; font-weight: 800; color: #fff; letter-spacing: -.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lcst-widget .lcst-head-trust { font-size: .72rem; color: #9CA3AF; margin-top: 3px; }
.lcst-widget .lcst-head-reviews { text-align: right; flex-shrink: 0; }
.lcst-widget .lcst-stars { font-size: .85rem; color: #f59e0b; letter-spacing: .05em; }

.lcst-widget .lcst-body { padding: 1.75rem; }
.lcst-widget .lcst-subtitle { font-size: .82rem; color: var(--lcst-muted); margin-bottom: .85rem; line-height: 1.5; }
.lcst-widget .lcst-g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.lcst-widget .lcst-g2-tight { gap: 0 .6rem; }
.lcst-widget .lcst-field { margin-bottom: .6rem; }
.lcst-widget .lcst-field-notes { margin-top: 1rem; }

.lcst-widget .lcst-input { width: 100% !important; padding: 11px 14px !important; background: var(--lcst-surface) !important; border: 1.5px solid var(--lcst-border) !important; border-radius: 10px !important; font-family: inherit !important; font-size: 16px !important; color: var(--lcst-text) !important; outline: none !important; -webkit-appearance: none !important; appearance: none !important; transition: border-color .15s, box-shadow .15s; box-shadow: none !important; margin: 0 !important; }
.lcst-widget .lcst-input:focus { border-color: var(--lcst-brand) !important; box-shadow: 0 0 0 3px var(--lcst-ring) !important; }
.lcst-widget .lcst-input.err { border-color: #EF4444 !important; }
.lcst-widget .lcst-input::placeholder { color: #C4C9D4; }

/* Native select styled to match inputs, with a chevron */
.lcst-widget select.lcst-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%236B7280' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 14px center !important; padding-right: 36px !important; cursor: pointer; }
.lcst-widget select.lcst-select.lcst-placeholder { color: #C4C9D4 !important; }

.lcst-widget .lcst-cta { width: 100% !important; padding: 14px !important; background: var(--lcst-brand) !important; color: var(--lcst-btn-txt) !important; border: none !important; border-radius: 10px !important; font-family: inherit !important; font-size: 1rem !important; font-weight: 800 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: .5rem !important; transition: background .15s, transform .1s; margin-top: .25rem !important; text-decoration: none !important; letter-spacing: normal !important; text-transform: none !important; line-height: normal !important; }
.lcst-widget .lcst-cta:hover:not(:disabled) { background: var(--lcst-brand-dk) !important; }
.lcst-widget .lcst-cta:active { transform: scale(.98); }
.lcst-widget .lcst-cta:disabled { opacity: .55; cursor: default; }

.lcst-widget .lcst-captured { display: flex; align-items: flex-start; gap: .75rem; background: var(--lcst-success-bg); border-top: 1px solid var(--lcst-success-border); padding: 1rem 1.75rem; font-size: .88rem; color: var(--lcst-success-text); line-height: 1.5; }
.lcst-widget .lcst-captured-check { font-size: 1.1rem; flex-shrink: 0; }

.lcst-widget .lcst-expand { max-height: 0; overflow: hidden; transition: max-height .65s cubic-bezier(.4,0,.2,1), opacity .45s ease; opacity: 0; }
.lcst-widget .lcst-expand.open { max-height: 2000px; opacity: 1; }
.lcst-widget .lcst-sched { padding: 1.5rem 1.75rem; border-top: 1px solid var(--lcst-border); }

.lcst-widget .lcst-divider { display: flex; align-items: center; gap: .75rem; margin: 1.25rem 0; }
.lcst-widget .lcst-divider.lcst-divider-slots { margin-top: 1.25rem; }
.lcst-widget .lcst-div-line { flex: 1; height: 1px; background: var(--lcst-border); }
.lcst-widget .lcst-div-txt { font-size: .72rem; font-weight: 700; color: var(--lcst-muted); letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }

.lcst-widget .lcst-textarea { width: 100%; padding: 11px 14px; background: var(--lcst-surface); border: 1.5px solid var(--lcst-border); border-radius: 10px; font-family: inherit; font-size: 16px; color: var(--lcst-text); outline: none; resize: vertical; min-height: 76px; line-height: 1.5; transition: border-color .15s, box-shadow .15s; }
.lcst-widget .lcst-textarea:focus { border-color: var(--lcst-brand); box-shadow: 0 0 0 3px var(--lcst-ring); }

.lcst-widget .lcst-cal { background: var(--lcst-surface); border: 1.5px solid var(--lcst-border); border-radius: 14px; padding: 1rem; }
.lcst-widget .lcst-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .9rem; }
.lcst-widget .lcst-cal-nav { background: var(--lcst-bg); border: 1.5px solid var(--lcst-border); border-radius: 8px; width: 32px; height: 32px; cursor: pointer; font-size: 1rem; color: var(--lcst-text); display: flex; align-items: center; justify-content: center; transition: border-color .15s; }
.lcst-widget .lcst-cal-nav:hover { border-color: var(--lcst-brand); }
.lcst-widget .lcst-cal-month { font-weight: 700; font-size: .95rem; }
.lcst-widget .lcst-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.lcst-widget .lcst-cal-dow { text-align: center; font-size: .66rem; font-weight: 700; color: var(--lcst-muted); padding: 2px 0 6px; letter-spacing: .05em; }
.lcst-widget .lcst-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 8px; font-size: .84rem; cursor: pointer; border: 1.5px solid transparent; background: none; font-family: inherit; color: var(--lcst-text); transition: all .12s; }
.lcst-widget .lcst-day:hover:not(:disabled):not(.sel) { background: var(--lcst-brand-bg); border-color: var(--lcst-brand); }
.lcst-widget .lcst-day.tod { border-color: var(--lcst-brand); color: var(--lcst-brand-dk); font-weight: 700; }
.lcst-widget .lcst-day.sel { background: var(--lcst-brand); color: var(--lcst-btn-txt); font-weight: 800; border-color: var(--lcst-brand); }
.lcst-widget .lcst-day:disabled { color: #D1D5DB; cursor: default; }

.lcst-widget .lcst-time-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: .55rem; margin-top: 1rem; }
.lcst-widget .lcst-slot { padding: 10px 12px; text-align: center; border: 1.5px solid var(--lcst-border); border-radius: 10px; background: var(--lcst-surface); font-family: inherit; font-size: .84rem; font-weight: 600; color: var(--lcst-muted); cursor: pointer; transition: all .12s; }
.lcst-widget .lcst-slot:hover { border-color: var(--lcst-brand); color: var(--lcst-brand-dk); background: var(--lcst-brand-bg); }
.lcst-widget .lcst-slot.sel { border-color: var(--lcst-brand); background: var(--lcst-brand-bg); color: var(--lcst-brand-dk); font-weight: 700; }

.lcst-widget .lcst-update-btn { width: 100%; padding: 13px; background: #111827; color: #fff; border: none; border-radius: 10px; font-family: inherit; font-size: .95rem; font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: .5rem; transition: background .15s, transform .1s; margin-top: 1.25rem; }
.lcst-widget .lcst-update-btn:hover:not(:disabled) { background: #1F2937; }
.lcst-widget .lcst-update-btn:active { transform: scale(.98); }
.lcst-widget .lcst-update-btn:disabled { opacity: .5; cursor: default; }

.lcst-widget .lcst-error { background: var(--lcst-error-bg); border: 1.5px solid var(--lcst-error-border); border-radius: 10px; padding: .75rem 1rem; color: var(--lcst-error-text); font-size: .84rem; margin-top: .75rem; }

.lcst-widget .lcst-skip { display: block; text-align: center; font-size: .8rem; color: var(--lcst-muted); margin-top: 1rem; cursor: pointer; text-decoration: underline; background: none; border: none; font-family: inherit; width: 100%; }

.lcst-widget .lcst-spin { display: inline-block; animation: lcstSpin .7s linear infinite; }
@keyframes lcstSpin { to { transform: rotate(360deg); } }

@media (max-width: 520px) {
  .lcst-widget { max-width: 100%; }
  .lcst-widget .lcst-body, .lcst-widget .lcst-sched { padding: 1.1rem; }
  .lcst-widget .lcst-g2 { grid-template-columns: 1fr; }
  .lcst-widget .lcst-head { flex-direction: column; align-items: flex-start; gap: .35rem; padding: .85rem 1rem; }
  .lcst-widget .lcst-card { border-radius: 12px; }
}
