/* ===========================================
   apartment.css
=========================================== */
:root {
	--green: #0B4A4A;
	--green-dark: #083C3C;
	--green-light: #0F6666;
	--beige: #F7E0C8;
	--white: #FFFFFF;
	--text: #173A3A;
	--gray: #F5F5F5;
	--line: rgba(255,255,255,.15);
	--shadow: 0 20px 60px rgba(0,0,0,.08);
	--center: calc(360px + 3vw)
}
*{
	margin:0;
	padding:0;
	box-sizing:border-box;
}
body{
	font-family:"Manrope",sans-serif;
	background:#FCFAF7;
	color:var(--text);
}
a{
	text-decoration:none;
	color:inherit;
}
img{
	display:block;
	max-width:100%;
}
.wrapper{
	display:flex;
	flex-direction:column;
	min-height:100vh;
}
/* ===========================================
                HEADER
=========================================== */
.header{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 90px;
	background: #fff;
	color: #0b4a4a;
	display: flex;
	align-items: center;
	justify-content: space-between;
	z-index: 999;
	box-shadow: 0 1px 12px rgba(0, 0, 0, .05);
}
.block_menu-apartment{
	width: 100%;
	color: var(--white-color);
	font-family: "Ubuntu", sans-serif;
	font-weight: 300;
	font-style: normal;
	display: grid;
	grid-template-columns: 360px 1fr;
}
.menu_block-logo {
	display: flex;
	padding: 0 30px;
	background-color: #063E3F;
	border-bottom: var(--beige) 1px solid;
}
.menu_button-container{
	text-align: end;
	padding: 10px 40px;
	background: #FCFAF7;
	border-bottom: var(--beige) 1px solid;
}
/* ===========================================
            MAIN
=========================================== */
.apartment{
	display:grid;
	grid-template-columns:360px 1fr;
}
/* ===========================================
            SIDEBAR
=========================================== */
.sidebar{
	position: fixed;
	top: 90px;
	height: calc(100vh - 90px);
	background: linear-gradient(180deg, #063E3F 0%, #072F31 100%);
	color: #fff;
	padding: 40px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	width: 360px;
}
.sidebar_back{
	opacity:.8;
	margin-bottom:45px;
	transition:.3s;
}
.sidebar_back:hover{
	opacity:1;
}
.sidebar h1{
	font-size:32px;
	line-height:1.15;
	font-weight:500;
	margin-bottom:25px;
}
.best{
	align-self:flex-start;
	background:#F4D7BB;
	color:#244444;
	padding:10px 18px;
	border-radius:15px;
	font-size:12px;
	font-weight:700;
	margin-bottom:30px;
}
.sidebar_info{
	list-style:none;
	display:flex;
	flex-direction:column;
	gap: 19px;
	margin-bottom: 20px;
}
.sidebar_info li{
	display:flex;
	align-items:center;
	gap:15px;
	font-size:17px;
}
.sidebar_info img{
	width:22px;
	height:22px;
}
.price{
	margin-bottom:30px;
}
.price span{
	font-size:24px;
}
.price strong{
	font-size: 36px;
	font-weight: 700;
}
.booking_button{
	padding: 10px;
	width: 100%;
	background: var(--beige);
	color: #133737;
	height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 10px;
	font-weight: 700;
	transition: .3s;
}
.booking_button:hover{
	transform:translateY(-3px);
	box-shadow:0 18px 35px rgba(0,0,0,.25);
}
.rules{
	margin-top:35px;
	display:flex;
	align-items:center;
	gap:14px;
	opacity:.85;
	transition:.3s;
}
.rules:hover{
	opacity:1;
}
.manager{
	margin-top:auto;
	border-top:1px solid var(--line);
	padding-top:35px;
	display:flex;
	gap:18px;
}
.manager img{
	width:68px;
	height:68px;
	border-radius:50%;
	object-fit:cover;
}
.manager h4{
	font-size: 14px;
	margin-bottom: 10px;
}
.manager p{
	font-size: 11px;
	line-height: 1.6;
	opacity: .9;
	margin-bottom: 18px;
}
.manager a{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 170px;
	height: 33px;
	border: 1px solid rgba(255, 255, 255, .4);
	border-radius: 15px;
	transition: .3s;
}
.manager a:hover{
	background:#fff;
	color:var(--green);
}
.sidebar_city{
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	opacity:.18;
	pointer-events:none;
}
/* ===========================================
            CONTENT
=========================================== */
.content{
	width: 70vw;
	padding:20px 0;
	margin: 90px auto;
	margin-bottom: 0 !important;
}
.content h2{
	font-size: 58px;
	font-weight: 500;
	margin-bottom: 15px;
	color: var(--green);
}
/*==========================================
            GALLERY
==========================================*/
.gallery{
	width:100%;
	margin-bottom:70px;
}
/* Главный слайдер */
.gallery_slider{
	position:relative;
	width:100%;
	height:720px;
	border-radius:28px;
	overflow:hidden;
	background:#ddd;
	box-shadow:0 30px 70px rgba(0,0,0,.12);
}
.gallery_slider .swiper-slide{
	width:100%;
	height:100%;
}
.gallery_slider .swiper-slide img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .6s;
}
.gallery_slider:hover img{
	transform:scale(1.03);
}
/* затемнение */
.gallery_slider::after{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(
			        to top,
			        rgba(0,0,0,.35),
			        transparent 45%
	        );
	z-index:2;
	pointer-events:none;
}
/*==========================================
            КНОПКИ
==========================================*/
.gallery_prev,
.gallery_next{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	width:58px;
	height:58px;
	border:none;
	border-radius:50%;
	background:rgba(255,255,255,.18);
	backdrop-filter:blur(10px);
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:.35s;
	z-index:20;
}
.gallery_prev{
	left:30px;
}
.gallery_next{
	right:30px;
}
.gallery_prev:hover,
.gallery_next:hover{
	background:#fff;
	transform:translateY(-50%) scale(1.08);
}
.gallery_prev:hover svg path,
.gallery_next:hover svg path{
	stroke:#0B4A4A;
}
/*==========================================
            СЧЕТЧИК
==========================================*/
.gallery_counter{
	position:absolute;
	right:35px;
	bottom:35px;
	z-index:20;
	background:rgba(0,0,0,.45);
	backdrop-filter:blur(10px);
	color:#fff;
	padding:14px 20px;
	border-radius:40px;
	font-size:18px;
	font-weight:600;
}
.current_slide{
	font-size:28px;
}
.all_slide{
	opacity:.7;
}
/*==========================================
            THUMBS
==========================================*/
.gallery_thumbs{
	margin-top:28px;
	display:grid;
	grid-template-columns:repeat(6,1fr);
	gap:18px;
}
.thumb{
	position:relative;
	height:120px;
	border-radius:18px;
	overflow:hidden;
	cursor:pointer;
	transition:.35s;
}
.thumb img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:.45s;
}
.thumb::after{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(0,0,0,.18);
	transition:.3s;
}
.thumb:hover img{
	transform:scale(1.08);
}
.thumb:hover::after{
	background:transparent;
}
.thumb.active{
	outline:4px solid #0B4A4A;
	outline-offset:4px;
}
.thumb.active::after{
	background:transparent;
}
.advantages{
	display: flex;
}
/* ==========================================
            ADVANTAGES
========================================== */
.advantages {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background: #ffffff;
	border-radius: 28px;
	overflow: hidden;
	margin: 70px 0;
	box-shadow:
			0 15px 40px rgba(0,0,0,.05);
	border: 1px solid #F1F1F1;
}
.advantage {
	position: relative;
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 40px 35px;
	min-height: 170px;
	transition: .35s;
}
/* разделители */
.advantage:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 70px;
	background: #ECECEC;
}
.advantage:hover {
	background: #fafafa;
}
.advantage img {
	width: 54px;
	height: 54px;
	object-fit: contain;
	flex-shrink: 0;
	transition: .35s;
}
.advantage:hover img {
	transform: scale(1.08);
}
.advantage h4 {
	font-size: 19px;
	font-weight: 600;
	line-height: 1.35;
	color: #163535;
	margin-bottom: 8px;
}
.advantage p {
	font-size: 15px;
	line-height: 1.5;
	color: #7D8A8A;
}
/* ==========================================
            1400px
========================================== */
@media (max-width: 1400px) {
	.advantages {
		grid-template-columns: repeat(2, 1fr);
	}
	.advantage:nth-child(2)::after {
		display: none;
	}
	.advantage {
		border-bottom: 1px solid #ECECEC;
	}
	.advantage:nth-child(3),
	.advantage:nth-child(4) {
		border-bottom: none;
	}
}
/* ==========================================
            992px
========================================== */
@media (max-width: 992px) {
	.advantages {
		grid-template-columns: 1fr;
	}
	.advantage {
		padding: 30px;
		min-height: auto;
		border-bottom: 1px solid #ECECEC;
	}
	.advantage::after {
		display: none;
	}
	.advantage:last-child {
		border-bottom: none;
	}
}
/* ==========================================
            576px
========================================== */
@media (max-width: 576px) {
	.advantages {
		border-radius: 20px;
		margin: 40px 0;
	}
	.advantage {
		gap: 18px;
		padding: 24px;
	}
	.advantage img {
		width: 42px;
		height: 42px;
	}
	.advantage h4 {
		font-size: 17px;
	}
	.advantage p {
		font-size: 14px;
	}
}
/*==========================================
            ADAPTIVE
==========================================*/
@media (max-width: 1600px) {
	.advantages {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 768px) {
	.advantages {
		grid-template-columns: 1fr;
		gap: 18px;
		margin: 50px 0;
	}
	.advantage {
		padding: 24px;
	}
	.advantage img {
		width: 40px;
		height: 40px;
	}
	.advantage h4 {
		font-size: 18px;
	}
	.advantage p {
		font-size: 15px;
	}
}
/*==========================================
        АНИМАЦИЯ SWIPER
==========================================*/
.swiper-slide-active img{
	animation:zoomImage .9s ease;
}
@keyframes zoomImage{
	from{
		transform:scale(1.08);
	}
	to{
		transform:scale(1);
	}
}

/*==========================================
        ADAPTIVE
==========================================*/

@media(min-width:1300px){
	.content{
		margin: 90px 0 0 var(--center);
	}

}
@media(max-width:1600px){
	.gallery_slider{
		height:600px;
	}
}

@media(max-width:1400px){
	.gallery_slider{
		height:580px;
	}
}

@media(max-width:1200px){
	.gallery_slider{
		height:500px;
	}
	.gallery_thumbs{
		grid-template-columns:repeat(3,1fr);
	}
}

@media(max-width:768px){
	.gallery_slider{
		height:360px;
		border-radius:18px;
	}
	.gallery_prev,
	.gallery_next{
		width:46px;
		height:46px;
	}
	.gallery_counter{
		right:15px;
		bottom:15px;
		font-size:16px;
		padding:10px 16px;
	}
	.current_slide{
		font-size:22px;
	}
	.gallery_thumbs{
		grid-template-columns:repeat(2,1fr);
		gap:12px;
	}
	.thumb{
		height:95px;
	}
}

@media(max-width:480px){
	.gallery_slider{
		height:270px;
	}
	.gallery_prev{
		left:10px;
	}
	.gallery_next{
		right:10px;
	}
}
.thumb {
	border:3px solid transparent;
}
.thumb.active{
	border-color:#0B4A4A;
}
.thumb img{
	transition:.4s;
}
.thumb:hover img{
	transform:scale(1.08);
}
.swiper-slide{
	overflow:hidden;
}
.swiper-slide img{
	transition:transform .6s ease;
}
.swiper-slide:hover img{
	transform:scale(1.04);
}
/*==========================================
            MOBILE
==========================================*/

@media (max-width:576px) {
	body {
		overflow-x: hidden;
	}
	/*================ HEADER ================*/
	.header {
		height:  82px;
		width:   100%;
		padding: 0;
	}
	.header_logo {
		width: 150px;
	}
	.menu {
		display: none;
	}
	.header_button {
		display: none;
	}
	.block_menu-apartment {
		display: flex;
	}
	.menu_block-logo {
		width:           100%;
		justify-content: center;
		background:      #fcfaf7;
	}
	.text-logo {
		color: #0b4a4a;
	}
	.menu_logo {
		margin: 0;
		height: 80px;
		width:  86px;
	}

	/*================ PAGE ================*/
	.apartment {
		display:        flex;
		flex-direction: column;
		margin-top:     65px;
	}
	/*================ SIDEBAR ================*/
	.sidebar {
		order:         2;
		position:      relative;
		top:           auto;
		width:         100%;
		height:        auto;
		padding:       25px 20px;
		border-radius: 30px 30px 0 0;
	}
	.sidebar h1 {
		font-size:   28px;
		line-height: 1.25;
	}
	.sidebar_back {
		margin-bottom: 25px;
	}
	.sidebar_info {
		gap:    16px;
		margin: 30px 0;
	}
	.sidebar_info li {
		font-size: 15px;
	}
	.price {
		margin: 25px 0;
	}
	.price strong {
		font-size: 36px;
	}
	.booking_button {
		width:     100%;
		height:    56px;
		font-size: 16px;
	}
	.manager {
		margin-top: 35px;
	}
	.manager img {
		width:  60px;
		height: 60px;
	}
	.sidebar_city {
		opacity: .08;
	}
	/*================ CONTENT ================*/
	.content {
		order:   1;
		padding: 0;
		width:   90vw;
	}
	.content h2 {
		display: none;
	}
	/*================ SLIDER ================*/
	.gallery {
		margin: 0;
	}
	.gallery_slider {
		border-radius: 0;
		height:        300px;
		box-shadow:    none;
	}
	.gallery_slider img {
		border-radius: 0;
	}
	.gallery_prev {
		left: 12px;
	}
	.gallery_next {
		right: 12px;
	}
	.gallery_prev,
	.gallery_next {
		width:  42px;
		height: 42px;
	}
	.gallery_counter {
		bottom:    15px;
		right:     15px;
		padding:   8px 14px;
		font-size: 15px;
	}
	/*================ THUMBS ================*/
	.gallery_thumbs {
		display:         flex;
		gap:             10px;
		overflow-x:      auto;
		padding:         18px;
		margin:          0;
		scrollbar-width: none;
	}
	.gallery_thumbs::-webkit-scrollbar {
		display: none;
	}
	.thumb {
		flex:   0 0 95px;
		height: 70px;
	}
	/*================ FILTER ================*/
	.gallery_filter {
		flex-wrap:       nowrap;
		overflow-x:      auto;
		padding:         0 18px 20px;
		margin:          0;
		gap:             10px;
		scrollbar-width: none;
	}
	.gallery_filter::-webkit-scrollbar {
		display: none;
	}
	.gallery_filter button {
		white-space: nowrap;
		height:      42px;
		padding:     0 18px;
		font-size:   14px;
	}
	/*================ ADVANTAGES ================*/
	.advantages {
		display:        flex;
		flex-direction: column;
		border-radius:  20px;
		margin:         25px 18px;
	}
	.advantage {
		padding: 22px;
	}
	.advantage::after {
		display: none !important;
	}
	.advantage:not(:last-child) {
		border-bottom: 1px solid #ececec;
	}
	.advantage img {
		width:  42px;
		height: 42px;
	}
	.advantage h4 {
		font-size: 17px;
	}
	.advantage p {
		font-size: 14px;
	}
	/*================ DESCRIPTION ================*/
	.apartment_description {
		padding: 0 18px;
	}
	.description_grid {
		display: block;
	}
	.description_info {
		margin-top: 30px;
	}
	.info_item {
		margin-bottom: 18px;
	}
	/*================ FACILITIES ================*/
	.facilities {
		padding: 0 18px;
	}
	.facilities_grid {
		display:              grid;
		grid-template-columns:1fr;
	}
	/*================ RULES ================*/
	.rules_section {
		padding: 0 18px;
	}
	.rules_grid {
		display:              grid;
		grid-template-columns:1fr;
		gap:                  15px;
	}
	/*================ MAP ================*/
	.map_section {
		padding: 0 18px;
	}
	.map {
		height:        280px;
		border-radius: 18px;
	}
	/*================ FOOTER ================*/
	footer {
		padding: 40px 20px;
	}
}