/*
 * CRHD — листинг компаний (макет «Листинг — Уборка квартир», ПК и мобильная). Поверх cr-home4.css, всё под `.crl-*`.
 * Только transform, opacity, grid-template-rows, цвета; hover только при наведении.
 */

.crl-page {
	background: #fff;
}

.crl-page .cab-bc {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
	color: var(--ink3);
}

.crl-page .cab-bc a {
	color: var(--ink2);
}

.crl-page .cab-bc > span:last-child {
	color: var(--ink);
}

.crl-top {
	padding: 20px 0 28px;
}

.crl-page .crl-h1 {
	margin-top: 20px;
	font-size: clamp(30px, 2.4vw + 14px, 48px);
	line-height: 1.12;
	font-weight: 700;
	letter-spacing: -.02em;
	color: var(--ink);
	text-wrap: balance;
}

.crl-subrow {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 24px;
	margin-top: 12px;
}

.crl-page .crl-sub {
	max-width: 720px;
	font-size: clamp(16px, .4vw + 13px, 19px);
	line-height: 1.5;
	color: var(--ink2);
}

.crl-page .crl-toplink {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	font-size: 15px;
	font-weight: 600;
	color: #2f56e0;
}

.crl-sum {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	margin: 22px 0 0;
	padding: 0;
	border: 1px solid var(--line);
	border-radius: 16px;
	overflow: hidden;
}

.crl-sum > div {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 18px;
	box-shadow: 1px 0 0 var(--line), 0 1px 0 var(--line);
}

.crl-sum dt {
	font-size: 13px;
	color: var(--ink2);
}

.crl-page .crl-sum dd {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-size: clamp(22px, .8vw + 16px, 28px);
	font-weight: 700;
	white-space: nowrap;
	letter-spacing: -.01em;
}

.crl-sum dd .crh4-star {
	color: #f5a524;
}

.crl-sum small {
	font-size: 13px;
	color: var(--ink3);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ---------- Каркас ---------- */

.crl-wrapbg {
	background: #f3f6fb;
	padding: 24px 0 56px;
}

.crl-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
}

@media (min-width: 900px) {
	.crl-body {
		grid-template-columns: 280px minmax(0, 1fr);
		gap: 20px;
		align-items: start;
	}
}

/* ---------- Фильтры ---------- */

.crl-side {
	background: #fff;
	border-radius: 16px;
}

.crl-side__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 20px 0;
	font-size: 18px;
}

.crl-side__bar .crl-x {
	display: none;
}

.crl-side__in {
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding: 18px 20px 20px;
}

.crl-side__foot {
	display: none;
}

