:where(.wpcf7-form) {
	--_input-padding: 0.5rem 0.75rem;
	--_input-border: 2px solid rgba(118, 118, 118, 0.28);
	--_input-border-active: 2px solid var(--primary-color);
	--_label-color-active: var(--primary-color);
	--_width: 750px;
}

.wpcf7-form p:first-of-type {
	margin-block-start: 0;
}

.wpcf7-form p:last-of-type {
	margin-block-end: 0;
}

.wpcf7-form p {
	margin-block-start: 1.5rem;
	margin-block-end: 0.75rem;
	max-width: var(--_width);
}

.wpcf7 .wpcf7-form input:not([type="submit"],[type="checkbox"],[type="radio"],[type="file"]),
.wpcf7 .wpcf7-form textarea {
	width: 100%;
	padding: var(--_input-padding);
	border-radius: var(--roundness);
}

.wpcf7 .wpcf7-form :is(input:not([type="submit"],[type="checkbox"],[type="radio"],[type="file"]),
textarea,
select) {
	border: var(--_input-border);
	transition: border-color 200ms ease-in-out;
}

.wpcf7 .wpcf7-form :is(input:not([type="submit"],[type="checkbox"],[type="radio"],[type="file"]),
textarea,
select):focus {
	border: var(--_input-border-active);
	outline: none;
}

.wpcf7 .wpcf7-form :is(input:not([type="submit"],[type="checkbox"],[type="radio"],[type="file"]),
textarea,
select):focus-visible {
	outline: 2px dotted var(--primary-color);
}

.wpcf7-not-valid-tip {
	padding-top: 0.25rem;
}

/* for mordern browsers */
.wpcf7 .wpcf7-form label:has(:is(input:not([type="submit"],[type="checkbox"],[type="radio"],[type="file"]),
textarea,
select):focus) {
	color: var(--_label-color-active);
}

.wpcf7-form textarea {
	resize: vertical;
}

.wpcf7 .wpcf7-submit {
	border: none;
}

.wpcf7 .wpcf7-submit:disabled {
	background-color: var(--primary-color-disabled);
	cursor: not-allowed !important;
}

.wpcf7-form-control label {
	display: flex;
	align-items: flex-start;
	gap: 0.25rem;
}

input[type="checkbox"],
input[type="radio"] {
	min-width: 20px;
	min-height: 20px;
}

.wpcf7-form .wpcf7-list-item:first-child {
	margin-left: 0;
}

label .wpcf7-form-control-wrap,
label .wpcf7-form-control {
	margin-top: 0.5rem;
}
