.mfl-form { max-width: 100%; }

.mfl-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 20px;
}

.mfl-field {
    box-sizing: border-box;
    flex: 1 1 100%;
    min-width: 0;
}

.mfl-field.mfl-w-half { flex: 1 1 calc(50% - 10px); }

@media (max-width: 600px) {
    .mfl-field.mfl-w-half { flex-basis: 100%; }
}

.mfl-field > label,
.mfl-field > fieldset > legend {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
}

.mfl-field fieldset { border: 0; margin: 0; padding: 0; }

.mfl-field input:not([type=checkbox]):not([type=radio]),
.mfl-field textarea,
.mfl-field select {
    width: 100%;
    box-sizing: border-box;
    padding: .6em .75em;
    border: 1px solid #ccd0d4;
    border-radius: 4px;
}

.mfl-field label.mfl-check {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-weight: 400;
    margin: 0 0 6px;
}

.mfl-field label.mfl-check input { margin-top: .3em; flex: none; }

.mfl-req { color: #d63638; }

.mfl-has-error input:not([type=checkbox]):not([type=radio]),
.mfl-has-error textarea,
.mfl-has-error select { border-color: #d63638; }

.mfl-error { color: #d63638; font-size: .875em; margin-top: 4px; }

.mfl-actions { margin-top: 20px; }

.mfl-submit[disabled] { opacity: .6; cursor: wait; }

.mfl-message { margin-top: 14px; }
.mfl-message:empty { display: none; }
.mfl-message.is-success { color: #0a6b2d; background: #edfaef; border: 1px solid #b8e6c2; padding: 12px 14px; border-radius: 4px; }
.mfl-message.is-error { color: #8a1f1f; background: #fcf0f1; border: 1px solid #f0c0c2; padding: 12px 14px; border-radius: 4px; }

.mfl-form.is-sent .mfl-fields,
.mfl-form.is-sent .mfl-actions { display: none; }

/* Honeypot */
.mfl-hp {
    position: absolute !important;
    left: -9999px;
    height: 0;
    width: 0;
    overflow: hidden;
}

/* reCAPTCHA v2 */
.mfl-recaptcha-v2 { margin-top: 16px; max-width: 100%; overflow-x: auto; }
.mfl-form.is-sent .mfl-recaptcha-v2,
.mfl-form.is-sent .mfl-captcha-row,
.mfl-form.is-sent .mfl-reqnote { display: none; }

.mfl-captcha-row { margin-top: 16px; }
.mfl-captcha-row .mfl-recaptcha-v2 { margin-top: 0; }
.mfl-cap-label { display: block; font-weight: 600; margin-bottom: 6px; }
.mfl-reqnote { margin: 0 0 14px; }
