@import url('https://fonts.googleapis.com/css2?family=Libre+Caslon+Display&amp;display=swap');

/* Base font &amp; color */
.wpcf7 .cf7-caslon,
.wpcf7 .cf7-caslon * {
  font-family: "Libre Caslon Display", serif !important;
  color: #000 !important;
}

/* Layout (Flexbox) */
.wpcf7 .cf7-caslon .row {
  display: flex !important;
  flex-wrap: wrap !important;
  margin-left: -12px !important;
  margin-right: -12px !important;
}
.wpcf7 .cf7-caslon .row.two-col .col {
  width: 50% !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
  margin-bottom: 18px !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
}
@media (max-width: 800px) {
  .wpcf7 .cf7-caslon .row.two-col .col { width: 100% !important; }
}
.wpcf7 .cf7-caslon .field { margin-top: 14px !important; }

/* Inputs — hairline border + pill corners */
.wpcf7 .cf7-caslon input.wpcf7-text,
.wpcf7 .cf7-caslon input.wpcf7-email,
.wpcf7 .cf7-caslon input.wpcf7-tel,
.wpcf7 .cf7-caslon input.wpcf7-url,
.wpcf7 .cf7-caslon input.wpcf7-number {
  width: 100% !important;
  background: transparent !important;
  border: 1px solid #000 !important;
  border-radius: 9999px !important;
  padding: 14px 20px !important;
  font-size: 16px !important;
  line-height: 1.3 !important;
  box-sizing: border-box !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  transition: background-color .2s ease, border-color .2s ease, border-width .2s ease !important;
  font-family: "Libre Caslon Display", serif !important;
}

/* Textarea */
.wpcf7 .cf7-caslon textarea.wpcf7-textarea {
  width: 100% !important;
  background: transparent !important;
  border: 1px solid #000 !important;
  border-radius: 24px !important;
  min-height: 180px !important;
  padding: 16px 20px !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #000 !important;
  box-sizing: border-box !important;
  resize: vertical !important;
  transition: background-color .2s ease, border-color .2s ease, border-width .2s ease !important;
  font-family: "Libre Caslon Display", serif !important;
}

/* Placeholder */
.wpcf7 .cf7-caslon ::placeholder { color: #000 !important; opacity: .5 !important; }

/* Focus/active */
.wpcf7 .cf7-caslon input.wpcf7-text:focus,
.wpcf7 .cf7-caslon input.wpcf7-email:focus,
.wpcf7 .cf7-caslon textarea.wpcf7-textarea:focus {
  background-color: #f5efe7 !important;
  border-color: #000 !important;
  border-width: 3px !important;
}

/* Labels */
.wpcf7 .cf7-caslon .field > label,
.wpcf7 .cf7-caslon .sub,
.wpcf7 .cf7-caslon .req { color: #000 !important; }

/* Submit */
.wpcf7 .cf7-caslon .submit-wrap { text-align: left !important; margin-top: 20px !important; }
.wpcf7 .cf7-caslon input.wpcf7-submit {
  background: #000 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 9999px !important;
  padding: 14px 34px !important;
  font-size: 16px !important;
  letter-spacing: .5px !important;
  cursor: pointer !important;
  transition: background .3s ease, transform .1s ease !important;
  display: inline-block !important;
}

/* Thank-you message */
.wpcf7 .cf7-caslon .thank-you-inline { display: none !important; margin-top: 14px !important; color: #000 !important; }
.wpcf7 form.sent .cf7-caslon .thank-you-inline { display: block !important; }

/* Validation */
.wpcf7 .cf7-caslon .wpcf7-form-control.wpcf7-not-valid {
  border-color: #c80000 !important;
  background-color: #fff0f0 !important;
  border-width: 3px !important;
}
.wpcf7 .cf7-caslon .wpcf7-not-valid-tip {
  display: block !important;
  margin-top: 6px !important;
  font-size: 13px !important;
  color: #c80000 !important;
}

/* CF7 response box */
.wpcf7 .wpcf7-response-output {
  border-radius: 12px !important;
  padding: 12px 14px !important;
  margin: 16px 0 0 !important;
  border-width: 1px !important;
}
