/* ------------------------------------------------------------------
   type-place.css — обзор платного водоёма и рыболовной базы.

   Это единственный потребительский тип на сайте. Остальные материалы
   человек читает, чтобы узнать норму или срок; обзор он читает, чтобы
   решить — ехать в субботу или нет. Поэтому здесь два отступления от
   общей справочной графики:

   1. Тёплый акцент --warm. Он держит рамку блоков (верхняя линия
	  вердикта, номер раздела, «что взять»), но никогда не красит сам
	  балл. Тёплый — это жанр материала, а не оценка водоёма: иначе
	  «3.1 за цену» выглядела бы предупреждением.

   2. Шапки таблиц перекрашены из --ink в --paper-3. Чёрная шапка на
	  прайсе платника читается как бланк. Меняется только цвет: обе
	  раскладки таблиц (.mr-t--stack и .mr-t--wide) остаются как есть.

   Оценки рисуются шкалой --sc-2…--sc-5. Статусные --st-* здесь
   запрещены: янтарный на «3.1 за цену» читается как нарушение, хотя
   означает всего лишь «дороговато».
   ------------------------------------------------------------------ */

/* ---------------------------------------------------------------- Тон типа */

/* Шапка обзора живёт над сеткой, на всю ширину контейнера, поэтому
   отбивку от хлебных крошек задаёт себе сама. */
.mr-place .mr-article__head {
	padding-top: 1.4rem;
}


/* Номер раздела и линейка лида — в тёплом, чтобы обзор с первого экрана
   отличался от правовой справки, набранной теми же деталями. */
.mr-place .mr-article__body h2::before {
	background: var(--warm-soft);
	color: var(--warm);
}

.mr-place .mr-article__lead {
	border-left-color: var(--warm-line);
}

/* ---------------------------------------------------------------- Вердикт */

/* Блок стоит сразу под заголовком, выше подписи «обновлено» и выше
   ключевых цифр: на телефоне читатель должен увидеть балл, не
   прокручивая. Всё, что можно отложить, отложено ниже. */
.mr-place-verdict {
	margin: 1.2rem 0 0;
	border: 1px solid var(--line);
	border-top: 3px solid var(--warm);
	border-radius: var(--r);
	background: var(--paper);
	overflow: hidden;
}

.mr-place-verdict__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.3rem 0.8rem;
	padding: 0.75rem 1.1rem;
	border-bottom: 1px solid var(--warm-line);
	background: var(--warm-soft);
}

.mr-place-verdict__title {
	margin: 0;
	font-size: 0.95rem;
	letter-spacing: -0.01em;
	color: var(--ink);
}

.mr-place-verdict__sub {
	margin: 0;
	font-family: var(--mono);
	font-size: 0.66rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--warm);
}

.mr-place-verdict__body {
	display: grid;
	grid-template-columns: minmax(0, 16rem) minmax(0, 1fr);
}

.mr-place-verdict__foot {
	margin: 0;
	padding: 0.7rem 1.1rem;
	border-top: 1px solid var(--line);
	background: var(--paper-2);
	font-size: 0.8rem;
	line-height: 1.5;
	color: var(--ink-3);
}

/* ---- Итоговый балл ---- */

.mr-place-score {
	padding: 1rem 1.1rem 1.15rem;
	border-right: 1px solid var(--line);
}

.mr-place-score__label {
	margin: 0 0 0.55rem;
	font-family: var(--mono);
	font-size: 0.63rem;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: var(--ink-3);
}

.mr-place-score__num {
	display: flex;
	align-items: baseline;
	gap: 0.4rem;
	margin: 0 0 0.7rem;
	font-size: clamp(2.6rem, 9vw, 3.4rem);
	font-weight: 750;
	line-height: 0.95;
	letter-spacing: -0.045em;
	font-variant-numeric: tabular-nums;
	color: var(--ink);
}

.mr-place-score__max {
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0;
	color: var(--ink-4);
	white-space: nowrap;
}

/* Словесная формула набрана чернилами, а не тёплым: цвет здесь означал
   бы оценку, а оценку уже сказали цифра и длина шкалы. */
.mr-place-score__word {
	margin: 0.75rem 0 0;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.018em;
	color: var(--ink);
}

.mr-place-score__note {
	margin: 0.35rem 0 0;
	font-size: 0.85rem;
	line-height: 1.5;
	color: var(--ink-3);
}

/* ---- Критерии ---- */

