/**
 * LSC Contact Form — assets/form.css
 * Styles for the [lsc_contact_form] shortcode output.
 *
 * @package lsc-contact-form
 */

.lsc-cf-wrap {
  max-width: 660px;
}

.lsc-cf-title {
  font-family: 'Forum', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--lsc-dark, #1a2f3d);
  margin-bottom: .375rem;
}

.lsc-cf-subtitle {
  font-size: .875rem;
  color: var(--lsc-text-light, #5b7085);
  margin-bottom: 1.5rem;
}

.lsc-cf-field {
  margin-bottom: 1.25rem;
}

.lsc-cf-label {
  display: block;
  font-weight: 700;
  font-size: .9375rem;
  color: var(--lsc-dark, #1a2f3d);
  margin-bottom: .375rem;
}

.lsc-cf-optional {
  font-weight: 400;
  color: var(--lsc-text-light, #5b7085);
  font-size: .8125rem;
}

.lsc-cf-input {
  display: block;
  width: 100%;
  padding: .75rem 1rem;
  border: 1px solid var(--lsc-border, #d0e2ed);
  border-radius: 8px;
  font-family: 'Lato', Arial, sans-serif;
  font-size: 1rem;
  color: var(--lsc-text, #2c3e50);
  background: #fff;
  transition: border-color 200ms ease, box-shadow 200ms ease;
  outline: none;
}

.lsc-cf-input:focus {
  border-color: var(--lsc-primary, #2a6e8f);
  box-shadow: 0 0 0 3px rgba(42,110,143,.15);
}

.lsc-cf-input.has-error {
  border-color: #c0392b;
  box-shadow: 0 0 0 3px rgba(192,57,43,.12);
}

.lsc-cf-textarea {
  resize: vertical;
  min-height: 140px;
}

.lsc-cf-select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath fill='%235b7085' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  padding-right: 2.5rem;
}

.lsc-cf-err {
  display: block;
  color: #c0392b;
  font-size: .8125rem;
  margin-top: .25rem;
  min-height: 1em;
}

/* Honeypot — hide visually and from screen readers */
.lsc-cf-hp {
  position: absolute;
  left: -9999px;
  top: -9999px;
  visibility: hidden;
  width: 0;
  height: 0;
  overflow: hidden;
}

/* Consent checkbox */
.lsc-cf-field--check { display: flex; flex-direction: column; }

.lsc-cf-check-label {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  font-size: .9375rem;
  color: var(--lsc-text, #2c3e50);
  cursor: pointer;
}

.lsc-cf-check-label input[type="checkbox"] {
  flex-shrink: 0;
  margin-top: .2rem;
  width: 1.1rem;
  height: 1.1rem;
  accent-color: var(--lsc-primary, #2a6e8f);
}

/* Status message */
.lsc-cf-status {
  padding: 1rem 1.25rem;
  border-radius: 8px;
  font-size: .9375rem;
  margin-bottom: 1.25rem;
}

.lsc-cf-status--success {
  background-color: #e8f7ee;
  border: 1px solid #5bc47a;
  color: #1a5733;
}

.lsc-cf-status--error {
  background-color: #fdecea;
  border: 1px solid #e57373;
  color: #7a1a1a;
}

/* Submit button loading state */
.lsc-cf-submit[disabled] {
  opacity: .65;
  cursor: not-allowed;
  pointer-events: none;
}

/* Privacy note */
.lsc-cf-privacy-note {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .8125rem;
  color: var(--lsc-text-light, #5b7085);
  margin-top: .875rem;
}
