// Overlay

.overlay-modals {
	position: fixed;
	inset: 0;
	display: flex;
	padding: 16px;
	overflow: auto;
	background-color: rgba(#000, 0.7);
	box-sizing: border-box;
	transition:
		opacity 0.3s ease,
		visibility 0.3s ease;
	z-index: 9999;

	&:not(.visible) {
		opacity: 0;
		visibility: hidden;
	}
}

// Modal Default

.modal-default {
	position: relative;
	margin: auto;
	padding: 32px;
	width: 100%;
	max-width: 515px;
	border-radius: 32px;
	background-color: $color-white;
	box-shadow: 0px 8px 40px rgba(0, 0, 0, 0.08);
	box-sizing: border-box;
	transition: transform 0.3s ease;

	&:not(.visible) {
		transform: translateY(100px);
	}
}

.modal-default__close-btn {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 24px;
	aspect-ratio: 2 / 2;
	color: $color-green;
	z-index: 2;

	svg {
		width: 100%;
		height: 100%;
	}

	&--primary {
		top: -20px;
		right: -20px;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 54px;
		height: 54px;
		border-radius: 50%;
		background-color: $color-white;
		box-shadow: 0px 8px 40px rgba(0, 0, 0, 0.08);

		svg {
			width: 24px;
			height: 24px;
		}
	}
}

.modal-default-title {
	font-size: 32px;
	font-weight: 700;
	letter-spacing: -0.03em;
}

.modal-default-submit-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	padding: 0px 24px;
	border-radius: 16px;
	background-color: $color-green;
	font-size: 16px;
	font-weight: 500;
	line-height: 18px;
	color: $color-white;
	box-sizing: border-box;

	@include desktop {
		&:hover {
			background-color: $color-green-hover;
		}
	}
}

.modal-default-terms {
	.input-checkbox__text {
		font-size: 16px;
		font-weight: 400;
		line-height: 18px;
		color: $color-gray-md;
	}
}

.modal-default-desc {
	margin-top: -8px;
	font-size: 16px;
	line-height: 18px;
	color: $color-gray-md;
}

.modal-default-form {
	display: flex;
	flex-flow: column;
	gap: 20px;
}

.modal-default-form__grid {
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	gap: 12px;
}

.modal-default-form__fill {
	flex: 0 0 100%;

	&--1-2 {
		flex: 0 0 calc(50% - 6px);
	}
}

// Feedback Modal

.feedback-modal {
	width: 100%;
	max-width: 765px;

	@include media('min', 'm') {
		background-size: 329px;
		background-repeat: no-repeat;
		background-position: right center;
		background-image: url('/images/modals/feedback-bg.png');

		@include retina {
			background-image: url('/images/modals/feedback-bg@2x.png');
		}
	}
}

.feedback-modal__content {
	display: flex;
	flex-flow: column;
	gap: 20px;
	width: 100%;

	@include media('min', 'm') {
		width: calc(100% - 329px + 20px);
	}
}

.feedback-modal__head {
	display: flex;
	flex-flow: column;
	gap: 12px;
}

.feedback-modal__head__title {
	font-size: 32px;
	font-weight: 700;
	letter-spacing: -0.03em;
}

.feedback-modal__head__desc {
	font-size: 16px;
	line-height: 18px;
	color: $color-gray-md;
}

.feedback-modal__form {
	display: flex;
	flex-flow: column;
	gap: 20px;
}

.feedback-modal__form__grid {
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	gap: 12px;

	@include mobile {
		flex-flow: column;
	}
}

.feedback-modal__form__input {
	flex: 0 0 calc(50% - 6px);

	@include mobile {
		flex: unset;
		width: 100%;
	}
}

.feedback-modal__form__submit-btn {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0px 24px;
	min-height: 54px;
	border-radius: 16px;
	background-color: $color-green;
	font-size: 16px;
	font-weight: 500;
	line-height: 18px;
	color: $color-white;
	box-sizing: border-box;

	@include mobile {
		width: 100%;
	}

	@include desktop {
		min-height: 64px;

		&:hover {
			background-color: $color-green-hover;
		}
	}
}

.feedback-modal__form__terms {
	.input-checkbox__text {
		font-weight: 400;
		font-size: 16px;
		line-height: 18px;
		color: $color-gray-md;
	}
}

// Резюме

.resume-modal {
}

.resume-modal__content {
	display: flex;
	flex-flow: column;
	gap: 20px;
}

.resume-modal__post {
	display: flex;
	flex-flow: column;
	gap: 6px;

	span {
		font-size: 14px;
		line-height: 16px;
		color: $color-gray-md;
	}

	p {
		font-size: 16px;
		line-height: 18px;
	}
}

.resume-modal__form {
	display: flex;
	flex-flow: column;
	gap: 20px;
}

.resume-modal__form__grid {
	display: flex;
	flex-flow: row wrap;
	gap: 12px;
}

.resume-modal__form__textarea,
.resume-modal__form__file {
	flex: 0 0 100%;
}

