/* Main contact form only; newsletter and other forms are outside this scope. */
#form-contact .wpcf7 {
    max-width: 880px; margin: 0 auto;
    padding: clamp(24px, 4vw, 44px);
    background: #fff; border: 1px solid #deebed; border-radius: 26px;
    box-shadow: 0 12px 42px rgba(47, 86, 92, .08);
    text-align: start;
}
#form-contact .wpcf7 .form-contact {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px;
}
#form-contact .wpcf7 .form-contact > .form-group { min-width: 0; margin: 0; }
#form-contact .wpcf7 .form-contact > .form-group:nth-child(n+3) { grid-column: 1 / -1; }
#form-contact .wpcf7 .form-group label {
    display: block; margin: 0 0 10px; color: #294f55;
    font-size: 14px; font-weight: 600; line-height: 1.5;
}
#form-contact .wpcf7 .form-group label > span { color: #497b82; }
#form-contact .wpcf7 .wpcf7-form-control-wrap { display: block; width: 100%; }
#form-contact .wpcf7 .form-group input:not(.wpcf7-submit),
#form-contact .wpcf7 .form-group textarea {
    display: block; width: 100%; max-width: 100%; box-sizing: border-box;
    margin: 0; padding: 15px 18px; min-height: 54px;
    border: 1px solid #d5e5e8; border-radius: 12px;
    background: #f8fbfc; color: #294f55; font-size: 16px; line-height: 1.5;
    font-family: inherit; font-weight: 400; box-shadow: none;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
#form-contact .wpcf7 .form-group input[type="email"] { direction: ltr; text-align: start; }
#form-contact .wpcf7 .form-group textarea { min-height: 180px; height: 180px; resize: vertical; }
#form-contact .wpcf7 .form-group input::placeholder,
#form-contact .wpcf7 .form-group textarea::placeholder { color: #758b90; opacity: 1; }
#form-contact .wpcf7 .form-group input:not(.wpcf7-submit):focus,
#form-contact .wpcf7 .form-group textarea:focus {
    outline: 2px solid #497b82; outline-offset: 2px;
    border-color: #71a9b0; background: #fff; box-shadow: 0 0 0 4px rgba(113, 169, 176, .12);
}
#form-contact .wpcf7 .form-group .wpcf7-not-valid { border-color: #b44545; }
#form-contact .wpcf7 .wpcf7-not-valid-tip { display: block; color: #a43333; font-size: 13px; line-height: 1.5; margin-top: 8px; }
#form-contact .wpcf7 .mammia-contact-submit { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 14px; }
#form-contact .wpcf7 .mammia-contact-required { margin-inline-end: auto; color: #64797d; font-size: 12px; line-height: 1.5; }
#form-contact .wpcf7 .form-group input.wpcf7-submit {
    display: inline-block; width: auto; min-width: 160px; min-height: 52px; margin: 0;
    padding: 14px 30px; border: 1px solid #71a9b0; border-radius: 12px;
    background: #71a9b0; color: #fff; font-size: 16px; line-height: 1.5; font-weight: 600;
    font-family: inherit; cursor: pointer; transition: background .2s ease, transform .2s ease;
}
#form-contact .wpcf7 .form-group input.wpcf7-submit:hover { background: #548c94; border-color: #548c94; }
#form-contact .wpcf7 .form-group input.wpcf7-submit:focus-visible { outline: 2px solid #294f55; outline-offset: 3px; }
#form-contact .wpcf7 .form-group input.wpcf7-submit:disabled { opacity: .6; cursor: wait; }
#form-contact .wpcf7 .wpcf7-spinner { display: inline-block; position: static; margin: 0; flex: 0 0 24px; }
#form-contact .wpcf7 .wpcf7-response-output { margin: 24px 0 0; padding: 14px 18px; border-radius: 12px; font-size: 14px; line-height: 1.6; text-align: start; }
#form-contact .wpcf7 form.sent .wpcf7-response-output { background: #eef8f1; border-color: #74ac86; color: #285c39; }
#form-contact .wpcf7 form.invalid .wpcf7-response-output,
#form-contact .wpcf7 form.unaccepted .wpcf7-response-output { background: #fff9ec; color: #76561d; }
#form-contact .wpcf7 form.failed .wpcf7-response-output,
#form-contact .wpcf7 form.aborted .wpcf7-response-output { background: #fff3f3; color: #a43333; }
html[dir="rtl"] #form-contact .wpcf7 { direction: rtl; }
@media (max-width: 639px) {
    #form-contact .wpcf7 { padding: 24px 18px; border-radius: 20px; }
    #form-contact .wpcf7 .form-contact { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    #form-contact .wpcf7 .mammia-contact-required { width: 100%; }
    #form-contact .wpcf7 .form-group input.wpcf7-submit { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
    #form-contact .wpcf7 .form-group input,
    #form-contact .wpcf7 .form-group textarea { transition: none; }
}
