:root {
	--pink: #f00084;
	--blue : #0eb2c3;
	--dirty-gold: #a38c76;
	--black: #000;
	--white: #fff;
}
body {
	background-color: #f5f5f5;
}
.card {
	background-color: #fff;
	padding: 1rem;
	border-radius: 0.5rem;
	box-shadow: 0px 0px 20px #f5f5f5;
	transition: 0.3s;
	border-top: 2px solid var(--pink);
	margin-bottom: 30px;
	position: relative;
}
.card:hover {
	box-shadow: 0px 0px 20px #dbdada;
}
.card__inner {
	display: flex;
	flex-flow: row nowrap;
	gap: 0.5rem;
}
.card__thumb {
	display: flex;
	aspect-ratio: 3/4;
	width: 215px;
	border-radius: 0.5rem;
	overflow: hidden;
	position: relative;
	img {
		width: 100%;
		
		height: 100%;
		object-fit: cover;
	}
	.badges {
		position: absolute;
		top: 10px;
		display: flex;
		flex-flow: column;
		gap: 5px;
		.gold {
			font-size: 10px;
			padding: 5px;
			line-height: 1;
			background: var(--dirty-gold);
			color: #fff;
			text-align: center;
		}
		.red {
			font-size: 10px;
			padding: 5px;
			line-height: 1;
			background: #f00;
			color: #fff;
		}
		.green {
			font-size: 10px;
			padding: 5px;
			line-height: 1;
			background: #091;
			color: #fff;
		}
		.purple {
			font-size: 10px;
			padding: 5px;
			line-height: 1;
			background: #609;
			color: #fff;
		}
	}
}
.card__body {
	flex-grow: 1;
	width: 100%;
	display: flex;
	flex-flow: column;
	justify-content: space-between;
	gap:0.5rem;
	.btn {
		padding: 0.5rem;
		background-color: var(--blue);
	}
}

.caption .title {
	display: flex;
	justify-content: space-between;
	font-weight: 500;
	font-size: 22px;
	margin-bottom: 10px;
}
.caption .age {
	font-size: 15px;
	background-color: var(--pink);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	border-radius: 5px;
	padding: 3px 5px;
	font-weight: 300;
	position: absolute;
	right: 0;
	top: 0px;
	border-top-left-radius: 0px;
}

.caption .blocks__list {
	display: flex;
	flex-flow: row nowrap;
	justify-content: space-between;
	gap: 0.2rem;
}
.caption .blocks__list + .blocks__list {
	margin-top: 0.2rem;
}
.blocks__list .block__item {
	flex: 1 1 calc(33.3 - 0.4rem);
	background-color: #eee;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 0.2rem;
	width: 100%;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0.5rem 0;
	border-radius: 0.2rem;
	span {
		text-wrap: nowrap;
	}
	p {
		margin-bottom: 0;
		padding: 0;
		font-weight: 500;
		text-wrap: nowrap;
	}
}

.hero__section {
	overflow: hidden;
}

.hero__section {
	margin-top: 2.5rem;
}

.hero__gallery {
	display: flex;
	flex-flow: row nowrap;
}
.gallery__item {
	flex: 1 1 auto;
	display: flex;
}
.gallery__item-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}



.section__head {
	margin-bottom: 1rem;
	h2 {
		font-weight: 500;
		font-size: 21px;
		text-transform: inherit;
		border-bottom: 1px solid #eee;
	}
}

.attribute__items {
	display: flex;
	flex-flow: column;
	gap: 1rem;
	.item {
		font-size: 18px;
		line-height: 1;
		display: flex;
		flex-flow: row;
		span {
			flex: 1 1 50%;
		}
		.name {
			font-weight: 500;
		}
		.text {
			font-weight: 300;
		}
	}
}

.options__tarifs {
	display: flex;
	flex-flow: row nowrap;
	gap: 1rem;
}
.option__items {
	flex: 1 1 calc(50% - 0.5rem);
	display: flex;
	flex-flow: column;
	gap: 0.5rem;
	
}
.option__items .title {
	font-weight: 500;
	font-size: 18px;
}
.option__list {
	display: flex;
	flex-flow: column;
	gap: 0.2rem;
	.value {
		background-color: #eee;
		display: flex;
		flex-flow: column;
		align-items: center;
		gap: 0.2rem;
		width: 100%;
		align-items: center;
		justify-content: center;
		line-height: 1;
		padding: 0.5rem;
		border-radius: 0.2rem;
		.price {
			font-weight: 500;
		}
	}
}

