/* Contact Form 7 presentation. Recipient and delivery settings stay in WordPress. */
.wpcf7 { max-width:780px; margin-inline:auto; }
.wpcf7 form { color:#493d42; line-height:1.9; }
.wpcf7 form > p { margin-block:0 1.5rem; }
.wpcf7 form > p > label { display:block; margin-block:1.6rem; font-weight:700; }
.wpcf7 .wpcf7-form-control-wrap { display:block; margin-top:.5rem; }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
  display:block; width:100%; max-width:100%; min-width:0; min-height:52px;
  padding:12px 14px; border:1px solid #ad8c99; border-radius:10px;
  background:#fff; color:#493d42; font:inherit; font-size:1rem; font-weight:400;
}
.wpcf7 select { padding-right:30px; }
.wpcf7 textarea { min-height:180px; resize:vertical; }
.wpcf7 :is(input,select,textarea):focus-visible { outline:3px solid #895568; outline-offset:3px; }
.wpcf7 .wpcf7-list-item { margin:0; }
.wpcf7 .wpcf7-acceptance label {
  display:flex; align-items:flex-start; gap:12px; padding:14px;
  background:#f5ebee; border-radius:10px; cursor:pointer;
}
.wpcf7 input[type="checkbox"] { flex-shrink:0; width:22px; height:22px; margin:5px 0 0; accent-color:#895568; }
.wpcf7 input[type="submit"] {
  min-height:52px; max-width:100%; margin-top:1.5rem; padding:14px 28px;
  border:2px solid #895568; border-radius:10px; background:#895568; color:#fff;
  font:inherit; font-size:1rem; font-weight:700; line-height:1.5; cursor:pointer;
  white-space:normal;
}
.wpcf7 input[type="submit"]:hover { background:#724457; border-color:#724457; }
.wpcf7 input[type="submit"]:disabled { opacity:.65; cursor:not-allowed; }
.wpcf7 form.submitting input[type="submit"] { cursor:wait; }
.wpcf7 .wpcf7-not-valid-tip { margin-top:.4rem; color:#8e2644; font-size:1rem; font-weight:400; }
.wpcf7 [aria-invalid="true"] { border-color:#8e2644; }
.wpcf7 form .wpcf7-response-output { margin:1.5rem 0 0; padding:16px 20px; border-radius:10px; font-size:1rem; }
@media(max-width:600px) {
  .wpcf7 input[type="submit"] { width:100%; }
  .wpcf7 .wpcf7-acceptance label { padding:12px; }
}
/* Turnstile's 300px minimum must fit a 320px screen without clipping/scaling. */
@media(max-width:359px) {
  .wpcf7 .wpcf7-turnstile {
    min-width:300px;
    margin-inline:calc((100% - 300px) / 2);
  }
}
