.mw4-contact-form {
    display: grid;
    gap: 1rem;
    max-width: 760px;
}

.mw4-contact-form-title {
    margin: 0;
}

.mw4-contact-form-intro {
    margin: 0;
}

.mw4-contact-form-field {
    display: grid;
    gap: .35rem;
}

.mw4-contact-form-field > .form-label {
    font-weight: 600;
}

.mw4-contact-form input[type="text"],
.mw4-contact-form input[type="email"],
.mw4-contact-form input[type="tel"],
.mw4-contact-form textarea,
.mw4-contact-form select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.mw4-contact-form-options,
.mw4-contact-form-check {
    display: grid;
    gap: .4rem;
}

.mw4-contact-form-help {
    color: #666;
    font-size: .925rem;
}

.mw4-contact-form-message:empty,
.mw4-contact-form-field-error:empty {
    display: none;
}

.mw4-contact-form-message.is-success,
.mw4-contact-form-message.is-error {
    grid-column: 1 / -1;
}

.mw4-contact-form-field-errors {
    color: #9f1d1d;
}

.mw4-contact-form-field-error {
    color: #9f1d1d;
    font-size: .925rem;
}

.mw4-contact-form-field-errors {
    margin: 0;
    padding-left: 1.25rem;
    font-size: .925rem;
}

.mw4-contact-form-hp {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.mw4-contact-form-submit[disabled] {
    opacity: .7;
    cursor: wait;
}

.mw4-contact-form.is-submitting {
    cursor: wait;
}

@media (min-width: 720px) {
    .mw4-contact-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mw4-contact-form-title,
    .mw4-contact-form-intro,
    .mw4-contact-form-errors,
    .mw4-contact-form-success,
    .mw4-contact-form-message,
    .mw4-contact-form-field,
    .mw4-contact-form-submit {
        grid-column: 1 / -1;
    }

    .mw4-contact-form-field--half {
        grid-column: auto;
    }
}