.crl-page .crl-f {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.crl-page .crl-f legend {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	width: 100%;
	padding: 0;
	margin-bottom: 10px;
	font-size: 15px;
	font-weight: 700;
	color: var(--ink);
	float: left;
}

.crl-f legend + * {
	clear: both;
}

.crl-f legend small {
	font-size: 13px;
	font-weight: 400;
	color: var(--ink2);
}

.crl-page .crl-link {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: #2f56e0;
	cursor: pointer;
}

.crl-link--c {
	justify-content: center;
}

.crl-page .crl-geobtn {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	height: 48px;
	padding: 0 14px;
	border: 1.5px solid var(--line2);
	border-radius: 12px;
	background: #fff;
	font: inherit;
	font-size: 15px;
	color: var(--ink);
	text-align: left;
	cursor: pointer;
	transition: border-color .15s ease;
}

.crl-geobtn span {
	flex: 1;
}

.crl-geobtn .crh4-i:first-child {
	color: var(--ink2);
}

.crl-geobtn__a {
	transform: rotate(-90deg);
	color: var(--ink2);
}

@media (hover: hover) and (pointer: fine) {
	.crl-page .crl-geobtn:hover {
		border-color: var(--blue);
	}
}

.crl-page .crl-hint {
	font-size: 13px;
	color: var(--ink3);
}

.crl-search {
	display: flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 12px;
	background: #fff;
	border: 1.5px solid var(--line2);
	border-radius: 12px;
	color: var(--ink3);
}

.crl-search:focus-within {
	border-color: var(--blue);
}

.crl-page .crl-search input {
	flex: 1;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	font: inherit;
	font-size: 15px;
	color: var(--ink);
}

.crl-page .crl-search input:focus {
	outline: none;
}

/* радио-ссылки услуг */

.crl-page .crl-rad {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-height: 36px;
	padding: 7px 0;
	font-size: 15px;
	line-height: 1.3;
	color: var(--ink);
}

.crl-rad i {
	flex: none;
	width: 20px;
	height: 20px;
	margin-top: -1px;
	border: 1.5px solid var(--line2);
	border-radius: 50%;
	background: #fff;
	transition: border-color .15s ease, background-color .15s ease;
}

.crl-rad.is-on i {
	border: 6px solid var(--blue);
}

.crl-rad[hidden] {
	display: none;
}

@media (hover: hover) and (pointer: fine) {
	.crl-page .crl-rad:hover i {
		border-color: var(--blue);
	}
}

.crl-svcs {
	display: flex;
	flex-direction: column;
}

.crl-grp {
	border-top: 1px solid var(--line);
}

.crl-grp[hidden] {
	display: none;
}

.crl-grp__h {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	min-height: 48px;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	text-align: left;
	cursor: pointer;
}

.crl-grp__h span {
	flex: 1;
}

.crl-grp__h b {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	border-radius: 11px;
	background: var(--blue);
	font-size: 12px;
	color: #fff;
}

.crl-grp__h .crh4-i {
	flex: none;
	transition: transform .2s ease-in-out;
}

.crl-grp__h[aria-expanded="true"] .crh4-i {
	transform: rotate(180deg);
}

.crl-grp__b {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition: grid-template-rows .2s cubic-bezier(.23, 1, .32, 1), visibility 0s linear .2s;
}

.crl-grp.is-open > .crl-grp__b {
	grid-template-rows: 1fr;
	visibility: visible;
	transition: grid-template-rows .2s cubic-bezier(.23, 1, .32, 1), visibility 0s;
}

.crl-grp__b > div {
	min-height: 0;
	overflow: hidden;
	padding-bottom: 0;
}

.crl-grp.is-open .crl-grp__b > div {
	padding-bottom: 8px;
}

.crl-page .crl-seg {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 4px;
	padding: 4px;
	background: var(--soft);
	border-radius: 12px;
}

.crl-page .crl-seg button {
	height: 36px;
	padding: 0 6px;
	border: 0;
	border-radius: 9px;
	background: transparent;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--ink2);
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

.crl-page .crl-seg button[aria-selected="true"],
.crl-page .crl-seg button[aria-pressed="true"] {
	background: #fff;
	color: var(--ink);
	box-shadow: 0 1px 2px rgba(0, 11, 47, .12);
}

.crl-conds {
	display: flex;
	flex-direction: column;
}

.crl-page .crl-cond {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 40px;
	margin: 0;
	font-size: 15px;
	color: var(--ink);
	cursor: pointer;
}

.crl-cond input {
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--blue);
}

.crl-cond span {
	flex: 1;
}

.crl-cond span.has-tip {
	text-decoration: underline dotted var(--ink3);
	text-underline-offset: 4px;
}

.crl-cond em {
	font-size: 13px;
	font-style: normal;
	color: var(--ink3);
}

/* ---------- Панель над списком ---------- */

.crl-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 12px;
	margin-bottom: 12px;
}

.crl-page .crl-bar__c {
	font-size: 15px;
	color: var(--ink);
}

.crl-bar__c b {
	font-weight: 700;
}

.crl-act {
	display: flex;
	flex: 1 1 0;
	flex-wrap: wrap;
	gap: 8px;
	min-width: 0;
}

.crl-page .crl-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 36px;
	padding: 0 12px;
	border: 0;
	border-radius: 18px;
	background: #e8eeff;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: #2f56e0;
	cursor: pointer;
}

.crl-page .crl-sort {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 0 auto;
	font-size: 14px;
	color: var(--ink2);
}

