/* Contact Form 7 — Compass Law themed responses + field resets */

.compass-cf7-wrap,
.ft-appt-form-wrap,
.cl-contact-booking-form-panel,
.bp-lead {
  --compass-cf7-ok: #ba9d4e;
  --compass-cf7-err: #ff8f8f;
}

.ft-appt-form-wrap .wpcf7,
.cl-contact-booking-form-panel .wpcf7,
.bp-lead .wpcf7,
.compass-cf7-wrap .wpcf7 {
  width: 100%;
}

.ft-appt-form-wrap .wpcf7 form,
.cl-contact-booking-form-panel .wpcf7 form,
.bp-lead .wpcf7 form,
.compass-cf7-wrap .wpcf7 form {
  margin: 0;
}

.ft-appt-form-wrap .wpcf7 .wpcf7-form-control-wrap,
.cl-contact-booking-form-panel .wpcf7 .wpcf7-form-control-wrap,
.bp-lead .wpcf7 .wpcf7-form-control-wrap,
.compass-cf7-wrap .wpcf7 .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.ft-appt-form-wrap .wpcf7 br,
.cl-contact-booking-form-panel .wpcf7 br,
.bp-lead .wpcf7 br {
  display: none;
}

/* Footer + contact selects need full width inside wrappers */
.ft-appt-select-wrap .wpcf7-form-control-wrap,
.cl-contact-booking-field--icon .wpcf7-form-control-wrap {
  width: 100%;
}

.ft-appt-form-wrap .wpcf7-spinner,
.cl-contact-booking-form-panel .wpcf7-spinner,
.bp-lead .wpcf7-spinner,
.compass-cf7-wrap .wpcf7-spinner {
  display: inline-block;
  margin-left: 0.8rem;
  vertical-align: middle;
}

.ft-appt-form-wrap .wpcf7-response-output,
.cl-contact-booking-form-panel .wpcf7-response-output,
.bp-lead .wpcf7-response-output,
.compass-cf7-wrap .wpcf7-response-output,
.sc-invest-form .wpcf7-response-output {
  display: none;
  margin: 1.6rem 0 0;
  padding: 1.2rem 1.4rem;
  border-radius: 0.8rem;
  font-size: 1.45rem;
  line-height: 1.45;
  border-width: 1px;
  border-style: solid;
}

.ft-appt-form-wrap .wpcf7 form.sent .wpcf7-response-output,
.ft-appt-form-wrap .wpcf7 form.failed .wpcf7-response-output,
.ft-appt-form-wrap .wpcf7 form.invalid .wpcf7-response-output,
.ft-appt-form-wrap .wpcf7 form.spam .wpcf7-response-output,
.ft-appt-form-wrap .wpcf7 form.unaccepted .wpcf7-response-output,
.cl-contact-booking-form-panel .wpcf7 form.sent .wpcf7-response-output,
.cl-contact-booking-form-panel .wpcf7 form.failed .wpcf7-response-output,
.cl-contact-booking-form-panel .wpcf7 form.invalid .wpcf7-response-output,
.cl-contact-booking-form-panel .wpcf7 form.spam .wpcf7-response-output,
.cl-contact-booking-form-panel .wpcf7 form.unaccepted .wpcf7-response-output,
.bp-lead .wpcf7 form.sent .wpcf7-response-output,
.bp-lead .wpcf7 form.failed .wpcf7-response-output,
.bp-lead .wpcf7 form.invalid .wpcf7-response-output,
.bp-lead .wpcf7 form.spam .wpcf7-response-output,
.bp-lead .wpcf7 form.unaccepted .wpcf7-response-output,
.compass-cf7-wrap .wpcf7 form.sent .wpcf7-response-output,
.compass-cf7-wrap .wpcf7 form.failed .wpcf7-response-output,
.compass-cf7-wrap .wpcf7 form.invalid .wpcf7-response-output,
.compass-cf7-wrap .wpcf7 form.spam .wpcf7-response-output,
.compass-cf7-wrap .wpcf7 form.unaccepted .wpcf7-response-output,
.sc-invest-form .wpcf7 form.sent .wpcf7-response-output,
.sc-invest-form .wpcf7 form.failed .wpcf7-response-output,
.sc-invest-form .wpcf7 form.invalid .wpcf7-response-output,
.sc-invest-form .wpcf7 form.spam .wpcf7-response-output,
.sc-invest-form .wpcf7 form.unaccepted .wpcf7-response-output {
  display: block;
}