.btns__category {
	display: flex;
	flex-flow: row wrap;
	gap: 1rem;
	.btn__cat {
		padding: 0.5rem 1.5rem;
		display: flex;
		align-items: center;
		border: 1px solid var(--pink);
		border-radius: 1rem;
		font-size: 16px;
		line-height: 1;
		font-weight: 300;
		color: var(--pink);
		transition: 0.3s;
	}
	.btn__cat:hover {
		background-color: var(--pink);
		color: #fff;
	}
}

.telephone__hidden {
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 1rem;
	transition: 0.3s;
	button {
		width: 100%;
	}
	a {
		font-size: 21px;
		color: #333;
	}
	.hidden__block {
		transition: 0.3s;
		opacity: 0;
	}
	.hidden__block.show {
		opacity: 1;
	}
	
	.btn__group {
		display: flex;
		flex-flow: row nowrap;
		gap: 1rem;
	}
	.hero-chats__item-image {
		img {
			display: block;
			width: 40px;
			height: 40px;
		}
	}
}

.photogallery {
	display: flex;
	flex-flow: column-reverse;
	gap: 0.5rem;
	padding: 1rem;
	border-radius: 1rem;
	background-color: #eee;
}
.photogallery__thumb {
	min-width: 100px;
	overflow: hidden;
	.swiper-slide {
		max-height: 100px;
		.gallery__thumb {
			width: 100%;
			height: 100%;
			height: 100px;
			object-fit: cover;
			border-radius: 1rem;
			border: 1px solid transparent;
		}
	}
	.swiper-slide-thumb-active {
		.gallery__thumb {
			border-color: var(--pink);
		}
	}
}
.photogallery__main {
	overflow: hidden;
	height: 600px;
	.sliderMain {
		height: 100%;
			
		.slide__item {
			display: block;
			width: 100%;
			height: 100%;
			img {
				width: 100%;
				height: 100%;
				object-fit: cover;
				border-radius: 1rem;
			}
		}
	}
	
}
.app-chats__dropdown > .app-chats__list > li {
	flex: 0 0 50%;
	max-width: 50%;
}
.card-row__categories {
	display: flex;
	flex-flow: row wrap;
	gap: 1rem;
}


.card__cat {
	display: flex;
	align-items: center;
	border-radius: 1rem;
	padding: 0.5rem 1.5rem;
	background-color: #fee;
	border-bottom: 2px solid #fee;
	transition: 0.3s;
	color: var(--black);
	gap: 1rem;
	img {
		width: 36px;
		height: 36px;
	}
	span {
		font-weight: bold;
		line-height: 1;
		font-size: 16px;
		
	}
}
.card__cat:hover {
	border-bottom: 2px solid var(--pink);
}

.hero__title {
	display: flex;
	flex-flow: row nowrap;
	justify-content: space-between;
	margin-bottom: 24px;
	align-items: center;
	h1 {
		position: relative;
		text-transform: none;
		font-weight: 400;
	}
	h1:after {
		content: '';
		position: absolute;
		width: 50px;
		bottom: 0;
		left: 0;
		height: 1px;
		background-color: var(--blue);
	}
	.btn__next {
		display: flex;
		align-items: center;
		gap: 0.25rem;
		.notice {
			color: #999;
		}
		a {
			display: flex;
			align-items: center;
			gap: 2px;
			padding-left: 5px;
			color: var(--dirty-gold);
			
			.text {
				
			}
			.chevron {
				width: 24px;
				height: 24px;
				background: #eee;
				display: flex;
				align-items: center;
				justify-content: center;
			}
			svg {
				path {
					fill: #999;
				}
			}
		}
		a:hover {
			background-color: #eee;
			border-bottom: 1px solid transparent;
			.chevron {
				background: #999;
				svg {
					path {
						fill: #000;
					}
				}
			}
		}
	}
}

.card-row__categories {
	overflow: visible;
	margin-bottom: 40px;
}