.crl-page .crl-sort select {
	appearance: none;
	-webkit-appearance: none;
	height: 44px;
	margin: 0;
	padding: 0 36px 0 14px;
	border: 1.5px solid var(--line2);
	border-radius: 12px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000b2f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
}

.crl-page .crl-fbtn {
	display: none;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 16px;
	border: 1.5px solid var(--line2);
	border-radius: 12px;
	background: #fff;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	cursor: pointer;
}

.crl-fbtn__n {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	background: var(--blue);
	font-size: 12px;
	color: #fff;
}

.crl-fbtn__n[hidden] {
	display: none;
}

@media (max-width: 899px) {
	.crl-page .crl-fbtn {
		display: inline-flex;
	}
	.crl-sort span {
		display: none;
	}
	.crl-page .crl-sort {
		margin: 0;
		flex: 1;
	}
	.crl-page .crl-sort select {
		width: 100%;
	}
	.crl-bar__c {
		order: 5;
		flex: 1 1 100%;
	}
	.crl-act {
		order: 6;
		flex: 1 1 100%;
	}
}

.crl-page .crl-mapbtn {
	height: 44px;
}

.crl-mapbtn[aria-pressed="true"] {
	border-color: var(--blue);
	color: #2f56e0;
}

/* ---------- Список и карточка ---------- */

.crl-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.crl-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 16px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 0 0 0 var(--blue);
	animation: crl-in .2s ease-out both;
	transition: box-shadow .15s ease;
}

.crl-card.is-cmp {
	box-shadow: 0 0 0 2px var(--blue);
}

.crl-card[hidden] {
	display: none;
}

@keyframes crl-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
}

@media (min-width: 760px) {
	.crl-card {
		padding: 20px 24px 24px;
	}
}

.crl-card__top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px 16px;
}

.crl-page .crl-logo {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 88px;
	border-radius: 14px;
	background: #fff;
	box-shadow: inset 0 0 0 1px var(--line);
	overflow: hidden;
	font-size: 28px;
	font-weight: 700;
	color: var(--blue);
}

.crl-logo img {
	width: 88%;
	height: 88%;
	object-fit: contain;
}

@media (min-width: 760px) {
	.crl-page .crl-logo {
		width: 120px;
		height: 120px;
		border-radius: 16px;
	}
}

.crl-card__h {
	flex: 1 1 150px;
	min-width: 0;
}

.crl-page .crl-card__h h3 {
	font-size: 20px;
	line-height: 1.3;
	font-weight: 700;
	text-wrap: pretty;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.crl-page .crl-card__h h3 a {
	color: var(--ink);
}

.crl-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	margin-top: 8px;
	font-size: 15px;
	line-height: 1.4;
	color: var(--ink2);
}

.crl-page .crl-site {
	color: #2f56e0;
	text-decoration: underline;
	text-decoration-color: #c7d3ff;
	text-underline-offset: 3px;
	overflow-wrap: anywhere;
}

.crl-score {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
	margin-left: auto;
	text-align: right;
}

.crl-score__n {
	display: flex;
	align-items: baseline;
	gap: 6px;
}

