.modal {
    background: #0009;
    position: fixed;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 999999;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: all .5s ease;
    padding: 16px
}

.modal__wrapper {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 16px;
	height: 100%;
    position: relative;
}

.modal__close {
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: flex-end;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	border: 1px solid rgba(26, 26, 26, .1);
	background: #fff;
    top: 20px;
    cursor: pointer;
}

.modal__close svg {
	width: 17px;
	height: 17px
}

.modal__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 32px 16px;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 4px 60px #1a1a1a0d;
	max-height: calc(var(--doc-height) - 32px - 48px - 16px);
	overflow-y: auto;
	transform: scale(.85);
	opacity: 0;
	transition: all .5s ease
}

.modal__card>b {
	display: block;
	margin-bottom: 32px;
	font-style: normal;
	font-weight: 500;
	font-size: 36px;
	line-height: 1;
	letter-spacing: -1.08px;
	text-align: center
}

.modal__card::-webkit-scrollbar {
	width: 14px
}

.modal__card::-webkit-scrollbar-thumb {
	border: 4px solid rgba(0, 0, 0, 0);
	background-clip: padding-box;
	border-radius: 9999px;
	background-color: #ebe9fc
}

.modal__card .calc-widget {
	margin: 0;
	padding: 32px 2px
}

.modal.is-active {
	visibility: visible;
	opacity: 1;
	pointer-events: all
}

.modal.is-active .modal__card {
	transform: scale(1);
	opacity: 1
}

.modal--blue {
	background-color: #4537cf
}

.contact-form {
	width: 100%
}

.contact-form__inputs {
	display: flex;
	flex-direction: column;
	gap: 16px
}

.contact-form__policy {
	display: flex;
	align-items: center;
	gap: 12px;
	font-style: normal;
	font-weight: 400;
	line-height: 1.3;
	font-size: 14px;
	color: #9ea0b3
}

.contact-form__policy a {
	text-decoration: underline
}

.contact-form__bottom {
	margin-top: 24px;
	display: flex;
	flex-direction: column;
	gap: 16px
}

.contact-form__contacts {
	margin-top: 24px
}

.contact-form__contacts span {
	display: flex;
	align-items: center;
	gap: 24px;
	font-style: normal;
	font-weight: 400;
	line-height: 1.3;
	font-size: 16px;
	color: #8c8c8c
}

.contact-form__contacts span:after,
.contact-form__contacts span:before {
	content: "";
	background: rgba(26, 26, 26, .1);
	width: 100%;
	height: 1px
}

.contact-form__contacts>div {
	margin-top: 24px;
	display: flex;
	flex-direction: column;
	gap: 16px
}
.main-input {
	position: relative
}

.main-input svg {
	flex-shrink: 0;
	max-width: 21px
}

.main-input input,
.main-input textarea {
	position: absolute;
	width: 100%;
	height: 100%;
	padding: 0 16px;
	left: 0;
    border: 0;
    outline: 0;
}

.main-input input::-moz-placeholder,
.main-input textarea::-moz-placeholder {
	opacity: 0
}

.main-input input::placeholder,
.main-input textarea::placeholder {
	opacity: 0
}

.main-input input:hover+div,
.main-input textarea:hover+div {
	outline: 1px solid #000
}

.main-input input:focus+div,
.main-input textarea:focus+div {
	outline: 2px solid #000
}

.main-input .placeholder {
	transition: .3s ease all;
	text-overflow: ellipsis;
	overflow: hidden
}

.main-input>div {
	display: flex;
	height: 60px;
	width: 100%;
	padding: 14px 16px;
	align-items: center;
	gap: 8px;
	border-radius: 16px;
	background: rgba(26, 26, 26, .03);
	position: relative;
	color: #8c8c8c;
	font-style: normal;
	font-weight: 400;
	line-height: 1.3;
	font-size: 16px;
	cursor: pointer;
	pointer-events: none
}

.main-input--icon input {
	padding-left: 45px
}

.main-input--static input {
	transform: unset !important
}

.main-input--static input::-moz-placeholder {
	opacity: 1
}

