/**
 * CF7 forms with class dp-cf7-contact (legacy .contact-form markup).
 * Matches theme input/button tokens — rounded outlines, not underline fields.
 */

.wpcf7-form.dp-cf7-contact {
    display: grid;
    gap: clamp(1rem, 2vw, 1.35rem);
    width: 100%;
    max-width: 100%;
    margin: 0;
    box-sizing: border-box;
}

.dp-content-split__content .wpcf7,
.dp-content-split__content .wpcf7-form.dp-cf7-contact,
.dp-content-split__body .wpcf7,
.dp-content-split__body .wpcf7-form.dp-cf7-contact,
.dp-content-split__media-inner .wpcf7,
.dp-content-split__media-inner .wpcf7-form.dp-cf7-contact {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* CF7 block is often a sibling of content-split, not nested inside it. */
.dp-site-main > .wp-block-contact-form-7-contact-form-selector {
    width: min(100%, var(--dp-layout-wide, 90rem));
    margin-inline: auto;
    padding-inline: var(--dp-site-gutter, clamp(1.25rem, 4vw, 3rem));
    box-sizing: border-box;
}

.dp-site-main > .wp-block-contact-form-7-contact-form-selector .wpcf7,
.dp-site-main > .wp-block-contact-form-7-contact-form-selector .wpcf7-form.dp-cf7-contact {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.wpcf7-form.dp-cf7-contact .wpcf7-turnstile {
    justify-self: start;
}

.wpcf7-form.dp-cf7-contact .contact-form {
    display: grid;
    gap: clamp(1rem, 2vw, 1.35rem);
    width: 100%;
    margin: 0;
}

.wpcf7-form.dp-cf7-contact .contact-form > h5 {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: clamp(1.0625rem, 2vw, 1.25rem);
    font-weight: 400;
    font-style: normal;
    line-height: 1.45;
    color: inherit;
}

.wpcf7-form.dp-cf7-contact .contact-form > p {
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 2vw, 1.35rem);
    margin: 0;
}

.wpcf7-form.dp-cf7-contact .contact-form > p br {
    display: none;
}

.wpcf7-form.dp-cf7-contact .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.wpcf7-form.dp-cf7-contact .contact-form input.border-input,
.wpcf7-form.dp-cf7-contact .contact-form input.wpcf7-form-control:not([type="checkbox"]):not([type="submit"]),
.wpcf7-form.dp-cf7-contact .contact-form textarea.border-input,
.wpcf7-form.dp-cf7-contact .contact-form textarea.wpcf7-form-control,
.wpcf7-form.dp-cf7-contact .contact-form select.border-input,
.wpcf7-form.dp-cf7-contact .contact-form select.wpcf7-form-control {
    width: 100%;
    box-sizing: border-box;
    padding: clamp(0.75rem, 1.5vw, 0.95rem) clamp(0.85rem, 1.8vw, 1rem);
    border: 1px solid var(--dp-color-border-strong);
    border-radius: var(--dp-radius-input);
    background: color-mix(in srgb, var(--dp-color-surface) 4%, transparent);
    box-shadow: none;
    color: var(--dp-color-surface);
    font-family: var(--dp-font-primary);
    font-size: clamp(0.9375rem, 1.8vw, 1rem);
    font-style: normal;
    line-height: 1.4;
    transition:
        border-color var(--dp-transition),
        background-color var(--dp-transition),
        box-shadow var(--dp-transition);
}

.wpcf7-form.dp-cf7-contact .contact-form input.border-input::placeholder,
.wpcf7-form.dp-cf7-contact .contact-form input.wpcf7-form-control:not([type="checkbox"]):not([type="submit"])::placeholder,
.wpcf7-form.dp-cf7-contact .contact-form textarea.border-input::placeholder,
.wpcf7-form.dp-cf7-contact .contact-form textarea.wpcf7-form-control::placeholder {
    color: var(--dp-color-muted);
    font-size: 0.8125rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.wpcf7-form.dp-cf7-contact .contact-form input.border-input:hover,
.wpcf7-form.dp-cf7-contact .contact-form input.wpcf7-form-control:not([type="checkbox"]):not([type="submit"]):hover,
.wpcf7-form.dp-cf7-contact .contact-form textarea.border-input:hover,
.wpcf7-form.dp-cf7-contact .contact-form textarea.wpcf7-form-control:hover {
    border-color: color-mix(in srgb, var(--dp-color-brand) 55%, transparent);
}

.wpcf7-form.dp-cf7-contact .contact-form input.border-input:focus,
.wpcf7-form.dp-cf7-contact .contact-form input.wpcf7-form-control:not([type="checkbox"]):not([type="submit"]):focus,
.wpcf7-form.dp-cf7-contact .contact-form textarea.border-input:focus,
.wpcf7-form.dp-cf7-contact .contact-form textarea.wpcf7-form-control:focus {
    outline: none;
    border-color: var(--dp-color-brand);
    background: color-mix(in srgb, var(--dp-color-surface) 8%, transparent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dp-color-brand) 18%, transparent);
}

.wpcf7-form.dp-cf7-contact .contact-form input.wpcf7-not-valid.border-input,
.wpcf7-form.dp-cf7-contact .contact-form input.wpcf7-not-valid.wpcf7-form-control:not([type="checkbox"]):not([type="submit"]),
.wpcf7-form.dp-cf7-contact .contact-form textarea.wpcf7-not-valid.border-input,
.wpcf7-form.dp-cf7-contact .contact-form textarea.wpcf7-not-valid.wpcf7-form-control {
    border-color: var(--dp-color-error) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dp-color-error) 16%, transparent);
}