.crl-score__n b {
	font-size: 28px;
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.crl-score__n span {
	font-size: 13px;
	color: var(--ink2);
}

.crl-score__n a {
	display: inline-flex;
	align-self: center;
	color: var(--ink3);
}

.crl-score__m {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	justify-content: flex-end;
}

.crl-lv {
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 0 10px;
	border-radius: 12px;
	background: #e8eeff;
	font-size: 13px;
	font-weight: 600;
	color: #2f56e0;
}

.crl-rv {
	font-size: 13px;
	color: var(--ink2);
}

@media (max-width: 759px) {
	.crl-score {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
		padding: 12px 14px;
		border-radius: 14px;
		background: #f3f6fb;
		text-align: left;
	}
}

.crl-srcs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.crl-src {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 32px;
	padding: 0 10px 0 8px;
	border-radius: 10px;
	background: var(--soft);
	font-size: 14px;
}

.crl-src b {
	font-weight: 700;
}

.crl-src i {
	font-style: normal;
	color: var(--ink2);
	font-variant-numeric: tabular-nums;
}

.crl-nosrc {
	font-size: 13px;
	color: var(--ink2);
}

.crl-card__mid {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

@media (min-width: 900px) {
	.crl-card__mid {
		flex-direction: row;
		align-items: flex-start;
		justify-content: space-between;
	}
}

.crl-card__l {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
}

.crl-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.crl-tag {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 32px;
	padding: 0 12px;
	border: 1px solid var(--line2);
	border-radius: 8px;
	font-size: 14px;
	color: var(--ink);
}

.crl-tag::before {
	content: "";
	width: 10px;
	height: 6px;
	margin-top: -3px;
	border-left: 1.6px solid var(--ink);
	border-bottom: 1.6px solid var(--ink);
	transform: rotate(-45deg);
}

.crl-tag:empty {
	display: none;
}

.crl-page .crl-desc {
	font-size: 15px;
	line-height: 1.5;
	color: var(--ink2);
	text-wrap: pretty;
}

.crl-page .crl-promo {
	font-size: 15px;
	line-height: 1.4;
	color: var(--ink);
}

.crl-prices {
	flex: none;
	width: 100%;
	padding: 8px 16px;
	border-radius: 14px;
	background: #f3f6fb;
}

@media (min-width: 900px) {
	.crl-prices {
		width: 300px;
	}
}

.crl-prices > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid #e1e7f2;
	font-size: 14px;
}

.crl-prices > div:last-child {
	border-bottom: 0;
}

.crl-prices span {
	color: var(--ink2);
}

.crl-prices b {
	font-weight: 700;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.crl-prices .is-main {
	font-size: 16px;
}

.crl-prices .is-main span {
	color: var(--ink);
	font-weight: 700;
}

.crl-card__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 12px;
	padding-top: 16px;
	border-top: 1px solid var(--line);
}

.crl-card__act {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.crl-page .crl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 44px;
	padding: 0 18px;
	border: 1.5px solid var(--line2);
	border-radius: 12px;
	background: #fff;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, transform .12s ease-out;
}

.crl-page .crl-btn:active {
	transform: scale(.97);
}

.crl-page .crl-btn--main {
	border-color: var(--blue);
	background: var(--blue);
	color: #fff;
}

.crl-tel em {
	font-style: normal;
	font-weight: 600;
	opacity: .9;
}

@media (hover: hover) and (pointer: fine) {
	.crl-page .crl-btn:hover {
		border-color: var(--blue);
	}
	.crl-page .crl-btn--main:hover {
		background: #3a62f0;
		color: #fff;
	}
}

.crl-page .crl-msg {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1.5px solid var(--line2);
	border-radius: 12px;
	background: #fff;
	color: var(--ink);
	transition: border-color .15s ease;
}

.crl-msg svg {
	width: 22px;
	height: 22px;
}

.crl-msg--tg { color: #229ed9; }
.crl-msg--wa { color: #25d366; }
.crl-msg--max { color: #6b4cff; }
.crl-msg--vk { color: #0077ff; }

@media (hover: hover) and (pointer: fine) {
	.crl-page .crl-msg:hover {
		border-color: var(--blue);
	}
}

.crl-page .crl-cmp {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 0 0 0 auto;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	cursor: pointer;
}

.crl-cmp input {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--blue);
}

.crl-more .crh4-i {
	transition: transform .2s ease-in-out;
}

.crl-more[aria-expanded="true"] .crh4-i {
	transform: rotate(90deg);
}

@media (max-width: 759px) {
	.crl-card__act {
		flex: 1 1 100%;
	}
	.crl-page .crl-tel {
		flex: 1 1 100%;
	}
	.crl-page .crl-more {
		flex: 1;
	}
}

.crl-det {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	margin-top: -14px;
	transition: grid-template-rows .2s cubic-bezier(.23, 1, .32, 1), visibility 0s linear .2s;
}

.crl-det.is-open {
	grid-template-rows: 1fr;
	visibility: visible;
	margin-top: 0;
	transition: grid-template-rows .2s cubic-bezier(.23, 1, .32, 1), visibility 0s;
}

.crl-det > div {
	min-height: 0;
	overflow: hidden;
}

.crl-page .crl-det dl {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px 24px;
	margin: 0;
	padding-top: 4px;
}

.crl-det dt {
	font-size: 13px;
	color: var(--ink3);
}

.crl-page .crl-det dd {
	margin: 2px 0 0;
	font-size: 15px;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.crl-empty {
	padding: 40px 20px;
	border-radius: 16px;
	background: #fff;
	text-align: center;
}

.crl-empty[hidden] {
	display: none;
}

.crl-page .crl-empty h3 {
	font-size: 20px;
	font-weight: 700;
}

.crl-page .crl-empty p {
	margin: 8px 0 20px;
	color: var(--ink2);
}

.crl-more-w {
	margin-top: 20px;
	text-align: center;
}

.crl-more-w[hidden] {
	display: none;
}

.crl-more-w p {
	margin-top: 10px;
	font-size: 14px;
	color: var(--ink3);
}

/* ---------- Режим «На карте» ---------- */

.crl-split {
	display: block;
}

.crl-minis,
.crl-map {
	display: none;
}

.crl-split.is-map {
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
	gap: 12px;
	align-items: start;
}

.crl-split.is-map .crl-list {
	display: none;
}

.crl-split.is-map .crl-minis {
	display: flex;
	flex-direction: column;
	max-height: 640px;
	overflow-y: auto;
	background: #fff;
	border-radius: 16px;
}

.crl-split.is-map .crl-map {
	display: block;
	position: relative;
	height: 640px;
	border-radius: 16px;
	overflow: hidden;
	background: #e9eef7;
}

.crl-minis[hidden],
.crl-map[hidden] {
	display: none !important;
}

.crl-page .crl-mini {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px;
	border-bottom: 1px solid var(--line);
	color: var(--ink);
}

.crl-mini[hidden] {
	display: none;
}

.crl-mini__l {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 10px;
	box-shadow: inset 0 0 0 1px var(--line);
	overflow: hidden;
	font-style: normal;
	font-weight: 700;
	color: var(--blue);
}

.crl-mini__l img {
	width: 88%;
	height: 88%;
	object-fit: contain;
}

.crl-mini__t {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.crl-mini__t b,
.crl-mini__t small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.crl-mini__t small,
.crl-mini__s small {
	font-size: 12px;
	color: var(--ink2);
}

.crl-mini__s {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	font-size: 16px;
}

.crl-map__note {
	position: absolute;
	left: 12px;
	top: 12px;
	right: 64px;
	z-index: 2;
	padding: 10px 14px;
	border-radius: 12px;
	background: #fff;
	font-size: 13px;
	line-height: 1.4;
	box-shadow: 0 2px 10px rgba(0, 11, 47, .1);
}

.crl-map__canvas {
	position: absolute;
	inset: 0;
}

@media (max-width: 759px) {
	.crl-split.is-map {
		display: block;
	}
	.crl-split.is-map .crl-minis {
		display: none;
	}
	.crl-split.is-map .crl-map {
		height: calc(100vh - 260px);
		min-height: 360px;
	}
}

/* ---------- Ссылки под списком ---------- */

.crl-links {
	padding-top: 40px;
	padding-bottom: 8px;
}

.crl-links__g {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
}

@media (min-width: 900px) {
	.crl-links__g {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 40px;
	}
}

.crl-page .crl-links h2 {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}

.crl-links__c {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

.crl-links__c--c {
	justify-content: center;
	margin: 0 0 20px;
}

.crl-page .crl-lk {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 14px;
	border: 1px solid var(--line2);
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
	font-weight: 600;
	color: var(--ink);
	transition: border-color .15s ease;
}

@media (hover: hover) and (pointer: fine) {
	.crl-page .crl-lk:hover {
		border-color: var(--blue);
	}
}

/* ---------- SEO-текст ---------- */

.crl-seo {
	padding-top: 48px;
	padding-bottom: 56px;
}

.crl-seo__t {
	position: relative;
	max-width: 72ch;
	max-height: 230px;
	overflow: hidden;
	font-size: 16px;
	line-height: 1.6;
	color: var(--ink2);
}

.crl-seo__t.is-open {
	max-height: none;
}

.crl-seo__t:not(.is-open)::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 80px;
	background: linear-gradient(rgba(255, 255, 255, 0), #fff);
}

.crl-page .crl-seo__t h2 {
	margin-bottom: 12px;
	font-size: clamp(22px, .8vw + 16px, 28px);
	color: var(--ink);
}

.crl-seo__b > * + * {
	margin-top: 12px;
}

.crl-page .crl-seo__t ul {
	padding-left: 20px;
	list-style: disc;
}

.crl-page .crl-seo__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 44px;
	margin-top: 8px;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: #2f56e0;
	cursor: pointer;
}

.crl-seo__btn[aria-expanded="true"] .crh4-i {
	transform: rotate(180deg);
}

/* ---------- Сравнение ---------- */

.crl-cmpbar {
	position: fixed;
	left: 50%;
	bottom: 16px;
	z-index: 60;
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: calc(100% - 24px);
	padding: 8px 8px 8px 20px;
	border-radius: 16px;
	background: #000b2f;
	color: #fff;
	box-shadow: 0 8px 32px rgba(0, 11, 47, .3);
	transform: translateX(-50%);
}

.crl-cmpbar[hidden] {
	display: none;
}

.crl-cmpbar__t {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 15px;
	font-weight: 600;
}

.crl-page .crl-cmpbar button {
	height: 44px;
	padding: 0 14px;
	border: 0;
	border-radius: 12px;
	background: none;
	font: inherit;
	font-size: 15px;
	color: #fff;
	cursor: pointer;
}

.crl-page .crl-cmpbar .crl-btn--main {
	background: var(--blue);
	font-weight: 600;
}

.crl-cmpbar button:disabled {
	opacity: .5;
	cursor: default;
}

@media (max-width: 599px) {
	.crl-cmpbar__t {
		display: none;
	}
}

.crl-modal {
	position: fixed;
	inset: 0;
	z-index: 80;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(0, 11, 47, .55);
}

.crl-modal[hidden] {
	display: none;
}

.crl-dlg {
	display: flex;
	flex-direction: column;
	width: min(1000px, 100%);
	max-height: 100%;
	background: #fff;
	border-radius: 24px;
	overflow: hidden;
}

.crl-dlg--geo {
	width: min(720px, 100%);
}

@media (max-width: 759px) {
	.crl-modal {
		padding: 0;
	}
	.crl-dlg {
		width: 100%;
		height: 100%;
		border-radius: 0;
	}
}

.crl-dlg__h {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 20px 24px 12px;
	font-size: 22px;
	font-weight: 700;
}

.crl-dlg__s {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 0 24px 12px;
}

.crl-dlg__b {
	flex: 1;
	overflow: auto;
	padding: 4px 24px 16px;
}

.crl-dlg__f {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 24px;
	border-top: 1px solid var(--line);
}

.crl-geo__hint {
	flex: 1;
	min-width: 0;
	font-size: 14px;
	color: var(--ink2);
}

.crl-gg {
	margin-top: 14px;
}

.crl-gg__h {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink2);
}

.crl-gg__h i {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--c, var(--blue));
}

.crl-gg__l {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 0 16px;
	margin-top: 6px;
}

.crl-page .crl-gi {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 40px;
	margin: 0;
	font-size: 15px;
	cursor: pointer;
}

.crl-gi[hidden],
.crl-gg[hidden] {
	display: none;
}

.crl-gi input {
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--blue);
}

.crl-geo__pane[hidden],
.crl-geo__none[hidden] {
	display: none;
}

.crl-geo__none {
	padding: 24px 0;
	color: var(--ink2);
}

.crl-x {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ink);
	cursor: pointer;
}

.crl-dlg__cmp {
	display: flex;
	align-items: center;
	gap: 12px;
}

.crl-sw {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
}

.crl-sw input {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--blue);
}

.crl-tbl {
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
}

.crl-tbl th,
.crl-tbl td {
	padding: 12px 10px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: top;
	font-size: 15px;
}

.crl-tbl thead th {
	font-size: 16px;
}

.crl-tbl th:first-child {
	width: 150px;
	color: var(--ink2);
	font-weight: 500;
}

.crl-tbl .is-best {
	background: #eef0f4;
	font-weight: 700;
}

.crl-tbl .is-add {
	color: var(--ink3);
	font-weight: 400;
}

.crl-note {
	margin-top: 12px;
	font-size: 13px;
	color: var(--ink2);
}

/* ---------- Мобильная шторка фильтров ---------- */

@media (max-width: 899px) {
	.crl-side {
		position: fixed;
		inset: 0;
		z-index: 70;
		display: flex;
		flex-direction: column;
		border-radius: 0;
		transform: translateY(100%);
		visibility: hidden;
		transition: transform .25s cubic-bezier(.23, 1, .32, 1), visibility 0s linear .25s;
	}
	.crl-side.is-open {
		transform: none;
		visibility: visible;
		transition: transform .25s cubic-bezier(.23, 1, .32, 1), visibility 0s;
	}
	.crl-side:not(.is-open) * {
		visibility: hidden !important;
	}
	.crl-side__bar {
		padding: 8px 8px 8px 20px;
		border-bottom: 1px solid var(--line);
	}
	.crl-side__bar .crl-x {
		display: flex;
	}
	.crl-side__bar .crl-link {
		margin-left: auto;
		margin-right: 4px;
	}
	.crl-side__in {
		flex: 1;
		overflow-y: auto;
		padding-bottom: 24px;
	}
	.crl-side__foot {
		display: flex;
		flex-direction: column;
		gap: 4px;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		border-top: 1px solid var(--line);
		background: #fff;
	}
	.crl-page .crl-go {
		width: 100%;
		height: 52px;
		border: 0;
		border-radius: 12px;
		background: var(--blue);
		font: inherit;
		font-size: 16px;
		font-weight: 600;
		color: #fff;
		cursor: pointer;
	}
}

@media (prefers-reduced-motion: reduce) {
	.crl-card,
	.crl-side,
	.crl-grp__b,
	.crl-det {
		animation: none;
		transition: none;
	}
}

/* ---------- Метки и кнопка области ---------- */

.crl-pin {
	position: relative;
	min-width: 44px;
	height: 32px;
	padding: 0 12px;
	border-radius: 16px;
	background: #000b2f;
	font-size: 15px;
	font-weight: 700;
	line-height: 32px;
	text-align: center;
	color: #fff;
	box-shadow: 0 2px 8px rgba(0, 11, 47, .3);
}

.crl-pin::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -4px;
	width: 8px;
	height: 8px;
	background: #000b2f;
	transform: translateX(-50%) rotate(45deg);
}

