/* ============================================================
   Contact Form 7 styling
   ============================================================ */
.wpcf7-form { display: grid; gap: 16px; }
.wpcf7-form p { margin: 0; }

.wpcf7-form label { display: block; font-weight: 600; font-size: .9rem; color: var(--mpf-heading); margin-bottom: 6px; }

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="date"],
.wpcf7-form select,
.wpcf7-form textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--mpf-line);
    border-radius: var(--mpf-radius-sm);
    font: inherit;
    font-size: .95rem;
    color: var(--mpf-text);
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
    outline: 0;
    border-color: var(--mpf-navy);
    box-shadow: 0 0 0 3px rgba(48,76,132,.12);
}
.wpcf7-form textarea { min-height: 140px; resize: vertical; }

.wpcf7-form input[type="submit"] {
    appearance: none;
    background: var(--mpf-navy);
    color: #fff;
    border: 0;
    padding: 13px 28px;
    border-radius: var(--mpf-radius-sm);
    font-weight: 700;
    font-size: .98rem;
    cursor: pointer;
    transition: background .15s, transform .15s;
    justify-self: start;
}
.wpcf7-form input[type="submit"]:hover { background: var(--mpf-navy-dark); transform: translateY(-1px); }

.wpcf7-spinner { margin: 0 0 0 10px; }

.wpcf7 form .wpcf7-response-output {
    margin: 4px 0 0;
    padding: 12px 16px;
    border-radius: var(--mpf-radius-sm);
    font-size: .9rem;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { border: 1px solid #e0a4a4; background: #fbeaea; color: #9b2c2c; }
.wpcf7 form.sent .wpcf7-response-output { border: 1px solid #a4d6b0; background: #eafaef; color: #1f6b3a; }
.wpcf7-not-valid-tip { color: #c0392b; font-size: .82rem; margin-top: 4px; }

/* two-column rows where the form uses a wrapping grid */
.mpf-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .mpf-form-row { grid-template-columns: 1fr; } }
