.wpcf7 .wpcf7-form-item {
    display: block;
}

.wpcf7 .wpcf7-form-label {
    font-size: var(--wp--preset--font-size--small);
    font-weight: 700;
    display: block;
    margin-bottom: 0.3em;
}

.wpcf7 .wpcf7-form-label .required {
    color: var(--wp--custom--color--error);
    font-weight: 700;
}

.wpcf7 .wpcf7-form-instruction,
.wpcf7 .wpcf7-form-item-instruction {
    display: block;
    color: rgba(0,0,0, 0.66);
    font-size: var(--wp--preset--font-size--x-small);
    margin: 4px 0;
}

.wpcf7 .wp-block-button:has(.wpcf7-spinner) {
    position: relative;
    display: inline-flex;
}

.wpcf7 .wpcf7-spinner {
    position: absolute;
    top: 50%;
    left: 105%;
    z-index: 1;
    transform: translate(0, -50%);
    pointer-events: none;
    margin: 0;
}

.wpcf7 .wpcf7-form-control-wrap {
    display: block;
}

.wpcf7 .wpcf7-checkbox,
.wpcf7 .wpcf7-radio,
.wpcf7 .wpcf7-acceptance {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em 1em;
}

.wpcf7 .wpcf7-list-item {
    width: 100%;
    margin: 0;
}

.wpcf7 .wpcf7-form-control:not(.wpcf7-acceptance) .wpcf7-list-item input {
    position: absolute !important;
     clip: rect(1px, 1px, 1px, 1px);
     overflow: hidden;
     height: 1px;
     width: 1px;
}

.wpcf7 .wpcf7-list-item .wpcf7-list-item-label {
    position: relative;
    display: flex;
    font-weight: 400;
    cursor: pointer;
    align-items: baseline;
}
    .wpcf7 .wpcf7-list-item .wpcf7-list-item-label::before,
    .wpcf7 .wpcf7-list-item .wpcf7-list-item-label::after {
        content: none;
    }

.wpcf7 .wpcf7-list-item .wpcf7-list-item-label::before {
    font-family: "Font Awesome 6 Pro";
    font-weight: 400;
    font-size: 1.5rem;
    margin-right: 0.5em;
    transform: translate(0, 10%);
}
    .wpcf7 .wpcf7-list-item label:hover .wpcf7-list-item-label::before,
    .wpcf7 .wpcf7-list-item input:focus + .wpcf7-list-item-label::before {
        color: var(--wp--preset--color--primary);
    }
    .wpcf7 .wpcf7-checkbox .wpcf7-list-item-label::before,
    .wpcf7 .wpcf7-acceptance .wpcf7-list-item-label::before {
        content: '\f0c8';
    }
        .wpcf7 .wpcf7-checkbox input:checked + .wpcf7-list-item-label::before,
        .wpcf7 .wpcf7-acceptance input:checked + .wpcf7-list-item-label::before {
            content: '\f14a';
            font-weight: 900;
        }
    .wpcf7 .wpcf7-radio .wpcf7-list-item-label::before {
        content: '\f111';
    }
        .wpcf7 .wpcf7-radio input:checked + .wpcf7-list-item-label::before {
            content: '\f192';
            font-weight: 900;
        }

    .wpcf7 .wpcf7-not-valid .wpcf7-list-item label .wpcf7-list-item-label::before {
        color: var(--wp--custom--color--error);
    }

.wpcf7 .wpcf7-not-valid-tip {
    display: block;
    color: var(--wp--custom--color--error);
    font-size: var(--wp--preset--font-size--x-small);
    margin-top: 4px;
    font-weight: 700;
}

.wpcf7 form .wpcf7-response-output {
    font-size: var(--wp--preset--font-size--x-small);
    text-align: center;
    padding: 1em 1em;
    border: 0;
    color: var(--wp--preset--color--base);
    background: var(--wp--preset--color--primary);
    font-weight: 700;
    border-radius: var(--wp--custom--border-radius--regular);
}
    .wpcf7 form.failed .wpcf7-response-output,
    .wpcf7 form.aborted .wpcf7-response-output,
    .wpcf7 form.spam .wpcf7-response-output,
    .wpcf7 form.invalid .wpcf7-response-output,
    .wpcf7 form.unaccepted .wpcf7-response-output,
    .wpcf7 form.payment-required .wpcf7-response-output {
        background: var(--wp--custom--color--error);
    }
    .wpcf7 form.sent .wpcf7-response-output {
        background: var(--wp--custom--color--success);
    }

.wpcf7 .wpcf7-not-valid,
.wpcf7 .select__wrapper:has(.wpcf7-not-valid) .select2-selection {
    border-color: var(--wp--custom--color--error);
}

.wpcf7 .wpcf7-not-valid:focus {
    outline-color: var(--wp--custom--color--error);
}