.card__tree {
	display: flex;
	flex-flow: column;
	gap: 8px;
	.title {
		font-weight: 500;
		font-size: 18px;
	}
	.list {
		display: flex;
		flex-flow: column;
		gap: 4px;
		a {
			color: var(--black);
		}
		.white-list {
			
		}	
		.black-list {
			text-decoration: line-through;
			opacity: 0.5;
		}
	}
}
.header__call {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
}
.header-chats__list {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 1rem;	
} 
.header-chats__item {
	
}
.header-chats__item-image {
	height: 24px;
	img {
		display: block;
		width: 24px;	
	}
}

.hero__description {
	margin-top: 24px;
}

.city__main {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
	background-color: #eeeeee;
	font-size: 74px;
	padding: 2rem;
	border-radius: 2rem;
	margin-bottom: 30px;
}
.city__link {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
	background-color: #eeeeee;
	font-size: 15px;
	padding: 0.5rem;
	border-radius: 2rem;
	margin-bottom: 30px;
}
.heading__home {
	margin-bottom: 2rem;
	font-weight: 800;
}

.connect__row {
	display: flex;
	flex-flow: row nowrap;
	gap: 0.5rem;
	margin-top: 0.25rem;
	
	.btn-primary {
		padding: 13px;
		border-radius: 5px;
		flex-grow: 1;
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.btn-small {
		width: 40px;
		height: 40px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 5px;
		background-color: #2a77ed;
		
	}
}

.tel__shadow {
	flex-grow: 1;
	display: flex;
	flex-flow: row;
	justify-content: space-between;
	align-items: center;
	.phone-number {
		display: none;
		opacity: 0;
		transition: opacity 0.3s ease;
	}
	
	.phone-number.visible {
		display: inline; /* или block */
		opacity: 1;
		font-size: 24px;
	}
	
	.show-phone-btn.cross {
		background: transparent;
		border: none;
		color: #aaa;
		cursor: pointer;
		font-size: 24px;
		max-width: 40px;
		height: 40px;
		padding: 0;
	}
	
	.show-phone-btn.cross::before {
		content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23333' width='24' height='24'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");
		vertical-align: middle;
	}
}

.addres__row {
	margin-top: 0.25rem;
	p {
		padding-bottom: 0;
	}
	a {
		font-size: 18px;
	}
}

.header__cities {
	float: right;
	position: relative;
	.cities__menu {
		display: flex;
		gap: 8px;
		align-items: center;
	}
	
	.cities__menu:hover {
		cursor: pointer;
		text-decoration: underline;
	}
}

.cities__dropdown {
	display: none;
	position: absolute;
	background-color: var(--white);
	border-radius: 10px;
	box-shadow: 0px 0px 10px #eee;
	z-index: 99;
	left: 50%;
	transform: translateX(-50%);
	ul.dropdown__inner {
		padding-top: 10px;
		padding-bottom: 10px;
		li {
			a {
				display: flex;
				line-height: 16px;
				padding: 5px;
				white-space: nowrap;
				width: 100%;
			}
		}
	}
}

/* Стили для модального окна 18+ */
.modal-overlay {
	display: none; 
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	backdrop-filter: blur(100px);
	z-index: 9999;
}

.modal-content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: white;
	padding: 30px;
	border-radius: 10px;
	text-align: center;
	max-width: 500px;
	width: 90%;
}

.btn-enter,
.btn-exit {
	margin-top: 15px;
	padding: 10px 20px;
	font-size: 16px;
	cursor: pointer;
	border: none;
	border-radius: 5px;
	margin: 0 5px;
}

.btn-enter {
	background-color: #28a745;
	color: white;
}

.btn-exit {
	background-color: #dc3545;
	color: white;
}
/* Стили для модального окна 18+ -- КОНЕЦ */


.content__hidden {
	.content__wrapper {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.4s ease-out;
	}
	
	.content__wrapper.expanded {
		max-height: 1000px; /* Достаточно большой лимит, чтобы вместить контент */
		overflow: visible;
	}
	
	.content__shower {
		cursor: pointer;
		padding: 10px;
		user-select: none;
		border-bottom: 1px solid #eaeaea;
		text-align: center;
		transition: 0.3s;
	}
	.content__shower:hover {
		background-color: #eaeaea;
	}
}

.ocf-theme-light .ocf-footer {
	padding: 0;
	.ocf-between {
		flex-flow: column;
		gap: 1rem;
	}
}

.header__nav {
	max-width: 600px;
}