.mr-place-crit {
	list-style: none;
	margin: 0;
	padding: 0.55rem 1.1rem 0.75rem;
}

.mr-place-crit__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 8.5rem 2.4rem;
	gap: 0.9rem;
	align-items: center;
	margin: 0;
	padding: 0.5rem 0;
}

.mr-place-crit__row + .mr-place-crit__row {
	border-top: 1px dashed var(--line);
}

.mr-place-crit__name {
	min-width: 0;
	font-size: 0.92rem;
	line-height: 1.35;
	color: var(--ink-2);
}

.mr-place-crit__note {
	display: block;
	margin-top: 0.15rem;
	font-family: var(--mono);
	font-style: normal;
	font-size: 0.63rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.4;
	color: var(--ink-4);
}

.mr-place-crit__val {
	font-family: var(--mono);
	font-size: 0.92rem;
	font-weight: 700;
	text-align: right;
	font-variant-numeric: tabular-nums;
	color: var(--ink);
}

/* ---------------------------------------------------------------- Шкала */

/* Заливка одной длины, деления сверху. Пять сегментов нужны, чтобы «из
   пяти» читалось без подписи, но дробная часть должна быть видна —
   поэтому не пять отдельных клеток, а полоса с насечками. */
.mr-place-bar {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
	height: 0.7rem;
	border-radius: 2px;
	background: var(--sc-track);
	overflow: hidden;
}

.mr-place-bar__fill {
	display: block;
	height: 100%;
	background: var(--sc-3);
}

.mr-place-bar::after {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		to right,
		transparent 0 calc(20% - 2px),
		var(--paper) calc(20% - 2px) 20%
	);
}

/* Насыщенность повторяет длину: балл виден и боковым зрением. Самый
   светлый --sc-1 не используется — на дорожке --sc-track он почти
   неразличим, и «двойка» выглядела бы пустой полосой. */
.mr-place-bar--sc2 .mr-place-bar__fill { background: var(--sc-2); }
.mr-place-bar--sc3 .mr-place-bar__fill { background: var(--sc-3); }
.mr-place-bar--sc4 .mr-place-bar__fill { background: var(--sc-4); }
.mr-place-bar--sc5 .mr-place-bar__fill { background: var(--sc-5); }

.mr-place-bar--lg {
	height: 0.9rem;
}

/* ---------------------------------------------------------------- Коротко */

/* Ключевые цифры: цена, часы, дорога, норма. Собираются из таблицы
   «параметр — значение» в тексте, поэтому набор строк у каждой статьи
   свой. Сетка на четыре колонки, а не фиксированная раскладка. */
.mr-place-facts {
	margin: 1.2rem 0 0;
	border: 1px solid var(--line);
	border-top: 3px solid var(--ink);
	border-radius: var(--r);
	background: var(--paper);
	overflow: hidden;
}

.mr-place-facts__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.3rem 0.8rem;
	padding: 0.75rem 1.1rem;
	border-bottom: 1px solid var(--line);
	background: var(--paper-2);
}

.mr-place-facts__title {
	margin: 0;
	font-size: 0.95rem;
	letter-spacing: -0.01em;
	color: var(--ink);
}

.mr-place-facts__sub {
	margin: 0;
	font-family: var(--mono);
	font-size: 0.66rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink-3);
}

/* Число ячеек заранее неизвестно — оно зависит от таблицы в статье.
   Отрицательные поля прячут разделители крайних ячеек под рамку блока,
   иначе справа и снизу получается двойная линия. */
.mr-place-facts__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0 -1px -1px 0;
	padding: 0;
}

