/* Cloudflare Turnstile: keep the verification area integrated with the form. */
.psd-turnstile-slot {
  width: 100%;
  min-height: 0;
  margin: 16px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.psd-turnstile-slot:empty {
  display: none;
  margin: 0;
}

.psd-turnstile-slot iframe {
  max-width: 100%;
}


/* Keep verification and submit controls on separate full-width rows.
   This is intentionally defensive so theme flex/grid styles cannot place them side-by-side. */
.psd-form .psd-turnstile-slot,
form[data-psd-form] .psd-turnstile-slot {
  display: block;
  width: 100%;
  max-width: 100%;
  flex: 0 0 100%;
  grid-column: 1 / -1;
  clear: both;
  align-self: stretch;
}

.psd-form .psd-turnstile-slot:not(:empty),
form[data-psd-form] .psd-turnstile-slot:not(:empty) {
  margin: 16px 0 12px;
}

.psd-form .psd-submit,
form[data-psd-form] .psd-submit {
  grid-column: 1 / -1;
  flex: 0 0 auto;
}


/* Theme contact forms use a flex .submit-row for the button. The verification
   slot must remain a separate form row immediately before that wrapper. */
.contact-form > .psd-turnstile-slot,
.psd-ajax-form > .psd-turnstile-slot {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  grid-column: 1 / -1 !important;
  flex: 0 0 100% !important;
  clear: both !important;
}

.contact-form > .submit-row,
.psd-ajax-form > .submit-row {
  width: 100%;
  grid-column: 1 / -1;
}