.wpcf7-form.dp-cf7-contact .contact-form textarea.border-input,
.wpcf7-form.dp-cf7-contact .contact-form textarea.wpcf7-textarea {
    min-height: clamp(7rem, 16vw, 9rem);
    resize: vertical;
}

.wpcf7-form.dp-cf7-contact .contact-form__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem 1.75rem;
    margin-top: clamp(0.35rem, 1vw, 0.65rem);
}

.wpcf7-form.dp-cf7-contact .contact-form__bottom > p {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem 1.75rem;
    width: 100%;
    margin: 0;
}

.wpcf7-form.dp-cf7-contact .contact-form__checkbox-label {
    display: block;
    position: relative;
    order: 2;
    flex: 1 1 16rem;
    min-width: min(100%, 16rem);
    max-width: 28rem;
    margin: 0;
    border: 0;
    font-family: var(--dp-font-primary);
    font-size: 0.875rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
    cursor: pointer;
}

.wpcf7-form.dp-cf7-contact .contact-form__checkbox-label a {
    display: inline !important;
    color: var(--dp-color-brand);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.wpcf7-form.dp-cf7-contact .contact-form__checkbox-label .wpcf7-form-control-wrap {
    display: block;
    width: auto;
}

.wpcf7-form.dp-cf7-contact .contact-form__checkbox-label .wpcf7-checkbox,
.wpcf7-form.dp-cf7-contact .contact-form__checkbox-label .wpcf7-form-control.wpcf7-checkbox {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0;
    margin: 0;
}

.wpcf7-form.dp-cf7-contact .contact-form__checkbox-label .wpcf7-list-item {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0;
}

.wpcf7-form.dp-cf7-contact .contact-form__checkbox-label .wpcf7-list-item-label {
    line-height: 1.4;
}

.wpcf7-form.dp-cf7-contact .contact-form__checkbox-label input[type="checkbox"] {
    position: static;
    flex: 0 0 auto;
    width: 1.125rem;
    height: 1.125rem;
    margin: 0;
    accent-color: var(--dp-color-brand);
}

.wpcf7-form.dp-cf7-contact .contact-form__checkbox-label .wpcf7-not-valid-tip {
    margin-top: 0.35rem;
    position: static;
    top: auto;
    left: auto;
    width: auto;
    border: 0;
    background: transparent;
    padding: 0;
}

.wpcf7-form.dp-cf7-contact .contact-form__submit-button,
.wpcf7-form.dp-cf7-contact input.wpcf7-submit {
    order: 1;
    flex: 0 0 auto;
    width: auto;
    min-height: var(--dp-button-line-height);
    padding: 0 var(--dp-button-padding-x);
    border: 1px solid transparent;
    border-radius: var(--dp-radius-button);
    background: var(--dp-color-brand);
    color: var(--dp-color-base);
    font-family: var(--dp-font-primary);
    font-size: var(--dp-button-font-size);
    font-weight: var(--dp-button-font-weight);
    line-height: 1.2;
    cursor: pointer;
    transition:
        background-color var(--dp-transition),
        color var(--dp-transition),
        opacity var(--dp-transition);
}

.wpcf7-form.dp-cf7-contact .contact-form__submit-button:hover,
.wpcf7-form.dp-cf7-contact .contact-form__submit-button:focus-visible,
.wpcf7-form.dp-cf7-contact input.wpcf7-submit:hover,
.wpcf7-form.dp-cf7-contact input.wpcf7-submit:focus-visible {
    background: color-mix(in srgb, var(--dp-color-brand) 88%, #fff);
    color: var(--dp-color-base);
    opacity: 1;
}

.dp-content-split--primary .wpcf7-form.dp-cf7-contact .contact-form__submit-button,
.dp-content-split--primary .wpcf7-form.dp-cf7-contact input.wpcf7-submit {
    background: var(--dp-color-base);
    color: var(--dp-color-brand);
}

.dp-content-split--primary .wpcf7-form.dp-cf7-contact .contact-form__submit-button:hover,
.dp-content-split--primary .wpcf7-form.dp-cf7-contact .contact-form__submit-button:focus-visible,
.dp-content-split--primary .wpcf7-form.dp-cf7-contact input.wpcf7-submit:hover,
.dp-content-split--primary .wpcf7-form.dp-cf7-contact input.wpcf7-submit:focus-visible {
    background: color-mix(in srgb, var(--dp-color-base) 88%, var(--dp-color-brand));
    color: var(--dp-color-brand);
}

.wpcf7-form.dp-cf7-contact .contact-form__bottom .wpcf7-spinner {
    flex: 1 0 100%;
}

.wpcf7-form.dp-cf7-contact .wpcf7-not-valid-tip {
    display: block;
    margin: 0.4rem 0 0.75rem;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    line-height: 1.35;
    color: var(--dp-color-error);
}

.wpcf7-form.dp-cf7-contact .wpcf7-response-output {
    margin: clamp(0.75rem, 2vw, 1rem) 0 clamp(0.75rem, 2vw, 1rem);
    padding: 0.85rem 1rem;
    border-radius: var(--dp-radius-input);
    font-family: var(--dp-font-primary);
    font-size: 0.9375rem;
    line-height: 1.45;
}

@media (max-width: 540px) {
    .wpcf7-form.dp-cf7-contact .contact-form__bottom,
    .wpcf7-form.dp-cf7-contact .contact-form__bottom > p {
        flex-direction: column;
        align-items: flex-start;
    }

    .wpcf7-form.dp-cf7-contact .contact-form__checkbox-label {
        max-width: none;
    }
}