.ft-appt-form-wrap .wpcf7 form.sent .wpcf7-response-output,
.cl-contact-booking-form-panel .wpcf7 form.sent .wpcf7-response-output,
.bp-lead .wpcf7 form.sent .wpcf7-response-output,
.compass-cf7-wrap .wpcf7 form.sent .wpcf7-response-output {
  display: block;
  color: #fff;
  background: rgba(186, 157, 78, 0.14);
  border-color: rgba(186, 157, 78, 0.45);
}

.ft-appt-form-wrap .wpcf7 form.failed .wpcf7-response-output,
.ft-appt-form-wrap .wpcf7 form.invalid .wpcf7-response-output,
.cl-contact-booking-form-panel .wpcf7 form.failed .wpcf7-response-output,
.cl-contact-booking-form-panel .wpcf7 form.invalid .wpcf7-response-output,
.bp-lead .wpcf7 form.failed .wpcf7-response-output,
.bp-lead .wpcf7 form.invalid .wpcf7-response-output,
.compass-cf7-wrap .wpcf7 form.failed .wpcf7-response-output,
.compass-cf7-wrap .wpcf7 form.invalid .wpcf7-response-output {
  display: block;
  color: #fff;
  background: rgba(255, 90, 90, 0.12);
  border-color: rgba(255, 143, 143, 0.45);
}

.bp-lead .wpcf7 form.sent .wpcf7-response-output {
  color: var(--bp-ink, #121a17);
  background: rgba(18, 26, 23, 0.05);
  border-color: rgba(18, 26, 23, 0.18);
}

.bp-lead .wpcf7 form.failed .wpcf7-response-output,
.bp-lead .wpcf7 form.invalid .wpcf7-response-output {
  color: #7a1f1f;
  background: rgba(255, 90, 90, 0.08);
  border-color: rgba(180, 50, 50, 0.25);
}

.wpcf7-not-valid-tip {
  color: var(--compass-cf7-err, #ff8f8f);
  font-size: 1.2rem;
  margin-top: 0.45rem;
}

.bp-lead .wpcf7-not-valid-tip {
  color: #a83232;
}

.wpcf7 form .wpcf7-not-valid {
  border-color: rgba(255, 143, 143, 0.75) !important;
}

.compass-cf7-missing {
  margin: 0;
  padding: 1.2rem 1.4rem;
  border: 1px dashed rgba(186, 157, 78, 0.45);
  color: rgba(255, 255, 255, 0.85);
  font-size: 1.4rem;
}

.bp-lead .compass-cf7-missing {
  color: var(--bp-ink, #121a17);
  border-color: rgba(18, 26, 23, 0.2);
}

/* Blog CF7 fields use bp-input class on controls */
.compass-blog-post .bp-field .wpcf7-form-control.bp-input,
.compass-blog-post .bp-field input.bp-input,
.compass-blog-post .bp-field select.bp-input,
.compass-blog-post .bp-field textarea.bp-input {
  width: 100%;
  max-width: 100%;
  padding: 1.2rem 1.25rem;
  border: 1px solid var(--bp-line);
  border-radius: 0;
  background: var(--bp-cream);
  color: var(--bp-ink);
  font: inherit;
  font-size: 1.45rem;
  line-height: 1.35;
  outline: none;
  transition: border-color 0.2s ease, background 0.2s ease;
  appearance: none;
}

.compass-blog-post .bp-field select.bp-input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23121a17' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1.2rem center;
  padding-right: 3.2rem;
}

.compass-blog-post .bp-field textarea.bp-input {
  resize: vertical;
  min-height: 8.5rem;
}

.compass-blog-post .bp-field .wpcf7-form-control.bp-input:focus {
  border-color: var(--bp-forest);
  background: #fff;
}

/* Footer / contact CF7 textareas */
.ft-appt-form-wrap .wpcf7-textarea.ft-appt-field,
.ft-appt-form-wrap textarea.ft-appt-area {
  width: 100%;
  display: block;
  box-sizing: border-box;
}

.cl-contact-booking-form-panel .wpcf7-textarea.cl-contact-booking-input,
.cl-contact-booking-form-panel textarea.cl-contact-booking-area {
  width: 100%;
  display: block;
  box-sizing: border-box;
  min-height: 10rem;
  resize: vertical;
}

/* Invest form CF7 */
.sc-invest-form .wpcf7 .wpcf7-response-output {
  margin-top: 1.6rem;
  color: #fff;
}

.sc-invest-form .wpcf7 form.sent .wpcf7-response-output {
  border-color: rgba(186, 157, 78, 0.45);
}
