.wpcf7-form label {
    font-weight: 600;
    width: 100%;
    margin: 4px 0;
}

.wpcf7-form label:has(input[aria-required="true"])::before {
    content: '*';
    color: var(--bs-red);
}

.wpcf7-form input:not([type="file"]), .wpcf7-form textarea {
    padding: 0.5rem;
    border-radius: 5px;
    border: 1px solid #000;
    width: 100%;
}

.wpcf7-form textarea {
	height: 100px;
	resize: none;
}

.wpcf7-form input:not([type="submit"]).wpcf7-not-valid {
    border-color: var(--bs-red);
}

.wpcf7-form input[type="submit"] {
    background-color: #000;
    color: #fff;
    padding: .5rem 2rem;
    border-radius: 5px;
    border: none;
    opacity: 1;
    transition: all 0.3s ease;
}

.wpcf7-form input[type="submit"]:hover {
    opacity: 0.8;
}

.wpcf7-spinner {
	margin: 10px auto;
    display: block;
}

.wpcf7 .wpcf7-checkbox, .wpcf7 .wpcf7-acceptance {
	display: flex;
	flex-wrap: wrap;
}

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

.wpcf7 .wpcf7-list-item label, .wpcf7 .wpcf7-acceptance .wpcf7-list-item label {
	display: flex;
	gap: 8px;
}

.wpcf7 .wpcf7-list-item label input, .wpcf7 .wpcf7-acceptance .wpcf7-list-item label input {
	width: auto;
}

.wpcf7 .wpcf7-select {
    width: 100%;
    padding: 0.5rem;
    border-radius: 5px;
    border: 1px solid #000;
}

.wpcf7 input + span {
	font-weight: normal;
}

.wpcf7 fieldset {
    border: 1px solid #000;
    padding: 0 12px;
    margin-bottom: 16px;
}

.wpcf7 fieldset legend {
    padding: 0 5px;
    font-size: 1rem;
    font-weight: 400;
    float: none;
    width: auto;
}