.crl-page .crl-areabtn {
	position: absolute;
	left: 50%;
	bottom: 16px;
	z-index: 3;
	transform: translateX(-50%);
	box-shadow: 0 4px 16px rgba(0, 11, 47, .2);
}

.crl-areabtn[hidden] {
	display: none;
}

/* ---------- Правки после проверки (2) ---------- */

.crl-page .crl-grp__h {
	min-height: 48px;
	padding: 12px 0;
	line-height: 1.3;
}

.crl-page .crl-seg--rev {
	grid-template-columns: 1.7fr 1fr 1fr 1fr;
}

.crl-page .crl-seg--rev button {
	white-space: nowrap;
}

.crl-page .crl-dlg__cmp .crl-x {
	font-size: 28px;
	line-height: 1;
}

/* ---------- Услуги: как в прежнем листинге (группа — пункт со стрелкой, внутри отступ) ---------- */

.crl-grp {
	border-top: 0;
}

.crl-page .crl-grp__h {
	display: flex;
	align-items: center;
	gap: 4px;
	min-height: 0;
	padding: 0;
}

.crl-grp__h .crl-rad {
	flex: 1;
	min-width: 0;
	font-weight: 600;
}

.crl-page .crl-grp__tg {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-right: -10px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ink2);
	cursor: pointer;
}