.resume-modal__form__file {
	overflow: hidden;
}

.resume-modal__form__input {
	&:nth-child(2),
	&:nth-child(3) {
		flex: 0 0 calc(50% - 6px);
	}

	&:nth-child(4) {
		flex: 0 0 100%;
	}
}

.resume-modal__form__submit-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	padding: 0px 24px;
	border-radius: 16px;
	background-color: $color-green;
	font-size: 16px;
	font-weight: 500;
	line-height: 18px;
	color: $color-white;
	box-sizing: border-box;
	flex: 0 0 100%;

	@include desktop {
		&:hover {
			background-color: $color-green-hover;
		}
	}
}

.resume-modal__form__terms {
	.input-checkbox__text {
		font-size: 16px;
		font-weight: 400;
		line-height: 18px;
		color: $color-gray-md;
	}
}

// Написать отзыв

.write-review-modal {
}

.write-review-modal__content {
	display: flex;
	flex-flow: column;
	gap: 20px;
}

.write-review-modal__product {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 16px;
}

.write-review-modal__product__cover {
	flex: 0 0 84px;
	height: 64px;
	border-radius: 20px;
	background-color: $color-surface;

	img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
		object-position: center;
		pointer-events: none;
	}
}

.write-review-modal__product__name {
	flex: 1;
	display: -webkit-box;
	font-size: 16px;
	font-weight: 500;
	line-height: 18px;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.write-review-modal__product__price {
	font-size: 16px;
	font-weight: 500;
	line-height: 18px;
}

.write-review-modal__rating {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 20px;

	span {
		font-size: 16px;
		line-height: 18px;
		color: $color-gray-md;
	}
}

.write-review-modal__form {
	display: flex;
	flex-flow: column;
	gap: 20px;
}

.write-review-modal__form__grid {
	display: flex;
	flex-flow: row wrap;
	gap: 12px;
}

.write-review-modal__form__textarea {
	flex: 0 0 100%;
}

.write-review-modal__form__input {
	&:nth-child(2),
	&:nth-child(3) {
		flex: 0 0 calc(50% - 6px);
	}
}

.write-review-modal__form__submit-btn {
	flex: 0 0 100%;
}

.write-review-modal__form__fill {
	flex: 0 0 100%;
}

// Записаться на услугу

.booking-service-modal {
}

.booking-service-modal__content {
	display: flex;
	flex-flow: column;
	gap: 20px;
}

.booking-service-modal__form {
}

.booking-service-modal__service {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 16px;
}

.booking-service-modal__service__cover {
	width: 84px;
	height: 64px;
	border-radius: 20px;
	background-color: $color-surface;

	img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
		pointer-events: none;
	}
}

.booking-service-modal__service__name {
	font-size: 16px;
	font-weight: 500;
	line-height: 18px;
}

// Подтверждение действия

.action-confirm-modal {
}

.action-confirm-modal__content {
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 20px;
}

.action-confirm-modal__icon {
	width: 64px;
	aspect-ratio: 2 / 2;
	color: $color-green;
}

.action-confirm-modal__main {
	display: flex;
	flex-flow: column;
	gap: 10px;
}

.action-confirm-modal__title {
	font-size: 32px;
	font-weight: 700;
	text-align: center;
	letter-spacing: -0.03em;
}

.action-confirm-modal__desc {
	font-size: 16px;
	line-height: 18px;
	text-align: center;
}

.action-confirm-modal__footer {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 12px;
	width: 100%;
}

.action-confirm-modal__btn {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	padding: 0px 24px;
	border-radius: 16px;
	font-size: 16px;
	font-weight: 500;
	line-height: 18px;
	box-sizing: border-box;

	&--default {
		background-color: $color-surface;

		@include desktop {
			&:hover {
				color: $color-green;
			}
		}
	}

	&--red {
		color: $color-white;
		background-color: $color-error-primary;

		@include desktop {
			&:hover {
				background-color: darken($color-error-primary, 5);
			}
		}
	}

	&--green {
		color: $color-white;
		background-color: $color-green;

		@include desktop {
			&:hover {
				background-color: $color-green-hover;
			}
		}
	}
}

// Попап через 40 секунд (правый нижний угол)

.select-akb-modal {
	position: fixed;
	right: 40px;
	bottom: 40px;
	padding: 24px;
	z-index: 99999;
	box-sizing: border-box;
	transition:
		bottom 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275),
		opacity 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275),
		visibility 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);

	@include media('max', 'm') {
		left: 8px;
		right: 8px;
		bottom: 8px;
		margin: unset;
		width: unset;

		.modal-default__close-btn--primary {
			top: 10px;
			right: 10px;
		}
	}

	&:not(.visible) {
		bottom: -40px;
		opacity: 0;
		visibility: hidden;
	}
}

.select-akb-modal__content {
	display: flex;
	flex-flow: column;
	gap: 20px;
}

.select-akb-modal__banner {
	width: 100%;
	aspect-ratio: 23350 / 13113;
	border-radius: 24px;
}