.main-input--static input::placeholder {
	opacity: 1
}

.main-input--static .placeholder {
	display: none
}

.main-input--text textarea {
	top: 12px;
	height: calc(100% - 12px)
}

.main-input--text>div {
	min-height: 78px;
	align-items: flex-start
}

.main-input--light>div {
	background: rgba(255, 255, 255, .05);
	color: rgba(255, 255, 255, .8)
}

.main-input--light .placeholder {
	color: rgba(255, 255, 255, .8)
}

.main-input--light input,
.main-input--light textarea {
	color: #fff
}

.main-input.is-typed input {
	transform: translateY(9px)
}

.main-input.is-typed input+div .placeholder {
	transform: translateY(-12px);
	font-size: 14px
}

.main-input.is-typed textarea {
	top: 28px;
	height: calc(100% - 28px)
}

.main-input.is-typed textarea+div .placeholder {
	transform: translateY(-6px);
	font-size: 14px
}

.input-add {
	display: flex
}

.input-add button {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-style: normal;
	font-weight: 500;
	line-height: 1.3;
	font-size: 14px;
    cursor: pointer;
    font: inherit;
    outline: none;
    border: none;
    background-color: unset;
    padding: 0;
}

.input-add button+.main-input {
	display: none
}

.input-add .main-input {
	width: 100%
}

.btn-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px
}

.btn-toggle input {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	z-index: 1;
	cursor: pointer
}

.btn-toggle input:checked+span:before {
	right: 2px;
	transform: translate(0)
}

.btn-toggle span {
	display: inline-flex;
	width: 36px;
	height: 20px;
	border-radius: 12px;
	position: relative;
	transition: all .3s ease
}

.btn-toggle span:before {
	content: "";
	position: absolute;
	right: calc(100% - 2px);
	transform: translate(100%);
	top: 2px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background-color: #fff;
	transition: .3s ease all
}

.btn-toggle label {
	font-style: normal;
	font-weight: 400;
	line-height: 1.3;
	font-size: 16px
}

.btn-toggle--main span {
	background: rgba(26, 26, 26, .1)
}

.btn-toggle--main input:checked+span {
	background-color: #503efc
}

.btn-toggle--outline span {
	width: 40px;
	height: 24px;
	border: 2px solid #fff
}

.btn--l {
    min-height: 60px;
    border-radius: 16px;
    padding: 14px 24px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.3;
    font-size: 16px;
}

.contact-form__bottom .btn {
    font-size: 18px;
    font-weight: 300;
}

.modal .btn {
    margin: 0;
    width: auto;
}

.main-input input.wpcf7-not-valid+div, .main-input textarea.wpcf7-not-valid+div {
    outline: 2px solid red;
}

@media screen and (min-width: 992px) {
    .modal__wrapper {
		align-items: center;
		justify-content: center
	}

	.modal__close {
		width: 60px;
		height: 60px;
		border-radius: 16px;
		position: absolute;
		left: 50%;
		transform: translate(750%)
	}

	.modal__close svg {
		width: 19px;
		height: 19px
	}

	.modal__card {
		padding: 48px 60px;
		border-radius: 20px;
		max-width: 872px;
		width: 100%;
		position: relative
	}

	.modal__card>b {
		font-style: normal;
		font-weight: 500;
		font-size: 40px;
		line-height: 1.2;
		letter-spacing: -1.2px;
		margin-bottom: 48px
	}
    
    .contact-form {
		width: 100%
	}

	.contact-form__inputs {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 16px
	}

	.contact-form__inputs .input-add {
		grid-column: 1/4
	}

	.contact-form__bottom {
		margin-top: 32px;
		display: grid;
		grid-template-columns: 1fr 260px;
		align-items: center;
		gap: 24px
	}

	.contact-form__bottom .btn {
		order: 2
	}

	.contact-form__contacts {
		margin-top: 48px
	}

	.contact-form__contacts>div {
		margin-top: 48px;
		flex-direction: row;
		justify-content: center;
		gap: 16px
	}
}

@media screen and (max-width: 992px) {
    .modal .btn {
        width: 100%;
    }
}