/* Appointment form (markup: forms/lead-form.js). Matches the Forminator design it
 * replaced: green Poppins labels, pale inputs with a 1.5px border and 10px radius, the
 * gold #c99a44 button. Fonts are the Avada-hosted Poppins and Inter already on the page.
 *
 * band / compact sit in the white 3/4 column of the green "Request an Appointment" band
 * and run in one row on wide screens. full sits in a half-width column and stacks. */
.bps-form {
  --bps-green: #1c6344;
  --bps-ink: #2a352f;
  --bps-line: #e4ece7;
  --bps-field: #fafdfb;
  --bps-gold: #c99a44;
  --bps-gold-dark: #a87d2f;
  --bps-error: #c62828;
  font-family: Inter, Arial, Helvetica, sans-serif;
  color: var(--bps-ink);
  width: 100%;
  margin: 0;
}

.bps-form__grid {
  display: grid;
  gap: 14px 16px;
  align-items: end;
  grid-template-columns: 1fr 1fr;
}
.bps-form--band,
.bps-form--compact { padding: 28px 32px; box-sizing: border-box; }
.bps-form--band .bps-form__grid { grid-template-columns: repeat(5, minmax(0, 1fr)) auto; }
.bps-form--compact .bps-form__grid { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }

.bps-form__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.bps-form--full .bps-form__field--wide,
.bps-form--full .bps-form__actions { grid-column: 1 / -1; }

.bps-form label {
  font-family: Poppins, Arial, Helvetica, sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--bps-green);
  margin: 0;
}
.bps-form__req { color: #e51919; }

.bps-form input,
.bps-form select,
.bps-form textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 11px 14px;
  font: 400 15px/1.4 Inter, Arial, Helvetica, sans-serif;
  color: var(--bps-ink);
  background: var(--bps-field);
  border: 1.5px solid var(--bps-line);
  border-radius: 10px;
  box-shadow: none;
  transition: border-color 0.15s, background-color 0.15s;
}
.bps-form textarea { min-height: 112px; resize: vertical; }
.bps-form select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 38px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231c6344' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  text-overflow: ellipsis;
}
.bps-form select:invalid { color: #888; }
.bps-form select option { color: var(--bps-ink); }
.bps-form ::placeholder { color: #888; opacity: 1; }
.bps-form input:hover,
.bps-form select:hover,
.bps-form textarea:hover { border-color: #cbd9d0; }
.bps-form input:focus,
.bps-form select:focus,
.bps-form textarea:focus {
  outline: none;
  border-color: #2f8f63;
  background-color: #fff;
  box-shadow: 0 0 0 3px rgba(47, 143, 99, 0.15);
}
.bps-form input:user-invalid,
.bps-form select:user-invalid { border-color: var(--bps-error); }

.bps-form__submit {
  min-height: 48px;
  padding: 12px 30px;
  font: 600 15px/1.2 Poppins, Arial, Helvetica, sans-serif;
  color: #fff;
  background: var(--bps-gold);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.15s, transform 0.15s;
}
.bps-form__submit:hover,
.bps-form__submit:focus-visible { background: var(--bps-gold-dark); }
.bps-form__submit:focus-visible { outline: 3px solid rgba(201, 154, 68, 0.4); outline-offset: 2px; }
.bps-form__submit:active { transform: translateY(1px); }
.bps-form__submit:disabled { opacity: 0.65; cursor: wait; }
.bps-form--full .bps-form__submit { justify-self: start; }

.bps-form__status {
  margin: 14px 0 0;
  padding: 10px 14px;
  font-size: 14px;
  line-height: 1.5;
  border-radius: 10px;
  background: #eef6f1;
  color: var(--bps-green);
}
.bps-form__status.is-error { background: #fdecec; color: var(--bps-error); }
.bps-form__status:focus { outline: none; }

.bps-form__consent {
  margin: 12px 0 0;
  font-size: 12px;
  line-height: 1.6;
  color: #5f6d66;
}

/* Honeypot: off-screen, not display:none (some bots skip hidden fields). */
.bps-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Avada's own breakpoints: medium ≤1024px, small ≤640px. */
@media (max-width: 1280px) {
  .bps-form--band .bps-form__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bps-form--compact .bps-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bps-form--band .bps-form__actions,
  .bps-form--compact .bps-form__actions { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .bps-form--band,
  .bps-form--compact { padding: 22px 18px; }
  .bps-form__grid,
  .bps-form--band .bps-form__grid,
  .bps-form--compact .bps-form__grid { grid-template-columns: 1fr; }
  .bps-form__submit { width: 100%; }
}
