.wpcf7 {
    --wpcf7-space-1: var(--wp--preset--spacing--x-small);
    --wpcf7-space-2: var(--wp--preset--spacing--small);
}

.wpcf7 form p {
    margin: 0 !important;
}

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

.wpcf7 .wpcf7-form-item + .wpcf7-form-item {
    margin-top: var(--wpcf7-space-2);
}

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

.wpcf7 .wpcf7-form-label .required {
    color: var(--wp--preset--color--primary-alt);
    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: var(--wpcf7-space-1) 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 select.wpcf7-select {
    appearance: none;
    -webkit-appearance: none;
    background: var(--wp--preset--color--base) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=) no-repeat;
    background-size: 16px;
    background-position: calc(100% - 12px) 50%;
    padding-right: 2.2em;
}

.wpcf7 .wpcf7-checkbox,
.wpcf7 .wpcf7-radio,
.wpcf7 .wpcf7-acceptance {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wpcf7-space-1) var(--wpcf7-space-2);
}

.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-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: '\2610';
}

.wpcf7 .wpcf7-checkbox input:checked + .wpcf7-list-item-label::before,
.wpcf7 .wpcf7-acceptance input:checked + .wpcf7-list-item-label::before {
    content: '\2611';
    font-weight: 900;
}

.wpcf7 .wpcf7-radio .wpcf7-list-item-label::before {
    content: '\25CB';
}

.wpcf7 .wpcf7-radio input:checked + .wpcf7-list-item-label::before {
    content: '\25C9';
    font-weight: 900;
}

.wpcf7 .wpcf7-not-valid .wpcf7-list-item label .wpcf7-list-item-label::before {
    color: var(--wp--preset--color--primary-alt);
}

.wpcf7 .wpcf7-not-valid-tip {
    display: block;
    color: var(--wp--preset--color--primary-alt);
    font-size: var(--wp--preset--font-size--x-small);
    margin-top: var(--wpcf7-space-1);
    font-weight: 700;
}

.wpcf7 form .wpcf7-response-output {
    font-size: var(--wp--preset--font-size--x-small);
    text-align: center;
    padding: var(--wpcf7-space-2);
    border: 0;
    color: var(--wp--preset--color--base);
    background: var(--wp--preset--color--primary);
    font-weight: 700;
    border-radius: var(--wp--preset--radius--sm);
}

.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--preset--color--primary-alt);
}

.wpcf7 form.sent .wpcf7-response-output {
    background: var(--wp--preset--color--primary-alt-accent);
}

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

.wpcf7 .wpcf7-not-valid:focus {
    outline-color: var(--wp--preset--color--primary-alt);
}

