/*
 * Страницы верёвочных парков — схема v1.
 * Подключается только на шаблоне page-templates/ropes.php поверх blocks.css
 * и inner.css. Здесь только каталог моделей: карточки с рендером, кодом,
 * ключевыми цифрами, ценой и раскрывающейся таблицей параметров.
 */

/* ------------------------------------------------------- Модели каталога */

.models__group {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: clamp(28px, 2.5vw, 48px) 0 clamp(14px, 1.15vw, 22px);
	padding-bottom: 12px;
	border-bottom: 1px solid var(--hard);
	font-family: var(--font-text);
	font-size: clamp(18px, 1.15vw, 22px);
	font-weight: 700;
	letter-spacing: -.02em;
}

.block__head + .models__group {
	margin-top: 0;
}

.models__count {
	font-family: var(--font-mono);
	font-size: var(--fs-mono);
	font-weight: 400;
	letter-spacing: .1em;
	color: var(--acc);
}

/* Линии между карточками — обводка каждой (см. .types в inner.css). */
.models {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	padding: 1px;
}

/*
 * Карточка переворачивается (правка клиента 15.09.2026): лицо — рендер,
 * цифры, цена и кнопка «Все параметры»; оборот — таблица параметров, виды
 * и кнопки. Чистый CSS: скрытый чекбокс перед .model__flip, label-кнопки
 * с обеих сторон, `:checked ~ .model__flip` крутит обёртку на 180°.
 * Обе стороны в одной ячейке грида (grid-area: 1 / 1), поэтому карточка
 * всегда высотой с большую сторону и сетка при перевороте не прыгает.
 */
.model {
	position: relative;
	display: grid;
	background: var(--bg);
	box-shadow: 0 0 0 1px var(--line);
	perspective: 1800px;
}

.model__flip {
	display: grid;
	transform-style: preserve-3d;
	transition: transform .7s cubic-bezier(.2, .7, .2, 1);
}

/* Чекбокс скрыт, но доступен с клавиатуры. Не .screen-reader-text: тот
 * по :focus показывает элемент, и после клика по label чекбокс всплывал. */
.model__flip-input {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
	pointer-events: none;
}

.model__flip-input:checked ~ .model__flip {
	transform: rotateY(180deg);
}

.model__face {
	grid-area: 1 / 1;
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: var(--bg);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.model__back {
	transform: rotateY(180deg);
}

@media (prefers-reduced-motion: reduce) {
	.model__flip {
		transition: none;
	}
}

.model__shot {
	position: relative;
	aspect-ratio: 4 / 3;
	background: var(--shot);
	overflow: hidden;
}

/*
 * Рендеры приходят на бежевом фоне почти в цвет страницы и сливались с ней
 * (правка клиента 14.09.2026): подложка карточки белая, а не --shot, снизу
 * линия, а контраст поднят, чтобы читались тросы и этапы.
 */
.model__shot {
	background: #fff;
	border-bottom: 1px solid var(--line);
}

.model__shot img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: contrast(1.18) saturate(1.05);
}

[data-theme='dark'] .model__shot {
	background: var(--panel);
}

[data-theme='dark'] .model__shot img {
	filter: contrast(1.12) brightness(.96);
}

.model__code {
	position: absolute;
	left: 12px;
	top: 12px;
	font-family: var(--font-mono);
	font-size: var(--fs-mono-sm);
	letter-spacing: .1em;
	background: var(--ink);
	color: var(--bg);
	padding: 5px 9px;
}

.model__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: clamp(16px, 1.2vw, 23px) clamp(16px, 1.3vw, 25px) clamp(14px, 1.04vw, 20px);
}

.model__meta {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	font-family: var(--font-mono);
	font-size: var(--fs-mono-sm);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--dim);
}

.model__specs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	margin: clamp(14px, 1.04vw, 20px) 0 0;
	border-top: 1px solid var(--line);
}

.model__spec {
	padding: 12px 8px 12px 0;
	border-right: 1px solid var(--line);
	margin-right: 8px;
}

.model__spec:last-child {
	border-right: 0;
	margin-right: 0;
}

.model__spec dt {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: .12em;
	color: var(--dim);
}

.model__spec dd {
	margin: 6px 0 0;
	font-size: clamp(17px, 1.1vw, 21px);
	font-weight: 800;
	letter-spacing: -.03em;
	line-height: 1;
}

.model__price {
	margin: clamp(14px, 1.04vw, 20px) 0 0;
	font-size: clamp(20px, 1.4vw, 27px);
	font-weight: 800;
	letter-spacing: -.035em;
	line-height: 1;
}

.model__more {
	margin-top: auto;
	padding-top: clamp(14px, 1.04vw, 20px);
}

/* Кнопка «Все параметры» — label к чекбоксу, на всю ширину карточки. */
.model__flip-btn {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	box-sizing: border-box;
	cursor: pointer;
}

.model__sign {
	color: var(--acc);
	font-weight: 400;
}

.model__flip-btn:hover .model__sign {
	color: inherit;
}

.model__flip-input:focus-visible ~ .model__flip .model__flip-btn,
.model__flip-input:focus-visible ~ .model__flip .model__flip-back {
	outline: 2px solid var(--acc);
	outline-offset: 2px;
}

/* Оборот: код и «Назад» в шапке, таблица, виды, кнопки прижаты к низу. */
.model__meta--back {
	align-items: center;
}

.model__code--back {
	position: static;
}

.model__flip-back {
	cursor: pointer;
	color: var(--ink);
	transition: color .18s ease;
}

.model__flip-back:hover {
	color: var(--acc);
}

/* Базовые стили .model__actions в forms.css, здесь только прижим к низу оборота. */
.model__actions {
	margin-top: auto;
	padding-top: clamp(14px, 1.04vw, 20px);
}

.model__table {
	width: 100%;
	margin-top: clamp(12px, 1.04vw, 20px);
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.4;
}

.model__table th,
.model__table td {
	padding: 7px 0;
	border-bottom: 1px solid var(--line);
	vertical-align: top;
	text-align: left;
}

.model__table th {
	width: 48%;
	padding-right: 10px;
	font-weight: 400;
	color: var(--dim);
}

.model__table tr:last-child th,
.model__table tr:last-child td {
	border-bottom: 0;
}

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

@media (max-width: 1180px) {
	.models {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 760px) {
	.models {
		grid-template-columns: 1fr;
	}

	.model__specs {
		grid-template-columns: repeat(2, 1fr);
	}

	.model__spec:nth-child(2) {
		border-right: 0;
	}

	.model__spec:nth-child(n + 3) {
		border-top: 1px solid var(--line);
	}
}
