.pp-catalog-container {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 20px 50px;
	box-sizing: border-box;
}

.pp-catalog-header {
	margin-bottom: 25px;
}

.pp-catalog-breadcrumb {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	color: #8a8f96;
}

.pp-catalog-title {
	margin: 0;
	font-size: 34px;
	line-height: 1.2;
	color: #252a31;
}

.pp-catalog-filters {
	width: 100%;
	margin: 0 0 35px;
	padding: 22px;
	box-sizing: border-box;
	background: #f7f8fa;
	border: 1px solid #e1e4e8;
	border-radius: 10px;
}

.pp-catalog-filters__grid {
	display: grid;
	grid-template-columns:
		repeat(
			3,
			minmax(180px, 1fr)
		);
	gap: 15px;
}

/* Поле одного фильтра. */
.pp-filter-field {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

/* Название поля фильтра. */
.pp-filter-field label {
	display: block;
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	color: #4f5862;
}

/*
 * Все поля фильтров имеют
 * одинаковую ширину и высоту.
 */
.pp-filter-field select,
.pp-filter-field input[type="number"] {
	display: block;
	width: 100%;
	height: 40px;
	min-width: 0;
	margin: 0;
	padding: 8px 11px;
	box-sizing: border-box;
	border: 1px solid #cfd4da;
	border-radius: 5px;
	background: #ffffff;
	color: #343a40;
	font-size: 14px;
	line-height: 1.2;
}

/* Убираем различия браузера у поля цены. */
.pp-filter-field input[type="number"] {
	appearance: textfield;
	-moz-appearance: textfield;
}

/* Состояние при нажатии на поле. */
.pp-filter-field select:focus,
.pp-filter-field input[type="number"]:focus {
	outline: none;
	border-color: #3973a8;
	box-shadow:
		0 0 0 2px
		rgba(
			57,
			115,
			168,
			0.12
		);
}

.pp-filter-price-group {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	min-width: 0;
}

.pp-filter-reset-cell {
	display: flex;
	grid-column: 1 / -1;
	align-items: flex-start;
	min-height: 0;
	margin-top: -7px;
}

.pp-filter-reset {
	display: inline-block;
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	color: #3d6f9e;
	text-decoration: underline;
}

.pp-filter-reset:hover {
	text-decoration: none;
}

.pp-products-grid {
	display: grid;
	grid-template-columns:
		repeat(
			4,
			minmax(0, 1fr)
		);
	gap: 25px;
}

.pp-product-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 18px;
	box-sizing: border-box;
	background: #ffffff;
	border: 1px solid #e0e3e7;
	border-radius: 9px;
}

.pp-product-card__image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 240px;
	margin-bottom: 14px;
	overflow: hidden;
	background: #f8f9fa;
}

.pp-product-card__image img {
	display: block;
	max-width: 100%;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.pp-product-card__content {
	display: flex;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	flex-grow: 1;
}


.pp-product-card__title {
	margin: 0 0 8px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	color: #252a31;
}

.pp-product-card__price {
	margin-bottom: 11px;
	font-size: 17px;
	font-weight: 700;
	color: #20252b;
}

.pp-store-buttons {
	display: flex;
	flex-direction: column;
	margin-top: auto;
	gap: 8px;
}

.pp-store-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 40px;
	padding: 4px 6px;
	box-sizing: border-box;
	border-radius: 5px;
	color: #ffffff;
	font-size: 13px;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
}

.pp-store-ozon {
	background: #005bff;
}

.pp-store-wildberries {
	background: #8b2bb5;
}

.pp-store-yandex {
	background: #f28b18;
}

.pp-store-other {
	background: #16877b;
}

.pp-product-comment {
	margin-bottom: 12px;
}

.pp-product-comment__toggle {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 12px;
	color: #5a6672;
	cursor: pointer;
}

.pp-product-comment__content {
	display: none;
	margin-top: 7px;
	padding: 8px 9px;
	background: #f6f7f8;
	font-size: 12px;
	line-height: 1.55;
	color: #555e67;
}

.pp-product-comment.is-open
.pp-product-comment__content {
	display: block;
}

.pp-product-comment.is-open
.pp-product-comment__arrow {
	transform: rotate(180deg);
}

@media (
	max-width: 1100px
) {

	.pp-products-grid {
		grid-template-columns:
			repeat(
				3,
				minmax(0, 1fr)
			);
	}
}

@media (
	max-width: 800px
) {

	.pp-catalog-filters__grid {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);
	}

	.pp-filter-reset-cell {
		min-height: 0;
		align-items: center;
	}

	.pp-products-grid {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);
	}
}

@media (
	max-width: 560px
) {

	.pp-catalog-container {
		padding-right: 12px;
		padding-left: 12px;
	}

	.pp-catalog-title {
		font-size: 28px;
	}

	.pp-catalog-filters__grid {
		grid-template-columns:
			1fr;
	}

	.pp-filter-price-group {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pp-products-grid {
		grid-template-columns:
			1fr;
	}
}
.pp-catalog-intro { margin: 12px 0 0; max-width: 900px; font-size: 16px; line-height: 1.6; color: #555d66; }
.pp-single-product__description { margin-top: 24px; }


/* =========================================================
   3.7.2 — изображения, цена, выравнивание карточек и пагинация
   ========================================================= */

/* Убираем серые полосы вокруг изображения. */
/* Показываем весь товар без обрезки: горизонтальные картины остаются горизонтальными. */
.pp-product-card__image {
    background: #fff !important;
    align-items: center;
    justify-content: center;
}

/* Ссылка должна занимать всю область изображения, иначе высота картинки
   может рассчитываться относительно самой ссылки, а не контейнера. */
.pp-product-card__image > a {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 0;
}

.pp-product-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    background: #fff;
    object-fit: contain;
    object-position: center;
}

.pp-single-product__image {
    background: #fff !important;
}

.pp-single-product__image img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    background: #fff !important;
}

/* Цена каталога всегда располагается непосредственно над кнопкой. */
.pp-product-card__content {
    flex: 1 1 auto;
}

.pp-product-card__bottom {
    margin-top: auto;
    padding-top: 12px;
}

.pp-product-card__bottom .pp-product-card__price {
    margin: 0 0 8px;
    text-align: center;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 700;
}

.pp-product-card__bottom .pp-store-buttons {
    margin-top: 0;
}

/* Цена на отдельной странице товара. */
.pp-single-product__price {
    margin: 10px 0 20px;
    text-align: center;
    font-size: 30px;
    line-height: 1.2;
    font-weight: 800;
    color: #20252b;
}

.pp-single-product__price span {
    font-size: .9em;
    font-weight: 800;
}

/* Пагинация ниже рамки сетки товаров. */
.pp-catalog-pagination {
    clear: both;
    margin-top: 46px;
    padding-top: 8px;
}

.pp-catalog-pagination .navigation,
.pp-catalog-pagination .nav-links {
    margin-top: 0;
}