.mr-place-fact {
	position: relative;
	min-width: 0;
	margin: 0;
	padding: 0.9rem 1.1rem 1rem 1.35rem;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

/* Тёплая засечка слева вместо цветной плашки: она отделяет карточку от
   соседней, но ничего не утверждает про содержимое. */
.mr-place-fact::before {
	content: "";
	position: absolute;
	left: 1.1rem;
	top: 1rem;
	bottom: 1.1rem;
	width: 3px;
	border-radius: 2px;
	background: var(--warm);
}

.mr-place-fact__label {
	display: block;
	margin-bottom: 0.4rem;
	font-family: var(--mono);
	font-size: 0.63rem;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	line-height: 1.4;
	color: var(--ink-3);
}

.mr-place-fact__value {
	display: block;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	color: var(--ink);
}

.mr-place-fact__value small {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0;
	color: var(--ink-2);
}

.mr-place-fact__note {
	display: block;
	margin-top: 0.45rem;
	font-size: 0.82rem;
	line-height: 1.45;
	color: var(--ink-3);
}

/* ---------------------------------------------------------------- Фото */

/* На обзоре снимок берега — довод, а не иллюстрация: по нему решают,
   ехать ли. Поэтому шире текста и без рамки-«украшения». */
.mr-place-hero {
	margin: 0 0 1.6rem;
}

.mr-place-hero .mr-media {
	border-radius: var(--r);
	background: var(--paper-3);
}

/* WordPress отдаёт картинки с атрибутами width и height, а в base.css
   селектор img[width][height]{height:auto} специфичнее, чем
   .mr-media img{height:100%} — без этой строки снимок не заполняет кадр
   и под ним остаётся серая полоса. Файл типа подключается последним,
   поэтому при равной специфичности выигрывает он. */
.mr-place .mr-media img {
	height: 100%;
}

.mr-place-hero figcaption {
	margin-top: 0.55rem;
	padding-left: 0.7rem;
	border-left: 2px solid var(--warm-line);
	font-size: 0.84rem;
	line-height: 1.5;
	color: var(--ink-3);
}

/* Галерея. Класс проставляется разбором контента: если в абзаце или
   блоке лежат только картинки — это галерея, а не иллюстрация к тексту. */
.mr-place .mr-article__body .mr-place-gal,
.mr-place .mr-article__body .gallery,
.mr-place .mr-article__body .wp-block-gallery,
.mr-place .mr-place-gal {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
	gap: 0.6rem;
	margin: 0 0 1.6rem;
	padding: 0;
	list-style: none;
}

.mr-place .mr-article__body .mr-place-gal > *,
.mr-place .mr-article__body .gallery > *,
.mr-place .mr-article__body .wp-block-gallery > *,
.mr-place .mr-place-gal > * {
	min-width: 0;
	margin: 0;
	padding: 0;
}

.mr-place .mr-article__body .mr-place-gal > *::before,
.mr-place .mr-place-gal > *::before {
	content: none;
}

.mr-place .mr-place-gal img,
.mr-place .mr-article__body .mr-place-gal img,
.mr-place .mr-article__body .gallery img,
.mr-place .mr-article__body .wp-block-gallery img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--r-sm);
}

.mr-place .mr-place-gal figcaption,
.mr-place .mr-article__body .mr-place-gal figcaption {
	margin-top: 0.35rem;
	padding-left: 0.5rem;
	border-left: 2px solid var(--line);
	font-size: 0.76rem;
	line-height: 1.4;
	color: var(--ink-3);
}

/* ------------------------------------------------- Практические списки */

/* «Кому стоит ехать» и «кому не стоит» — то же решение, что и вердикт,
   только словами. Зелёный и красный здесь были бы неправдой: «дорого»
   не запрет. Поэтому доводы «за» держит тёплая линейка, доводы «против»
   — нейтральная серая. */
.mr-place .mr-article__body .mr-place-take {
	margin: 0 0 1.4rem;
	padding: 0.85rem 1.1rem;
	border: 1px solid var(--line);
	border-left: 4px solid var(--ink-4);
	border-radius: var(--r-sm);
	background: var(--paper-2);
}

.mr-place .mr-article__body .mr-place-take--pro {
	border-color: var(--warm-line);
	border-left-color: var(--warm);
	background: var(--warm-soft);
}

.mr-place .mr-article__body .mr-place-take > li:last-child {
	margin-bottom: 0;
}

.mr-place .mr-article__body .mr-place-take--pro > li::before {
	background: var(--warm);
}

.mr-place .mr-article__body .mr-place-take--con > li::before {
	background: var(--ink-4);
}

/* «Что взять с собой» — чек-лист, который читают перед выездом стоя у
   машины: две колонки на десктопе, крупные строки на телефоне. */
.mr-place .mr-article__body .mr-place-kit {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.1rem 1.4rem;
	margin: 0 0 1.4rem;
}

.mr-place .mr-article__body .mr-place-kit > li {
	min-width: 0;
	padding-left: 1.6em;
}

.mr-place .mr-article__body .mr-place-kit > li::before {
	top: 0.55em;
	left: 0.1em;
	width: 0.7em;
	height: 0.7em;
	border: 2px solid var(--warm);
	border-radius: 2px;
	background: none;
}

/* ---------------------------------------------------------------- Таблицы */

