.vk-contact-form {
	--vk-cf-gap: clamp(20px, 2vw + 14px, 30px);
	--vk-cf-padding-y: clamp(14px, 1vw + 12px, 20px);
	--vk-cf-padding-x: clamp(10px, 0.4vw + 8px, 12px);
	--vk-cf-font-size: clamp(14px, 0.25vw + 13px, 15px);
	--vk-cf-border-width: clamp(1px, 0.05vw + 0.5px, 1px);
	--vk-cf-btn-padding-y: clamp(13px, 0.4vw + 11px, 15px);
	--vk-cf-btn-max-width: clamp(180px, 40vw, 250px);
	--vk-cf-check-size: clamp(18px, 1vw + 14px, 22px);
	--vk-cf-footer-gap: clamp(16px, 2vw, 28px);
	--vk-cf-max-width: clamp(280px, 100%, 850px);
	--vk-cf-border-color: #7d7d7d;
	--vk-cf-accent: #7c5655;
	--vk-cf-text: #000000;

	width: 100%;
	max-width: var(--vk-cf-max-width);
	margin-left: auto;
	margin-right: auto;
}

.vk-contact-form__form {
	display: flex;
	flex-direction: column;
	gap: var(--vk-cf-gap);
	margin: 0;
}

.vk-contact-form__honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
}

.vk-contact-form__field {
	width: 100%;
}

.vk-contact-form__input {
	display: block;
	width: 100%;
	margin: 0;
	padding: var(--vk-cf-padding-y) var(--vk-cf-padding-x);
	border: var(--vk-cf-border-width) solid var(--vk-cf-border-color);
	border-radius: 0;
	background: transparent;
	color: var(--vk-cf-text);
	font-family: var(--wp--preset--font-family--din-regular, "DIN Regular", sans-serif);
	font-size: var(--vk-cf-font-size);
	font-weight: 400;
	line-height: 1.3;
	appearance: none;
	outline: none;
}

.vk-contact-form__input::placeholder {
	color: var(--vk-cf-text);
	opacity: 1;
}

.vk-contact-form__input:focus,
.vk-contact-form__input:focus-visible {
	outline: none;
}

.vk-contact-form__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--vk-cf-footer-gap);
}

.vk-contact-form__privacy {
	display: flex;
	align-items: center;
	gap: clamp(10px, 1vw + 6px, 14px);
	flex: 1 1 clamp(220px, 50%, 100%);
	margin: 0;
	cursor: pointer;
	color: var(--vk-cf-text);
	font-family: var(--wp--preset--font-family--din-regular, "DIN Regular", sans-serif);
	font-size: var(--vk-cf-font-size);
	font-weight: 400;
	line-height: 1.3;
}

.vk-contact-form__checkbox {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	pointer-events: none;
}

.vk-contact-form__privacy-text {
	position: relative;
	display: block;
	min-height: var(--vk-cf-check-size);
	padding-left: calc(var(--vk-cf-check-size) + clamp(8px, 0.8vw, 12px));
}

.vk-contact-form__privacy-text::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: var(--vk-cf-check-size);
	height: var(--vk-cf-check-size);
	border: var(--vk-cf-border-width) solid var(--vk-cf-border-color);
	background: transparent;
	box-sizing: border-box;
	transform: translateY(-50%);
}

.vk-contact-form__checkbox:checked + .vk-contact-form__privacy-text::before {
	background-color: var(--vk-cf-accent);
	border-color: var(--vk-cf-accent);
}

.vk-contact-form__checkbox:checked + .vk-contact-form__privacy-text::after {
	content: "";
	position: absolute;
	top: 50%;
	left: clamp(6px, 0.5vw + 4px, 8px);
	width: clamp(5px, 0.4vw + 3px, 7px);
	height: clamp(9px, 0.6vw + 6px, 12px);
	border: solid #ffffff;
	border-width: 0 clamp(2px, 0.15vw + 1px, 2px) clamp(2px, 0.15vw + 1px, 2px) 0;
	transform: translateY(-60%) rotate(45deg);
}

.vk-contact-form__checkbox:focus-visible + .vk-contact-form__privacy-text::before {
	outline: none;
	box-shadow: 0 0 0 var(--vk-cf-border-width) var(--vk-cf-accent);
}

.vk-contact-form__privacy-link {
	display: inline;
	color: inherit;
	text-decoration: underline;
}

.vk-contact-form__privacy-link:hover,
.vk-contact-form__privacy-link:focus-visible {
	color: var(--vk-cf-accent);
}

.vk-contact-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: var(--vk-cf-btn-max-width);
	margin: 0;
	padding: var(--vk-cf-btn-padding-y) clamp(16px, 2vw, 24px);
	border: 0;
	border-radius: 0;
	background-color: var(--vk-cf-accent);
	color: #ffffff;
	font-family: var(--wp--preset--font-family--din-regular, "DIN Regular", sans-serif);
	font-size: var(--vk-cf-font-size);
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: clamp(0.2px, 0.05vw, 0.5px);
	cursor: pointer;
	flex: 0 0 auto;
	outline: none;
}

.vk-contact-form__submit:hover,
.vk-contact-form__submit:focus-visible {
	opacity: 0.92;
	outline: none;
}

.vk-contact-form__submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.vk-contact-form__status {
	margin: 0;
	padding: var(--vk-cf-padding-y) var(--vk-cf-padding-x);
	font-family: var(--wp--preset--font-family--din-regular, "DIN Regular", sans-serif);
	font-size: var(--vk-cf-font-size);
	line-height: 1.3;
}

.vk-contact-form__status[hidden] {
	display: none;
}

.vk-contact-form__status--success {
	color: var(--vk-cf-accent);
	background-color: #f0e9e1;
}

.vk-contact-form__status--error {
	color: #7c5655;
	background-color: #f7ecec;
}

.vk-contact-form.is-success .vk-contact-form__form > :not(.vk-contact-form__status) {
	display: none;
}

@media (max-width: 767px) {
	.vk-contact-form__footer {
		flex-direction: column;
		align-items: stretch;
	}

	.vk-contact-form__submit {
		max-width: none;
	}
}