.crl-grp__tg .crh4-i {
	transition: transform .2s ease-in-out;
}

.crl-grp__tg[aria-expanded="true"] .crh4-i {
	transform: rotate(180deg);
}

.crl-page .crl-rad--leaf {
	padding-left: 30px;
	font-weight: 400;
}

.crl-grp--leaf .crl-rad {
	font-weight: 600;
}

.crl-mini.is-hl {
	background: #eef2ff;
}

.crl-page .crl-mini.is-hl .crl-mini__t b {
	color: #2f56e0;
}

/* Цветные значки мессенджеров */
.crl-page .crl-msg--tg { color: #229ed9; }
.crl-page .crl-msg--wa { color: #25d366; }
.crl-page .crl-msg--max { color: #6b4cff; }
.crl-page .crl-msg--vk { color: #0077ff; }

/* Подсказка у значка «i» */
.crl-score__n .crl-info {
	position: relative;
	display: inline-flex;
	align-self: center;
	width: 24px;
	height: 24px;
	align-items: center;
	justify-content: center;
	margin: -4px;
	color: var(--ink3);
	cursor: help;
}

.crl-score__n .crl-info:focus-visible {
	outline: 2px solid var(--blue);
	border-radius: 50%;
}

.crl-page .crl-tip {
	position: absolute;
	right: -8px;
	top: calc(100% + 8px);
	z-index: 20;
	width: 260px;
	padding: 12px 14px;
	border-radius: 12px;
	background: #000b2f;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;
	color: #fff;
	text-align: left;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity .15s ease, transform .15s ease, visibility 0s linear .15s;
}

.crl-page .crl-tip a {
	display: inline-block;
	margin-top: 4px;
	color: #b9c8ff;
	text-decoration: underline;
}

.crl-info:hover .crl-tip,
.crl-info:focus .crl-tip,
.crl-info.is-open .crl-tip {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity .15s ease, transform .15s ease, visibility 0s;
}

/* ---------- Услуги: группы как в макете ---------- */

.crl-grp {
	border-top: 1px solid var(--line);
}

.crl-page .crl-grp__hb {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	height: auto;
	min-height: 48px;
	margin: 0;
	padding: 12px 0;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	text-align: left;
}

.crl-grp__hb span {
	flex: 1;
}

.crl-grp__hb b {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	border-radius: 11px;
	background: var(--blue);
	font-size: 12px;
	color: #fff;
}

.crl-page .crl-subh {
	padding: 8px 0 2px;
	font-size: 12px;
	font-weight: 600;
	color: var(--ink2);
}

.crl-subh[hidden] {
	display: none;
}

.crl-page .crl-grp .crl-rad {
	padding-left: 2px;
	font-weight: 400;
}

/* Ветки метро в окне места: свёрнуты, раскрываются по нажатию */
.crl-page .crl-gg__h {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 8px 0;
	border: 0;
	border-bottom: 1px solid var(--line);
	background: none;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	text-align: left;
	cursor: pointer;
}

.crl-gg__h span {
	flex: 1;
}

.crl-gg__h small {
	font-size: 13px;
	font-weight: 400;
	color: var(--ink3);
}

.crl-gg__h .crh4-i {
	transition: transform .2s ease-in-out;
}

.crl-gg__h[aria-expanded="true"] .crh4-i {
	transform: rotate(180deg);
}

.crl-gg--line {
	margin-top: 0;
}

.crl-gg--line .crl-gg__b {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition: grid-template-rows .2s cubic-bezier(.23, 1, .32, 1), visibility 0s linear .2s;
}

.crl-gg--line.is-open .crl-gg__b {
	grid-template-rows: 1fr;
	visibility: visible;
	transition: grid-template-rows .2s cubic-bezier(.23, 1, .32, 1), visibility 0s;
}

.crl-gg--line .crl-gg__b > div {
	min-height: 0;
	overflow: hidden;
}

.crl-gg--line.is-open .crl-gg__l {
	padding: 4px 0 10px;
}