/* Прайс и паспорт водоёма — не выписка из приказа. Чёрную шапку
   заменяем светлой, тёплую линию ставим сверху. Раскладку не трогаем:
   .mr-t--stack по-прежнему разворачивается в карточки, .mr-t--wide
   по-прежнему скроллится внутри .mr-t-scroll. */
.mr-place .mr-t thead th {
	background: var(--paper-3);
	color: var(--ink-2);
	border-right-color: var(--paper);
}

/* Примороженная ячейка шапки красится отдельно — иначе при прокрутке
   вбок слева остаётся чёрный столбик от общего правила. */
.mr-place .mr-t--wide thead th:first-child {
	background: var(--paper-3);
}

/* Классы перечислены явно, без :not(): у .mr-t:not(.mr-t--wide)
   специфичность выше, и мобильный сброс ниже по файлу его бы не перебил. */
.mr-place .mr-t--stack,
.mr-place .mr-t-scroll {
	border-top: 2px solid var(--warm);
}

.mr-place .mr-t caption {
	color: var(--ink);
}

/* ---------------------------------------------------------------- Похожие */

.mr-place-more {
	margin-top: 2.5rem;
}

/* ---------------------------------------------------------------- Рельсы */

/* Без правого рельса третья колонка сетки не нужна: иначе текст ужимается
   впустую на 19rem. */
@media (min-width: 1101px) {
	.mr-place .mr-layout--article.mr-place-layout--norail {
		grid-template-columns: var(--rail-left) minmax(0, 1fr);
	}
}

/* ---------------------------------------------------------------- Адаптив */

@media (max-width: 1100px) {
	.mr-place-facts__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.mr-place-verdict__body {
		grid-template-columns: minmax(0, 1fr);
	}

	.mr-place-score {
		border-right: 0;
		border-bottom: 1px solid var(--line);
	}
}

@media (max-width: 700px) {
	.mr-place .mr-article__head {
		padding-top: 1rem;
	}

	.mr-place-verdict,
	.mr-place-facts {
		margin-top: 1rem;
	}

	.mr-place-verdict__head,
	.mr-place-facts__head {
		padding: 0.65rem 0.9rem;
	}

	.mr-place-score {
		padding: 0.85rem 0.9rem 1rem;
	}

	/* Балл и словесная формула встают в строку: так вердикт занимает
	   меньше половины экрана и критерии видны без прокрутки. */
	.mr-place-score__num {
		display: inline-flex;
		margin-bottom: 0.5rem;
	}

	.mr-place-score__word {
		margin-top: 0.5rem;
		font-size: 1rem;
	}

	.mr-place-crit {
		padding: 0.35rem 0.9rem 0.6rem;
	}

	/* Название и балл в первой строке, шкала во второй на всю ширину:
	   на 320px три колонки не помещаются без переносов в середине слова. */
	.mr-place-crit__row {
		grid-template-columns: minmax(0, 1fr) 2.6rem;
		gap: 0.35rem 0.6rem;
		padding: 0.6rem 0;
	}

	.mr-place-crit__name {
		grid-column: 1;
		grid-row: 1;
	}

	.mr-place-crit__val {
		grid-column: 2;
		grid-row: 1;
	}

	.mr-place-crit .mr-place-bar {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.mr-place-verdict__foot {
		padding: 0.65rem 0.9rem;
	}

	.mr-place-facts__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.mr-place-fact {
		border-right: 0;
		padding: 0.75rem 0.9rem 0.85rem 1.15rem;
	}

	.mr-place-fact::before {
		left: 0.9rem;
		top: 0.85rem;
		bottom: 0.95rem;
	}

	.mr-place .mr-article__body .mr-place-kit {
		grid-template-columns: minmax(0, 1fr);
	}

	/* В карточном режиме таблица теряет собственную рамку — тёплая линия
	   сверху повисла бы над карточками отдельной чертой. */
	.mr-place .mr-t--stack {
		border-top: 0;
	}
}

@media (max-width: 380px) {
	.mr-place-crit__row {
		grid-template-columns: minmax(0, 1fr) 2.2rem;
	}

	.mr-place .mr-article__body .mr-place-gal,
	.mr-place .mr-place-gal {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.4rem;
	}
}

/* ---------------------------------------------------------------- Печать */

@media print {
	.mr-place-verdict,
	.mr-place-facts,
	.mr-place-hero {
		break-inside: avoid;
	}

	.mr-place-verdict__head,
	.mr-place-facts__head {
		background: none;
	}

	.mr-place-more {
		display: none !important;
	}
}
