.lf-subpage--contact { background: var(--lf-bg-mint); }
.lf-contact { max-width: 820px; }
.lf-contact__intro { margin: -18px 0 34px; }
.lf-contact__intro p { margin: 0; }
.lf-contact__intro p + p { margin-top: 2px; }

.lf-contact-form {
    background: var(--lf-white);
    border: 1px solid var(--lf-border);
    border-radius: 20px;
    box-shadow: 0 14px 36px rgba(18, 116, 97, .08);
    padding: 46px clamp(32px, 6vw, 54px);
}

.lf-contact-form > .wp-block-heading:first-child {
    background: none !important;
    border: 0 !important;
    color: var(--lf-navy);
    font-size: 1.35rem;
    margin: 0 0 28px;
    padding: 0 !important;
}
.lf-contact-form > .wp-block-heading:first-child::before,
.lf-contact-form > .wp-block-heading:first-child::after { display: none !important; }
.lf-contact-form .wpcf7-form > p { margin: 0 0 24px; }
.lf-contact-form .wpcf7-form > p:last-of-type { margin-bottom: 0; }
.lf-contact-form label { color: var(--lf-navy); display: block; font-weight: 600; }
.lf-contact-form .wpcf7-form-control-wrap { display: block; margin-top: 8px; }

.lf-contact-form input[type="text"],
.lf-contact-form input[type="email"],
.lf-contact-form input[type="tel"],
.lf-contact-form textarea {
    background: var(--lf-white);
    border: 1px solid var(--lf-border);
    border-radius: 11px;
    box-shadow: none;
    color: var(--lf-text);
    font: inherit;
    font-size: 16px;
    max-width: none;
    padding: 12px 14px;
    transition: border-color .2s ease, box-shadow .2s ease;
    width: 100%;
}
.lf-contact-form input[type="text"],
.lf-contact-form input[type="email"],
.lf-contact-form input[type="tel"] { min-height: 54px; }
.lf-contact-form textarea { min-height: 200px; resize: vertical; }
.lf-contact-form input::placeholder,
.lf-contact-form textarea::placeholder { color: #97a4a8; }
.lf-contact-form input:focus,
.lf-contact-form textarea:focus { border-color: var(--lf-primary); box-shadow: 0 0 0 3px rgba(18, 184, 154, .14); outline: 0; }
.lf-contact-form .wpcf7-not-valid { border-color: #b98262; }
.lf-contact-form .wpcf7-not-valid-tip { color: #8b5234; display: block; font-size: .82rem; margin-top: 6px; }

.lf-contact-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.lf-contact-form .wpcf7-acceptance label { align-items: flex-start; cursor: pointer; display: flex; font-weight: 400; gap: 10px; line-height: 1.65; }
.lf-contact-form .wpcf7-acceptance input { flex: 0 0 auto; height: 20px; margin: .25em 0 0; width: 20px; }
.lf-contact-form .wpcf7-acceptance a { color: var(--lf-primary-dark); font-weight: 600; }

.lf-contact-form input[type="submit"] {
    background-color: var(--lf-primary-dark);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath d='M3 9h11M10 5l4 4-4 4' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"), linear-gradient(135deg, var(--lf-primary-dark), #3d9b25);
    background-position: calc(100% - 28px) 50%, 0 0;
    background-repeat: no-repeat;
    border: 0;
    border-radius: 14px;
    box-shadow: 0 8px 20px rgba(18, 116, 97, .2);
    color: var(--lf-white);
    cursor: pointer;
    font-size: 16px;
    font-weight: 700;
    min-height: 56px;
    padding: 12px 54px 12px 34px;
    position: relative;
    transition: box-shadow .2s ease, transform .2s ease;
    width: min(240px, 100%);
}
.lf-contact-form input[type="submit"]:hover { box-shadow: 0 12px 25px rgba(18, 116, 97, .25); transform: translateY(-2px); }
.lf-contact-form input[type="submit"]:focus-visible { outline: 3px solid #087967; outline-offset: 3px; }
.lf-contact-form input[type="submit"]:disabled { background: #8da39f; box-shadow: none; cursor: wait; transform: none; }
.lf-contact-form .wpcf7-spinner { vertical-align: middle; }
.lf-contact-form .wpcf7-response-output { border: 1px solid var(--lf-border) !important; border-radius: 10px; color: var(--lf-navy); margin: 24px 0 0 !important; padding: 13px 16px !important; }
.lf-contact-form form.sent .wpcf7-response-output { background: #e9f8ef; border-color: #9ed7ad !important; }
.lf-contact-form form.invalid .wpcf7-response-output,
.lf-contact-form form.failed .wpcf7-response-output { background: #fff8ef; border-color: #d8bb8c !important; }

@media (max-width: 600px) {
    .lf-contact__intro { margin-top: -12px; }
    .lf-contact-form { border-radius: 18px; padding: 24px 20px; }
    .lf-contact-form textarea { min-height: 185px; }
    .lf-contact-form input[type="submit"] { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .lf-contact-form input,
    .lf-contact-form textarea { transition: none; }
}
