.dbs-cf7-form {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--dbs-cf7-maxWidth, 100%);
    margin-inline: auto;
    padding: var(--dbs-cf7-padding, 0);
    background: var(--dbs-cf7-surface, transparent);
    border-radius: var(--dbs-cf7-radius, 0);
}

.dbs-cf7-modern {
    --dbs-cf7-surface: #f1f5ff;
    --dbs-cf7-padding: 24px;
    --dbs-cf7-radius: 16px;
    --dbs-cf7-labelColor: #172033;
    --dbs-cf7-fieldRadius: 10px;
    --dbs-cf7-fieldBorder: #8395b7;
    --dbs-cf7-buttonRadius: 10px;
}

.dbs-cf7-soft {
    --dbs-cf7-surface: #f8f0ff;
    --dbs-cf7-padding: 24px;
    --dbs-cf7-radius: 22px;
    --dbs-cf7-labelColor: #2e1745;
    --dbs-cf7-fieldRadius: 12px;
    --dbs-cf7-fieldBorder: #9379ac;
    --dbs-cf7-buttonRadius: 24px;
    --dbs-cf7-buttonBackground: #6d28d9;
    --dbs-cf7-buttonHoverBackground: #4c1d95;
    --dbs-cf7-focusColor: #6d28d9;
}

.dbs-cf7-mono {
    --dbs-cf7-surface: #f4f4f5;
    --dbs-cf7-padding: 24px;
    --dbs-cf7-radius: 4px;
    --dbs-cf7-labelColor: #18181b;
    --dbs-cf7-fieldRadius: 2px;
    --dbs-cf7-fieldBorder: #71717a;
    --dbs-cf7-buttonRadius: 2px;
    --dbs-cf7-buttonBackground: #18181b;
    --dbs-cf7-buttonHoverBackground: #3f3f46;
    --dbs-cf7-focusColor: #18181b;
}

.dbs-cf7-form .wpcf7 form > p {
    margin: 0 0 var(--dbs-cf7-gap, 16px);
}

.dbs-cf7-form .wpcf7 form > p:last-of-type {
    margin-bottom: 0;
}

.dbs-cf7-form .wpcf7 label {
    color: var(--dbs-cf7-labelColor, inherit);
    font-size: var(--dbs-cf7-labelSize, 1em);
}

.dbs-cf7-form .wpcf7 label > .wpcf7-form-control-wrap {
    display: block;
    margin-top: var(--dbs-cf7-labelGap, 6px);
}

.dbs-cf7-form .wpcf7 :is(.wpcf7-text, .wpcf7-number, .wpcf7-date, .wpcf7-select, .wpcf7-textarea, .wpcf7-file, .wpcf7-captchar) {
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: var(--dbs-cf7-fieldPaddingY, 10px) var(--dbs-cf7-fieldPaddingX, 12px);
    color: var(--dbs-cf7-fieldColor, #172033);
    background: var(--dbs-cf7-fieldBackground, #fff);
    border: var(--dbs-cf7-fieldBorderWidth, 1px) solid var(--dbs-cf7-fieldBorder, #798497);
    border-radius: var(--dbs-cf7-fieldRadius, 6px);
    font-family: inherit;
    font-size: var(--dbs-cf7-fieldSize, 1rem);
    line-height: 1.5;
}

.dbs-cf7-form .wpcf7 :is(.wpcf7-text, .wpcf7-number, .wpcf7-textarea, .wpcf7-captchar)::placeholder {
    color: var(--dbs-cf7-placeholderColor, #586477);
    opacity: 1;
}

.dbs-cf7-form .wpcf7 .wpcf7-textarea {
    min-height: var(--dbs-cf7-textareaHeight, 120px);
    resize: vertical;
}

.dbs-cf7-form .wpcf7 :is(input[type="checkbox"], input[type="radio"]) {
    accent-color: var(--dbs-cf7-choiceColor, var(--dbs-cf7-focusColor, #1d4ed8));
}

.dbs-cf7-form .wpcf7 :is(input, select, textarea, button):focus-visible {
    outline: 2px solid var(--dbs-cf7-focusColor, #1d4ed8);
    outline-offset: 2px;
}

.dbs-cf7-form .wpcf7 .wpcf7-submit {
    box-sizing: border-box;
    max-width: 100%;
    padding: var(--dbs-cf7-buttonPaddingY, 12px) var(--dbs-cf7-buttonPaddingX, 22px);
    border: 0;
    border-radius: var(--dbs-cf7-buttonRadius, 6px);
    color: var(--dbs-cf7-buttonColor, #fff);
    background: var(--dbs-cf7-buttonBackground, #1d4ed8);
    font-family: inherit;
    font-size: var(--dbs-cf7-buttonSize, 1rem);
    font-weight: 600;
    line-height: 1.4;
    white-space: normal;
    cursor: pointer;
}

.dbs-cf7-form .wpcf7 .wpcf7-submit:not(:disabled):hover {
    color: var(--dbs-cf7-buttonHoverColor, var(--dbs-cf7-buttonColor, #fff));
    background: var(--dbs-cf7-buttonHoverBackground, #1e3a8a);
}

.dbs-cf7-form .wpcf7 .wpcf7-submit:disabled {
    cursor: default;
    opacity: 0.65;
}

.dbs-cf7-form .wpcf7 .wpcf7-not-valid {
    border-color: var(--dbs-cf7-errorColor, #b42318);
}

.dbs-cf7-form .wpcf7 .wpcf7-not-valid-tip {
    margin-top: 4px;
    color: var(--dbs-cf7-errorColor, #b42318);
    font-size: var(--dbs-cf7-messageSize, 0.875rem);
}

.dbs-cf7-form .wpcf7 form .wpcf7-response-output {
    margin: var(--dbs-cf7-gap, 16px) 0 0;
    padding: 10px 14px;
    border-radius: var(--dbs-cf7-fieldRadius, 6px);
    font-size: var(--dbs-cf7-messageSize, 0.875rem);
}

.dbs-cf7-form .wpcf7 form:is(.invalid, .unaccepted, .payment-required, .failed, .aborted, .spam) .wpcf7-response-output {
    color: var(--dbs-cf7-errorColor, #b42318);
    border-color: currentColor;
}

.dbs-cf7-form .wpcf7 form.sent .wpcf7-response-output {
    color: var(--dbs-cf7-successColor, #166534);
    border-color: currentColor;
}

.dbs-cf7-placeholder {
    padding: 16px;
    border: 1px dashed currentColor;
}

/* The block editor may load the preview without CF7's front-end stylesheet. */
.dbs-cf7-form [inert] .wpcf7 :is(.screen-reader-response, .wpcf7-spinner, .wpcf7-response-output) {
    display: none;
}
