@font-face {
	font-family: 'Montserrat';
	src: url('../fonts/Montserrat-b.woff2');
	font-style: normal;
	font-weight: 600;
	font-display: swap;
}
@font-face {
	font-family: 'Montserrat';
	src: url('../fonts/Montserrat-m.woff2');
	font-style: normal;
	font-weight: 500;
	font-display: swap;
}
@font-face {
	font-family: 'Montserrat';
	src: url('../fonts/Montserrat-r.woff2');
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}
@font-face {
	font-family: 'Montserrat';
	src: url('../fonts/Montserrat-l.woff2');
	font-style: normal;
	font-weight: 300;
	font-display: swap;
}
@font-face {
	font-family: 'icon';
	src: url('../fonts/icon.woff2');
	font-style: normal;
	font-display: swap;
}
:root {
	--main: #fff;
	--body-bg: #f9f9f9;
    --text: #2f2222;
    --second: #5d71dd;
	--footer-bg: #5d71dd0d;
	--last-news-border: #2f22221a;
	--snippet-text: #2f222266;
	--snippet-category-bg: #f7f8fd;
	--input-bg: #f5f5f5;
}
* {
	margin: 0;
	padding: 0;
	outline: 0;
	box-sizing: border-box;
	font: normal 400 18px / 1 "Montserrat", sans-serif;
	color: var(--text);
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
html {
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	overflow-x: clip;
	width: 100%;
	scroll-behavior: smooth;
}
body {
	position: relative;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	background: var(--body-bg);
}
main {
	position: relative;
	width: 100%;
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="search"],
input[type="date"],
textarea,
input[type="tel"],
select,
input[type="submit"],
button {
	--webkit-appearance: none;
}
button {
	cursor: pointer;
}
input,
textarea,
select {
	border: none;
	appearance: none;
	-webkit-appearance: none;
}
a {
	text-decoration: none;
	transition: .3s linear;
}
img {
	display: block;
	width: 100%;
}
textarea {
	--webkit-appearance: none;
	resize: vertical;
}
.wrapper {
    width: calc(100% - 80px);
    max-width: 1400px;
    margin: 0 auto;
}
header {
	background: var(--main);
	.wrapper {
		display: flex;
		align-items: center;
		padding: 10px;
		a.logo {
			margin-right: auto;
			img {
				height: 50px;
				object-fit: contain;
			}
		}
		.ws-menu {
			display: flex;
			align-items: center;
			gap: 40px;
			.item.selected {
				a {
					text-decoration: underline;
					color: var(--second);
				}
			}
		}
		a.phone {
			display: flex;
			align-items: center;
			gap: 10px;
			margin-left: 40px;
			color: var(--second);
			&::before {
				content: '\e001';
				font-family: 'icon';
				font-size: 14px;
				line-height: 14px;
				display: flex;
			}
		}
	}
}
aside {
    display: flex;
    flex-direction: column;
    gap: 40px;
    position: sticky;
    height: fit-content;
    top: 20px;
    .last-news {
        h2 {
            margin-bottom: 30px;
        }
        .items {
            display: flex;
            flex-direction: column;
            gap: 10px;
            .item {
                padding-bottom: 10px;
                border-bottom: 1px solid var(--last-news-border);
                position: relative;
                h3 {
                    font-size: 16px;
                    font-weight: 500;
                    margin-bottom: 10px;
                }
                span {
                    color: var(--snippet-text);
                }
                a {
                    position: absolute;
                    inset: 0;
                }
            }
        }
    }
    form {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 40px 30px 50px;
        background: var(--main);
        border-radius: 20px;
        h2 {
            font-size: 20px;
            margin-bottom: 30px;
        }
        input {
            width: 100%;
            padding: 13px 30px;
            margin-bottom: 20px;
            background: var(--input-bg);
            border: 1px solid var(--input-bg);
            border-radius: 20px;
            font-size: 14px;
            color: var(--text);
            transition: .3s linear;
            &:focus {
                border: 1px solid var(--second);
            }
            &::placeholder {
                font-size: 14px;
                color: var(--snippet-text);
            }
        }
        button {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            width: 100%;
            padding: 13px;
            background: var(--second);
            border: 1px solid var(--second);
            border-radius: 20px;
            color: var(--main);
            transition: .3s linear;
            &::after {
                content: '\e002';
                font-family: 'icon';
                font-size: 18px;
                line-height: 18px;
                transition: .3s linear;
            }
        }
    }
}
footer {
    margin-top: auto;
	background: var(--footer-bg);
	padding: 40px;
	.wrapper {
		display: flex;
		flex-direction: column;
		align-items: center;
		a.logo {
			max-width: 250px;
			width: 100%;
			margin-bottom: 40px;
			img {
				width: 100%;
			}
		}
		.ws-menu {
			display: flex;
			align-items: center;
			gap: 80px;
			margin-bottom: 65px;
		}
		p {
			font-size: 14px;
		}
	}
}
@keyframes phone {
	0% {
		transform:  rotate(0deg) scale(1);
	}
	25% {
		transform: rotate(-10deg) scale(1.2);
	}
	50% {
		transform: rotate(0deg) scale(1);
	}
	75% {
		transform: rotate(10deg) scale(1.2);
	}
	100% {
		transform:  rotate(0deg) scale(1);
	}
}
@keyframes button-arrow {
	0% {
		transform: translateX(0) scale(1);
	}
	100% {
        transform: translateX(25px) scale(0.4)
	}
}
@media (max-width: 1080px) {
	.wrapper {
		width: calc(100% - 40px);
	}
	aside {
		flex-direction: row;
		position: static;
		.last-news {
			h2 {
				margin-bottom: 20px;
			}
		}
		form {
			height: 100%;
			min-width: 310px;
			input {
				width: 100%;
				padding: 13px 15px;
			}
		}
	}
	header {
		.wrapper {
			a.logo {
				img {
					height: 40px;
				}
			}
			.ws-menu {
				gap: 20px;
				.item {
					a {
						font-size: 16px;
					}
				}
			}
			a.phone {
				gap: 5px;
				margin-left: 25px;
				font-size: 16px;
			}
		}
	}
}
@media (max-width: 767px) {
	.wrapper {
		width: calc(100% - 20px);
	}
	header {
		.wrapper {
			flex-wrap: wrap;
			gap: 20px 0;
			a.logo {
				img {
					height: 40px;
				}
			}
			.ws-menu {
				width: 100%;
				order: 3;
				justify-content: space-between;
			}
		}
	}
	aside {
		flex-direction: column;
		gap: 20px;
		.last-news {
			.items {
				.item {
					span {
						font-size: 14px;
					}
				}
			}
		}
		form {
			padding: 20px 20px 30px;
			h2 {
				font-size: 18px;
				margin-bottom: 20px;
			}
			input {
				padding: 10px;
				max-width: 320px;
			}
			button {
				padding: 12px 20px;
				font-size: 16px;
				width: fit-content;
				&::after {
					font-size: 14px;
					line-height: 14px;
				}
			}
		}
	}
	footer {
		padding: 20px 0;
		.wrapper {
			a.logo {
				max-width: 200px;
				margin-bottom: 20px;
			}
			.ws-menu {
				gap: 40px;
				margin-bottom: 30px;
				a {
					font-size: 14px;
				}
			}
			p {
				font-size: 12px;
			}
		}
	}
}
@media (max-width: 425px) {
	footer {
		.wrapper {
			.ws-menu {
				flex-direction: column;
				gap: 10px;
			}
			p {
				text-align: center;
			}
		}
	}
}
@media (hover:hover) {
	.ws-menu a:hover {
		color: var(--second);
	}
	header a.phone:hover::before {
		animation: phone 1.2s linear forwards;
	}
	aside form button:hover {
        background: var(--main);
        color: var(--second);
        &::after {
            color: var(--second);
            animation: button-arrow 2s linear forwards;
        }
    }
}